如何在WooCommerce管理订单页面中添加额外的操作按钮?

时间:2018-08-01 作者:Rafiq

我正在使用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);

1 个回复
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>\';
}

enter image description here

结束