Comment masquer le champ de coupon de WooCommerce pour un produit spécifique ?
P粉138871485
P粉138871485 2023-07-28 11:22:20
0
1
417
<p>J'essaie de masquer les champs de coupon pour certains produits dans le panier WooCommerce et la page de paiement. Après une recherche sur Google, j'ai trouvé un code qui masque le champ du coupon, mais uniquement pour un produit. </p><p>Comment puis-je gérer plusieurs produits dans ce code : </p><p><br /></p> <pre class="brush:php;toolbar:false;">// masquer le champ du coupon sur la page de paiement fonction Disable_coupon_field_on_checkout( $enabled ) { si ( is_checkout() ) { $product_id = 240790 ; $in_cart = faux ; foreach( WC()->cart->get_cart() as $cart_item ) { $product_in_cart = $cart_item['product_id']; si ( $product_in_cart === $product_id ) $in_cart = true ; } si ( $in_cart === vrai ) { $ activé = faux ; } } renvoyer $ activé ; } add_filter( 'woocommerce_coupons_enabled', 'disable_coupon_field_on_checkout' ); // masquer le champ du coupon sur la page du panier fonction Disable_coupon_field_on_cart( $enabled ) { si ( is_cart() ) { $product_id = 240790 ; $in_cart = faux ; foreach( WC()->cart->get_cart() as $cart_item ) { $product_in_cart = $cart_item['product_id']; si ( $product_in_cart === $product_id ) $in_cart = true ; } si ( $in_cart === vrai ) { $ activé = faux ; } } renvoyer $ activé ; } add_filter( 'woocommerce_coupons_enabled', 'disable_coupon_field_on_cart' );</pre>
P粉138871485
P粉138871485

répondre à tous(1)
P粉615829742

Le code ci-dessous gérera plusieurs ID de produit et/ou ID de variante pour les pages de panier et de paiement, désactivant le champ de coupon pour ces produits.

// hide coupon field on cart and checkout pages
add_filter( 'woocommerce_coupons_enabled', 'disable_coupon_field_for_specific_products' );
function disable_coupon_field_for_specific_products( $enabled ) {
    if ( ( is_checkout() && !is_wc_endpoint_url() ) || is_cart() ) {
        // here define your product IDs in the array
        $product_ids = array(240790, 240792, 240795, 240798);
        
        // Loop through cart items
        foreach( WC()->cart->get_cart() as $item ) {
            if ( count( array_intersect( [$item['product_id'], $item['variation_id']], $product_ids ) ) > 0 ) {
                return false;
            }
        }
    }
    return $enabled;
}

Ça devrait être utile

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