WooCommerce – Customer Order History Pagination

I have added pagination in order history page and it is working.
Replace below code above loop

$my_orders_columns = apply_filters( 'woocommerce_my_account_my_orders_columns', array(
'order-number' => __( 'ID', 'woocommerce' ),
'order-date' => __( 'Date', 'woocommerce' ),
'order-total' => __( 'Packages', 'woocommerce' ),
'order-total' => __( 'Price', 'woocommerce' ),
'order-status' => __( 'Status', 'woocommerce' ),
'order-actions' => ' ',
) )
$customer_orders1 = get_posts(apply_filters('woocommerce_my_account_my_orders_query', array(
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => wc_get_order_types('view-orders'),
'post_status' => array_keys(wc_get_order_statuses())
)));
$total_records = count($customer_orders1);
$posts_per_page = 20;
$total_pages = ceil($total_records / $posts_per_page);
$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
$customer_orders = get_posts(array(
'meta_key' => '_customer_user',
'meta_value' => get_current_user_id(),
'post_type' => wc_get_order_types('view-orders'),
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'post_status' => array_keys(wc_get_order_statuses())
));

and after loop completed add pagination

<div class="pagination">
<?php
$args = array(
'base' => '%_%',
'format' => '?page=%#%',
'total' => $total_pages,
'current' => $paged,
'show_all' => False,
'end_size' => 5,
'mid_size' => 5,
'prev_next' => True,
'prev_text' => __('&laquo; Previous'),
'next_text' => __('Next &raquo;'),
'type' => 'plain',
'add_args' => False,
'add_fragment' => ''
);
echo paginate_links($args);
?>
</div>

Leave a Comment