Open
Reported for: WP All Import Multilingual 2.3.0
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.