How to get woocommerce orders with get_posts method in a shortcode

I found a solution to the problem, here is the code below. I just can’t get the pagination to work yet. Everything else works fine.

Shortcode

add_shortcode( 'all_orders' , 'prc_orders' );
function prc_orders() {
    
// Get all orders for the current user.
$customer = 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('Completed', 'Order status', 'woocommerce'))
)));  
    
$total_records = count($customer);
$posts_per_page = 3;
$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('Completed', 'Order status', 'woocommerce'))
));

     // Get Access $order variable Foreach
     foreach ( $customer_orders as $order_id ) {
        
     // Get $product object from $order / $order_id
     $order = wc_get_order( $order_id );
     $items = $order->get_items();
     
     $orders_id = $order->get_id();
     $status = $order->get_status();
     $date_created = $order->get_date_created()->date('d/m/Y - H:i');
     $payment_method = $order->get_payment_method_title();
     $order_total = $order->get_formatted_order_total();
    
    // Get Access Items Variable Foreach
     foreach ( $items as $item ) {
     $product_name = $item->get_name();
         
     // Get product image - https://www.businessbloomer.com/woocommerce-easily-get-product-info-title-sku-desc-product-object/
     $product = $item->get_product();
     if( $product instanceof WC_Product ){
     $order_img = $product->get_image();
     }
    
    // Get product download button 
    $downloads = $order->get_downloadable_items();
     if(is_array($downloads)){
     foreach($downloads as $product){
     $download_button = '<a href="'. $product['download_url'] .'" target="_blank">Download</a>';
     } 
    }   
               
     echo 
     '
     <div class="container_orders">
    
      <div class="container_orders_card_left"> 
        <div class="items_orders_card name"> '. $product_name .' </div>
        <div class="items_orders_card"> <span class="items_title">Ordine:</span> #'. $orders_id .'  </div>
        <div class="items_orders_card"> <span class="items_title">Effettuato il:</span> '. $date_created .' </div>
        <div class="items_orders_card"> <span class="items_title">'. $payment_method .'</span> • '. $order_total .' </div>
        <div class="items_orders_card"> <span class="items_title">Stato:</span> '. $status .' </div>
      </div>
    
      <div class="container_orders_card_right">
        <div class="container_orders_img"> '. $order_img .' </div>
        <div class="container_orders_download"> '. $download_button .' </div>
      </div>
    
     </div>
     
     '; 
     
    }} // Closing Foreach

    ?><div class="pagination"><?php
    $args = array(
        'base' => '%_%',
        'format' => '?pagina=%#%',
        '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><?php

}