Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Customizing My Account Orders list post per page in Woocommerce

Woocommerce 2.6.x has a special page at the user account (My Account) area where it displays the user's previous Orders.

This page is now paginated and it displays as default 15 items/page.

Here the screenshot of the woocommerce storefront theme Orders area with 8 lines: enter image description here

I Can't find the way to change this.

How can I show only 7 items instead of the default number?

Thanks.

like image 276
Horacsio Avatar asked Jan 29 '17 01:01

Horacsio


1 Answers

Using a custom hooked function in woocommerce_my_account_my_orders_query hook, you can alter the orders query customizing the post_per_page argument to 7, just as you want.

Here is that code:

add_filter( 'woocommerce_my_account_my_orders_query', 'custom_my_account_orders', 10, 1 );
function custom_my_account_orders( $args ) {

    $args['posts_per_page'] = 7;
    return $args;
}

For woocommerce 3+ use limit instead:

add_filter( 'woocommerce_my_account_my_orders_query', 'custom_my_account_orders', 10, 1 );
function custom_my_account_orders( $args ) {
    // Set the post per page
    $args['limit'] = 7;

    return $args;
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.

Note: Normally the default value for storefront theme and other themes too when displaying the list of orders in my account pages is 10 (but not 15).

like image 58
LoicTheAztec Avatar answered Oct 02 '22 21:10

LoicTheAztec