将类别有条件的缺货文本添加到woocommerce 3按钮

时间:2019-06-18 13:10:25

标签: woocommerce

有人请张贴一个代码链接,该链接允许将“有货”和“无货”添加到产品的“添加到购物车”按钮中。我认为有一种方法可以调整此代码,以便仅将其专门应用于某些类别?

例如,我希望非特定类别产品的所有其他按钮都能正常显示(无库存文字),而只有单个特定类别中的商品(我们称之为“ inshop”)来显示修改后的按钮文字。

我知道我可以使用钩子is_product-category('inshop'),但不知道在哪里将其添加到下面的代码中。这可能吗?

add_filter( 'woocommerce_product_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 );
add_filter( 'woocommerce_product_single_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 );
function customizing_add_to_cart_button_text( $button_text, $product ) {

    $sold_out = __( "Sold Out", "woocommerce" );

    $availability = $product->get_availability();
    $stock_status = $availability['class'];

    // Only for variable products on single product pages
    if ( $product->is_type('variable') && is_product() )
    {
    ?>
    <script>
    jQuery(document).ready(function($) {
        $('select').blur( function(){
            if( '' != $('input.variation_id').val() && $('p.stock').hasClass('out-of-stock') )
                $('button.single_add_to_cart_button').html('<?php echo $sold_out; ?>');
            else 
                $('button.single_add_to_cart_button').html('<?php echo $button_text; ?>');

            console.log($('input.variation_id').val());
        });
    });
    </script>
    <?php
    }
    // For all other cases (not a variable product on single product pages)
    elseif ( ! $product->is_type('variable') && ! is_product() ) 
    {
        if($stock_status == 'out-of-stock')
            $button_text = $sold_out.' ('.$stock_status.')';
        else
            $button_text.=' ('.$stock_status.')';
    }
    return $button_text;
}

0 个答案:

没有答案