我正在使用woocommerce并安装了打印送货单插件。我要做的是编辑打印文件,这样如果有人选择某个“额外运费”,它将打印相关的印刷邮资印象 - 第一类与第二类
我的头脑中有一份基于运费(免费vs£1)的IF声明,我可以这样做。
但是,我在尝试提取值时遇到问题,所以我可以检查它。
深入挖掘看起来我需要在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课程,但我很难知道如何做到这一点。
任何帮助都会受到极大的欢迎。
干杯
答案 0 :(得分:11)
你快到了!您需要确实初始化订单。 $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;
?>
答案 1 :(得分:4)
来自&gt; WC 3.您可以通过
获得当前订单的总运费<?php
$current_shipping_cost = WC()->cart->get_cart_shipping_total();
echo $current_shipping_cost;
?>
答案 2 :(得分:2)
[2018更新]
您可以使用
<?php
$order = wc_get_order( $order_id );
$order_shipping_total = $order->get_shipping_total();
echo $order_shipping_total;
?>