【问题标题】:WooCommerce - get_order() is not workingWooCommerce - get_order() 不起作用
【发布时间】:2015-05-05 00:09:42
【问题描述】:

我正在尝试创建一个通过 ID 检索订单的函数。出于某种原因,我无法让 WooCommerce 全局功能 get_order 工作。我将有效的订单id 传递给该函数并尝试将其打印出来以验证它是否正常工作。该函数已放在我的functions.php 文件中。

function getWC_order_details($id){
    global $woocommerce;

    $order = get_order( $id );

    print "<pre>";
    print_r($order);
    print "</pre>";
}

我已经测试过从函数中回显其他数据没有问题。

【问题讨论】:

  • 你是如何使用这个功能的?更多细节需要在这里..
  • &lt;php getWC_order_details(466); ?&gt;
  • 欢迎来到 Stack Overflow。我已尝试改进您问题中的措辞,以使其他人更清楚您遇到的问题是什么。如果您可以链接到get_order 的任何文档,这可能会让那些不熟悉 WooCommerce 的人更容易回答您的问题。

标签: php wordpress woocommerce global-variables helpers


【解决方案1】:

首先生成这样的函数:

function getWC_order_details($order_id) { 
    $order = new WC_Order( $order_id );
    var_dump($order);
}

之后,将其与woo_commerce actionfilter 一起使用。

function use_after_cart_table(){
    getWC_order_details(40);
}
add_action( 'woocommerce_after_cart_table', 'use_after_cart_table' );

所以在将任何产品添加到购物车后,您会在购物车表之后看到一个包含所有详细信息的数组

注意:您可以使用任何其他操作或过滤器,您可以找到它们here

已编辑:

function getWC_order_details($order_id) { 
    $order = new WC_Order( $order_id );
    //var_dump($order);
    $order_shipping_total = $order->get_shipping();
    $order_shipping_method = $order->get_shipping_methods();
    var_dump($order_shipping_total);//Use it for debugging purpose or to see details in that array
    var_dump($order_shipping_method);//Use it for debugging purpose or to see details in that array

    $_order =   $order->get_items(); //to get info about product
    foreach($_order as $order_product_detail){
        //var_dump($order_product_detail);
        echo "<b>Product ID:</b> ".$order_product_detail['product_id']."<br>";
        echo "<b>Product Name:</b> ".$order_product_detail['name']."<br><br>";
    }
    //var_dump($_order);
}

【讨论】:

  • 谢谢第一部分是我需要的。此功能不适用于购物车或客户。当订单状态更改为处理时,它是我正在处理的更大功能的一部分。我认为“WC_Order”将包括有关订单的所有内容。知道如何从订单 ID 中获取产品、名称和一些运输详细信息吗?
  • 您的意思是仅按特定顺序排列的产品...对吗?
  • 是的,只有特定订单的信息。
  • 我已经获得了我需要的所有运输信息,只是在努力获取产品名称。示例:$order->shipping_first_name
  • 方法 'get_shipping()' 已经不存在了,看看你可以在这里使用的方法:docs.woothemes.com/wc-apidocs/class-WC_Order.html
【解决方案2】:

试试这个。它可能对你有用。

function getWC_order_details($id)
{
 $array = WC_API_Orders::get_order( $id, $fields );
 print "<pre>";
 print_r($order);
 print "</pre>";
}

来源: 文件名:woocommerce/includes/api/class-wc-api-orders.php

【讨论】:

  • 没用,但感谢您的尝试。我最初确实尝试过。 $order = WC_API_Orders::get_order( $id, $fields );
猜你喜欢
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多