ShahiTranslate

WooCommerce Translation Integration

Overview

ShahiTranslate Pro seamlessly integrates with WooCommerce to provide complete e-commerce translation. Product titles, descriptions, categories, attributes, checkout pages, cart messages, and customer emails are all translated automatically.

What Gets Translated

Product Content

Product Titles:

    1. Main product name in shop listing
    2. Single product page title
    3. Related products display
    4. Cross-sells and up-sells
    5. Product Descriptions:

    6. Long description (main content)
    7. Short description (excerpt)
    8. Tab content (Description, Additional Info)
    9. Product Categories & Tags:

    10. Category names
    11. Category descriptions
    12. Category slugs (optional)
    13. Product tags
    14. Product Attributes:

    15. Color names (e.g., “Red” → “Rojo”)
    16. Size labels (e.g., “Large” → “Grande”)
    17. Custom attributes
    18. Attribute values
    19. Product Meta:

    20. SKU (usually not translated)
    21. Price (format adjusted per locale)
    22. Stock status messages
    23. Shipping class names
    24. Shop Pages

      Shop Catalog:
      `
      Store > Products > All Translated
      `

    25. Shop page title
    26. Product listing descriptions
    27. Category filter labels
    28. Sort dropdown options
    29. “Add to cart” buttons
    30. Price labels
    31. Single Product Page:

    32. Product name
    33. Full description
    34. Short description
    35. Reviews section
    36. “Add to basket” button
    37. Quantity label
    38. Stock availability
    39. Shipping info
    40. Product tabs
    41. Product Archives:

    42. Category archive pages
    43. Tag archive pages
    44. Search results
    45. Filtered views
    46. Cart & Checkout

      Shopping Cart:

    47. “Cart” heading
    48. Product names in cart
    49. Column headers (Product, Price, Quantity, Total)
    50. “Update cart” button
    51. “Proceed to checkout” button
    52. Coupon field label
    53. Empty cart message
    54. Cart totals section
    55. Checkout Page:

    56. Billing fields labels
    57. Shipping fields labels
    58. Order notes placeholder
    59. Payment method labels
    60. Payment descriptions
    61. “Place order” button
    62. Terms & conditions text
    63. Privacy policy link
    64. Order Confirmation:

    65. “Thank you” message
    66. Order details table
    67. Order summary
    68. Payment info
    69. Shipping info
    70. Customer Emails

      Email Templates:

    71. Order confirmation
    72. Order processing
    73. Order completed
    74. Order cancelled
    75. Password reset
    76. New account welcome
    77. Invoice/receipt emails
    78. Email Content Translated:

    79. Subject lines
    80. Greeting text
    81. Body content
    82. Footer text
    83. Button labels
    84. Table headers
    85. WooCommerce Widgets

      Supported Widgets:

    86. Product Categories
    87. Product Tags
    88. Recent Products
    89. Top Rated Products
    90. On-Sale Products
    91. Shopping Cart widget
    92. Price Filter
    93. Attribute Filter
    94. Enabling WooCommerce Translation

      Basic Setup

      Location: ShahiTranslate Pro → Settings → General

      `
      Settings → General → WooCommerce Support

      ✅ Translate WooCommerce products, categories, and shop pages

      Save Changes
      `

      That’s It! Translation starts immediately.

      Verification

      Check Translation Working:

    95. Enable at least one language:
    96. `
      Settings → Languages
      Select: Spanish, French, etc.
      Save
      `

    97. Visit shop in another language:
    98. `
      yoursite.com/es/shop/
      or
      yoursite.com/shop/?lang=es
      `

    99. Verify products are translated:
    100. – Product titles show in Spanish
      – Descriptions in Spanish
      – “Add to cart” button in Spanish

      First-Time Configuration

      Recommended Settings:

      `
      ShahiTranslate Pro → Settings

      ✅ General Tab:
      ✅ Enable WooCommerce translation
      ✅ Show native language names
      ✅ Auto-detect browser language

      ✅ SEO Tab:
      URL Structure: Sub-directory (/es/)
      ✅ Add hreflang tags

      ✅ Advanced Tab:
      ✅ Enable translation cache
      Cache duration: 86400 seconds
      `

      Product Translation

      Automatic Translation

      When Enabled:
      Products translate automatically when visitors switch language.

      Example:

      English:
      `
      Product: “Leather Wallet”
      Description: “Genuine leather wallet with RFID protection”
      Price: $45.00
      Stock: “In stock”
      `

      Spanish (auto-translated):
      `
      Product: “Billetera de Cuero”
      Description: “Billetera de cuero genuino con protección RFID”
      Price: 45,00 $
      Stock: “En stock”
      `

      Manual Product Translation

      Override Automatic Translations:

      Some merchants want custom translations for marketing reasons.

      Using Translation Editor:

      Location: Edit Product → ShahiTranslate Pro Meta Box

      `
      Edit Product: “Leather Wallet”

      Original Language: English
      ✅ Mark as original language content

      Translations:
      ┌──────────────────────────────────────┐
      │ Spanish (es) [Edit]│
      │ Title: Billetera de Cuero Premium │
      │ [Save Spanish Translation] │
      │ │
      │ French (fr) [Edit]│
      │ Title: Portefeuille en Cuir │
      │ [Save French Translation] │
      └──────────────────────────────────────┘
      `

      Manual Override Example:

      Automatic: “Billetera de Cuero” (literal)
      Manual: “Billetera de Cuero Premium” (better marketing)

      Why Manual?:

    101. Better keyword targeting
    102. Marketing language
    103. Cultural adaptation
    104. Brand consistency
    105. Legal compliance
    106. Bulk Product Translation

      For Large Catalogs:

      Method 1: WP-CLI (fastest):
      `powershell
      wp stp translate-products –lang=es –force
      `

      Method 2: Admin Bulk Actions:
      `
      Products → All Products
      ☑ Select products
      Bulk Actions → Translate to Spanish → Apply
      `

      Method 3: Import/Export:

    107. Export products to CSV
    108. Add translated columns
    109. Import with WooCommerce importer
    110. Category & Taxonomy Translation

      Product Categories

      Automatic Translation:
      Category names translate on frontend automatically.

      Example:
      `
      Category: “Men’s Clothing”
      Spanish: “Ropa de Hombre”
      French: “Vêtements pour Hommes”
      German: “Herrenkleidung”
      `

      Category Slugs:

      Default (English slug for all):
      `
      /category/mens-clothing/
      /es/category/mens-clothing/ (English slug)
      `

      With URL Translation Enabled:
      `
      /category/mens-clothing/
      /es/category/ropa-de-hombre/ (Spanish slug)
      `

      Configuration:
      `
      Settings → SEO & URLs
      ✅ Enable URL Translation
      `

      Product Tags

      Translation:
      Tags translate automatically.

      Example:
      `
      Tag: “Sale”
      Spanish: “Oferta”
      French: “Solde”
      `

      Tag Cloud:
      Tag cloud widget shows translated tags.

      Product Attributes

      Global Attributes:

      Setup:
      `
      Products → Attributes
      Add Attribute: “Color”
      Terms: Red, Blue, Green
      `

      Translation:
      Terms translate automatically:
      `
      English: Red, Blue, Green
      Spanish: Rojo, Azul, Verde
      French: Rouge, Bleu, Vert
      `

      Custom Product Attributes:
      Also translate automatically.

      Cart & Checkout Translation

      Cart Page

      Translated Elements:

      English Cart:
      `
      ┌────────────────────────────────────────┐
      │ Shopping Cart │
      ├─────────────┬──────┬─────────┬─────────┤
      │ Product │ Price│ Quantity│ Total │
      ├─────────────┼──────┼─────────┼─────────┤
      │ Leather │ $45 │ 1 │ $45 │
      │ Wallet │ │ [Update]│ │
      └─────────────┴──────┴─────────┴─────────┘
      Subtotal: $45.00
      [Continue Shopping] [Proceed to Checkout]
      `

      Spanish Cart:
      `
      ┌────────────────────────────────────────┐
      │ Carrito de Compras │
      ├─────────────┬──────┬─────────┬─────────┤
      │ Producto │Precio│ Cantidad│ Total │
      ├─────────────┼──────┼─────────┼─────────┤
      │ Billetera de│ 45 $ │ 1 │ 45 $ │
      │ Cuero │ │[Actual.]│ │
      └─────────────┴──────┴─────────┴─────────┘
      Subtotal: 45,00 $
      [Seguir Comprando] [Finalizar Compra]
      `

      Coupon Section:
      `
      English: “Have a coupon? Click here to enter your code”
      Spanish: “¿Tienes un cupón? Haz clic aquí para ingresar tu código”
      `

      Checkout Page

      Billing Fields:

      English:
      `
      First Name: _
      Last Name: _
      Company Name (optional): _
      Country: [Select country ▼]
      Street address: _
      City: _
      State: [Select state ▼]
      ZIP Code: _
      Phone: _
      Email: _
      `

      French:
      `
      Prénom: _
      Nom: _
      Nom de l’entreprise (optionnel): _
      Pays: [Sélectionner un pays ▼]
      Adresse: _
      Ville: _
      État: [Sélectionner un état ▼]
      Code postal: _
      Téléphone: _
      Email: _
      `

      Payment Methods:
      `
      English:
      ○ Direct Bank Transfer
      ○ Check Payments
      ○ Cash on Delivery
      ● PayPal

      Spanish:
      ○ Transferencia Bancaria Directa
      ○ Pagos con Cheque
      ○ Pago Contra Entrega
      ● PayPal
      `

      Order Button:
      `
      English: [Place Order]
      German: [Bestellung Aufgeben]
      Italian: [Effettua l’Ordine]
      `

      Order Confirmation

      Thank You Page:

      English:
      `
      Thank you. Your order has been received.

      Order Number: #12345
      Date: January 15, 2024
      Total: $45.00
      Payment method: PayPal
      `

      Spanish:
      `
      Gracias. Tu pedido ha sido recibido.

      Número de Pedido: #12345
      Fecha: 15 de enero de 2024
      Total: 45,00 $
      Método de pago: PayPal
      `

      Email Translation

      Customer Emails

      Email Types Translated:

    111. New order (admin notification)
    112. Processing order (customer)
    113. Completed order (customer)
    114. Refunded order (customer)
    115. Customer invoice
    116. Customer note
    117. Reset password
    118. New account
    119. Email Language Detection

      How It Works:

      Plugin detects customer’s language from:

    120. Order language (stored in order meta)
    121. User profile language preference
    122. Browser language (fallback)
    123. Example:

      Customer orders in Spanish → Email sent in Spanish

      Email Content Translation

      Subject Lines:
      `
      English: “Your order has been received – Order #12345”
      Spanish: “Tu pedido ha sido recibido – Pedido #12345”
      French: “Votre commande a été reçue – Commande #12345”
      `

      Body Content:

      English Email:
      `
      Hi John,

      Thank you for your order. Your order details are below:

      Order #12345

      Product Qty Price
      Leather Wallet 1 $45.00

      Subtotal: $45.00
      Shipping: $5.00
      Total: $50.00

      Best regards,
      Your Store Team
      `

      Spanish Email:
      `
      Hola John,

      Gracias por tu pedido. Los detalles de tu pedido están a continuación:

      Pedido #12345

      Producto Cant. Precio
      Billetera de Cuero 1 45,00 $

      Subtotal: 45,00 $
      Envío: 5,00 $
      Total: 50,00 $

      Saludos cordiales,
      Equipo de Tu Tienda
      `

      Email Template Customization

      Location: WooCommerce → Settings → Emails

      Each email can be customized per language:

      English Template:
      `php
      // woocommerce/emails/customer-processing-order.php
      Dear {customer_name},
      Your order is being processed.
      `

      Create Language-Specific Template:
      `
      /wp-content/themes/your-theme/woocommerce/emails/
      └── es/
      └── customer-processing-order.php (Spanish version)
      └── fr/
      └── customer-processing-order.php (French version)
      `

      Spanish Template:
      `php
      // woocommerce/emails/es/customer-processing-order.php
      Estimado/a {customer_name},
      Tu pedido está siendo procesado.
      `

      Price Formatting

      Currency by Language

      Different Currency Per Language:

      `php
      // Example: Auto-switch currency based on language
      function stpwccurrencybylanguage( $currency ) {
      $lang = stpgetcurrent_language();

      switch ( $lang ) {
      case ‘es’:
      return ‘EUR’; // Euro for Spanish
      case ‘en’:
      return ‘USD’; // USD for English
      case ‘ja’:
      return ‘JPY’; // Yen for Japanese
      default:
      return $currency;
      }
      }
      addfilter( ‘woocommercecurrency’, ‘stpwccurrencybylanguage’ );
      `

      Number Formatting

      English (US):
      `
      Price: $1,234.56
      `

      German:
      `
      Price: 1.234,56 €
      `

      French:
      `
      Price: 1 234,56 €
      `

      Automatic Localization:
      Plugin uses WordPress locale settings to format numbers correctly.

      Currency Symbol Position

      Configuration:

      `
      WooCommerce → Settings → General
      Currency Options:

    124. Currency: EUR
    125. Currency Position: Right with space (1234.56 €)
    126. `

      Per-Language Override:
      `php
      function stpwccurrency_position( $position ) {
      $lang = stpgetcurrent_language();

      if ( $lang === ‘es’ || $lang === ‘fr’ ) {
      return ‘right_space’; // 45,00 €
      }
      return ‘left’; // $45.00
      }
      addfilter( ‘woocommercecurrencypos’, ‘stpwccurrencyposition’ );
      `

      Advanced Integration

      Variable Products

      Variation Attributes:
      All variation attributes translate automatically.

      Example:

      English Variations:
      `
      Size: Small, Medium, Large
      Color: Red, Blue, Green
      `

      Spanish Variations:
      `
      Tamaño: Pequeño, Mediano, Grande
      Color: Rojo, Azul, Verde
      `

      Variation Dropdown:
      `html



      `

      Grouped Products

      Parent Product:
      Translates normally.

      Child Products:
      Each child product title translates.

      Example:

      English:
      `
      Wallet Bundle

    127. Leather Wallet
    128. Card Holder
    129. Money Clip
    130. `

      Italian:
      `
      Pacchetto Portafoglio

    131. Portafoglio in Pelle
    132. Porta Carte
    133. Fermasoldi
    134. `

      Product Bundles (Extensions)

      WooCommerce Product Bundles extension supported:

      Bundle items translate including:

    135. Bundle title
    136. Bundled products
    137. Bundle description
    138. Discount labels
    139. Subscriptions

      WooCommerce Subscriptions extension supported:

      Translates:

    140. Subscription product titles
    141. Subscription descriptions
    142. Billing period labels (“Every month” → “Cada mes”)
    143. Renewal emails
    144. Subscription status messages
    145. Widgets & Shortcodes

      WooCommerce Widgets

      Product Categories Widget:
      `
      [Widget]
      Product Categories

    146. Electronics (12)
    147. – Laptops (5)
      – Phones (7)

    148. Clothing (23)
    149. `

      Spanish:
      `
      [Widget]
      Categorías de Productos

    150. Electrónica (12)
    151. – Portátiles (5)
      – Teléfonos (7)

    152. Ropa (23)
    153. `

      Supported Widgets:

    154. Products by Category
    155. Products by Tag
    156. Recent Products
    157. Featured Products
    158. On Sale Products
    159. Top Rated Products
    160. Shopping Cart
    161. Layered Nav (Filters)
    162. WooCommerce Shortcodes

      Shortcodes Work Seamlessly:

      `
      [products limit=”4″ columns=”4″ category=”electronics”]
      `

      Products display in current language automatically.

      Shortcode Examples:
      `
      [recent_products limit=”5″]
      [featured_products limit=”4″]
      [sale_products limit=”3″]
      [bestsellingproducts limit=”5″]
      [product_category category=”clothing”]
      `

      All translate automatically.

      SEO for Multilingual Shop

      Product URLs

      Sub-directory Structure (recommended):
      `
      English: /product/leather-wallet/
      Spanish: /es/producto/billetera-de-cuero/
      French: /fr/produit/portefeuille-en-cuir/
      `

      Configuration:
      `
      Settings → SEO & URLs
      URL Structure: Sub-directory
      ✅ Enable URL Translation
      `

      Category URLs

      English:
      `
      /product-category/mens-clothing/
      `

      Translated (with URL translation):
      `
      /es/categoria-producto/ropa-de-hombre/
      /fr/categorie-produit/vetements-pour-hommes/
      `

      hreflang Tags

      Automatic Implementation:

      Plugin adds hreflang tags to all WooCommerce pages:

      `html `

      Pages Covered:

    163. Product pages
    164. Category archives
    165. Shop page
    166. Cart
    167. Checkout
    168. My Account
    169. XML Sitemaps

      WooCommerce Pages in Sitemap:

      Plugin includes WooCommerce pages in multilingual XML sitemaps:

      `xml

      https://example.com/product/leather-wallet/



      `

      Submission:
      Submit sitemap to Google Search Console for all languages.

      Common WooCommerce Issues

      Issue: Products Not Translating

      Symptom: Products still show in English when language switched

      Causes:

    170. WooCommerce support not enabled
    171. No languages enabled
    172. Cache not cleared
    173. Solutions:
      `

    174. Enable WooCommerce support:
    175. Settings → General → ✅ WooCommerce Support

    176. Enable languages:
    177. Settings → Languages → Select at least one

    178. Clear cache:
    179. Settings → Translation Engine → Clear All Cache

    180. Test with ?lang=es parameter:
    181. yoursite.com/shop/?lang=es
      `

      Issue: Cart Not Translating

      Symptom: Cart labels in English despite language switch

      Causes:

    182. WooCommerce templates cached
    183. Theme overrides WooCommerce templates
    184. Solutions:
      `

    185. Clear WooCommerce transients:
    186. WooCommerce → Status → Tools → Clear transients

    187. Clear page cache (if using caching plugin)
    188. Check theme templates:
    189. /wp-content/themes/your-theme/woocommerce/
      Remove custom templates or update them
      `

      Issue: Checkout Fields Not Translating

      Symptom: “First Name”, “Last Name” still in English

      Causes:

    190. Custom checkout fields plugin
    191. Theme adds custom fields
    192. Checkout field editor
    193. Solutions:
      `

    194. Ensure standard WooCommerce fields used
    195. For custom fields, add translation:
    196. function stptranslatecustom_field( $fields ) {
      $fields[‘customfield’][‘label’] = _( ‘Custom Field’, ‘textdomain’ );
      return $fields;
      }
      addfilter( ‘woocommercecheckoutfields’, ‘stptranslatecustomfield’ );

    197. Disable checkout customizer plugins temporarily to test
    198. `

      Issue: Emails in Wrong Language

      Symptom: Customer receives English email despite ordering in Spanish

      Causes:

    199. Order language not detected
    200. Email template cached
    201. SMTP plugin conflict
    202. Solutions:
      `

    203. Check order meta has language stored:
    204. Orders → View Order → Custom Fields
      Look for: stporder_language = es

    205. Disable WP Mail SMTP temporarily to test
    206. Check email template location:
    207. /wp-content/themes/your-theme/woocommerce/emails/

    208. Force email language:
    209. function stpforceemail_language( $locale, $order ) {
      return getpostmeta( $order->getid(), ‘stporderlanguage’, true );
      }
      addfilter( ‘woocommerceemaillocale’, ‘stpforceemaillanguage’, 10, 2 );
      `

      Issue: Price Format Wrong

      Symptom: Price shows $1,234.56 in all languages

      Causes:

    210. Currency not set per language
    211. Number format not localized
    212. Solutions:
      `

    213. Set locale correctly:
    214. Settings → General → Site Language (affects formatting)

    215. Use currency switcher if needed:
    216. Install WooCommerce Multi-Currency
      Configure per language

    217. Check WooCommerce currency settings:
    218. WooCommerce → Settings → General → Currency Options
      `

      Best Practices

      1. Test Before Going Live

      Testing Checklist:

    219. ✅ Products translate correctly
    220. ✅ Cart works in all languages
    221. ✅ Checkout completes successfully
    222. ✅ Payment gateways work
    223. ✅ Emails sent in correct language
    224. ✅ Confirmation page translates
    225. ✅ My Account area translates
    226. 2. Use Manual Translation for Key Products

      When to Override:

    227. Featured products
    228. Best-sellers
    229. Products with specific keywords
    230. Marketing campaigns
    231. Legal requirements
    232. Why:

    233. Better keyword targeting
    234. Cultural relevance
    235. Brand voice consistency
    236. 3. Optimize URLs for SEO

      Recommendation:
      `
      ✅ Use sub-directory structure (/es/)
      ✅ Enable URL translation for slugs
      ✅ Add hreflang tags
      ✅ Submit sitemaps to Search Console
      `

      4. Cache Configuration

      Optimal Settings:
      `
      ✅ Enable translation cache
      Cache duration: 86400 seconds (24 hours)
      ✅ Auto-invalidate on product update
      `

      Why:

    237. Fast page loads
    238. Reduced API calls
    239. Better user experience
    240. 5. Monitor Translation Quality

      Regular Checks:

    241. Review product translations monthly
    242. Check customer feedback
    243. Monitor cart abandonment rate per language
    244. Test checkout flow in all languages
    245. Performance Optimization

      Caching Strategy

      Product Translation Cache:
      `
      First visit (Spanish):

    246. Check cache for Spanish translation
    247. If not found, translate via API
    248. Store in cache
    249. Display to user
    250. Subsequent visits:

    251. Load from cache (instant)
    252. No API call needed
    253. `

      Cache Hit Rate:
      Typically 95%+ for product pages

      Database Optimization

      Post Meta Storage:
      Translations stored as post meta for fast retrieval:

      `
      wp_postmeta table:
      postid | metakey | meta_value
      ——–|—————————-|——————
      123 | stptranslationestitle | Billetera de Cuero
      123 | stptranslationesdesc | Descripción…
      123 | stptranslationfrtitle | Portefeuille
      `

      Fast Queries:
      WordPress loads post meta efficiently with posts.

      Lazy Translation

      On-Demand Translation:

      Only translate when:

    254. Product viewed in specific language
    255. Not already cached
    256. Benefits:

    257. Saves API quota
    258. Faster initial setup
    259. Translations improve over time
    260. Multi-Currency Support

      Using with Currency Plugins

      Compatible Plugins:

    261. WooCommerce Multi-Currency
    262. WOOCS (Currency Switcher)
    263. Currency Switcher for WooCommerce
    264. Aelia Currency Switcher
    265. Integration:
      `
      ShahiTranslate Pro detects currency from:

    266. Currency plugin selection
    267. Language preference
    268. Geolocation
    269. Displays prices in:

    270. Correct currency
    271. Correct format
    272. Correct symbol position
    273. `

      Example:
      `
      English (US): $45.00 USD
      Spanish (ES): 42,00 € EUR
      Japanese: ¥5,000 JPY
      `

      Next Steps

    274. SEO Settings
    275. Translation Cache
    276. Manual Translation Editor
    277. Advanced Hooks & Filters

Share this article

Was this article helpful?

Help us improve our documentation

Still need help?

Our support team is ready to assist you with personalized guidance for your workspace.

Submit a support ticket