我正在使用woocommerce_admin_order_actions
挂钩以添加其他操作,如发票。但它重复了很多次,而其他按钮只重复了一次。
public function add_new_list_for_action($actions, $the_order) {
if ( $the_order->has_status( array( \'processing\' ) ) ) {
$status = $_GET[\'status\'];
$order_id = method_exists($the_order, \'get_id\') ? $the_order->get_id() : $the_order->id;
$actions[] = ["action" => "invoice",
"url" => wp_nonce_url(admin_url(\'admin-ajax.php?action=wip_pdf_generator&status=invoice\'.$status.\'&order_id=\' . $order_id), \'wip_pdf_generator\'),
"name" => "Invoice"];
}
return $actions;
}
add_filter( \'woocommerce_admin_order_actions\', array($this, \'add_new_list_for_action\'),1, 2);
SO网友:VinothRaja
将此代码添加到当前活动主题函数的下面。php文件
add_filter( \'woocommerce_admin_order_actions\', \'add_custom_order_status_actions_button\', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
if ( $order->has_status( array( \'processing\' ) ) ) {
// The key slug defined for your action button
$action_slug = \'invoice\';
$status = $_GET[\'status\'];
$order_id = method_exists($the_order, \'get_id\') ? $the_order->get_id() : $the_order->id;
// Set the action button
$actions[$action_slug] = array(
\'url\' => wp_nonce_url(admin_url(\'admin-ajax.php?action=wip_pdf_generator&status=invoice\'.$status.\'&order_id=\' . $order_id), \'wip_pdf_generator\'),
\'name\' => __( \'Invoice\', \'woocommerce\' ),
\'action\' => $action_slug,
);
}
return $actions;
}
add_action( \'admin_head\', \'add_custom_order_status_actions_button_css\' );
function add_custom_order_status_actions_button_css() {
$action_slug = "invoice"; // The key slug defined for your action button
echo \'<style>.wc-action-button-\'.$action_slug.\'::after { font-family: woocommerce !important; content: "\\e029" !important; }</style>\';
}