More fixes

WooCommerce My Account pages or order received page show 404

The My Account page opens, but clicking Orders, Downloads, Addresses or Account details gives Page not found. Or the Lost password link 404s, or customers pay and land on a 404 instead of the Order received thank-you page. These are WooCommerce endpoints: extra addresses added to the end of a page, such as /my-account/orders/. Two checks tell you whether WordPress forgot those addresses or the page they hang off is set wrong.

Customer clicks

What the checks found


  

Check 1: save the permalinks once

In WordPress, go to Settings > Permalinks and click Save Changes without changing anything. This rebuilds the list of addresses WordPress knows, including every WooCommerce endpoint. Then open the broken link again in a private window. If it works now, the list had gone stale, usually after a plugin update, a site move or a change to the account page's slug. If it still 404s, go to Check 2.

Check 2: are the pages and endpoints set right

Go to WooCommerce > Settings > Advanced. Under Page setup, My account page and Checkout page must point at the real, published pages, not a deleted copy or a draft. Below that, under Account endpoints and Checkout endpoints, each box (orders, downloads, edit-address, lost-password, order-received) must hold a plain word. An empty box, a space, or two endpoints using the same word all break that link. Then open the My Account page in the editor: it must contain the My account block or the [woocommerce_my_account] shortcode. A page builder layout with only a login form does not draw the endpoints.

What each answer means

What you seeCauseFix
Works after saving permalinksStale rewrite rules after an update, a migration, or renaming the account pageNothing more; save permalinks again after the next site move
Every account tab 404s, the dashboard worksMy account page in Advanced settings points at an old or duplicate pagePick the real page, save, then save permalinks
One tab 404sIts endpoint box is empty, or another endpoint or a page uses the same wordRestore the default word (for example orders) or rename the clashing page
Tabs open but show the dashboard text onlyThe page uses a builder login widget instead of the My account block or shortcodePut the block or [woocommerce_my_account] on the page
Order received 404 after payingCheckout page setting wrong, or the order-received endpoint cleared, or the checkout page is a child page that was movedFix the Checkout page and endpoint, save permalinks; orders were taken, check them in WooCommerce > Orders
404 only on the live site, fine on stagingA security or redirect plugin, or a server rule, catching addresses it does not knowExclude /my-account/ and /checkout/ from the plugin's rules
404 only in another languageA translation plugin translated the page slug but not the endpointsTranslate the endpoints in the translation plugin's WooCommerce settings, then save permalinks
Plain permalinks setting (?p=123)Endpoints need pretty permalinks to make tidy addressesChoose Post name, save, and set a redirect from any old addresses that were shared

Check it worked

Log in as a test customer in a private window and click every tab on My Account, then log out and use Lost password. Place one test order (cash on delivery or the gateway's test mode) and confirm it lands on the Order received page with the order number. Clear the site and host cache afterwards so no one is served the old 404.

What not to do

If you would rather someone else finds why the account pages 404 and fixes it, that is what the box below is for. Related: pages show 404, checkout not working, login keeps sending you back.