Woocommerce - 试图提取订单的运输价值

时间:2013-04-01 17:00:58

标签: php woocommerce

我正在使用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课程,但我很难知道如何做到这一点。

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

干杯

3 个答案:

答案 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;
?>