Supprimez les termes et conditions de la page de paiement de WooCommerce lorsque seuls des produits spécifiques sont dans le panier
P粉245003607
P粉245003607 2023-07-30 10:35:54
0
1
521
<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粉245003607
P粉245003607

répondre à tous(1)
P粉344355715

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.

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