首页 > 解决方案 > 当 Woocommerce 中的可变产品缺货时隐藏添加到购物车块

问题描述

在 Woocommerce 中,我正在使用Woocommerce 候补名单插件,当产品缺货时,该插件会在“添加到购物车”按钮附近显示“加入候补名单”按钮。在我的变量订阅中,我试图在产品缺货时隐藏“添加到购物车”按钮块,但没有成功。

如果有帮助,我们正在使用 Vantage 主题和Woocommerce 订阅

Woocommerce中可变产品缺货时如何隐藏“添加到购物车”块?

标签: phpjquerycsswordpresswoocommerce

解决方案


更新- 要检测“缺货”选择的变化并隐藏添加到购物车按钮块,方法是使用 jQuery:

add_action( 'wp_footer', 'single_add_to_cart_event_text_replacement' );
function single_add_to_cart_event_text_replacement() {
    global $product;

    // Only single variable products
    if( ! ( is_product() && $product->is_type('variable') ) )
        return;
    ?>
        <script type="text/javascript">
        jQuery(function($){
            var vs = 'table.variations select',         vi = 'input.variation_id',
            atc = 'woocommerce-variation-add-to-cart',  atcd = atc+'-disabled',
            atc = '.'+atc;

            // 1. On start (With a mandatory light delay)
            setTimeout(function(){
                if ( 0 < $(vi).val() && $(atc).hasClass(atcd) ) {
                    $(atc).hide();
                }
            }, 250);

            // 2. On variation change
            $('.variations_form').on( 'blur', vs, function(){
                if( 0 < $(vi).val() && $(atc).hasClass(atcd) ){
                    $(atc).hide();
                } else {
                    $(atc).show();
                }
            });
        })
        </script>
    <?php
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。


CSS方式 (不方便)

<div>容器获得一个标记类woocommerce-variation-add-to-cart-disabled,使添加到购物车按钮变灰时,您可以使用 CSS 规则来隐藏按钮和数量字段的整个块:

.woocommerce-variation-add-to-cart-disabled { display:none !important; }

但是当没有选择变体时,它也会隐藏添加到购物车,所以不方便。


推荐阅读