5

我正在使用 woocommerce 并安装了打印交货单插件。我想要做的是编辑打印文件,所以如果有人选择了某个“附加运费”,它将打印相关的打印邮资印象 - 一级与二级

我脑子里有一个基于运费价值的 IF 声明(免费对 1 英镑),我可以这样做。

但是,我在尝试提取该值时遇到问题,以便我可以检查它。

深入挖掘看起来我需要在 WC_Order 类中使用 get_shipping() 方法,以便我可以检查值 - http://docs.woothemes.com/wc-apidocs/class-WC_Order.html - 这就是我失败....惨不忍睹。

查看此页面 - http://docs.woothemes.com/document/class-reference/#listofclassesinwoocommerce - 我可以将 WC_Cart 示例直接复制并粘贴到用于打印并成功回显该值的 .php 文件中,但是当我将其更改为我认为正确的使用 get_shipping() 时,我得到“致命错误:在非对象中调用成员函数 get_shipping()”。

这是我放的

<?php global $woocommerce;
$order_shipping_total = $woocommerce->order->get_shipping();
echo $order_shipping_total ;
?>

现在我猜,因为我已经达到了我的能力极限,我需要初始化 WC_Order 类,但我很难做到这一点。

任何帮助都会受到极大的欢迎。

干杯

4

3 回答 3

12

你快到了!您确实需要初始化订单。$woocommerce不知道你在说哪个订单。因此,您从订单中创建了一个对象:

$order = new WC_Order( $order_id);

现在,该订单的所有信息(包括您的运费)都可以通过 访问$order。您唯一需要知道的是适当的$order_id. 由于您处于打印交货单环境中,因此您可以通过 $wcdn->print->order_id.

这将满足您的需要:

<?php
global $wcdn;
$order = new WC_Order($wcdn->print->order_id);
$order_shipping_total = $order->get_total_shipping();
echo $order_shipping_total;
?>
于 2013-04-03T20:53:36.893 回答
6

from > WC 3.您可以通过以下方式获取当前订单的总运费

<?php
$current_shipping_cost = WC()->cart->get_cart_shipping_total();
echo $current_shipping_cost;
?>
于 2017-06-29T16:28:23.700 回答
4

【2018更新】

您可以使用

<?php 
$order = wc_get_order( $order_id );
$order_shipping_total = $order->get_shipping_total();
echo $order_shipping_total;
?>
于 2018-07-12T13:52:42.410 回答