我有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;
}
答案 0 :(得分:3)
您忘记了代码中的一些内容。试试这个(测试和工作):
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 +)
如果您以这种方式设置相关变体,此代码将起作用: