Resolved
Reported for: WP All Import Multilingual 2.3.0
Resolved in: WP All Import Multilingual 2.3.1
Overview of the issue
When importing variable products with WP All Import and the WPML All Import add-on on a server running PHP 8, you will see the following error:
PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, class WCML_Synchronize_Product_Data does not have a method “delete_empty_post_meta_for_translations” in /wp-includes/class-wp-hook.php:309
In PHP 7.0, this error displays as a warning.
Workaround
Please make a full backup of your site before proceeding.
- Open the …/wp-content/plugins/wpml-all-import/classes/WCML.php file.
- Look for line 35 and comment it out:
//remove_action( 'deleted_post_meta', [ $WCMLSynchronizeProductData, 'delete_empty_post_meta_for_translations' ], 10, 3 );
- Do the same with line 46:
//add_action( 'deleted_post_meta', [ $this->getWCMLSynchronizeProductData(), 'delete_empty_post_meta_for_translations' ], 10, 3 );
Why is this not released yet as a fix?
This issue has more than one year: https://wordpress.org/support/topic/error-after-import-wpallimport/
This issue is already in our devs roadmap although we don’t have an ETA yet.
In the meantime, you can continue using the workaround here provided or using our WPML Export and Import plugin.
On the roadmap for more than one year? 🙄
We will keep this page updated once we have any news.
Any update on this? We have been waiting for some time.
Hi there, this is planned for the next version, but unfortunately, I don’t have a confirmed ETA at the moment. We’ll make sure to keep this page updated as soon as we have more information.