{"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":"como-aplicar-un-cupon-cuando-un-producto-esta-en-el-carrito-de-woocommerce","status":"publish","type":"docs","link":"https:\/\/couponaffiliates.com\/es\/docs\/como-aplicar-un-cupon-cuando-un-producto-esta-en-el-carrito-de-woocommerce\/","title":{"rendered":"C\u00f3mo auto-aplicar un cup\u00f3n cuando un determinado producto est\u00e1 en el carrito de WooCommerce (Funci\u00f3n)"},"content":{"rendered":"<p>Por defecto no existe la opci\u00f3n de autoaplicar cupones cuando un determinado producto est\u00e1 en el carrito de WooCommerce.<\/p>\n\n\n\n<p>Sin embargo, es posible hacerlo con algo de c\u00f3digo personalizado.<\/p>\n\n\n\n<p>Aqu\u00ed tienes un ejemplo que a\u00f1adir\u00e1 una opci\u00f3n a la configuraci\u00f3n de tus cupones para seleccionar un producto y vincularlo a ese cup\u00f3n. Cuando el producto se a\u00f1ada al carrito, tambi\u00e9n se aplicar\u00e1 el cup\u00f3n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * A\u00f1ade la opci\u00f3n \"Aplicar autom\u00e1ticamente cuando el producto est\u00e9 en la cesta\" a la configuraci\u00f3n de cupones 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; __('Aplicar autom\u00e1ticamente cuando el producto est\u00e9 en la cesta', 'woocommerce'),\n        'description' =&gt; __('Selecciona un producto para activar la aplicaci\u00f3n autom\u00e1tica del cup\u00f3n.', '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 * Aplicar cupones autom\u00e1ticamente si hay un producto coincidente en el carrito.\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    \/\/ Obtener todos los IDs de productos del carrito\n    foreach ($cart-&gt;get_cart() as $cart_item) {\n        $cart_product_ids[] = $cart_item['product_id'];\n    }\n\n    \/\/ Obtener todos los cupones con el producto de aplicaci\u00f3n autom\u00e1tica establecido\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        \/\/ Comprobar si el producto est\u00e1 en el carrito\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 * Eliminar el cup\u00f3n aplicado autom\u00e1ticamente si el producto correspondiente se elimina del carrito.\n *\/\nfunction wcusage1_remove_auto_applied_coupon($cart_item_key) {\n    $cart = WC()-&gt;cart;\n    $cart_product_ids = array();\n\n    \/\/ Obtener todos los IDs de productos del carrito\n    foreach ($cart-&gt;get_cart() as $cart_item) {\n        $cart_product_ids[] = $cart_item['product_id'];\n    }\n\n    \/\/ Obtener todos los cupones con el producto de aplicaci\u00f3n autom\u00e1tica establecido\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        \/\/ Comprobar si el producto est\u00e1 en el carrito\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>El c\u00f3digo puede no estar 100% completo o probado correctamente. Por favor, aseg\u00farese de hacer sus propias pruebas y crear copias de seguridad del sitio web antes de usar el c\u00f3digo personalizado.<\/p>","protected":false},"excerpt":{"rendered":"<p>Por defecto no existe la opci\u00f3n de auto-aplicar cupones cuando un determinado producto est\u00e1 en el carrito de WooCommerce. Sin embargo, es posible hacerlo con algo de c\u00f3digo personalizado. Aqu\u00ed tienes un ejemplo que a\u00f1adir\u00e1 una opci\u00f3n a la configuraci\u00f3n de tus cupones para seleccionar un producto y vincularlo a ese cup\u00f3n. Cuando se a\u00f1ade el producto [...]<\/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":"1797","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\/es\/categoria-docs\/desarrolladores\/"}],"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\/es\/wp-json\/wp\/v2\/docs\/19716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/comments?post=19716"}],"version-history":[{"count":4,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/docs\/19716\/revisions"}],"predecessor-version":[{"id":21123,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/docs\/19716\/revisions\/21123"}],"wp:attachment":[{"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/media?parent=19716"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/doc_category?post=19716"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/couponaffiliates.com\/es\/wp-json\/wp\/v2\/doc_tag?post=19716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}