如何通过短代码在 WooCommerce 中显示最后订购的产品
How to display the last ordered product in WooCommerce via a shortcode
我正在寻找一种在另一个页面上显示最后订购的产品的方法。
我认为可以在函数中创建一个简码,它获取订单详细信息并在我添加简码的任何地方显示它们。
但我似乎无法弄清楚如何让它工作。到目前为止,我得到了可以使用的信息:
add_shortcode( 'displaylast', 'last' );
function last(){
$customer_id = get_current_user_id();
$order = wc_get_customer_last_order( $customer_id );
return $order->get_order();
}
[displaylast]
目前显示我正在注意。当我将 get_order()
更改为 get_billing_first_name()
时它确实有效。
显示订单名称。但我似乎无法获得购买的商品。也许有一个 get_()
我没看到?
你很接近,但是你必须从订单对象中获取最后一个产品。
所以你得到:
function last() {
// 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 items
$order_items = $last_order->get_items();
// Latest WC_Order_Item_Product Object instance
$last_item = end( $order_items );
// Get product ID
$product_id = $last_item->get_variation_id() > 0 ? $last_item->get_variation_id() : $last_item->get_product_id();
// Pass product ID to products shortcode
return do_shortcode("[product id='$product_id']");
}
// Register shortcode
add_shortcode( 'display_last', 'last' );
简码用法
在现有页面中:
[display_last]
或在PHP:
echo do_shortcode('[display_last]');
我正在寻找一种在另一个页面上显示最后订购的产品的方法。
我认为可以在函数中创建一个简码,它获取订单详细信息并在我添加简码的任何地方显示它们。
但我似乎无法弄清楚如何让它工作。到目前为止,我得到了可以使用的信息:
add_shortcode( 'displaylast', 'last' );
function last(){
$customer_id = get_current_user_id();
$order = wc_get_customer_last_order( $customer_id );
return $order->get_order();
}
[displaylast]
目前显示我正在注意。当我将 get_order()
更改为 get_billing_first_name()
时它确实有效。
显示订单名称。但我似乎无法获得购买的商品。也许有一个 get_()
我没看到?
你很接近,但是你必须从订单对象中获取最后一个产品。
所以你得到:
function last() {
// 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 items
$order_items = $last_order->get_items();
// Latest WC_Order_Item_Product Object instance
$last_item = end( $order_items );
// Get product ID
$product_id = $last_item->get_variation_id() > 0 ? $last_item->get_variation_id() : $last_item->get_product_id();
// Pass product ID to products shortcode
return do_shortcode("[product id='$product_id']");
}
// Register shortcode
add_shortcode( 'display_last', 'last' );
简码用法
在现有页面中:
[display_last]
或在PHP:
echo do_shortcode('[display_last]');