如果延期交货产品没有库存,如何使产品变灰?

时间:2017-04-22 15:46:57

标签: wordpress function woocommerce product orders

我有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

1 个答案:

答案 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 +)

  

如果您以这种方式设置相关变体,此代码将起作用:

     

enter image description here