recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment masquer le champ de coupon de WooCommerce pour un produit spécifique ?

<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粉138871485P粉138871485555 Il y a quelques jours458

répondre à tous(1)je répondrai

  • P粉615829742

    P粉6158297422023-07-29 09:29:27

    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

    répondre
    0
  • Annulerrépondre