如何在缺货产品缺货时使产品变灰?

How to make product greyout when backorder product is not in stock?

我有 WooCommerce 的这个功能,如果产品当前没有库存,它会使产品变灰并且不可选择。

add_filter( 'woocommerce_variation_is_active', 
'grey_out_variations_when_out_of_stock', 10, 2 );

function grey_out_variations_when_out_of_stock( $grey_out, $variation ) {

    if ( ! $variation->is_in_stock() )
        return false;

    return true;
}

但此功能仅在产品可变且没有延期交货时有效。启用延期交货时,此功能不起作用。

如何使此功能也适用于延期交货产品?

我写了这个函数,但它不起作用:

add_filter( 'woocommerce_variation_is_active', 
function grey_out_variations_when_is_backorder( $grey_out, $variation ) {

    if (  ! $variation->is_in_stock() && $variation->backorders_require_notification() ){
        return false;
    }

    return true;
}

Test URL

您忘记了代码中的某些内容。试试这个 (已测试并有效):

add_filter( 'woocommerce_variation_is_active', 'grey_out_variations_when_is_backorder', 10, 2 );
function grey_out_variations_when_is_backorder( $grey_out, $variation ) {

    if ( ! $variation->is_in_stock() && $variation->backorders_require_notification() )
        $grey_out = false;

    return $grey_out;
}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。

(适用于 WooCommerce 2.6.x 和 3.0+)

This code will work if you set your concerned variations this way: