基于Woocommerce中用户输入的自定义购物车项目价格 [英] Custom cart item price based on user input in Woocommerce

查看:128
本文介绍了基于Woocommerce中用户输入的自定义购物车项目价格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我们的Woocommerce商店中,我们为任何产品设置了最低价格。并且在每个产品内页中都有两个字段,客户可以在其中键入产品的宽度,高度。然后他们可以将此产品添加到购物车,然后根据给定的宽度和高度更改价格。



例如,某产品的最低价格为 50 。然后客户添加 width = 2,height = 3 ,则该产品的价格将为 50 * 2 * 3 = 300



因此要安排这些,我们将此代码添加到 function.php

  add_filter('woocommerce_add_cart_item','add_custom_cart_item_data',10,2); 
函数add_custom_cart_item_data($ cart_item_data,$ cart_item_key){

$ result = $ _ POST ['width'] * $ _ POST ['height'] * $ cart_item_data ['data']-> ;价钱;

$ cart_item_data [‘new-price’] = $结果;

$ cart_item_data [’data’]-> set_price($ result);

返回$ cart_item_data;
}

因此,此操作正常。



但是问题在于,一旦进入结帐页面,产品价格就会显示为50,但实际上是300。

p>

所以要克服这个问题,我使用以下代码

  add_filter('woocommerce_cart_item_subtotal ','update_with_custom_details',10,3); 
函数update_with_custom_details($ subtotal,$ cart_item,$ cart_item_key){
$ subtotal =£。$ cart_item [’line_total’];
返回$小计;
}

现在显示的是£300,但我知道此代码是错误的。 / p>

代码错误,因为当客户为该产品应用50%优惠券代码时,折扣为25,因为它基于 50计算* .5 = 25; 但是实际上产品的新价格是300,所以折扣应该是 300 * 5 = 150;



那么我如何在购物车页面,结帐页面,迷你购物车等中更新产品价格?



请帮忙。


请另请参阅



更新2:正确的实现方法需要分两步进行:



查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