/**
 * My ACCOUNT PAGE CUSTOMISATION
 */
//Merge Two "My Account" Tabs @ WooCommerce Account
// Remove Downloads Tab (downloads in this case)
 
add_filter( 'woocommerce_account_menu_items', 'remove_downloads_my_account', 999 );
  
function remove_downloads_my_account( $items ) {
unset($items['downloads']);
return $items;
}
// 1. First, hide the tab that needs to be merged/moved (edit-address in this case)
 
add_filter( 'woocommerce_account_menu_items', 'remove_address_my_account', 999 );
  
function remove_address_my_account( $items ) {
unset($items['edit-address']);
return $items;
}
 
// 1. First, hide the tab that needs to be merged/moved (payment-methods in this case)
 
add_filter( 'woocommerce_account_menu_items', 'remove_payment_my_account', 999 );
  
function remove_payment_my_account( $items ) {
unset($items['payment-methods']);
return $items;
	}
	
// 2. Second, print the ex tab content into an existing tab (edit-account in this case)
 
add_action( 'woocommerce_account_edit-account_endpoint', 'woocommerce_account_edit_address' );
//add_action( 'woocommerce_account_edit-account_endpoint', 'woocommerce_account_payment_methods' );
/**
  * Register new endpoints to use inside My Account page.
  */
 add_action( 'init', 'my_account_new_endpoints' );
 function my_account_new_endpoints() {
 	add_rewrite_endpoint( 'warranty-requests', EP_ROOT | EP_PAGES );
 }
/**
  * Get new endpoint content
  */
  // Warranty
 add_action( 'woocommerce_warranty_requests_endpoint', 'warranty_requests_endpoint_content' );
 function warranty_requests_endpoint_content() {
     get_template_part('warranty-requests');
 }
// Rename, re-order my account menu items
function reorder_my_account_menu() {
    $neworder = array(
        'dashboard'          => __( 'Dashboard', 'woocommerce' ),
        'orders'             => __( 'Orders', 'woocommerce' ),
        'wishlist'      => __( 'Wishlist', 'woocommerce' ),
        //‘edit-address'       => __( 'Addresses', 'woocommerce' ),
        'edit-account'       => __( 'Account Details', 'woocommerce' ),
        'warranty-requests'       => __( 'Limited Warranty', 'woocommerce' ),
       'customer-logout'    => __( 'Logout', 'woocommerce' ),
    );
    return $neworder;
}
add_filter ( 'woocommerce_account_menu_items', 'reorder_my_account_menu' );
// Display the product thumbnail in order view pages like Uniqlo
add_filter( 'woocommerce_order_item_name', 'display_product_image_in_order_item', 20, 3 );
function display_product_image_in_order_item( $item_name, $item, $is_visible ) {
    // Targeting view order pages only
    if( is_wc_endpoint_url( 'view-order' ) ) {
        // Get the WC_Product object (from order item)
        $product   = $item->get_product(); 
        // Testing if the product exist in Woocommerce <== UPDATE
        if( $product && is_object( $product ) ) {
            // Get the product thumbnail (from product object)
            $thumbnail = $product->get_image(array( 36, 36)); 
            // Avoiding empty thumbnail (updated)
            if( $product->get_image_id() > 0 )
                $item_name = '<div class="item-thumbnail">' . $thumbnail . '</div>' . $item_name;
        } else {
            // When product doesn't exist, we get the name from the order item (with no thumbnail)
            $item_name = $item->get_name();
        }
    }
    return $item_name;
}