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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder/module/helpers
File: ResponsiveOptions.php
[1000] Fix | Delete
foreach ( $values_array as $device => $declaration ) {
[1001] Fix | Delete
if ( empty( $declaration ) ) {
[1002] Fix | Delete
continue;
[1003] Fix | Delete
}
[1004] Fix | Delete
[1005] Fix | Delete
$style = array(
[1006] Fix | Delete
'selector' => $css_selector,
[1007] Fix | Delete
'declaration' => $declaration,
[1008] Fix | Delete
);
[1009] Fix | Delete
[1010] Fix | Delete
// Media query.
[1011] Fix | Delete
if ( 'desktop_only' === $device ) {
[1012] Fix | Delete
$style['media_query'] = ET_Builder_Element::get_media_query( 'min_width_981' );
[1013] Fix | Delete
} elseif ( 'desktop' !== $device ) {
[1014] Fix | Delete
$current_media_query = 'tablet' === $device ? 'max_width_980' : 'max_width_767';
[1015] Fix | Delete
$style['media_query'] = ET_Builder_Element::get_media_query( $current_media_query );
[1016] Fix | Delete
}
[1017] Fix | Delete
[1018] Fix | Delete
// Priority.
[1019] Fix | Delete
if ( '' !== $priority ) {
[1020] Fix | Delete
$style['priority'] = $priority;
[1021] Fix | Delete
}
[1022] Fix | Delete
[1023] Fix | Delete
ET_Builder_Element::set_style( $function_name, $style );
[1024] Fix | Delete
}
[1025] Fix | Delete
}
[1026] Fix | Delete
[1027] Fix | Delete
/**
[1028] Fix | Delete
* Generate additional responsive fields such as _tablet, _phone, and _last_edited.
[1029] Fix | Delete
*
[1030] Fix | Delete
* @since 3.23
[1031] Fix | Delete
*
[1032] Fix | Delete
* @param string $field_name Base field name.
[1033] Fix | Delete
* @param string $toggle_slug Toggle slug name.
[1034] Fix | Delete
* @param string $tab_slug Tab slug name.
[1035] Fix | Delete
* @param array $field Field data in array.
[1036] Fix | Delete
* @return array Responsive fields set.
[1037] Fix | Delete
*/
[1038] Fix | Delete
public function generate_responsive_fields( $field_name, $toggle_slug, $tab_slug, $field = array() ) {
[1039] Fix | Delete
$responsive_options = array();
[1040] Fix | Delete
[1041] Fix | Delete
// Add fields with responsive suffix for each devices.
[1042] Fix | Delete
$responsive_options["{$field_name}_tablet"] = array(
[1043] Fix | Delete
'type' => 'skip',
[1044] Fix | Delete
'tab_slug' => $tab_slug,
[1045] Fix | Delete
'toggle_slug' => $toggle_slug,
[1046] Fix | Delete
);
[1047] Fix | Delete
$responsive_options["{$field_name}_phone"] = array(
[1048] Fix | Delete
'type' => 'skip',
[1049] Fix | Delete
'tab_slug' => $tab_slug,
[1050] Fix | Delete
'toggle_slug' => $toggle_slug,
[1051] Fix | Delete
);
[1052] Fix | Delete
$responsive_options["{$field_name}_last_edited"] = array(
[1053] Fix | Delete
'type' => 'skip',
[1054] Fix | Delete
'tab_slug' => $tab_slug,
[1055] Fix | Delete
'toggle_slug' => $toggle_slug,
[1056] Fix | Delete
);
[1057] Fix | Delete
[1058] Fix | Delete
// Add computed effect field on mobile and hover fields.
[1059] Fix | Delete
if ( ! empty( $field['computed_affects'] ) && isset( $field['affects_mobile'] ) && true === $field['affects_mobile'] ) {
[1060] Fix | Delete
$responsive_options["{$field_name}_tablet"]['computed_affects'] = $field['computed_affects'];
[1061] Fix | Delete
$responsive_options["{$field_name}_phone"]['computed_affects'] = $field['computed_affects'];
[1062] Fix | Delete
[1063] Fix | Delete
$responsive_options["{$field_name}__hover"] = array(
[1064] Fix | Delete
'type' => 'skip',
[1065] Fix | Delete
'tab_slug' => $tab_slug,
[1066] Fix | Delete
'toggle_slug' => $toggle_slug,
[1067] Fix | Delete
'computed_affects' => $field['computed_affects'],
[1068] Fix | Delete
);
[1069] Fix | Delete
}
[1070] Fix | Delete
[1071] Fix | Delete
// Set default on tablet and phone if needed.
[1072] Fix | Delete
if ( ! empty( $field['default_on_mobile'] ) ) {
[1073] Fix | Delete
$default = ! empty( $field['default'] ) ? $field['default'] : '';
[1074] Fix | Delete
$default_mobile = ! empty( $field['default_on_mobile'] ) ? $field['default_on_mobile'] : $default;
[1075] Fix | Delete
$default_tablet = ! empty( $field['default_on_tablet'] ) ? $field['default_on_tablet'] : $default_mobile;
[1076] Fix | Delete
$default_phone = ! empty( $field['default_on_phone'] ) ? $field['default_on_phone'] : $default_mobile;
[1077] Fix | Delete
[1078] Fix | Delete
$responsive_options["{$field_name}_tablet"]['default'] = $default_tablet;
[1079] Fix | Delete
$responsive_options["{$field_name}_phone"]['default'] = $default_phone;
[1080] Fix | Delete
}
[1081] Fix | Delete
[1082] Fix | Delete
// Set default on hover if needed.
[1083] Fix | Delete
if ( ! empty( $field['default_on_hover'] ) ) {
[1084] Fix | Delete
$default = ! empty( $field['default'] ) ? $field['default'] : '';
[1085] Fix | Delete
$default_hover = ! empty( $field['default_on_hover'] ) ? $field['default_on_hover'] : $default_mobile;
[1086] Fix | Delete
[1087] Fix | Delete
$responsive_options["{$field_name}__hover"]['default'] = $default_hover;
[1088] Fix | Delete
}
[1089] Fix | Delete
[1090] Fix | Delete
return $responsive_options;
[1091] Fix | Delete
}
[1092] Fix | Delete
[1093] Fix | Delete
/**
[1094] Fix | Delete
* Get main background value based on enabled status of current field. It's used to selectively
[1095] Fix | Delete
* get the correct color, gradient status, image, and video. It's introduced along with new
[1096] Fix | Delete
* enable fields to decide should we remove or inherit the value from larger device.
[1097] Fix | Delete
*
[1098] Fix | Delete
* @since 3.24.1
[1099] Fix | Delete
*
[1100] Fix | Delete
* @param array $attrs All module attributes.
[1101] Fix | Delete
* @param string $base_setting Setting need to be checked.
[1102] Fix | Delete
* @param string $preview_mode Current preview mode.
[1103] Fix | Delete
* @param string $background_base Background base name (background, button_bg, etc.)
[1104] Fix | Delete
* @param array $fields All module fields definition.
[1105] Fix | Delete
* @param string $value Active value.
[1106] Fix | Delete
* @param string $default_value Active default value.
[1107] Fix | Delete
*
[1108] Fix | Delete
* @return string New value.
[1109] Fix | Delete
*/
[1110] Fix | Delete
public function get_inheritance_background_value( $attrs, $base_setting, $preview_mode, $background_base = 'background', $fields = array(), $value = '', $default_value = '') {
[1111] Fix | Delete
// Default new value is same with the generated or active one.
[1112] Fix | Delete
$new_value = $value;
[1113] Fix | Delete
[1114] Fix | Delete
$enable_fields = array(
[1115] Fix | Delete
"{$background_base}_color" => "{$background_base}_enable_color",
[1116] Fix | Delete
"use_background_color_gradient" => "use_background_color_gradient",
[1117] Fix | Delete
"{$background_base}_use_color_gradient" => "{$background_base}_enable_use_color_gradient",
[1118] Fix | Delete
"{$background_base}_image" => "{$background_base}_enable_image",
[1119] Fix | Delete
"video_{$background_base}_values" => "video_{$background_base}_values",
[1120] Fix | Delete
);
[1121] Fix | Delete
[1122] Fix | Delete
// Empty string is slug for desktop.
[1123] Fix | Delete
$map_slugs = array(
[1124] Fix | Delete
'desktop' => array( '' ),
[1125] Fix | Delete
'hover' => array( '__hover', '' ),
[1126] Fix | Delete
'tablet' => array( '_tablet', '' ),
[1127] Fix | Delete
'phone' => array( '_phone', '_tablet', '' ),
[1128] Fix | Delete
);
[1129] Fix | Delete
[1130] Fix | Delete
// Start checking if current field is enabled or disabled.
[1131] Fix | Delete
$base_enable_field_name = et_()->array_get( $enable_fields, $base_setting, '' );
[1132] Fix | Delete
[1133] Fix | Delete
// Bail early if setting name is different.
[1134] Fix | Delete
if ( '' === $base_enable_field_name || ! isset( $map_slugs[ $preview_mode ] ) ) {
[1135] Fix | Delete
return $new_value;
[1136] Fix | Delete
}
[1137] Fix | Delete
[1138] Fix | Delete
$new_value = '';
[1139] Fix | Delete
[1140] Fix | Delete
$origin_mp4_enabled = '';
[1141] Fix | Delete
$origin_mp4_data = array();
[1142] Fix | Delete
$origin_webm_enabled = '';
[1143] Fix | Delete
$origin_webm_data = array();
[1144] Fix | Delete
[1145] Fix | Delete
foreach( $map_slugs[ $preview_mode ] as $slug ) {
[1146] Fix | Delete
[1147] Fix | Delete
// BG Color.
[1148] Fix | Delete
if ( in_array( $base_setting, array( "{$background_base}_color", "{$background_base}_image" ) ) ) {
[1149] Fix | Delete
[1150] Fix | Delete
$base_type = str_replace( "{$background_base}_", '', $base_setting );
[1151] Fix | Delete
$enable_default = et_()->array_get( $fields, "{$background_base}_enable_{$base_type}{$slug}.default", '' );
[1152] Fix | Delete
$enable_value = et_()->array_get( $attrs, "{$background_base}_enable_{$base_type}{$slug}", $enable_default );
[1153] Fix | Delete
$bg_value = et_()->array_get( $attrs, "{$background_base}_{$base_type}{$slug}", '' );
[1154] Fix | Delete
$is_bg_enabled = 'off' !== $enable_value;
[1155] Fix | Delete
[1156] Fix | Delete
if ( '' !== $bg_value && $is_bg_enabled ) {
[1157] Fix | Delete
$new_value = $bg_value;
[1158] Fix | Delete
break;
[1159] Fix | Delete
} else if ( ! $is_bg_enabled ) {
[1160] Fix | Delete
$new_value = '';
[1161] Fix | Delete
break;
[1162] Fix | Delete
}
[1163] Fix | Delete
[1164] Fix | Delete
// BG Gradient.
[1165] Fix | Delete
} else if ( in_array( $base_setting, array( 'use_background_color_gradient', "{$background_base}_use_color_gradient" ) ) ) {
[1166] Fix | Delete
[1167] Fix | Delete
$new_value = 'off';
[1168] Fix | Delete
[1169] Fix | Delete
$field_map = array(
[1170] Fix | Delete
'use_background_color_gradient' => array(
[1171] Fix | Delete
'value' => "use_background_color_gradient{$slug}",
[1172] Fix | Delete
'start' => "{$background_base}_color_gradient_start{$slug}",
[1173] Fix | Delete
'end' => "{$background_base}_color_gradient_end{$slug}",
[1174] Fix | Delete
),
[1175] Fix | Delete
"{$background_base}_use_color_gradient" => array(
[1176] Fix | Delete
'value' => "{$background_base}_use_color_gradient{$slug}",
[1177] Fix | Delete
'start' => "{$background_base}_color_gradient_start{$slug}",
[1178] Fix | Delete
'end' => "{$background_base}_color_gradient_end{$slug}",
[1179] Fix | Delete
),
[1180] Fix | Delete
);
[1181] Fix | Delete
[1182] Fix | Delete
$field_value = et_()->array_get( $field_map, "{$base_setting}.value", '' );
[1183] Fix | Delete
$field_start = et_()->array_get( $field_map, "{$base_setting}.start", '' );
[1184] Fix | Delete
$field_end = et_()->array_get( $field_map, "{$base_setting}.end", '' );
[1185] Fix | Delete
[1186] Fix | Delete
$use_gradient_default = et_()->array_get( $fields, $field_value, '' );
[1187] Fix | Delete
$use_gradient_value = et_()->array_get( $attrs, $field_value, $use_gradient_default );
[1188] Fix | Delete
$gradient_start_value = et_()->array_get( $attrs, $field_start, '' );
[1189] Fix | Delete
$gradient_end_value = et_()->array_get( $attrs, $field_end, '' );
[1190] Fix | Delete
$is_gradient_enabled = 'off' !== $use_gradient_value;
[1191] Fix | Delete
[1192] Fix | Delete
if ( ( '' !== $gradient_start_value || '' !== $gradient_end_value ) && $is_gradient_enabled ) {
[1193] Fix | Delete
$new_value = 'on';
[1194] Fix | Delete
break;
[1195] Fix | Delete
} else if ( ! $is_gradient_enabled ) {
[1196] Fix | Delete
$new_value = 'off';
[1197] Fix | Delete
break;
[1198] Fix | Delete
}
[1199] Fix | Delete
[1200] Fix | Delete
// BG Video.
[1201] Fix | Delete
} else if ( "video_{$background_base}_values" === $base_setting ) {
[1202] Fix | Delete
$base_slug = preg_replace('/[_]+/', '', $slug);
[1203] Fix | Delete
$current_mode = '' !== $base_slug ? $base_slug : 'desktop';
[1204] Fix | Delete
[1205] Fix | Delete
// Video markup.
[1206] Fix | Delete
$video_background = et_()->array_get( $attrs, "{$base_setting}.{$current_mode}", '' );
[1207] Fix | Delete
[1208] Fix | Delete
// MP4.
[1209] Fix | Delete
$enable_mp4_default = et_()->array_get( $fields, "{$background_base}_enable_video_mp4{$slug}", '' );
[1210] Fix | Delete
$enable_mp4_value = $this->get_any_value( $attrs, "{$background_base}_enable_video_mp4{$slug}", $enable_mp4_default, true );
[1211] Fix | Delete
$is_mp4_enabled = 'off' !== $enable_mp4_value;
[1212] Fix | Delete
[1213] Fix | Delete
$video_mp4_value = et_pb_responsive_options()->get_any_value( $attrs, "{$background_base}_video_mp4" );
[1214] Fix | Delete
if ( 'hover' === $current_mode ) {
[1215] Fix | Delete
$video_mp4_hover_value = et_()->array_get( $attrs, "{$background_base}_video_mp4__hover", '' );
[1216] Fix | Delete
$video_mp4_value = '' !== $video_mp4_hover_value ? $video_mp4_hover_value : $video_mp4_value;
[1217] Fix | Delete
} else {
[1218] Fix | Delete
$video_mp4_value = et_pb_responsive_options()->get_any_value( $attrs, "{$background_base}_video_mp4{$slug}", '', true );
[1219] Fix | Delete
}
[1220] Fix | Delete
[1221] Fix | Delete
// Check MP4 enabled and data status.
[1222] Fix | Delete
if ( '' === $origin_mp4_enabled ) {
[1223] Fix | Delete
if ( '' !== $video_mp4_value && $is_mp4_enabled ) {
[1224] Fix | Delete
$origin_mp4_enabled = 'enabled';
[1225] Fix | Delete
$origin_mp4_data = array(
[1226] Fix | Delete
'mode' => $current_mode,
[1227] Fix | Delete
'video_value' => $video_mp4_value,
[1228] Fix | Delete
'video_background' => $video_background,
[1229] Fix | Delete
'display' => ! empty( $video_background ) ? 'self' : 'inherit',
[1230] Fix | Delete
);
[1231] Fix | Delete
} else if ( false === $is_mp4_enabled ) {
[1232] Fix | Delete
$origin_mp4_enabled = 'disabled';
[1233] Fix | Delete
$origin_mp4_data = array();
[1234] Fix | Delete
}
[1235] Fix | Delete
} else if ( 'enabled' === $origin_mp4_enabled ) {
[1236] Fix | Delete
if ( isset( $origin_mp4_data['video_background'] ) && empty( $origin_mp4_data['video_background'] ) ) {
[1237] Fix | Delete
$origin_mp4_data['video_background'] = $video_background;
[1238] Fix | Delete
}
[1239] Fix | Delete
}
[1240] Fix | Delete
[1241] Fix | Delete
// Webm.
[1242] Fix | Delete
$enable_webm_default = et_()->array_get( $fields, "{$background_base}_enable_video_webm{$slug}", '' );
[1243] Fix | Delete
$enable_webm_value = $this->get_any_value( $attrs, "{$background_base}_enable_video_webm{$slug}", $enable_webm_default, true );
[1244] Fix | Delete
$is_webm_enabled = 'off' !== $enable_webm_value;
[1245] Fix | Delete
[1246] Fix | Delete
$video_webm_value = et_pb_responsive_options()->get_any_value( $attrs, "{$background_base}_video_webm" );
[1247] Fix | Delete
if ( 'hover' === $current_mode ) {
[1248] Fix | Delete
$video_webm_hover_value = et_()->array_get( $attrs, "{$background_base}_video_webm__hover", '' );
[1249] Fix | Delete
$video_webm_value = '' !== $video_webm_hover_value ? $video_webm_hover_value : $enable_webm_value;
[1250] Fix | Delete
} else {
[1251] Fix | Delete
$video_webm_value = et_pb_responsive_options()->get_any_value( $attrs, "{$background_base}_video_webm{$slug}", '', true );
[1252] Fix | Delete
}
[1253] Fix | Delete
[1254] Fix | Delete
// Check Webm enabled and data status.
[1255] Fix | Delete
if ( '' === $origin_webm_enabled ) {
[1256] Fix | Delete
if ( '' !== $video_webm_value && $is_webm_enabled ) {
[1257] Fix | Delete
$origin_webm_enabled = 'enabled';
[1258] Fix | Delete
$origin_webm_data = array(
[1259] Fix | Delete
'mode' => $current_mode,
[1260] Fix | Delete
'video_value' => $video_webm_value,
[1261] Fix | Delete
'video_background' => $video_background,
[1262] Fix | Delete
'display' => ! empty( $video_background ) ? 'self' : 'inherit',
[1263] Fix | Delete
);
[1264] Fix | Delete
} else if ( ! $is_webm_enabled ) {
[1265] Fix | Delete
$origin_webm_enabled = 'disabled';
[1266] Fix | Delete
$origin_webm_data = array();
[1267] Fix | Delete
}
[1268] Fix | Delete
} else if ( 'enabled' === $origin_webm_enabled ) {
[1269] Fix | Delete
if ( isset( $origin_webm_data['video_background'] ) && empty( $origin_webm_data['video_background'] ) ) {
[1270] Fix | Delete
$origin_webm_data['video_background'] = $video_background;
[1271] Fix | Delete
}
[1272] Fix | Delete
}
[1273] Fix | Delete
[1274] Fix | Delete
// Continue if current mode is not desktop.
[1275] Fix | Delete
if ( '' !== $slug ) {
[1276] Fix | Delete
continue;
[1277] Fix | Delete
}
[1278] Fix | Delete
[1279] Fix | Delete
// Decide to display the video or not.
[1280] Fix | Delete
if ( 'disabled' === $origin_mp4_enabled && 'disabled' === $origin_webm_enabled ) {
[1281] Fix | Delete
$new_value = array(
[1282] Fix | Delete
'display' => 'hide',
[1283] Fix | Delete
'video' => '',
[1284] Fix | Delete
);
[1285] Fix | Delete
} else {
[1286] Fix | Delete
// MP4 display and video status.
[1287] Fix | Delete
$mp4_enabled_display = et_()->array_get( $origin_mp4_data, 'display', '' );
[1288] Fix | Delete
$mp4_enabled_mode = et_()->array_get( $origin_mp4_data, 'mode', '' );
[1289] Fix | Delete
$mp4_video_background = '';
[1290] Fix | Delete
if ( $preview_mode === $mp4_enabled_mode ) {
[1291] Fix | Delete
$mp4_video_background = et_()->array_get( $origin_mp4_data, 'video_background', '' );
[1292] Fix | Delete
}
[1293] Fix | Delete
[1294] Fix | Delete
// Webm display and video status.
[1295] Fix | Delete
$webm_enabled_display = et_()->array_get( $origin_webm_data, 'display', '' );
[1296] Fix | Delete
$webm_enabled_mode = et_()->array_get( $origin_webm_data, 'mode', '' );
[1297] Fix | Delete
$webm_video_background = '';
[1298] Fix | Delete
if ( $preview_mode === $webm_enabled_mode ) {
[1299] Fix | Delete
$webm_video_background = et_()->array_get( $origin_webm_data, 'video_background', '' );
[1300] Fix | Delete
}
[1301] Fix | Delete
[1302] Fix | Delete
// Set display current video or not.
[1303] Fix | Delete
$new_video_display = 'hide';
[1304] Fix | Delete
if ( '' !== $mp4_enabled_display ) {
[1305] Fix | Delete
$new_video_display = $mp4_enabled_display;
[1306] Fix | Delete
} else if ( '' !== $webm_enabled_display ) {
[1307] Fix | Delete
$new_video_display = $webm_enabled_display;
[1308] Fix | Delete
}
[1309] Fix | Delete
[1310] Fix | Delete
// Set video markup.
[1311] Fix | Delete
$new_video_background = '';
[1312] Fix | Delete
if ( '' !== $mp4_video_background ) {
[1313] Fix | Delete
$new_video_background = $mp4_video_background;
[1314] Fix | Delete
} else if ( '' !== $webm_video_background ) {
[1315] Fix | Delete
$new_video_background = $webm_video_background;
[1316] Fix | Delete
}
[1317] Fix | Delete
[1318] Fix | Delete
$new_value = array(
[1319] Fix | Delete
'display' => $new_video_display,
[1320] Fix | Delete
'video' => $new_video_background,
[1321] Fix | Delete
);
[1322] Fix | Delete
}
[1323] Fix | Delete
}
[1324] Fix | Delete
}
[1325] Fix | Delete
[1326] Fix | Delete
return $new_value;
[1327] Fix | Delete
}
[1328] Fix | Delete
[1329] Fix | Delete
public function create( $additional_options ) {
[1330] Fix | Delete
// Add hover field indication
[1331] Fix | Delete
$additional_options['hover_enabled'] = array(
[1332] Fix | Delete
'type' => 'skip',
[1333] Fix | Delete
'default' => 0,
[1334] Fix | Delete
);
[1335] Fix | Delete
[1336] Fix | Delete
// Generate responsive fields for additional options (Design).
[1337] Fix | Delete
// There are 4 types where the mobile_options exist on the options.
[1338] Fix | Delete
// 1. Exist on the option definition.
[1339] Fix | Delete
// 2. Exist on the computed field type, just like point 1 but we threat it differently
[1340] Fix | Delete
// because there are some properties need to be updated and added.
[1341] Fix | Delete
// 3. Exist on the background-field.
[1342] Fix | Delete
// 4. Exist on the composite field.
[1343] Fix | Delete
foreach ( $additional_options as $field_name => $field ) {
[1344] Fix | Delete
$is_mobile_options = isset( $field['mobile_options'] ) && $field['mobile_options'];
[1345] Fix | Delete
$is_hover = isset( $field['hover'] ) && 'tabs' === $field['hover'];
[1346] Fix | Delete
$field_type = isset( $field['type'] ) ? $field['type'] : '';
[1347] Fix | Delete
$field_context = isset( $field['context'] ) ? $field['context'] : '';
[1348] Fix | Delete
$field_last_edited = isset( $field['last_edited'] ) ? $field['last_edited'] : '';
[1349] Fix | Delete
[1350] Fix | Delete
// Mobile options property maybe exist on the field.
[1351] Fix | Delete
if ( $is_mobile_options ) {
[1352] Fix | Delete
// Get tab and toggle slugs value.
[1353] Fix | Delete
$tab_slug = isset( $field['tab_slug'] ) ? $field['tab_slug'] : '';
[1354] Fix | Delete
$toggle_slug = isset( $field['toggle_slug'] ) ? $field['toggle_slug'] : '';
[1355] Fix | Delete
[1356] Fix | Delete
// 2. Mobile options property for computed fields.
[1357] Fix | Delete
if ( 'computed' === $field_type ) {
[1358] Fix | Delete
// Computed depends on. Add suffix after depends on info.
[1359] Fix | Delete
if ( ! empty( $field['computed_depends_on'] ) ) {
[1360] Fix | Delete
$computed_depends_on = $field['computed_depends_on'];
[1361] Fix | Delete
foreach ( $computed_depends_on as $depends_value ) {
[1362] Fix | Delete
if ( $is_hover ) {
[1363] Fix | Delete
array_push( $field['computed_depends_on'], "{$depends_value}_tablet", "{$depends_value}_phone", "{$depends_value}__hover" );
[1364] Fix | Delete
} else {
[1365] Fix | Delete
array_push( $field['computed_depends_on'], "{$depends_value}_tablet", "{$depends_value}_phone" );
[1366] Fix | Delete
}
[1367] Fix | Delete
}
[1368] Fix | Delete
}
[1369] Fix | Delete
[1370] Fix | Delete
// Computed minimum. Add suffix after minimum info.
[1371] Fix | Delete
if ( ! empty( $field['computed_minimum'] ) ) {
[1372] Fix | Delete
$computed_minimum = $field['computed_minimum'];
[1373] Fix | Delete
foreach ( $computed_minimum as $minimum_value ) {
[1374] Fix | Delete
if ( $is_hover ) {
[1375] Fix | Delete
array_push( $field['computed_minimum'], "{$minimum_value}_tablet", "{$minimum_value}_phone", "{$minimum_value}__hover" );
[1376] Fix | Delete
} else {
[1377] Fix | Delete
array_push( $field['computed_minimum'], "{$minimum_value}_tablet", "{$minimum_value}_phone" );
[1378] Fix | Delete
}
[1379] Fix | Delete
}
[1380] Fix | Delete
}
[1381] Fix | Delete
[1382] Fix | Delete
$additional_options["{$field_name}"] = $field;
[1383] Fix | Delete
[1384] Fix | Delete
continue;
[1385] Fix | Delete
}
[1386] Fix | Delete
[1387] Fix | Delete
// 3. Mobile options property maybe exist under background field.
[1388] Fix | Delete
if ( 'background-field' === $field_type ) {
[1389] Fix | Delete
// Just in case current field is background-field and the mobile_options
[1390] Fix | Delete
// attributes are located in the fields. Ensure background fields is exist.
[1391] Fix | Delete
if ( ! empty( $field['background_fields'] ) ) {
[1392] Fix | Delete
// Fetch the fields and check for mobile_options.
[1393] Fix | Delete
foreach ( $field['background_fields'] as $background_name => $background_field ) {
[1394] Fix | Delete
if ( isset( $background_field['mobile_options'] ) && $background_field['mobile_options'] ) {
[1395] Fix | Delete
// Get tab and toggle slugs value.
[1396] Fix | Delete
$tab_slug = isset( $background_field['tab_slug'] ) ? $background_field['tab_slug'] : '';
[1397] Fix | Delete
$toggle_slug = isset( $background_field['toggle_slug'] ) ? $background_field['toggle_slug'] : '';
[1398] Fix | Delete
[1399] Fix | Delete
// Add fields with responsive suffix for each devices.
[1400] Fix | Delete
$additional_options = array_merge(
[1401] Fix | Delete
$additional_options,
[1402] Fix | Delete
et_pb_responsive_options()->generate_responsive_fields( $background_name, $toggle_slug, $tab_slug )
[1403] Fix | Delete
);
[1404] Fix | Delete
}
[1405] Fix | Delete
}
[1406] Fix | Delete
}
[1407] Fix | Delete
[1408] Fix | Delete
continue;
[1409] Fix | Delete
}
[1410] Fix | Delete
[1411] Fix | Delete
// 1. Mobile options property added directly on options definition. Add fields
[1412] Fix | Delete
// with responsive suffix for each devices.
[1413] Fix | Delete
$additional_options = array_merge(
[1414] Fix | Delete
$additional_options,
[1415] Fix | Delete
et_pb_responsive_options()->generate_responsive_fields( $field_name, $toggle_slug, $tab_slug, $field )
[1416] Fix | Delete
);
[1417] Fix | Delete
[1418] Fix | Delete
// Additional last edited field just in case we need more last edited field.
[1419] Fix | Delete
if ( ! empty( $field_last_edited ) ) {
[1420] Fix | Delete
$additional_options["{$field_last_edited}_last_edited"] = array(
[1421] Fix | Delete
'type' => 'skip',
[1422] Fix | Delete
'tab_slug' => $tab_slug,
[1423] Fix | Delete
'toggle_slug' => $toggle_slug,
[1424] Fix | Delete
);
[1425] Fix | Delete
}
[1426] Fix | Delete
[1427] Fix | Delete
continue;
[1428] Fix | Delete
}
[1429] Fix | Delete
[1430] Fix | Delete
// 4. Mobile options property maybe exist under composite field.
[1431] Fix | Delete
if ( 'composite' === $field_type ) {
[1432] Fix | Delete
// Just in case current field is composite and the mobile_options attributes
[1433] Fix | Delete
// are located in the controls. Ensure composite structure is exist.
[1434] Fix | Delete
$composite_structure = isset( $field['composite_structure'] ) ? $field['composite_structure'] : array();
[1435] Fix | Delete
if ( empty( $composite_structure ) ) {
[1436] Fix | Delete
continue;
[1437] Fix | Delete
}
[1438] Fix | Delete
[1439] Fix | Delete
foreach ( $composite_structure as $composite_field ) {
[1440] Fix | Delete
// Ensure composite field controls is exist and not empty.
[1441] Fix | Delete
$composite_field_controls = isset( $composite_field['controls'] ) ? $composite_field['controls'] : array();
[1442] Fix | Delete
if ( empty( $composite_field_controls ) ) {
[1443] Fix | Delete
continue;
[1444] Fix | Delete
}
[1445] Fix | Delete
[1446] Fix | Delete
// Fetch the controls and check for mobile_options.
[1447] Fix | Delete
foreach ( $composite_field_controls as $control_name => $control ) {
[1448] Fix | Delete
if ( isset( $control['mobile_options'] ) && $control['mobile_options'] ) {
[1449] Fix | Delete
// Get tab and toggle slugs value.
[1450] Fix | Delete
$tab_slug = isset( $control['tab_slug'] ) ? $control['tab_slug'] : '';
[1451] Fix | Delete
$toggle_slug = isset( $control['toggle_slug'] ) ? $control['toggle_slug'] : '';
[1452] Fix | Delete
[1453] Fix | Delete
// Add fields with responsive suffix for each devices.
[1454] Fix | Delete
$additional_options = array_merge(
[1455] Fix | Delete
$additional_options,
[1456] Fix | Delete
et_pb_responsive_options()->generate_responsive_fields( $control_name, $toggle_slug, $tab_slug )
[1457] Fix | Delete
);
[1458] Fix | Delete
}
[1459] Fix | Delete
}
[1460] Fix | Delete
}
[1461] Fix | Delete
}
[1462] Fix | Delete
}
[1463] Fix | Delete
return $additional_options;
[1464] Fix | Delete
}
[1465] Fix | Delete
[1466] Fix | Delete
}
[1467] Fix | Delete
[1468] Fix | Delete
[1469] Fix | Delete
[1470] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function