Pour supprimer un champ personnalisé du paiement dans WooCommerce lorsqu'un produit spécifique est dans le panier, vous pouvez utiliser la fonction woocommerce_checkout_fields et supprimer le champ en fonction du produit. Voici un exemple de code qui peut vous aider : add_filter( 'woocommerce_checkout_fields', 'remove_custom_field_based_on_product' ); function remove_custom_field_based_on_product( $fields ) { // Insérez l'ID du produit que le […]
Catégorie: WooCommerce
Masquer certains modes de paiement lors du paiement de certains produits
Dans cet exemple, vous devez personnaliser la fonction hide_payment_method_for_specific_products en modifiant les ID de produit et les noms des méthodes de paiement que vous souhaitez masquer en fonction de vos besoins. Ajoutez cette fonction au functions.php de votre thème et elle masquera les méthodes de paiement sélectionnées en fonction des identifiants de produit. Veuillez noter qu’il ne s’agit que d’un exemple et que vous […]
Activer la livraison gratuite pour les clients réguliers
add_filter('woocommerce_shipping_free_shipping_threshold', 'livraison_gratuite_pour_les_clients_de_retour'); fonction livraison_gratuite_pour_les_clients_de_retour($threshold) { if (is_user_logged_in() && current_user_can('customer_group')) { $threshold = 0; // Livraison gratuite pour les clients réguliers } return $threshold; }
Vider automatiquement le panier lorsqu'un produit est ajouté
add_action('woocommerce_add_to_cart', 'vider_panier_à_l'ajout'); fonction empty_cart_on_add() { WC()->cart->empty_cart(); }
Créer des onglets personnalisés sur la page produit
add_filter('onglets_produits_woocommerce', 'onglets_produits_personnalisés'); fonction custom_product_tabs($tabs) { $tabs['custom_tab'] = array( 'title' => __('Informations supplémentaires', 'woocommerce'), 'priority' => 50, 'callback' => 'custom_product_tab_content' ); renvoie $tabs; } fonction custom_product_tab_content() { echo '<h2>Informations Complémentaires</h2>'; écho '<p>Vous pouvez trouver plus d'informations sur ce produit ici.</p>'; }
Supprimer le champ du code de bon de réduction du panier
add_action('init', 'remove_coupon_field_from_cart'); fonction remove_coupon_field_from_cart() { remove_action('woocommerce_before_cart', 'woocommerce_coupon_form', 10); }
Les frais de livraison varient en fonction du nombre d'articles
add_filter('woocommerce_package_rates', 'ajuster_expédition_en_fonction_du_nombre_d'articles', 10, 2); fonction ajuster_expédition_en_fonction_du_nombre_d'articles($rates, $package) { $item_count = WC()->panier->obtenir_le_nombre_de_contenus_du_panier(); si ($item_count > 5) { foreach ($rates as $rate_id => $rate) { $rates[$rate_id]->cost += 2.00; // Frais de livraison supplémentaires pour 6 articles ou plus } } return $rates; }
Remise sur les produits de la catégorie « Soldes »
add_filter('woocommerce_product_get_price', 'discount_sale_category_products', 10, 2); fonction discount_sale_category_products($price, $product) { $sale_category = 'solde'; // Nom de la catégorie de vente if (has_term($sale_category, 'product_cat', $product->get_id())) { $price = $price * 0.8; // 20% Remise pour les produits de la catégorie soldes } return $price; }
Message personnalisé pour les produits épuisés
add_filter('woocommerce_get_availability', 'custom_out_of_stock_message', 1, 2); function custom_out_of_stock_message($availability, $product) { if (!$product->is_in_stock()) { $availability['availability'] = __('Malheureusement en rupture de stock - veuillez nous contacter pour plus d'informations.', 'woocommerce'); } renvoie $availability; }
Ajouter un champ de texte personnalisé au formulaire de paiement
add_action('woocommerce_after_checkout_billing_form', 'custom_checkout_form_field'); fonction custom_checkout_form_field($checkout) { echo '<div id="”custom_checkout_field”"><h2>' . __('Informations Complémentaires') . '</h2>'; woocommerce_form_field('custom_field', array( 'type' => 'text', 'class' => array('form-row-wide'), 'label' => __('Champ personnalisé'), 'placeholder' => __('Entrez vos informations ici.'), 'required' => false, ), $checkout->get_value('custom_field')); écho '</div>'; }