如何通过短代码获取 WooCommerce 中最后一个订单的订单状态

How to grab the order status of the last order in WooCommerce via a shortcode

我试图让我们的客户在不访问他们的帐户的情况下更好地了解他们的订单状态。我的计划是在有人订购后在主页上打印信息。

我正在努力让订单状态显示在其他地方。

这是我根据用于获取上次订单产品的代码编写的当前代码。

function woostatus() {
    // Not available
    $na = __( 'N/A', 'woocommerce' );
    
    // For logged in users only
    if ( ! is_user_logged_in() ) return $na;

    // The current user ID
    $user_id = get_current_user_id();

    // Get the WC_Customer instance Object for the current user
    $customer = new WC_Customer( $user_id );

    // Get the last WC_Order Object instance from current customer
    $last_order = $customer->get_last_order();
    
    // When empty
    if ( empty ( $last_order ) ) return $na;
     
     // Get order date
    $order_items = $last_order->get_status();
    
    // Latest WC_Order_Item_Product Object instance
    $last_item = end( $order_items );

    // Pass product ID to products shortcode
    return $order_items;
}  
// Register shortcode 
add_shortcode( 'display_woostatus', 'woostatus' );

$order_items = $last_order->get_status() 将 return 一个字符串,因此不是数组。所以使用 end( $order_items ) 是一个多余的步骤。

改用:

function woostatus() {
    // Not available
    $na = __( 'N/A', 'woocommerce' );
    
    // For logged in users only
    if ( ! is_user_logged_in() ) return $na;

    // The current user ID
    $user_id = get_current_user_id();

    // Get the WC_Customer instance Object for the current user
    $customer = new WC_Customer( $user_id );

    // Get the last WC_Order Object instance from current customer
    $last_order = $customer->get_last_order();
    
    // When empty
    if ( empty ( $last_order ) ) return $na;
    
    // Get order status
    $order_status = $last_order->get_status();
    
    // Return
    return $order_status;
} 
// Register shortcode
add_shortcode( 'display_woostatus', 'woostatus' ); 

简码用法

在现有页面中:

[display_woostatus]

或在PHP:

echo do_shortcode('[display_woostatus]');