我正在使用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 ;
?>
Run Code Online (Sandbox Code Playgroud)
现在我猜,因为我已经达到了我的能力极限,我需要初始化WC_Order类,但我很难知道如何做到这一点.
任何帮助都会受到极大的欢迎.
干杯
Ewo*_*out 11
你快到了!您需要确实初始化订单.$woocommerce不知道你在说什么订单.所以你从订单中创建一个对象:
$order = new WC_Order( $order_id);
Run Code Online (Sandbox Code Playgroud)
现在可通过此订单获取此订单中的所有信息(包括您的运输价值)$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;
?>
Run Code Online (Sandbox Code Playgroud)
从 > WC 3.you 可以得到当前订单的总运费
<?php
$current_shipping_cost = WC()->cart->get_cart_shipping_total();
echo $current_shipping_cost;
?>
Run Code Online (Sandbox Code Playgroud)