【问题标题】:WooCommerce: Adding tax to old (completed) ordersWooCommerce:为旧(已完成)订单加税
【发布时间】:2016-01-25 15:11:37
【问题描述】:

我有一个小问题。我们的一个客户自己开了一家 WooCommerce 商店,却忘了加税。由于他处于头脑中,他决定寻求帮助来设置这一切。

不幸的是,现在这家商店已经上线了,里面有大约 50 个已完成的订单。我为他正确设置了税金等,但这仅适用于新订单,不适用于旧订单。

是否有人知道将税款添加到旧订单(所有价格均含税)的简单方法,可能是循环或我可以遍历订单以计算税款的方法?

我尝试了一些非常简单的方法,只构建订单并调用 calculate_taxes() 但这只会为订单添加 0,00 欧元的税,所以我想我在这里遗漏了一些重要的东西:

$order = new WC_Order(1234);
$order->calculate_taxes(); 

感谢您的帮助

【问题讨论】:

  • 你如何计算税收?税款存储在带有元键(_cart_discount_tax、_order_tax、_order_shipping_tax)的 wp_post_meta 表中,如果您可以获得税款的实际公式,您可以使用 update_post_meta 轻松地将它们直接插入数据库,
  • 是的,这将是一种可行的方法,但我想坚持使用 WooCommerce 功能以确保我不会出错(因为税收、严重的事情等)。但是我现在知道答案了,虽然它真的很复杂,但是如果有人偶然发现这个问题,我会在下面发布。

标签: php wordpress woocommerce


【解决方案1】:

我所做的是: 1.将产品更新为待付款。 2. 重新计算税金,将状态更改为再次完成,并设置订单操作以向客户发送发票

就是这样。

【讨论】:

    【解决方案2】:

    好吧,我深入研究了这背后的机制,所以我想我可以自己回答这个问题,但请注意,它比看起来更复杂。

    关于 WooCommerce 之前如何处理订单有一些重要的事情:

    • 必须输入不含税的运费
    • 订单中存储的价格不含税,即使您在产品中添加了含税价格

    因此,当您在完成订单后添加税款时,您会遇到以下问题:

    • 旧订单中的价格需要更改
    • 需要在旧订单中查询运费

    用更专业的话说,您必须遍历所有订单,遍历订单中的商品,更新价格,添加税金,更新运费,然后才能像我一样运行“calculate_taxes()”在我非常简单的例子中。

    我无法为您提供完成所有这些(目前)的功能,因为我首先必须澄清客户是否愿意为此付费。如果他这样做,我会添加该功能。如果有人偶然发现这个并写下这个函数可以免费发布作为答案,我会接受它是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多