This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Hyyan WooCommerce Polylang Integration


Given that I am not using WordPress these days and I haven’t really been using WooPoly for a while. I am looking for maintainers to take over this project.
If you’re interested, please reply to this issue or get in touch with me via email: hyyanaf [at] gmail [dot] com

This plugin makes it possible to run multilingual e-commerce sites using
WooCommerce and Polylang.It makes products and store pages translatable, lets
visitors switch languages and order products in their language. and all that from
the same interface you love.

Please do not ask for support on wordpress forum anymore , it is becoming hard for me to follow issues in different places. please if you want help just open a new Github issue.

Read the full docs


  • [√] Auto Download Woocommerce Translation Files
  • [√] Page Translation
  • [√] Endpoints Translation
  • [√] Product Translation
    • [√] Categories
    • [√] Tags
    • [√] Attributes
    • [√] Shipping Classes
    • [√] Meta Synchronization
    • [√] Variation Product
    • [√] Product Gallery
  • [√] Order Translation
  • [√] Stock Synchronization
  • [√] Cart Synchronization
  • [√] Coupon Synchronization
  • [√] Emails
  • [√] Reports
    • [√] Filter by language
    • [√] Combine reports for all languages

What you need to know about this plugin

  1. The plugin needs PHP7.0 or above ie same software versions as WooCommerce
  2. This plugin is developed in sync with Polylang
    and WooCommerce latest version
  3. The plugin support variable products , but using them will disallow you to
    change the default language
    , because of the way the plugin implements this
    support. So you have to make sure to choose the default language before you start
    adding new variable products.
  4. Polylang URL modifications method The language is set from content is not

Setup your environment

  1. You need to translate woocommerce pages by yourself
  2. The plugin will handle the rest for you



Everyone is welcome to help contribute and improve this plugin. There are several
ways you can contribute:


  • correction to fix #527
  • fixes #536 avoid over-setting product type on edit
  • re- fixes #534 new variation not visible until save
  • re- fixes #527 variation form default values
  • fixes #535 variation stock issues






1.4.0 preview

Thanks to :
@mweimerskirch **




Thanks for : @jon007 For his amazing work which made releasing this new version possible


Thanks for :

For all the amazing work which made releasing this new version possible



  • Fix PHP Fatal error: Class ‘NumberFormatter’ not found


  • Fixes #200 Polylang version check fails to detect Polylang PRO
  • Cart.js Updated in line with WooCommerce 3.1 cart-fragments.js
  • Fixes #215 add string translations for Coupons (includes WooCommerce Extended Coupon Features if installed)
  • addresses #168 with a utility function get_translated_variation to help get translated products or variations
  • Fixes #217 BACS bank_details() update for woocommerce3
  • Fixes #213 copy children for Grouped Product
  • partially implements #208 WooCommerce 3.1 CSV Import/Export by adding support for synchronising Product Meta and Product Attributes to translated products
  • Fixes #207 suppresses login customization to allow “Pay for Order” links to work when customer is not logged in
    (after login continue to payment page instead of my account home)
  • Fixes #212 update deleteRelatedVariation for woocommerce3 warnings
  • Fixes #209 cart filling up error logs with variations message
  • Fixes #195 Locale number formatting for prices and built-in attributes
  • Fixes #190 Products Quick Edit now synchronizes translations
  • Fixes #187 WordPress 4.8 breaks translation for new Variation Products
  • Fixes #184 Stock update incorrect if customer switches language while checking out
  • Fixes #186 Shipping Method translation regression from 1.0.1
  • Fixes #188 When translating Variations, code tries to create copies of untranslated terms
  • Fixes #182 email translation extension hooks thanks to @vendidero/WooCommerce Germanized
  • Fixes #181 additional filters in Meta synchronization thanks to @vendidero/WooCommerce Germanized


  • Fixes #170 when WooCommerce 3.0.8+ active, product variation titles corrected in cart and orders
  • Added Documentation links to new wiki Documentation pages
  • Added minified javascript (enable SCRIPT_DEBUG to use unminified versions)
  • Fixes #174 Error in autofill of missing translations of parent category
  • Fixes #175 WooCommerce doesn’t pass loop name for some shortcodes
  • Fixes #10 Initial setup issues if Polylang is not yet configured


Thanks for @jon007 and @decarvalhoaa for the amazing work in order to release this new version

