{"id":19716,"date":"2025-01-30T15:58:15","date_gmt":"2025-01-30T15:58:15","guid":{"rendered":"http:\/\/a8759758b2.nxcli.io\/?post_type=docs&#038;p=19716"},"modified":"2025-06-09T12:08:44","modified_gmt":"2025-06-09T12:08:44","password":"","slug":"comment-appliquer-automatiquement-un-coupon-lorsquun-certain-produit-est-dans-le-panier-woocommerce","status":"publish","type":"docs","link":"https:\/\/couponaffiliates.com\/fr\/documents\/comment-appliquer-automatiquement-un-coupon-lorsquun-certain-produit-est-dans-le-panier-woocommerce\/","title":{"rendered":"Comment appliquer automatiquement un coupon lorsqu'un certain produit est dans le panier WooCommerce (Fonction)"},"content":{"rendered":"<p>Il n'y a pas d'option pour appliquer automatiquement des coupons lorsqu'un certain produit est dans le panier WooCommerce par d\u00e9faut.<\/p>\n\n\n\n<p>Cependant, il est possible de le faire avec un peu de code personnalis\u00e9.<\/p>\n\n\n\n<p>Voici un exemple qui ajoutera une option \u00e0 vos param\u00e8tres de coupons pour s\u00e9lectionner un produit \u00e0 lier \u00e0 ce coupon. Lorsque le produit est ajout\u00e9 au panier, le coupon est \u00e9galement appliqu\u00e9.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Ajouter l'option \"Auto-Apply When Product In Cart\" aux param\u00e8tres des coupons de WooCommerce.\n *\/\nfunction wcusage1_add_coupon_auto_apply_option($coupon_id, $coupon) {\n    woocommerce_wp_select(array(\n        'id' =&gt; 'auto_apply_product',\n        'label' =&gt; __('Auto-Apply When Product In Cart', 'woocommerce'),\n        'description' =&gt; __('S\u00e9lectionnez un produit pour d\u00e9clencher l'application automatique du coupon.', 'woocommerce'),\n        'desc_tip' =&gt; true,\n        'options' =&gt; wcusage1_get_product_dropdown_options(),\n        'value' =&gt; get_post_meta($coupon_id, 'auto_apply_product', true),\n    )) ;\n    ?&gt;\n    \n     'publish',\n        'limit' =&gt; -1,\n        'return' =&gt; 'objects',\n    )) ;\n\n    $options = array('' =&gt; __('None', 'woocommerce')) ;\n    foreach ($products as $product) {\n        $options[$product-&gt;get_id()] = $product-&gt;get_name() ;\n    }\n\n    return $options ;\n}\n\n\/**\n * Appliquer automatiquement les coupons si un produit correspondant se trouve dans le panier.\n *\/\nfunction wcusage1_auto_apply_coupon() {\n    if (is_admin() &amp;&amp; !defined('DOING_AJAX')) {\n        return ;\n    }\n\n    $cart = WC()-&gt;cart ;\n    $cart_product_ids = array() ;\n\n    \/\/ R\u00e9cup\u00e8re tous les ID de produits dans le panier\n    foreach ($cart-&gt;get_cart() as $cart_item) {\n        $cart_product_ids[] = $cart_item['product_id'] ;\n    }\n\n    \/\/ Obtenir tous les coupons avec le jeu de produits \u00e0 application automatique\n    $args = array(\n        'post_type' =&gt; 'shop_coupon',\n        'post_status' =&gt; 'publish',\n        'posts_per_page' =&gt; -1,\n    ) ;\n\n    $coupons = get_posts($args) ;\n\n    foreach ($coupons as $coupon) {\n        $coupon_code = $coupon-&gt;post_title ;\n        $auto_apply_product = get_post_meta($coupon-&gt;ID, 'auto_apply_product', true) ;\n\n        \/\/ V\u00e9rifier si le produit est dans le panier\n        if ($auto_apply_product &amp;&amp; in_array($auto_apply_product, $cart_product_ids)) {\n            if (!$cart-&gt;has_discount($coupon_code)) {\n                $cart-&gt;apply_coupon($coupon_code) ;\n            }\n        }\n    }\n}\nadd_action('woocommerce_before_calculate_totals', 'wcusage1_auto_apply_coupon') ;\n\n\/**\n * Supprime le coupon auto-appliqu\u00e9 si le produit correspondant est retir\u00e9 du panier.\n *\/\nfunction wcusage1_remove_auto_applied_coupon($cart_item_key) {\n    $cart = WC()-&gt;cart ;\n    $cart_product_ids = array() ;\n\n    \/\/ R\u00e9cup\u00e8re tous les ID de produits dans le panier\n    foreach ($cart-&gt;get_cart() as $cart_item) {\n        $cart_product_ids[] = $cart_item['product_id'] ;\n    }\n\n    \/\/ Obtenir tous les coupons avec le jeu de produits \u00e0 application automatique\n    $args = array(\n        'post_type' =&gt; 'shop_coupon',\n        'post_status' =&gt; 'publish',\n        'posts_per_page' =&gt; -1,\n    ) ;\n\n    $coupons = get_posts($args) ;\n\n    foreach ($coupons as $coupon) {\n        $coupon_code = $coupon-&gt;post_title ;\n        $auto_apply_product = get_post_meta($coupon-&gt;ID, 'auto_apply_product', true) ;\n\n        \/\/ V\u00e9rifier si le produit est dans le panier\n        if ($auto_apply_product &amp;&amp; !in_array($auto_apply_product, $cart_product_ids)) {\n            if ($cart-&gt;has_discount($coupon_code)) {\n                $cart-&gt;remove_coupon($coupon_code) ;\n            }\n        }\n    }\n}\nadd_action('woocommerce_cart_item_removed', 'wcusage1_remove_auto_applied_coupon') ;<\/code><\/pre>\n\n\n\n<p>Le code peut ne pas \u00eatre 100% complet ou test\u00e9 correctement. Veillez \u00e0 effectuer vos propres tests et \u00e0 cr\u00e9er des sauvegardes de votre site web avant d'utiliser un code personnalis\u00e9.<\/p>","protected":false},"excerpt":{"rendered":"<p>Il n'y a pas d'option pour appliquer automatiquement des coupons lorsqu'un certain produit est dans le panier WooCommerce par d\u00e9faut. Cependant, il est possible de le faire avec un peu de code personnalis\u00e9. Voici un exemple qui ajoutera une option \u00e0 vos param\u00e8tres de coupons pour s\u00e9lectionner un produit \u00e0 lier \u00e0 ce coupon. Lorsque le produit est ajout\u00e9 [...]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","footnotes":"","_links_to":"","_links_to_target":""},"doc_category":[136],"doc_tag":[],"class_list":["post-19716","docs","type-docs","status-publish","hentry","doc_category-developers","wpbf-post"],"year_month":"2026-04","word_count":561,"total_views":"1963","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"display_name":"Elliot Sowersby","author_link":"#"},"doc_category_info":[{"term_name":"Developers","term_url":"https:\/\/couponaffiliates.com\/fr\/categorie-docs\/developpeurs\/"}],"doc_tag_info":[],"taxonomy_info":{"doc_category":[{"value":136,"label":"Developers"}]},"featured_image_src_large":false,"comment_info":0,"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/docs\/19716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/comments?post=19716"}],"version-history":[{"count":4,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/docs\/19716\/revisions"}],"predecessor-version":[{"id":21123,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/docs\/19716\/revisions\/21123"}],"wp:attachment":[{"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/media?parent=19716"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/doc_category?post=19716"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/couponaffiliates.com\/fr\/wp-json\/wp\/v2\/doc_tag?post=19716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}