按照国人正常的购物习惯,如果一个商品的部分变量是售罄状态,前端则应显示 “灰色不可选按钮”,以此和正常颜色可选按钮做出区分。
但在 WooCommerce 中,对于多变量构成的可变商品,只有当对应变量项取消 “启用” 时,才会如此显示。不然即便库存为 0,前端依然可选,且只有选择之后,才知道库存已经售完,很不友好。
如果想要实现库存 <=0 时,自动取消对应变量的启用,而发生退款等操作导致库存 > 0 时,又恢复对应变量启用。
其实非常简单,WooCommerce 已经内置了此功能,但是由于对应设置选项的文字表述原因,很少人知道。
后台依次点击:WooCommerce > 设置 > 产品 > 库存,找到:
售罄可见性 / 从分类隐藏库存脱销产品
勾选它并保存更改,不仅可以实现选项字面意思的 “当产品库存售完,就自动将产品的可见性变成 '隐藏'”,也能达到上述效果。
但是如果你并不想在商品售罄时自动隐藏(譬如可以作为搜索引擎导流),又想实现上述的售罄变量启用操作。
那么可将以下代码添加到正在使用的主题 functions.php 文件中:
if ( ! function_exists( 'my_hide_out_of_stock_variations' ) ) {
add_action( 'woocommerce_variation_is_visible', 'my_hide_out_of_stock_variations', 10, 4 );
function my_hide_out_of_stock_variations( $is_visible, $variation_id, $parent_id, $variation ) {
return ( ! $variation->is_in_stock() ? false : $is_visible );
}
}