How to Reorder My Account Tabs in WooCommerce

How to Reorder My Account Tabs in WooCommerce
On this page
  1. Why You'd Want to Reorder My Account Tabs
  2. Step 1: Move a Single Tab to a New Position
  3. Step 2: Fully Rebuild the Tab Order (for Multiple Changes)
  4. Troubleshooting
  5. Frequently Asked Questions
  6. Conclusion

You can reorder My Account tabs in WooCommerce by filtering woocommerce_account_menu_items, either slicing the existing array to move one tab to a new position, or rebuilding the entire array in a fully custom order.

Why You’d Want to Reorder My Account Tabs

  • A custom tab added by a plugin often appears at the end by default, regardless of how relevant it is
  • The default order (Dashboard, Orders, Downloads, Addresses, Payment methods, Account details, Logout) doesn’t fit every store’s priorities
  • Stores selling mostly digital products might want Downloads to appear before Orders
  • Small navigation changes like this can measurably reduce support questions about “where do I find X”

Step 1: Move a Single Tab to a New Position

This example moves “Orders” to sit right after “Downloads” instead of its default first position, using array_slice() to split the array and reinsert it.

PHP
/** Move the Orders tab to appear after Downloads in My Account */
add_filter( 'woocommerce_account_menu_items', 'move_orders_tab_after_downloads' );

function move_orders_tab_after_downloads( $items ) {
    $orders_tab = array( 'orders' => $items['orders'] );
    unset( $items['orders'] );

    $before = array_slice( $items, 0, 2, true );
    $after  = array_slice( $items, 2, null, true );

    return array_merge( $before, $orders_tab, $after );
}
Reorder my account tabs in WooCommerce: the page before adding the code
Before
Reorder my account tabs in WooCommerce: the page after adding the code
After

Step 2: Fully Rebuild the Tab Order (for Multiple Changes)

For rearranging more than one or two tabs, redefining the entire array explicitly is cleaner than chaining multiple slice operations.

PHP
/** Fully redefine the My Account tab order */
add_filter( 'woocommerce_account_menu_items', 'rebuild_my_account_tab_order' );

function rebuild_my_account_tab_order( $items ) {
    return array(
        'dashboard'       => $items['dashboard'],
        'downloads'       => $items['downloads'],
        'orders'          => $items['orders'],
        'edit-address'    => $items['edit-address'],
        'payment-methods' => $items['payment-methods'],
        'edit-account'    => $items['edit-account'],
        'customer-logout' => $items['customer-logout'],
    );
}

Troubleshooting

A Custom Tab Disappears After Reordering

If you’re rebuilding the full array manually, any tab key not explicitly listed (including a custom tab added by another plugin) gets dropped — either add it to the rebuilt array explicitly, or use the slice-based single-tab approach instead so unlisted tabs are left untouched.

“Downloads” Tab Isn’t in the Array on Some Stores

WooCommerce only includes the Downloads tab in the menu items array when the store actually sells downloadable products — referencing $items['downloads'] directly on a store without any digital products will throw a PHP notice; check isset() before referencing it if your store’s product mix varies.

Frequently Asked Questions

Can I reorder tabs added by third-party plugins the same way?

Yes — as long as the plugin adds its tab through the standard woocommerce_account_menu_items filter (which most well-built extensions do), it appears in the same array and can be reordered identically.

Does reordering tabs change their URLs?

No — the tab’s endpoint slug (and therefore its URL) stays the same; only the visual menu order changes.

Can different customer roles see a different tab order?

Yes — wrap the filter logic in a role check (current_user_can()) to return a different tab order depending on the logged-in customer’s role.

Conclusion

Reordering My Account tabs takes either a quick array-slice for a single tab move, or a full array rebuild for a more thorough reorganization — just be careful the full-rebuild approach doesn’t accidentally drop a tab from another plugin that wasn’t explicitly listed. Getting this right is really what reorder my account tabs in woocommerce comes down to.

See also How to Merge My Account Tabs in WooCommerce.

Prefer no code? All-in-One Utilities Woo Add-on handles this kind of change from a settings screen. Its My Account menu and tabs guide also shows how.

Leave a Reply

Schedule a call