【发布时间】:2015-04-26 15:15:14
【问题描述】:
[编辑:在functions.php中添加代码并省略代码WC文件中的更改时,它实际上可以工作。重要提示:它仅在 ONE 属性存在时才有效。但是,当有 2 个属性(例如尺寸和颜色)时,它就不起作用了,因为它不再是关于缺货的变化,而是关于变化组合,而且在这种常见情况下,WooCommerce 确实完全无能为力。请注意,目前似乎也没有可用的插件来解决这个非常明显的问题。太好了。]
自 2.0 起,WooCommerce 要么隐藏缺货产品变体(这是一个明显的问题,因为客户当时无法知道它们的存在),要么将它们显示为库存变体(这也是一个问题,因为客户随后会系统地感到失望找出变体是缺货后点击购买)。
This thread 包含一个解决方案,将缺货的产品变体变灰:
大概要加到functions.php:
add_filter( 'woocommerce_variation_is_active', 'grey_out_variations_when_out_of_stock', 10, 3 );
function grey_out_variations_when_out_of_stock( $grey_out, $variation_id, $id ) {
$variation = get_product( $variation_id );
if ( ! $variation->is_in_stock() )
return false;
return true;
}
待在plugins/woocommerce/includes/class-wc-product-variation.php:
变化:
return apply_filters( 'woocommerce_variation_is_active', true, $this->variation_id, $this->id );
到:
return apply_filters( 'woocommerce_variation_is_active', true, $this );
也改变:
return apply_filters( 'woocommerce_variation_is_visible', $visible, $this->variation_id, $this->id );
到:
return apply_filters( 'woocommerce_variation_is_visible', $visible, $this->variation_id, $this->id, $this );
尽管据报道它有效,但在我的情况下,缺货变体的显示与其他变体相同,我也有一个警告:
Warning: Missing argument 3 for grey_out_variations_when_out_of_stock() in ...\functions.php on line 600
我做错了什么?
【问题讨论】:
-
你找到答案了吗?
-
是的,请参阅下面 helgatheviking 的编辑。核心文件中的小编辑和functions.php中的添加。结果是属性选择列表中的禁用项目。甚至适用于变体组合。整洁的!我的意思是你仍然必须破解核心文件,而 WC 仍然因为不能做一些基本的事情而很糟糕,但至少它是一个功能性的快速修复。
标签: woocommerce product