Translate shop, product, and catalog URLs

WooCommerce URLs combine POM language prefixes with WordPress page, product, and taxonomy routes. Translate each owned object rather than editing the final URL as one string.

Product URLs

Translate the product slug under Translations → Translate URLs for each target locale. POM Translate uses that stored slug with the locale prefix while keeping the original product ID.

Verify links generated from product cards, breadcrumbs, cart lines, emails, canonical tags, and language selectors.

Shop and system pages

Shop, Cart, Checkout, and My Account are WordPress pages. Their localized permalinks follow the normal page-title and page-slug workflow.

The custom POM Theme Shop layout reads the translated Shop page content through the POM Translate content helper. Standard WooCommerce archives continue through the normal product and taxonomy filters.

Taxonomy archives

Product categories, tags, and attribute archives use localized term slugs. Hierarchical category URLs also depend on translated parent slugs.

After changing a base or translated slug:

  1. Save the translation.
  2. Go to Settings → Permalinks and save once when rewrite rules need refreshing.
  3. Clear page and routing caches.
  4. Test direct requests and pagination.

My Account routes

My Account endpoint links are rebuilt from the localized account-page permalink plus the endpoint and optional value. This prevents a second language prefix from being inserted into paths for orders, addresses, payment methods, subscriptions, or logout.

POM Translate uses a stored localized endpoint slug when one exists and otherwise falls back to the base WooCommerce slug. Extensions should register page endpoints through WordPress's normal endpoint API to participate in prefixed route restoration.

Checkout confirmation routes

WooCommerce builds the order confirmation URL from the localized Checkout page, its order-received endpoint, the order number, and an order key. POM Translate restores that endpoint after resolving the language-prefixed page so both classic Checkout and Checkout Blocks can open the same confirmation screen.

Do not replace this URL with a generic redirect or remove its key. WooCommerce validates the order ID, key, customer session, and account before exposing order details. A missing or incorrect key intentionally shows no private order information.

Verification

For each locale, test:

  • Shop and a paginated catalog view;
  • one simple and one variable product;
  • a category and an attribute archive;
  • cart, checkout, and account links;
  • a successful order-confirmation URL in each enabled locale;
  • an account endpoint containing an order or other trailing value;
  • canonical and alternate-language links.

Do not manually add a locale prefix to stored product or term slugs. Prefixing belongs to routing; the saved localized slug should contain only the object path segment.