2017-04-22 13 views
1

この商品は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; 
} 

しかし、この機能は、バックオーダーが利用できない変数がある場合にのみ機能します。 Backorderが有効な場合、この機能は動作しません。

バックオーダー製品でもこの機能を機能させるにはどうすればよいですか?

私はこの関数を書かれ、それが働いていない:

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

答えて

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+で動作します)

この方法あなたの心配のバリエーションを設定している場合、このコードは動作します:を支援する

​​

+0

誰かWoo 2.5.Xのこのコードは? – Dora

関連する問題