如果WooCommerce默认变体缺货,可以设置另一个变体吗?

发布于 2025-01-17 13:40:33 字数 119 浏览 1 评论 0原文

如果WooCommerce默认变体缺货,另一个库存变体可以用作默认变体吗? 我总是默认网站上的第一个变体。如果第一个变体缺货,并且客户输入了产品页面,则选定的变体以“库存”一词出现,这会导致混乱。

你能帮忙吗?

If the Woocommerce Default Variant is out of stock, can another in-stock variant act as the default variant?
I always default the 1st variant on my website. If the 1st variant is out of stock and the customer has entered the product page, the selected variant appears with the phrase "out of stock" and this causes confusion.

Can you help with this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画中仙 2025-01-24 13:40:33

我通过在我的主题中修改模板“/woocommerce/single-product/add-to-cart/variable.php”来解决此问题。
我的代码假定每个产品不超过一个属性。

第一个修改是在25行中添加的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行中,我修改了函数调用并添加了可选的param'selected':

wc_dropdown_variation_attribute_options(
        array(
                'options'   => $options,
                'attribute' => $attribute_name,
                'product'   => $product,
                'selected'=>($selected !== null) ? $selected : false,
            )
);

在PHP 8.1和WooCommerce上进行了测试7.1.1.1.1

I resolved this problem by modification of template "/woocommerce/single-product/add-to-cart/variable.php" in my theme.
My code assumes that there is no more than one attribute per product.

First modification is in the 25 line, new code added here:

$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;
    }
}

Now, in the line 59 inside the foreach loop I modified function call and added optional param 'selected':

wc_dropdown_variation_attribute_options(
        array(
                'options'   => $options,
                'attribute' => $attribute_name,
                'product'   => $product,
                'selected'=>($selected !== null) ? $selected : false,
            )
);

Tested on PHP 8.1 and Woocommerce 7.1.1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文