recherche

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

Supprimez les termes et conditions de la page de paiement de WooCommerce lorsque seuls des produits spécifiques sont dans le panier

<p>Je vends des billets pour des événements et j'accepte les dons sur https://development.pittsburghconcertsociety.org. Lorsqu’une personne achète un billet, elle doit accepter les politiques COVID. Mais lorsque quelqu'un « achète » simplement un don, c'est-à-dire qu'il met simplement le produit du don dans son panier, il n'a pas besoin d'accepter la politique COVID. Le chatbot de support WooCommerce fournit le code suivant, mais il ne fonctionne pas : </p> <pre class="brush:php;toolbar:false;">function hide_terms_for_special_product( $woocommerce_checkout_fields ) { // Vérifiez si le produit spécifique est le seul article du panier si (WC()->cart) { $cart_items = WC()->cart->get_cart(); $special_product_found = faux ; foreach ( $cart_items comme $cart_item ) { // Remplacez '123' par l'ID du produit spécifique si ( $cart_item['product_id'] == 551 ) { $special_product_found = vrai ; casser; } } // Masquer les termes et conditions du produit spécifique si ( $special_product_found ) { unset( $woocommerce_checkout_fields['terms'] ); } } retourner $woocommerce_checkout_fields ; } add_filter( 'woocommerce_checkout_fields', 'hide_terms_for_special_product' );</pre> <p>L'ID du produit de don est 551). Pour résumer, je souhaite avoir une case à cocher/exigence T&C s'il y a des billets et des produits de don dans le panier, mais aucune T&C n'est requise s'il n'y a que des produits de don dans le panier. Dans ce cas, il ne suffit pas de masquer les CGU, il ne faut pas non plus les exiger. </p><p>De plus, si nous vendons des articles, ce serait bien de pouvoir ajouter plusieurs identifiants de produit. </p><p><br /></p>
P粉245003607P粉245003607564 Il y a quelques jours546

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

  • P粉344355715

    P粉3443557152023-07-31 00:43:10

    Le code ci-dessous supprimera complètement l'exigence de conditions générales lorsque seuls des produits spécifiques sont dans le panier :

    add_filter( 'woocommerce_checkout_show_terms', 'remove_terms_and_conditions_for_specific_unique_item' );
    function remove_terms_and_conditions_for_specific_unique_item( $show_terms ) {
        // Replace "123" with the desired product ID
        $targeted_id = 15;
        $cart_items = WC()->cart->get_cart(); // get cart items
    
        // Check if there is only one item in cart
        if( count($cart_items) > 2 ) {
            return $show_terms;
        }        
        // Check if the targeted product ID is the only item in cart
        if ( reset($cart_items)['product_id'] == $targeted_id ) {
            return false; // Remove terms and conditions field
        }
        return $show_terms;
    }
    

    Le code doit être placé dans le fichier function.php du thème enfant actif, ou placé dans un plugin. A été testé et confirmé au travail.

    répondre
    0
  • Annulerrépondre