当前位置: 首页 > 知识库问答 >
问题:

WoodCommerce中推车产品价格的变化

霍建柏
2023-03-14

我想实现一个买3免1的特性,所以我写了一个脚本来检测customer是否有3个相同的商品在购物车中,并自动添加1个相同的商品到购物车中。然后使用另一个钩子,我将产品的价格覆盖为0。

  • Woocommerce:将产品添加到带有价格覆盖的购物车?
  • 添加到购物车时Woocommerce添加自定义价格

下面是代码示例:

function setGiftPriceToZero($cart_object){
    foreach($cart_object->cart_contents as $k=>$item):
        if(isset($item['variation']['promo']) && ($item['variation']['promo']) == 'buy 3 free 1'):
            $item['data']->price = 0;
        endif;
    endforeach;
}
add_action('woocommerce_before_calculate_totals', 'setGiftPriceToZero');

当Woocommerce为购物车计算小计时,它总是将假定是免费的产品的原价加进去。例如,当我将3个100美元的项目添加到购物车时,购物车小计最终为400美元,而不是300美元。

我深入研究了Woocommerce代码,发现在https://docs.Woocommerce.com/wc-apidocs/source-class-wc_cart.html#1139中,使用了$item['data']->get_price(),它总是返回项目的原始价格。

用钩子/API代替编辑Woocommerce核心文件来解决这个问题吗?

共有1个答案

卫嘉泽
2023-03-14

我已经找到了这个错误的罪魁祸首。这是由另一个名为Woocommerce角色定价插件的冲突引起的。这个插件在购物车总计算流程的末尾覆盖购物车项目价格。这就是为什么get_price()函数总是返回项目的指定价格。

现在我只需要编辑插件文件,使它能很好地与我的逻辑配合。

 类似资料:
  • 我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?

  • 我正在创建一个WooCommerce(5.6.0版)网站,用户可以在该网站上购买泡沫产品,并在存档页面上计算价格。基本上,用户输入维度,然后根据公式计算价格。我目前正在努力更新购物车中的价格,我以前没有在这一级别定制产品和价格的经验,因此任何帮助都将不胜感激。。到目前为止,我已经完成了以下步骤: 1.获取(通过Ajax)并在WC_会话中设置自定义产品价格 2.从WC_Session数据更改购物车项

  • 我在我的WooCommerce 2.6.4商店上使用可变产品,我为同一产品的两种不同变体添加了不同的价格。当选择两个变体中的一个时,根本不显示任何价格。下面的div只是空的: 我希望预选的变异价格显示为默认,而非预选的变异价格应在选择时动态替换。几乎像这个演示,除了从一个预选的项目和价格应该显示为默认。

  • 我有大约10个产品和接近200个变体每一个。我需要更新特定产品的销售价格,包括它的所有变化。 问题是: 所有的变种都有不同的价格。未输入销售价格-所有销售价格输入框均为空。 我需要一个SQL解决方案运行和更新所有特定产品的销售价格,采取常规价格并从中扣除350,或 任何其他方式,我不知道在这个阶段,因为我已经尝试了许多解决方案,包括Woocommerce内置的解决方案“设置销售价格”,再次不工作,

  • 我使用Woocommerce插件在wordpress中开发了购物车。我需要按产品价格在购物车订单中显示产品,请帮助我做到这一点 谢啦

  • 我已经添加了一个自定义字段,其中有图片帧的额外价格,现在如果图片价格是10$和用户选择一个帧,它将加起来5$让说,总数将是15$。 现在,如果我添加另一个产品,它的选择定制框架价格应该得到添加。e、 g产品1的价格是:10美元,上面选择的框架是:frame1谁的价格是5美元,那么该产品的总价格将是15美元,如果产品2加上价格10美元,选择frame2的价格是6美元,那么该产品的总价格将是16美元,