Masquer les commandes de mon compte WooCommerce si le montant total de l'achat est de 0
P粉545956597
P粉545956597 2023-08-17 21:18:54
0
1
522
<p>Dans woocommerce, j'essaie de masquer une commande si le total de la commande est de 0. Ci-dessous mon code mais il ne fonctionne pas. Des idées sur le problème ? </p> <pre class="brush:php;toolbar:false;">add_filter( 'woocommerce_my_account_my_orders_query', 'hide_zero_total_orders_from_my_account', 10, 1 ); fonction hide_zero_total_orders_from_my_account( $args ) { $args['meta_query'] = tableau( tableau( 'clé' => '_order_total', 'valeur' ​​=> 0, 'comparer' => '>', 'type' => 'NUMÉRIQUE', ), ); renvoie $args ; }</pré> <p><br /></p>
P粉545956597
P粉545956597

répondre à tous(1)
P粉037450467

Vous pouvez utiliser une requête SQL légère pour obtenir le montant total de l'achat du client et utiliser cette requête pour masquer la section "Mon compte commandes" si le montant total de l'achat est égal à 0 (zéro) :

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

Placez le code dans le fichier function.php de votre thème enfant (ou dans un plugin). Testé et fonctionne bien.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal