WooCommerce makes use of endpoints to show certain content to users on the frontend as of version 2.1+.
This page explains what endpoints are, how we make use of them, how developers can use them, and what they replace when upgrading from WC 2.0.
What are endpoints? ↑ Back to top
Endpoints are essentially an extra part in the website URL that we detect and show different content when present.
For example, you may have a ‘my account’ page shown on the URL yoursite.com/my-account. When the endpoint ‘edit-account’ is appended to this URL, making it ‘yoursite.com/my-account/edit-account‘ we show the Edit account page instead of the My account page.
This allows us to show different content without the need for multiple pages and shortcodes, thus reducing the amount of content we need to install.
What endpoints replace from WC 2.0 ↑ Back to top
In previous versions of WooCommerce, pages and shortcodes were used instead for endpoint content. Examples of endpoints in WooCommerce include:
|Endpoint content||Equivalent in older WooCommerce versions|
|Edit account page|| page with the
|Edit address page|| page with the
|Change password page|| page with the
|Lost password page|| page with the
|View order pages|| page with the
|Customer logout|| page with the
|Checkout pay page|| page with the
|Checkout thanks page|| page with the
These shortcodes no longer function, because they no longer exist. Although WooCommerce attempts to remove these pages during upgrade from versions before 2.1, they may remain if they have been customized.
Why did you replace shortcodes with endpoints? ↑ Back to top
It makes installing WooCommerce easier and less prone to user error. With the pages and endpoints, we had to install the page, then set the content, then ensure WooCommerce knew where these pages were via settings.
If a user edited, moved or deleted one of these pages, it risked breaking the site. Endpoints remove that risk.
Account page endpoints ↑ Back to top
The following endpoints are used for account-related functionality and are appended to the URL of the my-account page:
- Orders –
- View order –
- Downloads –
- Edit account (and change password) –
- Addresses –
- Payment methods –
- Lost password –
- Logout –
Checkout page endpoints ↑ Back to top
The following endpoints are used for checkout-related functionality and are appended to the URL of the checkout page:
- Pay page –
- Order received (thanks) –
- Add payment method –
Customizing endpoint URLs ↑ Back to top
The URL for each endpoint can be customized in settings. For account endpoints, go to WooCommerce > Settings > Accounts and edit the endpoint settings:
For checkout endpoints, go to WooCommerce > Settings > Checkout and modify:
Ensure that they are unique to avoid conflicts. If you encounter issues with 404s, go to Settings > Permalinks and save to flush the rewrite rules.
Using endpoints in menus ↑ Back to top
If you want to include an endpoint in your menus, you need to use the Links section:
Enter the full URL to the endpoint and then insert that into your menu.
Remember that some endpoints, such as view-order, require an order ID to work. In general, we don’t recommend adding these endpoints to your menus. These pages can instead be accessed via the my-account page.
Using endpoints in Payment Gateway Plugins ↑ Back to top
Developers would previously use get_permalink for the URL of the pay and thank you pages, and now should be using endpoints. WooCommerce provides helper functions in the order class for getting these URLs. They are:
$order->get_checkout_payment_url( $on_checkout = false );
Gateways need to use these methods for full 2.1+ compatibility.
Troubleshooting ↑ Back to top
Endpoints showing 404 ↑ Back to top
1. If you see a 404 error, go to WordPress Admin > Settings > Permalinks and Save. This ensures that rewrite rules for endpoints exist and are ready to be used.
2. If using an endpoint such as view-order, ensure that it specifies an order number. /view-order/ is invalid. /view-order/10/ is valid. These types of endpoints should not be in your navigation menus.
Endpoints are not working ↑ Back to top
On Windows servers, the web.config file may not be set correctly to allow for the endpoints to work correctly. In this case, clicking on endpoint links (e.g. /edit-account/ or /customer-logout/) may appear to do nothing except refresh the page. In order to resolve this, try simplifying the web.config file on your Windows server. Here’s a sample file configuration:
Pages direct to wrong place ↑ Back to top
Landing on the wrong page when clicking an endpoint URL is typically caused by incorrect settings. For example, clicking ‘Edit address’ on your account page takes you to the Shop page instead of the edit address form means you selected the wrong page in settings. Confirm that your pages are correctly configured and that a different page is used for each section.