如果購買總金額為0,則隱藏WooCommerce我的帳戶訂單
P粉545956597
P粉545956597 2023-08-17 21:18:54
0
1
434

在woocommerce中,我試圖隱藏訂單,如果訂單總額為0。 以下是我的程式碼,但它不起作用。對於問題有什麼想法嗎?

add_filter( 'woocommerce_my_account_my_orders_query', 'hide_zero_total_orders_from_my_account', 10, 1 ); function hide_zero_total_orders_from_my_account( $args ) { $args['meta_query'] = array( array( 'key' => '_order_total', 'value' => 0, 'compare' => '>', 'type' => 'NUMERIC', ), ); return $args; }


P粉545956597
P粉545956597

全部回覆 (1)
P粉037450467

您可以使用輕量級的SQL查詢來取得客戶的總購買金額,並使用該查詢來隱藏「我的帳戶訂單」部分,如果總購買金額等於0(零):

// 获取客户购买总金额 function get_customer_purchases_total_amount(){ global $wpdb; return (float) $$wpdb->get_var( $wpdb->prepare( " SELECT SUM(pm.meta_value) FROM {$wpdb->prefix}posts as p INNER JOIN {$wpdb->prefix}postmeta as pm ON p.ID = pm.post_id INNER JOIN {$wpdb->prefix}postmeta as pm2 ON p.ID = pm2.post_id WHERE p.post_type = 'shop_order' AND p.post_status IN ('wc-processing','wc-completed') AND pm.meta_key = '_order_total' AND pm2.meta_key = '_customer_user' AND pm2.meta_value = %d ", get_current_user_id() ) ); } // 有条件地隐藏“我的账户订单”部分 add_filter( 'woocommerce_account_menu_items', 'hide_customer_account_orders_conditionally', 100, 1 ); function hide_customer_account_orders_conditionally( $items ) { if ( get_customer_purchases_total_amount() == 0 ) { unset( $items['orders'] ); } return $items; }

將程式碼放在您的子主題的functions.php檔案中(或外掛程式中)。已測試並可正常運作。

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!