簡體   English   中英

從訂單預覽中刪除 WooCommerce 管理訂單操作

[英]Remove WooCommerce admin order action from order preview

對於商店經理,我想刪除將訂單標記為已完成的功能。 為此,我使用了以下基於在 Woocommerce 管理訂單列表中有條件地隱藏特定操作按鈕”的主題的functions.php 文件中的答案:

add_filter( 'woocommerce_admin_order_actions', 'custom_admin_order_actions', 900, 2 );
function custom_admin_order_actions( $actions, $the_order ){
    if(isset(wp_get_current_user()->roles[0]) && wp_get_current_user()->roles[0] == 'shop-manager') 
        unset($actions['complete']);

    return $actions;
}

這樣,我成功地從 shop_order 頁面中刪除了完整按鈕。 但是,商店經理仍然可以使用訂單預覽中出現的“完成”按鈕完成訂單。 為了避免這種情況,我在上一個操作之后嘗試了下一個操作:

add_action( 'woocommerce_admin_order_preview_start', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin(){
    // Call the stored value and display it
    echo '<div>Class = "button hidden wc-action-button wc-action-button-complete complete"</div><br>'; 
}

但是,這不會從預覽窗口中刪除按鈕,因為它不會替換代碼中的行。

有沒有辦法立即從 shop_order 頁面和訂單預覽中刪除此功能? 如果沒有,如何在預覽窗口中隱藏此按鈕?

要從“商店經理”用戶角色的管理員訂單預覽中刪除“完成”更新訂單狀態按鈕,請使用以下命令:

add_filter( 'woocommerce_admin_order_preview_actions', 'filter_admin_order_preview_actions', 10, 2 );
function filter_admin_order_preview_actions( $actions, $order ) {
    if( current_user_can('shop-manager') && isset($actions['status']['actions']['complete']) ) {
        unset($actions['status']['actions']['complete']);
    }
    return $actions;
}

代碼位於活動子主題(或活動主題)的 function.php 文件中。 測試和工作。

暫無
暫無

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

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