in woocommerce, is there a shortcode/page to view all orders?

余生长醉 提交于 2019-11-28 03:45:55

问题


I'm using the plugin woocommerce for my wordpress site, and need a section where member can see their order history. Are there any shortcodes or page in woocommerce that shows the order history of a member?


回答1:


My Account shortcode:

[woocommerce_my_account order_count="-1"]

Shows the ‘my account’ section where the customer can view past orders and update their information. You can specify the number or order to show, it’s set by default to 15 (use -1 to display all orders.)

Reference: Woocommerce Shortcodes


Update

If you need only the orders I don't know if there's already a shortcode, but I made one taking woocommerce_my_account as example:

function shortcode_my_orders( $atts ) {
    extract( shortcode_atts( array(
        'order_count' => -1
    ), $atts ) );

    ob_start();
    wc_get_template( 'myaccount/my-orders.php', array(
        'current_user'  => get_user_by( 'id', get_current_user_id() ),
        'order_count'   => $order_count
    ) );
    return ob_get_clean();
}
add_shortcode('my_orders', 'shortcode_my_orders');

Add this to your functions.php file and then use it like [my_orders order_counts=10] (order_counts is optional, if missing it lists all the orders).




回答2:


I was reading about extract and apparently its not recommended by Wordpress anymore. I found this soloution, hope this helps:

function shortcode_my_orders( $atts ) {
$args= shortcode_atts( 
array(
    'order_count' => -1
    ), 
$atts
);
$order_count = esc_attr( $args['order_count'] );


ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
    'current_user'  => get_user_by( 'id', get_current_user_id() ),
    'order_count'   => $order_count
) );
return ob_get_clean();

}



来源:https://stackoverflow.com/questions/29980505/in-woocommerce-is-there-a-shortcode-page-to-view-all-orders

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!