This thread is resolved. Here is a description of the problem and solution.
Problem:
The client is experiencing an issue where products in secondary languages are being incorrectly synced and displayed in their Facebook catalogue, despite being archived in WooCommerce. This issue arises from the integration between WPML and Facebook for WooCommerce.
Solution:
1. We confirmed that the 'Facebook Visibility' feature in WPML archives secondary language products as intended, but they are still being synced by Facebook for WooCommerce.
2. Our compatibility team has escalated this as a feature request to the developers of Facebook for WooCommerce. However, they have found that the integration is managed by Facebook for WooCommerce, not WPML.
3. We suggested a potential workaround using a custom filter to prevent syncing of secondary language products:
add_filter( 'wc_facebook_is_product_sync_enabled', function( $is_enabled, $integration ) {<br /> $product_id = $integration->get_product()->get_id();<br /> $product_lang = apply_filters( 'wpml_post_language_details', null, $product_id );<br /> if ( is_array( $product_lang ) && isset( $product_lang['language_code'] ) ) {<br /> $default_lang = apply_filters( 'wpml_default_language', null );<br /> if ( $product_lang['language_code'] !== $default_lang ) {<br /> return false; // Block sync<br /> }<br /> }<br /> return $is_enabled;<br />}, 10, 2 );
**** Important! Please make a full site backup (files and DB) before you proceed with those steps****
4. We also recommend contacting Automatic, the authors of Facebook for WooCommerce, to address this integration issue.
If this solution does not resolve your issue or seems irrelevant, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If the problem persists, please open a new support ticket at WPML support forum.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Tagged: Compatibility, WCML
Related documentation:
This topic contains 21 replies, has 0 voices.
Last updated by Itamar 1 week, 4 days ago.
Assisted by: Itamar.
Author | Posts |
---|---|
April 17, 2025 at 2:26 pm #16944516 | |
Giulio |
Good morning, we encountered an issue as mentioned in the subject line quite some time ago. It then seemed to have been resolved. Now, however, we find our Facebook catalogue once again completely overrun with products in other languages. Could you please update us on the current status of the situation? Thank you. |
April 21, 2025 at 8:26 pm #16952702 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, If you are using the Facebook for WooCommerce plugin, please note that it is officially compatible with WPML. https://wpml.org/plugin/facebook-for-woocommerce/ However, there are two known issues with this plugin. Please check them out here. https://wpml.org/errata/facebook-for-woocommerce-multi-currency-is-not-supported/ Are you having any of the known issues above? Please share your site's Debug information if you need further help with this issue. You can read about it here. http://wpml.org/faq/provide-debug-information-faster-support/ Regards, |
April 23, 2025 at 10:23 am #16958920 | |
Giulio |
Good morning Itamar, the issue isn’t related to the bugs you’ve already identified. It seems to be something different, and I’m not sure if it’s something that’s already been addressed in any way. As I was trying to mention, the problem is as follows: the Facebook for WooCommerce plugin creates a product catalogue based on the products listed in WooCommerce, in order to sync them with Meta. It does this for every single product and variation—in short, everything. When a product is translated using WPML, WPML naturally creates another product in the second language. The problem is simple: Facebook for WooCommerce sees the translated product and imports that too. So the result is that, say I’m selling a pencil and I’ve translated this pencil into five languages. I then end up seeing that same pencil listed six times in my Facebook catalogue. The only difference we notice on Facebook is that one product appears as active in the catalogue, while the other five (which are the translations) appear as archived. Since the translated products are archived, they don’t impact the catalogue too much, fortunately. However, the site still syncs them, which leads to a considerable waste of resources. What we’d like to understand is how WPML handles this situation. |
April 24, 2025 at 10:05 am #16963659 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, I am consulting with our second-tier supporters about your case. Meanwhile, could you please confirm that WordPress, WooCommerce, Facebook for WooCommerce, and WPML along with its add-ons, are all updated to their latest versions on your site? Could you please share the link to your Facebook catalog, where we can view this issue? Also, please share your site's Debug information. You can read about it here. Regards, |
May 4, 2025 at 4:55 pm #16993605 | |
Giulio |
Good morning Itamar, and apologies for the delayed response. What I’m describing is a sort of bug that has been ongoing for over a year. I’d be happy to send you a link to the catalogue, but you wouldn’t be able to see the “extra” products I mentioned, as they appear as “archived”. Only those in the primary language are shown as “online” – I believe this is something your team worked on in the past. Previously, both the primary and secondary language products were displayed online. Now at least the secondary language ones are hidden. However, the point I was raising is that the products in the secondary languages are still being synchronised, which leads to a significant use of resources. Ideally, the Facebook for WooCommerce functions should be disabled when WPML is active, so that only products in the primary language are synchronised. I’m sorry if this sounds convoluted – it is, a bit. But I’m confident that if you’re able to escalate the issue to whoever handled the WPML compatibility with Facebook for WooCommerce, they’ll immediately understand what I mean. Thank you. |
May 4, 2025 at 6:30 pm #16993711 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, I am in contact with our compatibility team about this case. Please go to WPML -> Languages and scroll down to the Facebook Visibility section. Please see the attached screenshot. Regards, |
May 5, 2025 at 6:37 am #16994464 | |
Giulio |
Here it is – I can confirm that we haven’t left things to chance, but have made only our primary language visible. However, as the compatibility team will confirm, synchronisation is still happening because it remains enabled on the product page. This alone triggers the synchronisation process. The sync module itself doesn’t disappear – it’s still there. WPML simply hides the products from the online catalogue. Here’s a list of annoyances this causes: - When a page in the secondary language is updated, a Facebook sync alert appears at the top (unless you manually disable automatic sync for every product and every variation – which would be a huge task). Regardless of the alert, the update triggers a connection between Facebook and the site, which ideally shouldn’t happen at all. - When browsing the catalogue on Facebook, you see a flood of duplicated and archived products. |
May 5, 2025 at 7:23 am #16994740 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, Thanks for checking the WPML > Languages > Facebook Visibility section and sending me the screenshot and further information. I've communicated your information to our compatibility team. We have a problem testing this as we don't have a Facebook store to test this with a fresh WordPress installation. However, I don't yet grasp a certain description in what you wrote. On one hand, you wrote that the FB catalog is flooded with duplicated and archived products, but on the other hand, you say that we can't see it in your FB shop. Is this problem with duplicated and archived products only visible to the store owner? If so, can you please share screenshots of this problem with us? Is there another way you recognize that all the translated products are being synced to the FB shop? Regards, |
May 5, 2025 at 7:49 am #16994946 | |
Giulio |
Sure, happy to! Let me first provide a bit of context to help clarify things further. On Facebook, a product within the catalogue can either be online (and thus visible) or archived (and therefore hidden). If I’ve understood correctly, the WPML > Languages > Facebook Visibility feature allows secondary language products to be archived by default. This means they don’t appear in the online catalogue, which is exactly what we want. From a consumer’s point of view, everything works perfectly – there’s no confusion. The issue I’m trying to highlight is solely from an internal management perspective, for the reasons I’ve already mentioned. In screenshots A and B, you can see the Facebook catalogue. Screenshot A shows the visible (active) products, while B shows the archived ones – which are essentially duplicates created from the secondary languages. Screenshot C shows the “Products” page in WooCommerce, where the Facebook Sync column appears. As you can see, this confirms that Facebook for WooCommerce is still syncing those products with the catalogue. And finally, screenshot D shows one of the notifications I mentioned, where WooCommerce interacts with Facebook – something that, in my view, shouldn’t be happening when the WPML > Languages > Facebook Visibility option is active. |
May 5, 2025 at 11:32 am #16995837 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Thanks for the detailed information. I passed it on to our compatibility team and will update you once I have news. I appreciate your patience. |
May 11, 2025 at 11:01 am #17019931 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, I have a response from our compatibility developer. First, he referred to this section of what you wrote:
And his reply was:
Our developer says we don't consider this a bug but a feature request. To proceed with submitting this as a feature request, we ask you to give us access to your site and allow us to install the JSM Show Meta Post to see if this option is saved in a custom field. If you need further help with this, please share the access details to your site with me. I'm enabling a private message for the following reply. |
May 11, 2025 at 11:48 am #17020017 | |
Giulio |
Good morning, and thank you for the valuable feedback. As for installing a plugin on our live site, unfortunately that’s not possible. However, if you need specific data, we can extract it – even directly from the database. We have an external developer who works with us on an hourly basis, so it wouldn’t be difficult. Please let us know exactly what you need and we’ll export it. If I’ve understood correctly, you’re trying to determine whether a particular option is saved for each product as a custom field – is that right? If you could provide more details, I’d really appreciate it, so we can target exactly what you’re looking for. Thanks a lot. |
May 11, 2025 at 1:27 pm #17020192 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, Thanks for your message and willingness to check things further. I forwarded your reply to our compatibility team and await their reply. Regards, |
May 13, 2025 at 10:57 am #17026667 | |
Itamar WPML Supporter since 02/2016
Languages: English (English ) Timezone: Asia/Jerusalem (GMT+03:00) |
Hi, Our second-tier supporter provided the following answer:
Please let me know how you want to proceed. Thanks, |
May 20, 2025 at 1:27 pm #17053005 | |
Giulio |
Good morning Itamar, Apologies for the delayed response – we’ve addressed this matter as promptly as possible. In reply to the last message from your second-level support, following an analysis with our developer, here’s what we’ve found: - The GroupID of the product changes depending on the language, as do the variant IDs – this confirms that within the Meta ecosystem, these products/variants are treated as entirely separate entities. If needed, we can export all metafields for a sample product in both the primary and secondary language. - We haven’t found any “Multilingual Content Setup” metaboxes on products – neither in the primary language nor in any of the secondary ones. - There are no custom fields controlling the sync status. - In the database, for a product variant in the primary language, there is a parameter indicating that synchronisation should occur: meta key: _wc_facebooksync_enabled with meta_value: yes. In the translated (secondary language) version, this entry is entirely absent. I hope this provides some helpful insight to the relevant team. Thank you. |