【问题标题】:Woocommerce - trying to extract shipping value for an orderWoocommerce - 尝试提取订单的运费
【发布时间】:2013-04-01 17:00:57
【问题描述】:

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

我脑子里有一个基于运费价值的 IF 声明(免费 vs 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 类,但我不知道该怎么做。

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

干杯

【问题讨论】:

    标签: php woocommerce


    【解决方案1】:

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

    $order = new WC_Order( $order_id);
    

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

    这将满足您的需求:

    <?php
    global $wcdn;
    $order = new WC_Order($wcdn->print->order_id);
    $order_shipping_total = $order->get_total_shipping();
    echo $order_shipping_total;
    ?>
    

    【讨论】:

    【解决方案2】:

    from > WC 3.你可以得到当前订单的总运费

    <?php
    $current_shipping_cost = WC()->cart->get_cart_shipping_total();
    echo $current_shipping_cost;
    ?>
    

    【讨论】:

      【解决方案3】:

      [2018 更新]

      你可以使用

      <?php 
      $order = wc_get_order( $order_id );
      $order_shipping_total = $order->get_shipping_total();
      echo $order_shipping_total;
      ?>
      

      【讨论】:

      • 请在您的代码中添加一些解释,以帮助提出问题的人
      猜你喜欢
      • 2018-10-27
      • 2021-05-28
      • 2014-05-11
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2018-03-16
      • 2022-01-22
      相关资源
      最近更新 更多