WooCommerce 在订单接收端点获取订单 ID 和订单密钥 [重复]

Posted

技术标签:

【中文标题】WooCommerce 在订单接收端点获取订单 ID 和订单密钥 [重复]【英文标题】:WooCommerce get order id and order key at order-received endpoint [duplicate] 【发布时间】:2020-08-26 05:14:29 【问题描述】:

我试图在重定向客户之前在结帐时获取订单号和订单密钥(wc_order=xxx 参数),但我不知道该怎么做。我的代码在下面,但它不起作用:

add_action( 'template_redirect', 'ui_redirect' );

function ui_redirect()
    global $woocommerce;
    //if the current page is the order received and if there's an order key

    if (is_wc_endpoint_url( 'order-received' ) )     

        $order_key = wc_get_order_id_by_order_key( $_GET['key'] );
        $order_id = wc_get_order( $order_id );

        wp_redirect( 'redirection here with parameters');
        exit;
    


【问题讨论】:

【参考方案1】:
add_action( 'woocommerce_thankyou', 'woocommerce_thankyou_redirect', 4 );

function woocommerce_thankyou_redirect( $order_id ) 

    //$order_id. // This contains the specific ID of the order
    $order       = wc_get_order( $order_id );
    $order_key   = $order->get_order_key();

    wp_redirect( 'redirection here with parameters' );
    exit;

试试这个代码 sn-p。

【讨论】:

order_key 可以,但是$order_id 确实收到了完整的订单数据,例如:order: "id":1685,"parent_id":0,"status":"processing","currency":"USD","version":"4.1.0","prices_include_tax":false,"date_created":"date":"2020-05-10 15:23:12.000000","timezone_type": (etc)... 我只想要订单号,而不是完整的数组。在上面的例子中,只有数据“1685”(order-id)。 太棒了!非常感谢!

以上是关于WooCommerce 在订单接收端点获取订单 ID 和订单密钥 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从当前订单中获取 WooCommerce 订单 ID?

WooCommerce Rest Api:按特定日期获取订单

获取 WooCommerce 订单的每个项目的产品类别

WooCommerce 根据用户角色更改 BACS 订单状态

在woocommerce下订单后获取最新的订单ID

获取 Woocommerce 客户订单