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

WooCommerce: Get the cart item quantity of a customized product only

我修改了 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', $surcharge, true, '' );
    }

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

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

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

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

它应该如您所愿