This release fixes a number of issues around handling of attributes and translations.
In particular:

  1. New translations can now use auto-copy of source language, to help save time translating.
    In future a machine translation will be added.
    Copy option covers Product Title, Short Description and Long Description.
    Also when creating a new product, any missing Product Categories, Tags and Attributes are copied,
    to avoid unexpected problems which occur if a translation is saved with missing term translations.

  2. it is now possible to set up the system to allow different types of product attributes
    to be synchronised, translated, or independent in each language. The default options will be:

    • Translation and Synchronization Enabled for Product Attributes
    • Synchronization off for Custom Product Attributes

In this case choose how to set up your product attributes as follows:
– Translated Attribute? Add in Products\Attributes and turn on Translation in Polylang at:
Languages\Settings\Custom Taxonomies
– Synchronised Attribute? [eg same value in all languages, eg product code, numeric properties]
Add in Products\Attributes and leave Translation turned off in Polyang.
– Different value in each language? add directly to Product as a Custom Product Attribute

  • Enh: synchronisation for Custom Product Attributes and Global Product Attributes can now be
    turned on and off independently in
    Settings\WooPoly, Metas List, Attributes Metas, Custom Product Attributes.
    The fields locker is unlocked for the attribute types which are not synchronized.
  • Fix: Global Product Attributes can now be individually configured in Polylang:
    When Settings\WooPoly Translation attributes is checked then attributes appear in Polylang:
    Languages\Settings\Custom Taxonomies lists the individual taxonomies
    Previously all attributes translation were forced on: now they can be selectively turned
    on and off. This means that there is no longer any need to create dummy translations for
    untranslateable values such as reference codes and numeric fields. Fixes #127.
    CHANGE: new Product Attributes are no longer automatically enabled for translation,
    After creating new Attribute, enable Translation in Polylang if needed by checking:
    Languages\Settings\Custom Taxonomies
  • Enh: Missing Term Translations are now added by default. Fixes #72
    Applies to Products\Categories, Products\Tags, Products\Attributes
    Previously missing term translations caused

  • Fixes #123 Fields Locker performance optimisation

  • Fixes #155, fixes #81, fixes #99 Gateways fix gateway load issues by moving initialization to wp_loaded
  • Fixes #149 Enable duplication of variable products
  • Fixes #165 upsets/crosssells handling in wooCommerce3
  • Fixes #159 Attribute Terms synchronization issues
  • Fixes: #148 WooCommerce3 product_visibility is now a taxonomy not a meta item
  • Fixes: #153 Fields locker doesn’t correctly lock Product Attributes of type Select
  • Fixes: #147 When adding new variations, tool should also add the new variation to other languages
  • Fix #137 #131 #130 #110 #117, #97, #94, #84, #83, #82 adaptations for wooCommerce 3.0
  • Fix #136 Variable product stock sync issue where stock managed at parent level
  • Enh #132 Add settings Page link to plugins page
  • Fix #128 Allow variation description to be editable in translations
  • Fix #129 #138 Account page only shows orders in current language
  • Fix #112 Shipping Class are not sync for Product Variations
  • Fix #140, #142, #143, #89, #70 Email Translation issues
  • Fix #145 correct link from Polylang to Attributes Strings translations
  • Fix #95 WooCommmerce product shortcodes not filtering by language
  • Fix #104 Tax by allowing translation of Price Display Suffix


  • Improve Multisite compatibility
  • Fix variation description couldnt be translated
  • Fix PHP Notices when translating variable products with variations
  • Fix wc translation download


  • Fix PHP notice in Reports when products dont have translations
  • Fixed PHP notice due to Polylang deprecated functions
  • Fixed WordPress database error in reports page
  • Fixed missing argument warning in order detailspage and emails
  • Fixed strpos() empty needle warning for empty endpoints
  • Fixed removing email instructions from 3rd party payment gateways
  • Fixed not detecting whether polylang pro is active
  • Fixed unable to unselect a complete settings section Issue #51
  • Fixed Fields Locker is not working in variation tab Issue #76
  • Tested and confirmed working on WordPress 4.6.1, Polylang 2.0.7 and WooCommerce 2.6.7




  • Add the ability to handle the locale code of Paypal checkout
  • Fixed locale for emails that are triggered by a Paypal IPN message
  • Fixed fields locker is not working in Firefox browser


  • Added support for Layered Nav Widget
  • Added support for endpoints translation
  • Fixed products are duplicated when shop page is set as front page
  • Fixed Unable to open order details after 0.20 upgrade
  • Fixed translations links are not hidden in the order page
  • Fixed email is not translated when complete button is used in orders table
  • General code improvements


  • Added support for Woocommerce search widget @see Duplicated search result
  • Fixed translation downloader tries to download woo translations for en_US locale
  • Fixed wrong product duplicate behavior


  • Added Translation Downloader to auto download woocommerce translation files when a new polylang language is add
  • Added Arabic translation
  • Fixed translation links are hidden in posts page
  • General code improvements


  • Added admin interface to allow user to control plugin features
  • Added link for every attribute to search for its translation in the polylang strings table
  • Added generic fields locker
  • Added POT file for translation
  • Fixed product_type is not synced in 0.20 version
  • General code improvements


  • Added the ability to sync total_sales when stock value is changed
  • Added the ability to combine product report with its translation
  • Added the ability to combine category report with its translation
  • Fixed database error in sales_be_category reports
  • Fixed Orders Interface to use the current user language instead of the order language


  • Added the ability to set the write permalinks that can work with polylang if the default woocomerce permalinks are used


  • Added basic support for reports (filter by language)
  • General fixes


  • Fixed issue#2 (


  • Removed wrong php used statement


  • Fixed (Polylang language switcher is disabled even if there is no variable products)
  • Added the ability to sync product category custom fields


  • Added support for product gallery translation


  • Extended meta list to include _visibility


  • Released in the wordpress repository


  • Add and translate products from the same interface you love
  • Products meta is synced , no need to do anything by your own
  • Orders use the customer chosen language
  • Orders language can be changed
  • Get reports in specific language and combine reports for all langauges
  • Control plugin features from its admin page


