簡體   English   中英

在 WooCommerce 管理訂單列表中添加自定義操作按鈕

[英]Add a custom action button in WooCommerce admin order list

我已按照此說明為我的 WooCommerce 訂單添加自定義訂單狀態。

我找不到創建自定義操作按鈕的方法,該按鈕將訂單狀態從管理訂單列表頁面更改為我的自定義狀態,如下圖所示:

這張圖片顯示了我想要的位置。

我希望為具有“處理”狀態的訂單顯示此自定義操作按鈕。

我在 WooCommerce 文檔中找不到任何答案。

是否有掛鈎可以應用這些按鈕?
如何將其添加到function.php

謝謝

要恢復,您已創建自定義訂單狀態“wc-parcial”(使用問題中提供的說明代碼),您需要將相關操作按鈕添加到訂單管理列表。

對於 WooCommerce 3.3+ 版,請檢查以下答案的更新

您需要使用掛在woocommerce_admin_order_actions過濾器鈎子中的自定義函數

// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
    // Display the button for all orders that have a 'processing' status
    if ( $order->has_status( array( 'processing' ) ) ) {

        // Get Order ID (compatibility all WC versions)
        $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
        // Set the action button
        $actions['parcial'] = array(
            'url'       => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order_id ), 'woocommerce-mark-order-status' ),
            'name'      => __( 'Envio parcial', 'woocommerce' ),
            'action'    => "view parcial", // keep "view" class for a clean button CSS
        );
    }
    return $actions;
}

// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
    echo '<style>.view.parcial::after { font-family: woocommerce; content: "\e005" !important; }</style>';
}

代碼位於活動子主題(或主題)的 function.php 文件或任何插件文件中。

此代碼經過測試並有效。 你會得到:

在此處輸入圖片說明

Woocommerce 3.3+ 的更新版本

要恢復,您已創建自定義訂單狀態“wc-parcial”(使用問題中提供的說明代碼),您需要將相關操作按鈕添加到訂單管理列表。

新代碼:

// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
    // Display the button for all orders that have a 'processing' status
    if ( $order->has_status( array( 'processing' ) ) ) {

        // The key slug defined for your action button
        $action_slug = 'parcial';

        // Set the action button
        $actions[$action_slug] = array(
            'url'       => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order->get_id() ), 'woocommerce-mark-order-status' ),
            'name'      => __( 'Envio parcial', 'woocommerce' ),
            'action'    => $action_slug,
        );
    }
    return $actions;
}

// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
    $action_slug = "parcial"; // The key slug defined for your action button

    echo '<style>.wc-action-button-'.$action_slug.'::after { font-family: woocommerce !important; content: "\e029" !important; }</style>';
}

代碼位於活動子主題(或活動主題)的 functions.php 文件中。

測試和工作

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM