cari

Rumah  >  Soal Jawab  >  teks badan

Sembunyikan Pesanan Akaun Saya WooCommerce jika jumlah pembelian ialah 0

<p>Dalam woocommerce, saya cuba menyembunyikan pesanan jika jumlah pesanan ialah 0. Di bawah ialah kod saya tetapi ia tidak berfungsi. Sebarang pemikiran tentang masalah itu? </p> <pre class="brush:php;toolbar:false;">add_filter( 'woocommerce_my_account_my_orders_query', 'hide_zero_total_orders_from_my_account', 10, 1 ); fungsi hide_zero_total_orders_from_my_account( $args ) { $args['meta_query'] = tatasusunan( tatasusunan( 'key' => '_jumlah_pesanan', 'nilai' => 0, 'compare' => '>', 'type' => 'NUMERIC', ), ); pulangkan $args; }</pre> <p><br /></p>
P粉545956597P粉545956597522 hari yang lalu561

membalas semua(1)saya akan balas

  • P粉037450467

    P粉0374504672023-08-18 00:21:58

    Anda boleh menggunakan pertanyaan SQL yang ringan untuk mendapatkan jumlah pembelian pelanggan dan menggunakan pertanyaan itu untuk menyembunyikan bahagian "Pesanan Akaun Saya" jika jumlah pembelian adalah sama dengan 0 (sifar):

    // 获取客户购买总金额
    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;
    }
    

    Letakkan kod dalam fail functions.php tema anak anda (atau dalam pemalam). Diuji dan berfungsi dengan baik.

    balas
    0
  • Batalbalas