在Woocommerce 3中以编程方式向订单添加费用

时间:2018-12-03 23:57:00

标签: php wordpress woocommerce orders fee

由于我的购物车商品是从另一个CMS导入的,因此我正在“即时”创建Woocommerce总计。

当前我无法为每个订单设置自定义“费用” ,然后将订单标记为“保留”:

                $order->set_date_created($creation_tsz);

                $order->set_address( $address, 'billing' );
                $order->set_address( $address, 'shipping' );
                $order->set_currency('GBP');

                $order->add_fee('Imported Total', $imported_total_here);
                $order->set_fee();

                $order->calculate_totals();

                $order->update_status('on-hold');

对此,任何跟踪都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

  

对于WC_Abstract_Legacy_Orderset_fee()方法add_fee() is deprecatedWC_Order方法不存在(仅对于WC_Cart和{{1 }}类)

从Woocommerce 3开始,

要以编程方式向订单添加费用,这要复杂一些。有一些参数可以设置为“费用名称”,税收状态,税收类别(如果需要)和费用金额(不含税)

还要进行税收计算,具体取决于税收设置,您需要设置一个数组,该数组至少包含客户国家/地区代码(如果税收基于国家/地区)

在下面的代码中,费用金额变量名称为WC_API_Orders

$imported_total_fee

经过测试,效果很好。