微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WooCommerce:仅获取定制产品的购物车项目数量

如何解决WooCommerce:仅获取定制产品的购物车项目数量

我已经修改了functions.PHP 文件以包含使用自定义文本自定义某些产品的可能性。

功能需要支付 1 的额外费用,除非该功能尚未完成,否则将在产品结账时显示

    if (!empty( $cart_item['custom_text'] ) ) {

        $surcharge = 1;
        WC()->cart->add_fee( 'Customization',$surcharge,true,'' );
    }

当然,如果将更多定制产品添加到购物车中,则此 1 应乘以购物车中的产品数量。为此,我尝试添加变量 $quantity:

    if (!empty( $cart_item['custom_text'] ) ) {
            
        $quantity = WC()->cart->get_cart_contents_count();

        $surcharge = 1 * $quantity;
        WC()->cart->add_fee( 'Customization','' );
    }

这里的问题是,如果客户尝试购买定制的商品而不是另一个,因为此方法会考虑购物车中的总数量,而不管它是否定制。见图1:

Figure 1

那么问题是:是否可以只拿到定制的物品(图1中绿色圈出的)来计算附加费?

解决方法

要获取定制产品的购物车商品数量,请仅使用以下内容:

if (!empty( $cart_item['custom_text'] ) ) {
    $surcharge = 1;
    $quantity  = $cart_item['quantity'];
    WC()->cart->add_fee( 'Customization',( $surcharge * $quantity ),true,'' );
}

它应该像你期望的那样工作

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。