Open
Reported for: WPML Media Translation 2.7.0
Overview of the issue
Even after disabling all the media options under How to handle media for new content at WPML → Settings → Media Translation, your site’s media will still be duplicated when you add a new language.
Workaround
Please make a full backup of your site before proceeding:
- Open the wp-content/plugins/sitepress-multilingual-cms/classes/media/Loader.php file.
Change from:
public static function getData() { return [ 'name' => 'media_setup', 'data' => [ 'endpoints' => [ 'prepareForTranslation' => PrepareForTranslation::class, 'translateExistingMedia' => TranslateExistingMedia::class, 'duplicateFeaturedImages' => DuplicateFeaturedImages::class, 'finishMediaTranslation' => FinishMediaTranslation::class, 'prepareForSetup' => PrepareSetup::class, 'performSetup' => PerformSetup::class, ] ] ]; } }
To:
public static function getData() { $media_handling = get_transient( 'media_handling' ); if ( ! $media_handling ) { $check = get_option( '_wpml_media' ); if ( $check["new_content_settings"]["duplicate_media"] ) { return [ 'name' => 'media_setup', 'data' => [ 'endpoints' => [ 'prepareForTranslation' => PrepareForTranslation::class, 'translateExistingMedia' => TranslateExistingMedia::class, 'duplicateFeaturedImages' => DuplicateFeaturedImages::class, 'finishMediaTranslation' => FinishMediaTranslation::class, 'prepareForSetup' => PrepareSetup::class, 'performSetup' => PerformSetup::class, ] ] ]; } set_transient('media_handling', true, DAY_IN_SECONDS); } else { return [ 'name' => 'media_setup', 'data' => [ 'endpoints' => [ 'prepareForTranslation' => PrepareForTranslation::class, 'duplicateFeaturedImages' => DuplicateFeaturedImages::class, 'finishMediaTranslation' => FinishMediaTranslation::class, 'prepareForSetup' => PrepareSetup::class, 'performSetup' => PerformSetup::class, ] ] ]; } } }
Please Note:
This code will not delete the duplicated images, it will just prevent the duplication process when creating a new language.