Standard install

In your site Admin, go to Plugins, Add New and search for Hyyan WooCommerce Polylang Integration and install it.

Classical way

  1. Download the plugin as zip archive and then upload it to your wordpress plugins folder and
    extract it there.

Composer way

  1. run composer command : composer require hyyan/woo-poly-integration

In all cases please do ensure you have Polylang and WooCommerce activated and setup
before you Activate this plugin from your admin panel

Please note the getting started notes:


Does this work with other e-commerce plugins ?

No. This plugin is for polylang and woocommerce

Does this work with WPML plugin?

No. This plugin is for polylang and woocommerce

What do I need to do in my theme

Well , Nothing

Products Category or tags pages are blank

Just make sure to setup your permalinks , and every thing will be fine , I promise


September 20, 2023
I used it few years, now on php 8+ there are some issues, that I asked of people how to fix them. On /wp-content/plugins/woo-poly-integration/src/Hyyan/WPI/Utilities.php on line 645 change to } else { //20190630: old code used in previous versions of this plugin if ($polylang->curlang) { $polylang->curlang->locale = $languageLocale; } } 2. To make it work with variable products again in woo-poly-integration/src/Hyyan/WPI/LocaleNumbers.php string 97 $retval = $a->format((float) $input, \NumberFormatter::TYPE_DOUBLE); I don’t remember what was the third. Someone, please, don’t let this great plugin die, or resurrect it from the dead!
March 7, 2023
I was struggling with Polylang Pro, and polylang for woocommerce. I paid much money for them, and I couldn’t even add “product attributes” to the “string translations” list ! You litterally saved my life with your superb plugin. I would really want to contribute money so you maintain this plugin !!
June 11, 2022
Hi how i can delete this plugin from my website. Reason why i do this my shop page stoped work. My shop page start working when I deactivate polylang and delete this plugin. But some settings from this plugin still work form some reason
November 24, 2021
Luckly I got 12 products, and I’m a developer so I figured out the issue and I’m fixing product by product, but it basically messed up all product variations prices, without a chance to fix it if not deleting the variations and recreating them, all at once tho or it doesn’t work. Also sometimes have to be done twice cause it created a double of each variation. This behaviour must be to really poor quality code, and despite the fact I’m fixing it, it created a bloat of ids in the database, and hopefully will continue to work and not reset/mess again with variations by itself without notice.
Read all 120 reviews

Contributors & Developers

“Hyyan WooCommerce Polylang Integration” is open source software. The following people have contributed to this plugin.


“Hyyan WooCommerce Polylang Integration” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “Hyyan WooCommerce Polylang Integration” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.