Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder/feature/global-p...
File: Settings.php
<?php
[0] Fix | Delete
[1] Fix | Delete
class ET_Builder_Global_Presets_Settings {
[2] Fix | Delete
const CUSTOM_DEFAULTS_OPTION = 'builder_custom_defaults';
[3] Fix | Delete
const CUSTOM_DEFAULTS_UNMIGRATED_OPTION = 'builder_custom_defaults_unmigrated';
[4] Fix | Delete
const CUSTOMIZER_SETTINGS_MIGRATED_FLAG = 'customizer_settings_migrated_flag';
[5] Fix | Delete
[6] Fix | Delete
const GLOBAL_PRESETS_OPTION = 'builder_global_presets';
[7] Fix | Delete
const CUSTOM_DEFAULTS_MIGRATED_FLAG = 'custom_defaults_migrated_flag';
[8] Fix | Delete
const MODULE_PRESET_ATTRIBUTE = '_module_preset';
[9] Fix | Delete
const MODULE_INITIAL_PRESET_ID = '_initial';
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* @var array - The list of the product short names we allowing to do a Module Customizer settings migration rollback
[13] Fix | Delete
*/
[14] Fix | Delete
public static $allowed_products = array(
[15] Fix | Delete
'divi' => '4.5',
[16] Fix | Delete
'extra' => '4.5',
[17] Fix | Delete
);
[18] Fix | Delete
[19] Fix | Delete
// Migration phase two settings
[20] Fix | Delete
public static $phase_two_settings = array(
[21] Fix | Delete
'body_font_size',
[22] Fix | Delete
'captcha_font_size',
[23] Fix | Delete
'caption_font_size',
[24] Fix | Delete
'filter_font_size',
[25] Fix | Delete
'form_field_font_size',
[26] Fix | Delete
'header_font_size',
[27] Fix | Delete
'meta_font_size',
[28] Fix | Delete
'number_font_size',
[29] Fix | Delete
'percent_font_size',
[30] Fix | Delete
'price_font_size',
[31] Fix | Delete
'sale_badge_font_size',
[32] Fix | Delete
'sale_price_font_size',
[33] Fix | Delete
'subheader_font_size',
[34] Fix | Delete
'title_font_size',
[35] Fix | Delete
'toggle_font_size',
[36] Fix | Delete
'icon_size',
[37] Fix | Delete
'padding',
[38] Fix | Delete
'custom_padding',
[39] Fix | Delete
);
[40] Fix | Delete
[41] Fix | Delete
protected static $_module_additional_slugs = array(
[42] Fix | Delete
'et_pb_section' => array(
[43] Fix | Delete
'et_pb_section_fullwidth',
[44] Fix | Delete
'et_pb_section_specialty',
[45] Fix | Delete
),
[46] Fix | Delete
'et_pb_slide' => array(
[47] Fix | Delete
'et_pb_slide_fullwidth',
[48] Fix | Delete
),
[49] Fix | Delete
'et_pb_column' => array(
[50] Fix | Delete
'et_pb_column_specialty',
[51] Fix | Delete
),
[52] Fix | Delete
);
[53] Fix | Delete
[54] Fix | Delete
protected static $_module_types_conversion_map = array(
[55] Fix | Delete
'et_pb_section' => '_convert_section_type',
[56] Fix | Delete
'et_pb_column' => '_convert_column_type',
[57] Fix | Delete
'et_pb_column_inner' => '_convert_column_type',
[58] Fix | Delete
'et_pb_slide' => '_convert_slide_type',
[59] Fix | Delete
);
[60] Fix | Delete
[61] Fix | Delete
protected static $_module_import_types_conversion_map = array(
[62] Fix | Delete
'et_pb_section_specialty' => 'et_pb_section',
[63] Fix | Delete
'et_pb_section_fullwidth' => 'et_pb_section',
[64] Fix | Delete
'et_pb_column_inner' => 'et_bp_column',
[65] Fix | Delete
'et_pb_slide_fullwidth' => 'et_pb_slide',
[66] Fix | Delete
'et_pb_column_specialty' => 'et_pb_column',
[67] Fix | Delete
);
[68] Fix | Delete
[69] Fix | Delete
protected static $_instance;
[70] Fix | Delete
protected $_settings;
[71] Fix | Delete
[72] Fix | Delete
protected function __construct() {
[73] Fix | Delete
$global_presets = et_get_option( self::GLOBAL_PRESETS_OPTION, (object) array(), '', true );
[74] Fix | Delete
[75] Fix | Delete
$this->_settings = $this->_normalize_global_presets( $global_presets );
[76] Fix | Delete
[77] Fix | Delete
$this->_register_hooks();
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
protected function _register_hooks() {
[81] Fix | Delete
add_action( 'et_after_version_rollback', array( $this, 'after_version_rollback' ), 10, 3 );
[82] Fix | Delete
add_action( 'et_builder_modules_loaded', array( $this, 'migrate_custom_defaults' ), 100 );
[83] Fix | Delete
}
[84] Fix | Delete
[85] Fix | Delete
/**
[86] Fix | Delete
* Returns instance of the singleton class
[87] Fix | Delete
*
[88] Fix | Delete
* @since 4.5.0
[89] Fix | Delete
*
[90] Fix | Delete
* @return ET_Builder_Global_Presets_Settings
[91] Fix | Delete
*/
[92] Fix | Delete
public static function instance() {
[93] Fix | Delete
if ( ! isset( self::$_instance ) ) {
[94] Fix | Delete
self::$_instance = new self;
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
return self::$_instance;
[98] Fix | Delete
}
[99] Fix | Delete
[100] Fix | Delete
/**
[101] Fix | Delete
* Returns the list of additional module slugs used to separate Global Presets settings.
[102] Fix | Delete
* For example defaults for sections must be separated depends on the section type (regular, fullwidth or specialty).
[103] Fix | Delete
*
[104] Fix | Delete
* @since 4.5.0
[105] Fix | Delete
*
[106] Fix | Delete
* @param $module_slug - The module slug for which additional slugs are looked up
[107] Fix | Delete
*
[108] Fix | Delete
* @return array - The list of the additional slugs
[109] Fix | Delete
*/
[110] Fix | Delete
public function get_module_additional_slugs( $module_slug ) {
[111] Fix | Delete
if ( ! empty( self::$_module_additional_slugs[ $module_slug ] ) ) {
[112] Fix | Delete
return self::$_module_additional_slugs[ $module_slug ];
[113] Fix | Delete
}
[114] Fix | Delete
[115] Fix | Delete
return array();
[116] Fix | Delete
}
[117] Fix | Delete
[118] Fix | Delete
/**
[119] Fix | Delete
* Returns builder Global Presets settings.
[120] Fix | Delete
*
[121] Fix | Delete
* @since 4.5.0
[122] Fix | Delete
*
[123] Fix | Delete
* @return object
[124] Fix | Delete
*/
[125] Fix | Delete
public function get_global_presets() {
[126] Fix | Delete
return $this->_settings;
[127] Fix | Delete
}
[128] Fix | Delete
[129] Fix | Delete
/**
[130] Fix | Delete
* Checks if the gives preset ID exists
[131] Fix | Delete
*
[132] Fix | Delete
* @since 4.5.0
[133] Fix | Delete
*
[134] Fix | Delete
* @param string $module_slug
[135] Fix | Delete
* @param string $preset_id
[136] Fix | Delete
*
[137] Fix | Delete
* @return bool
[138] Fix | Delete
*/
[139] Fix | Delete
protected function is_module_preset_exist( $module_slug, $preset_id ) {
[140] Fix | Delete
return isset( $this->_settings->{$module_slug}->presets->{$preset_id} );
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
/**
[144] Fix | Delete
* Returns a default preset ID for the given module type
[145] Fix | Delete
*
[146] Fix | Delete
* @since 4.5.0
[147] Fix | Delete
*
[148] Fix | Delete
* @param string $module_slug
[149] Fix | Delete
*
[150] Fix | Delete
* @return string
[151] Fix | Delete
*/
[152] Fix | Delete
public function get_module_default_preset_id( $module_slug ) {
[153] Fix | Delete
return isset( $this->_settings->{$module_slug}->default )
[154] Fix | Delete
? $this->_settings->{$module_slug}->default
[155] Fix | Delete
: self::MODULE_INITIAL_PRESET_ID;
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
/**
[159] Fix | Delete
* Returns the module preset ID
[160] Fix | Delete
* If the preset ID doesn't exist it will return the default preset ID
[161] Fix | Delete
*
[162] Fix | Delete
* @since 4.5.0
[163] Fix | Delete
*
[164] Fix | Delete
* @param string $module_slug
[165] Fix | Delete
* @param array $module_attrs
[166] Fix | Delete
*
[167] Fix | Delete
* @return string
[168] Fix | Delete
*/
[169] Fix | Delete
public function get_module_preset_id( $module_slug, $module_attrs ) {
[170] Fix | Delete
$preset_id = et_()->array_get( $module_attrs, self::MODULE_PRESET_ATTRIBUTE, false );
[171] Fix | Delete
[172] Fix | Delete
if ( ! $preset_id || ! $this->is_module_preset_exist( $module_slug, $preset_id ) ) {
[173] Fix | Delete
return $this->get_module_default_preset_id( $module_slug );
[174] Fix | Delete
}
[175] Fix | Delete
[176] Fix | Delete
return $preset_id;
[177] Fix | Delete
}
[178] Fix | Delete
[179] Fix | Delete
/**
[180] Fix | Delete
* Returns the module preset by the given preset ID
[181] Fix | Delete
* Returns an empty object if no preset found
[182] Fix | Delete
*
[183] Fix | Delete
* @since 4.5.0
[184] Fix | Delete
*
[185] Fix | Delete
* @param string $module_slug
[186] Fix | Delete
* @param string $preset_id
[187] Fix | Delete
*
[188] Fix | Delete
* @return stdClass
[189] Fix | Delete
*/
[190] Fix | Delete
public function get_module_preset( $module_slug, $preset_id ) {
[191] Fix | Delete
if ( isset( $this->_settings->{$module_slug}->presets->{$preset_id} ) ) {
[192] Fix | Delete
return (object) $this->_settings->{$module_slug}->presets->{$preset_id};
[193] Fix | Delete
}
[194] Fix | Delete
[195] Fix | Delete
return (object) array();
[196] Fix | Delete
}
[197] Fix | Delete
[198] Fix | Delete
/**
[199] Fix | Delete
* Returns Global Presets settings for the particular module.
[200] Fix | Delete
*
[201] Fix | Delete
* @since 4.5.0
[202] Fix | Delete
*
[203] Fix | Delete
* @param string $module_slug - The module slug
[204] Fix | Delete
* @param array $attrs - The module attributes
[205] Fix | Delete
*
[206] Fix | Delete
* @return array
[207] Fix | Delete
*/
[208] Fix | Delete
public function get_module_presets_settings( $module_slug, $attrs ) {
[209] Fix | Delete
$result = array();
[210] Fix | Delete
[211] Fix | Delete
$real_preset_id = $this->get_module_preset_id( $module_slug, $attrs );
[212] Fix | Delete
[213] Fix | Delete
if ( isset( $this->_settings->{$module_slug}->presets->{$real_preset_id}->settings ) ) {
[214] Fix | Delete
$result = (array) $this->_settings->{$module_slug}->presets->{$real_preset_id}->settings;
[215] Fix | Delete
}
[216] Fix | Delete
[217] Fix | Delete
return $result;
[218] Fix | Delete
}
[219] Fix | Delete
[220] Fix | Delete
/**
[221] Fix | Delete
* Checks whether customizer settings migrated or not
[222] Fix | Delete
*
[223] Fix | Delete
* @since 4.5.0
[224] Fix | Delete
*
[225] Fix | Delete
* @return bool
[226] Fix | Delete
*/
[227] Fix | Delete
public static function is_customizer_migrated() {
[228] Fix | Delete
return et_get_option( self::CUSTOMIZER_SETTINGS_MIGRATED_FLAG, false );
[229] Fix | Delete
}
[230] Fix | Delete
[231] Fix | Delete
/**
[232] Fix | Delete
* Checks whether Custom Defaults settings migrated or not
[233] Fix | Delete
*
[234] Fix | Delete
* @since 4.5.0
[235] Fix | Delete
*
[236] Fix | Delete
* @return bool
[237] Fix | Delete
*/
[238] Fix | Delete
public static function are_custom_defaults_migrated() {
[239] Fix | Delete
return et_get_option( self::CUSTOM_DEFAULTS_MIGRATED_FLAG, false );
[240] Fix | Delete
}
[241] Fix | Delete
[242] Fix | Delete
/**
[243] Fix | Delete
* Migrates Module Customizer settings to Custom Defaults
[244] Fix | Delete
*
[245] Fix | Delete
* @since 4.5.0
[246] Fix | Delete
*
[247] Fix | Delete
* @param array $defaults - The list of modules default settings
[248] Fix | Delete
*
[249] Fix | Delete
*/
[250] Fix | Delete
public function migrate_customizer_settings( $defaults ) {
[251] Fix | Delete
$template_directory = get_template_directory();
[252] Fix | Delete
[253] Fix | Delete
require_once $template_directory . '/includes/module-customizer/migrations.php';
[254] Fix | Delete
[255] Fix | Delete
$migrations = ET_Module_Customizer_Migrations::instance();
[256] Fix | Delete
[257] Fix | Delete
list (
[258] Fix | Delete
$custom_defaults,
[259] Fix | Delete
$custom_defaults_unmigrated,
[260] Fix | Delete
) = $migrations->migrate( $defaults );
[261] Fix | Delete
[262] Fix | Delete
et_update_option( self::CUSTOM_DEFAULTS_OPTION, (object) $custom_defaults );
[263] Fix | Delete
et_update_option( self::CUSTOMIZER_SETTINGS_MIGRATED_FLAG, true );
[264] Fix | Delete
[265] Fix | Delete
if ( ! empty( $custom_defaults_unmigrated ) ) {
[266] Fix | Delete
et_update_option( self::CUSTOM_DEFAULTS_UNMIGRATED_OPTION, (object) $custom_defaults_unmigrated );
[267] Fix | Delete
} else {
[268] Fix | Delete
et_update_option( self::CUSTOM_DEFAULTS_UNMIGRATED_OPTION, false );
[269] Fix | Delete
}
[270] Fix | Delete
}
[271] Fix | Delete
[272] Fix | Delete
/**
[273] Fix | Delete
* Generates `_initial` module presets structure
[274] Fix | Delete
*
[275] Fix | Delete
* @since 4.5.0
[276] Fix | Delete
*
[277] Fix | Delete
* @param string $module_slug
[278] Fix | Delete
* @param array $all_modules
[279] Fix | Delete
*
[280] Fix | Delete
* @return object
[281] Fix | Delete
*/
[282] Fix | Delete
public static function generate_module_initial_presets_structure( $module_slug, $all_modules ) {
[283] Fix | Delete
$structure = (object) array();
[284] Fix | Delete
$module_slug_converted = isset( self::$_module_import_types_conversion_map[ $module_slug ] )
[285] Fix | Delete
? self::$_module_import_types_conversion_map[ $module_slug ]
[286] Fix | Delete
: $module_slug;
[287] Fix | Delete
[288] Fix | Delete
$preset_name = isset( $all_modules[ $module_slug_converted ]->name )
[289] Fix | Delete
? sprintf( esc_html__( '%s Preset', 'et_builder' ), $all_modules[ $module_slug_converted ]->name )
[290] Fix | Delete
: esc_html__( 'Preset', 'et_builder' );
[291] Fix | Delete
[292] Fix | Delete
$structure->default = "_initial";
[293] Fix | Delete
$structure->presets = (object) array();
[294] Fix | Delete
$structure->presets->_initial = (object) array();
[295] Fix | Delete
$structure->presets->_initial->name = et_core_esc_previously( "{$preset_name} 1" );
[296] Fix | Delete
$structure->presets->_initial->created = 0;
[297] Fix | Delete
$structure->presets->_initial->updated = 0;
[298] Fix | Delete
$structure->presets->_initial->version = ET_BUILDER_PRODUCT_VERSION;
[299] Fix | Delete
$structure->presets->_initial->settings = (object) array();
[300] Fix | Delete
[301] Fix | Delete
return $structure;
[302] Fix | Delete
}
[303] Fix | Delete
[304] Fix | Delete
/**
[305] Fix | Delete
* Converts Custom Defaults to the new Global Presets format
[306] Fix | Delete
*
[307] Fix | Delete
* @since 4.5.0
[308] Fix | Delete
*
[309] Fix | Delete
* @param object $custom_defaults - The previous Custom Defaults
[310] Fix | Delete
*
[311] Fix | Delete
* @return object
[312] Fix | Delete
*/
[313] Fix | Delete
public static function migrate_custom_defaults_to_global_presets( $custom_defaults ) {
[314] Fix | Delete
$all_modules = ET_Builder_Element::get_modules();
[315] Fix | Delete
$presets = (object) array();
[316] Fix | Delete
[317] Fix | Delete
foreach ( $custom_defaults as $module => $settings ) {
[318] Fix | Delete
$presets->$module = ET_Builder_Global_Presets_Settings::generate_module_initial_presets_structure( $module, $all_modules );
[319] Fix | Delete
[320] Fix | Delete
foreach ( $settings as $setting => $value ) {
[321] Fix | Delete
$presets->$module->presets->_initial->settings->$setting = $value;
[322] Fix | Delete
}
[323] Fix | Delete
}
[324] Fix | Delete
[325] Fix | Delete
return $presets;
[326] Fix | Delete
}
[327] Fix | Delete
[328] Fix | Delete
/**
[329] Fix | Delete
* Migrates existing Custom Defaults to the Global Presets structure
[330] Fix | Delete
*
[331] Fix | Delete
* @since 4.5.0
[332] Fix | Delete
*/
[333] Fix | Delete
public function migrate_custom_defaults() {
[334] Fix | Delete
if ( et_is_builder_plugin_active() || ET_Builder_Global_Presets_Settings::are_custom_defaults_migrated() ) {
[335] Fix | Delete
return;
[336] Fix | Delete
}
[337] Fix | Delete
[338] Fix | Delete
$custom_defaults = et_get_option( self::CUSTOM_DEFAULTS_OPTION, false );
[339] Fix | Delete
[340] Fix | Delete
if ( ! $custom_defaults ) {
[341] Fix | Delete
$custom_defaults = (object) array();
[342] Fix | Delete
}
[343] Fix | Delete
[344] Fix | Delete
$global_presets = ET_Builder_Global_Presets_Settings::migrate_custom_defaults_to_global_presets( $custom_defaults );
[345] Fix | Delete
[346] Fix | Delete
et_update_option( self::GLOBAL_PRESETS_OPTION, $global_presets );
[347] Fix | Delete
$this->_settings = $global_presets;
[348] Fix | Delete
[349] Fix | Delete
et_update_option( self::CUSTOM_DEFAULTS_MIGRATED_FLAG, true );
[350] Fix | Delete
}
[351] Fix | Delete
[352] Fix | Delete
/**
[353] Fix | Delete
* Handles theme version rollback.
[354] Fix | Delete
*
[355] Fix | Delete
* @since 4.5.0
[356] Fix | Delete
*
[357] Fix | Delete
* @param string $product_name - The short name of the product rolling back.
[358] Fix | Delete
* @param string $rollback_from_version
[359] Fix | Delete
* @param string $rollback_to_version
[360] Fix | Delete
*/
[361] Fix | Delete
public function after_version_rollback( $product_name, $rollback_from_version, $rollback_to_version ) {
[362] Fix | Delete
if ( ! isset( self::$allowed_products[ $product_name ] ) ) {
[363] Fix | Delete
return;
[364] Fix | Delete
}
[365] Fix | Delete
[366] Fix | Delete
if ( 0 > version_compare( $rollback_to_version, self::$allowed_products[ $product_name ] ) ) {
[367] Fix | Delete
et_delete_option( self::CUSTOM_DEFAULTS_MIGRATED_FLAG );
[368] Fix | Delete
}
[369] Fix | Delete
}
[370] Fix | Delete
[371] Fix | Delete
/**
[372] Fix | Delete
* Converts module type (slug).
[373] Fix | Delete
* Used to separate Global Presets settings for modules sharing the same slug but having different meaning
[374] Fix | Delete
* For example: Regular, Fullwidth and Specialty section types
[375] Fix | Delete
*
[376] Fix | Delete
* @since 4.5.0
[377] Fix | Delete
*
[378] Fix | Delete
* @param string $type - The module type (slug)
[379] Fix | Delete
* @param array $attrs - The module attributes
[380] Fix | Delete
*
[381] Fix | Delete
* @return string - The converted module type (slug)
[382] Fix | Delete
*/
[383] Fix | Delete
public function maybe_convert_module_type( $type, $attrs ) {
[384] Fix | Delete
if ( isset( self::$_module_types_conversion_map[ $type ] ) ) {
[385] Fix | Delete
// @phpcs:ignore Generic.PHP.ForbiddenFunctions.Found
[386] Fix | Delete
$type = call_user_func_array(
[387] Fix | Delete
array( $this, self::$_module_types_conversion_map[ $type ] ),
[388] Fix | Delete
array( $attrs, $type )
[389] Fix | Delete
);
[390] Fix | Delete
}
[391] Fix | Delete
[392] Fix | Delete
return $type;
[393] Fix | Delete
}
[394] Fix | Delete
[395] Fix | Delete
/**
[396] Fix | Delete
* Converts Section module slug to appropriate slug used in Global Presets
[397] Fix | Delete
*
[398] Fix | Delete
* @since 4.5.0
[399] Fix | Delete
*
[400] Fix | Delete
* @param array $attrs - The section attributes
[401] Fix | Delete
*
[402] Fix | Delete
* @return string - The converted section type depends on the section attributes
[403] Fix | Delete
*/
[404] Fix | Delete
protected function _convert_section_type( $attrs ) {
[405] Fix | Delete
if ( isset( $attrs['fullwidth'] ) && 'on' === $attrs['fullwidth'] ) {
[406] Fix | Delete
return 'et_pb_section_fullwidth';
[407] Fix | Delete
}
[408] Fix | Delete
[409] Fix | Delete
if ( isset( $attrs['specialty'] ) && 'on' === $attrs['specialty'] ) {
[410] Fix | Delete
return 'et_pb_section_specialty';
[411] Fix | Delete
}
[412] Fix | Delete
[413] Fix | Delete
return 'et_pb_section';
[414] Fix | Delete
}
[415] Fix | Delete
[416] Fix | Delete
/**
[417] Fix | Delete
* Converts Slide module slug to appropriate slug used in Global Presets
[418] Fix | Delete
*
[419] Fix | Delete
* @since 4.5.0
[420] Fix | Delete
*
[421] Fix | Delete
* @return string - The converted slide type depends on the parent slider type
[422] Fix | Delete
*/
[423] Fix | Delete
protected function _convert_slide_type() {
[424] Fix | Delete
global $et_pb_slider_parent_type;
[425] Fix | Delete
[426] Fix | Delete
if ( 'et_pb_fullwidth_slider' === $et_pb_slider_parent_type ) {
[427] Fix | Delete
return 'et_pb_slide_fullwidth';
[428] Fix | Delete
}
[429] Fix | Delete
[430] Fix | Delete
return 'et_pb_slide';
[431] Fix | Delete
}
[432] Fix | Delete
[433] Fix | Delete
/**
[434] Fix | Delete
* Converts Column module slug to appropriate slug used in Global Presets
[435] Fix | Delete
*
[436] Fix | Delete
* @since 4.5.0
[437] Fix | Delete
*
[438] Fix | Delete
* @return string - The converted column type
[439] Fix | Delete
*/
[440] Fix | Delete
protected function _convert_column_type( $attrs, $type ) {
[441] Fix | Delete
global $et_pb_parent_section_type;
[442] Fix | Delete
[443] Fix | Delete
if ( 'et_pb_column_inner' === $type ) {
[444] Fix | Delete
return 'et_pb_column';
[445] Fix | Delete
}
[446] Fix | Delete
[447] Fix | Delete
if ( 'et_pb_specialty_section' === $et_pb_parent_section_type
[448] Fix | Delete
|| ( isset( $attrs['specialty_columns'] ) && '' !== $attrs['specialty_columns'] ) ) {
[449] Fix | Delete
return 'et_pb_column_specialty';
[450] Fix | Delete
}
[451] Fix | Delete
[452] Fix | Delete
return 'et_pb_column';
[453] Fix | Delete
}
[454] Fix | Delete
[455] Fix | Delete
/**
[456] Fix | Delete
* Filters Global Presets setting to avoid non plain values like arrays or objects
[457] Fix | Delete
*
[458] Fix | Delete
* @since 4.5.0
[459] Fix | Delete
*
[460] Fix | Delete
* @param $value - The Global Presets setting value
[461] Fix | Delete
*
[462] Fix | Delete
* @return bool
[463] Fix | Delete
*/
[464] Fix | Delete
protected static function _filter_global_presets_setting_value( $value ) {
[465] Fix | Delete
return ! is_object( $value ) && ! is_array( $value );
[466] Fix | Delete
}
[467] Fix | Delete
[468] Fix | Delete
/**
[469] Fix | Delete
* Performs Global Presets format normalization.
[470] Fix | Delete
* Usually used to cast format from array to object
[471] Fix | Delete
*
[472] Fix | Delete
* @since 4.5.0
[473] Fix | Delete
*
[474] Fix | Delete
* @param $presets - The object representing Global Presets settings
[475] Fix | Delete
*
[476] Fix | Delete
* @return object
[477] Fix | Delete
*/
[478] Fix | Delete
protected function _normalize_global_presets( $presets ) {
[479] Fix | Delete
$result = (object) array();
[480] Fix | Delete
[481] Fix | Delete
foreach ( $presets as $module => $preset_structure ) {
[482] Fix | Delete
if ( isset( $preset_structure->presets ) ) {
[483] Fix | Delete
$result->$module = (object) array();
[484] Fix | Delete
$result->$module->presets = (object) array();
[485] Fix | Delete
[486] Fix | Delete
foreach ( $preset_structure->presets as $preset_id => $preset ) {
[487] Fix | Delete
$result->$module->presets->$preset_id = (object) array();
[488] Fix | Delete
$result->$module->presets->$preset_id->name = $preset->name;
[489] Fix | Delete
$result->$module->presets->$preset_id->created = $preset->created;
[490] Fix | Delete
$result->$module->presets->$preset_id->updated = $preset->updated;
[491] Fix | Delete
$result->$module->presets->$preset_id->version = $preset->version;
[492] Fix | Delete
[493] Fix | Delete
if ( isset( $preset->settings ) ) {
[494] Fix | Delete
$result->$module->presets->$preset_id->settings = (object) array();
[495] Fix | Delete
[496] Fix | Delete
$settings_filtered = array_filter( (array) $preset->settings, array( $this,
[497] Fix | Delete
'_filter_global_presets_setting_value'
[498] Fix | Delete
) );
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function