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 );