Supprimez les termes et conditions de la page de paiement de WooCommerce lorsque seuls des produits spécifiques sont dans le panier
P粉245003607
2023-07-30 10:35:54
<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>
Le code ci-dessous supprimera complètement l'exigence de conditions générales lorsque seuls des produits spécifiques sont dans le panier :
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.