File "customization.php"
Full Path: /home/fresvfqn/waterdamagerestorationandrepairsmithtown.com/wp-content/plugins/elementor/app/modules/import-export-customization/compatibility/customization.php
File size: 2.25 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Elementor\App\Modules\ImportExportCustomization\Compatibility;
use Elementor\App\Modules\ImportExportCustomization\Module;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Handles conversion from manifest format v2.0 to v3.0
* Main change: site-settings changed from array of tab keys to object with boolean values
*/
class Customization extends Base_Adapter {
/**
* Check if compatibility is needed based on manifest version
*
* @param array $manifest_data
* @param array $meta
* @return bool
*/
public static function is_compatibility_needed( array $manifest_data, array $meta ) {
// Check if we have an old version (2.0 or lower)
$version = $manifest_data['version'] ?? '1.0';
return version_compare( $version, '3.0', '<' );
}
/**
* Adapt the manifest from old format to new format
*
* @param array $manifest_data
* @return array
*/
public function adapt_manifest( array $manifest_data ) {
// Check if site-settings needs adaptation
if ( isset( $manifest_data['site-settings'] ) && is_array( $manifest_data['site-settings'] ) ) {
// Old format: array of tab keys
// New format: object with boolean values for each setting type
$old_site_settings = $manifest_data['site-settings'];
// Initialize new format with all settings as false
$new_site_settings = [
'theme' => false,
'globalColors' => false,
'globalFonts' => false,
'themeStyleSettings' => false,
'generalSettings' => false,
'experiments' => false,
];
// Map old tab keys to new setting types
$tab_mapping = [
'settings-global-colors' => 'globalColors',
'settings-global-typography' => 'globalFonts',
'theme-style-typography' => 'themeStyleSettings',
'settings-general' => 'generalSettings',
];
// If we have tab keys, assume all were exported (true)
if ( ! empty( $old_site_settings ) ) {
// In the old format, if site-settings was included, all settings were exported
$new_site_settings = [
'theme' => true,
'globalColors' => true,
'globalFonts' => true,
'themeStyleSettings' => true,
'generalSettings' => true,
'experiments' => true,
];
}
$manifest_data['site-settings'] = $new_site_settings;
}
return $manifest_data;
}
}