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:
- Main product name in shop listing
- Single product page title
- Related products display
- Cross-sells and up-sells
- Long description (main content)
- Short description (excerpt)
- Tab content (Description, Additional Info)
- Category names
- Category descriptions
- Category slugs (optional)
- Product tags
- Color names (e.g., “Red” → “Rojo”)
- Size labels (e.g., “Large” → “Grande”)
- Custom attributes
- Attribute values
- SKU (usually not translated)
- Price (format adjusted per locale)
- Stock status messages
- Shipping class names
- Shop page title
- Product listing descriptions
- Category filter labels
- Sort dropdown options
- “Add to cart” buttons
- Price labels
- Product name
- Full description
- Short description
- Reviews section
- “Add to basket” button
- Quantity label
- Stock availability
- Shipping info
- Product tabs
- Category archive pages
- Tag archive pages
- Search results
- Filtered views
- “Cart” heading
- Product names in cart
- Column headers (Product, Price, Quantity, Total)
- “Update cart” button
- “Proceed to checkout” button
- Coupon field label
- Empty cart message
- Cart totals section
- Billing fields labels
- Shipping fields labels
- Order notes placeholder
- Payment method labels
- Payment descriptions
- “Place order” button
- Terms & conditions text
- Privacy policy link
- “Thank you” message
- Order details table
- Order summary
- Payment info
- Shipping info
- Order confirmation
- Order processing
- Order completed
- Order cancelled
- Password reset
- New account welcome
- Invoice/receipt emails
- Subject lines
- Greeting text
- Body content
- Footer text
- Button labels
- Table headers
- Product Categories
- Product Tags
- Recent Products
- Top Rated Products
- On-Sale Products
- Shopping Cart widget
- Price Filter
- Attribute Filter
- Enable at least one language:
- Visit shop in another language:
- Verify products are translated:
- Better keyword targeting
- Marketing language
- Cultural adaptation
- Brand consistency
- Legal compliance
- Export products to CSV
- Add translated columns
- Import with WooCommerce importer
- New order (admin notification)
- Processing order (customer)
- Completed order (customer)
- Refunded order (customer)
- Customer invoice
- Customer note
- Reset password
- New account
- Order language (stored in order meta)
- User profile language preference
- Browser language (fallback)
- Currency: EUR
- Currency Position: Right with space (1234.56 €)
- Leather Wallet
- Card Holder
- Money Clip
- Portafoglio in Pelle
- Porta Carte
- Fermasoldi
- Bundle title
- Bundled products
- Bundle description
- Discount labels
- Subscription product titles
- Subscription descriptions
- Billing period labels (“Every month” → “Cada mes”)
- Renewal emails
- Subscription status messages
- Electronics (12)
- Clothing (23)
- Electrónica (12)
- Ropa (23)
- Products by Category
- Products by Tag
- Recent Products
- Featured Products
- On Sale Products
- Top Rated Products
- Shopping Cart
- Layered Nav (Filters)
- Product pages
- Category archives
- Shop page
- Cart
- Checkout
- My Account
- WooCommerce support not enabled
- No languages enabled
- Cache not cleared
- Enable WooCommerce support:
- Enable languages:
- Clear cache:
- Test with ?lang=es parameter:
- WooCommerce templates cached
- Theme overrides WooCommerce templates
- Clear WooCommerce transients:
- Clear page cache (if using caching plugin)
- Check theme templates:
- Custom checkout fields plugin
- Theme adds custom fields
- Checkout field editor
- Ensure standard WooCommerce fields used
- For custom fields, add translation:
- Disable checkout customizer plugins temporarily to test
- Order language not detected
- Email template cached
- SMTP plugin conflict
- Check order meta has language stored:
- Disable WP Mail SMTP temporarily to test
- Check email template location:
- Force email language:
- Currency not set per language
- Number format not localized
- Set locale correctly:
- Use currency switcher if needed:
- Check WooCommerce currency settings:
- ✅ Products translate correctly
- ✅ Cart works in all languages
- ✅ Checkout completes successfully
- ✅ Payment gateways work
- ✅ Emails sent in correct language
- ✅ Confirmation page translates
- ✅ My Account area translates
- Featured products
- Best-sellers
- Products with specific keywords
- Marketing campaigns
- Legal requirements
- Better keyword targeting
- Cultural relevance
- Brand voice consistency
- Fast page loads
- Reduced API calls
- Better user experience
- Review product translations monthly
- Check customer feedback
- Monitor cart abandonment rate per language
- Test checkout flow in all languages
- Check cache for Spanish translation
- If not found, translate via API
- Store in cache
- Display to user
- Load from cache (instant)
- No API call needed
- Product viewed in specific language
- Not already cached
- Saves API quota
- Faster initial setup
- Translations improve over time
- WooCommerce Multi-Currency
- WOOCS (Currency Switcher)
- Currency Switcher for WooCommerce
- Aelia Currency Switcher
- Currency plugin selection
- Language preference
- Geolocation
- Correct currency
- Correct format
- Correct symbol position
- SEO Settings
- Translation Cache
- Manual Translation Editor
- Advanced Hooks & Filters
Product Descriptions:
Product Categories & Tags:
Product Attributes:
Product Meta:
Shop Pages
Shop Catalog:
`
Store > Products > All Translated
`
Single Product Page:
Product Archives:
Cart & Checkout
Shopping Cart:
Checkout Page:
Order Confirmation:
Customer Emails
Email Templates:
Email Content Translated:
WooCommerce Widgets
Supported Widgets:
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:
`
Settings → Languages
Select: Spanish, French, etc.
Save
`
`
yoursite.com/es/shop/
or
yoursite.com/shop/?lang=es
`
– 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?:
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:
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:
Email Language Detection
How It Works:
Plugin detects customer’s language from:
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:
`
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
`
Italian:
`
Pacchetto Portafoglio
`
Product Bundles (Extensions)
WooCommerce Product Bundles extension supported:
Bundle items translate including:
Subscriptions
WooCommerce Subscriptions extension supported:
Translates:
Widgets & Shortcodes
WooCommerce Widgets
Product Categories Widget:
`
[Widget]
Product Categories
– Laptops (5)
– Phones (7)
`
Spanish:
`
[Widget]
Categorías de Productos
– Portátiles (5)
– Teléfonos (7)
`
Supported Widgets:
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:
XML Sitemaps
WooCommerce Pages in Sitemap:
Plugin includes WooCommerce pages in multilingual XML sitemaps:
`xml
`
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:
Solutions:
`
Settings → General → ✅ WooCommerce Support
Settings → Languages → Select at least one
Settings → Translation Engine → Clear All Cache
yoursite.com/shop/?lang=es
`
Issue: Cart Not Translating
Symptom: Cart labels in English despite language switch
Causes:
Solutions:
`
WooCommerce → Status → Tools → Clear transients
/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:
Solutions:
`
function stptranslatecustom_field( $fields ) {
$fields[‘customfield’][‘label’] = _( ‘Custom Field’, ‘textdomain’ );
return $fields;
}
addfilter( ‘woocommercecheckoutfields’, ‘stptranslatecustomfield’ );
`
Issue: Emails in Wrong Language
Symptom: Customer receives English email despite ordering in Spanish
Causes:
Solutions:
`
Orders → View Order → Custom Fields
Look for: stporder_language = es
/wp-content/themes/your-theme/woocommerce/emails/
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:
Solutions:
`
Settings → General → Site Language (affects formatting)
Install WooCommerce Multi-Currency
Configure per language
WooCommerce → Settings → General → Currency Options
`
Best Practices
1. Test Before Going Live
Testing Checklist:
2. Use Manual Translation for Key Products
When to Override:
Why:
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:
5. Monitor Translation Quality
Regular Checks:
Performance Optimization
Caching Strategy
Product Translation Cache:
`
First visit (Spanish):
Subsequent visits:
`
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:
Benefits:
Multi-Currency Support
Using with Currency Plugins
Compatible Plugins:
Integration:
`
ShahiTranslate Pro detects currency from:
Displays prices in:
`
Example:
`
English (US): $45.00 USD
Spanish (ES): 42,00 € EUR
Japanese: ¥5,000 JPY
`
Next Steps
Share this article
Still need help?
Our support team is ready to assist you with personalized guidance for your workspace.