如果Wooccommerce默认变体缺货,另一个库存变体是否可以作为默认变体?我总是在我的网站上默认第一个变体。如果第一个变体缺货并且客户已经进入产品页面,则所选变体出现短语";缺货";这会引起混乱。
你能帮忙吗?
我通过修改模板来解决这个问题"woocommerce/single-product/add-to-cart/variable.php";在我的主题中。我的代码假设每个产品的属性不超过一个。
第一次修改是在25行,这里添加了新代码:
$selected=null;
foreach($available_variations as $prod_var){
if($prod_var['is_in_stock'] || $prod_var['max_qty']>0) {
$selected=current($prod_var['attributes']); // get the atttribute value
// from first available attribute
break;
}
}
现在,在foreach循环内的第59行中,我修改了函数调用,并添加了可选参数"selected":
wc_dropdown_variation_attribute_options(
array(
'options' => $options,
'attribute' => $attribute_name,
'product' => $product,
'selected'=>($selected !== null) ? $selected : false,
)
);
在PHP 8.1和Wooccommerce 7.1.1 上测试