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
File: class-et-builder-settings.php
'advanced' => $advanced,
[1000] Fix | Delete
);
[1001] Fix | Delete
}
[1002] Fix | Delete
[1003] Fix | Delete
/**
[1004] Fix | Delete
* Filters the builder's settings tabs.
[1005] Fix | Delete
*
[1006] Fix | Delete
* @since 3.0.45
[1007] Fix | Delete
*
[1008] Fix | Delete
* @param string[] $tabs {
[1009] Fix | Delete
* Localized Tab Names.
[1010] Fix | Delete
*
[1011] Fix | Delete
* @type string $tab_slug Tab name
[1012] Fix | Delete
* ...
[1013] Fix | Delete
* }
[1014] Fix | Delete
*
[1015] Fix | Delete
* @param string $scope Accepts 'page', 'builder'.
[1016] Fix | Delete
*/
[1017] Fix | Delete
return apply_filters( 'et_builder_settings_tabs', $result, $scope );
[1018] Fix | Delete
}
[1019] Fix | Delete
[1020] Fix | Delete
/**
[1021] Fix | Delete
* Returns the localized title of the builder page settings modal.
[1022] Fix | Delete
*
[1023] Fix | Delete
* @return string
[1024] Fix | Delete
*/
[1025] Fix | Delete
public static function get_title() {
[1026] Fix | Delete
global $post;
[1027] Fix | Delete
[1028] Fix | Delete
$post_type = isset( $post->post_type ) ? $post->post_type : 'page';
[1029] Fix | Delete
$post_type_obj = get_post_type_object( $post_type );
[1030] Fix | Delete
$settings = esc_html_x( '%s Settings', 'Page, Post, Product, etc.', 'et_builder' );
[1031] Fix | Delete
[1032] Fix | Delete
/**
[1033] Fix | Delete
* Filters the title of the builder's page settings modal.
[1034] Fix | Delete
*
[1035] Fix | Delete
* @since 3.0.45
[1036] Fix | Delete
*
[1037] Fix | Delete
* @param string $title
[1038] Fix | Delete
*/
[1039] Fix | Delete
return apply_filters( 'et_builder_page_settings_modal_title', sprintf( $settings, $post_type_obj->labels->singular_name ) );
[1040] Fix | Delete
}
[1041] Fix | Delete
[1042] Fix | Delete
/**
[1043] Fix | Delete
* Returns the localized toggle/group names for the builder page settings modal.
[1044] Fix | Delete
*
[1045] Fix | Delete
* @return string[] {
[1046] Fix | Delete
* Localized Toggle Names
[1047] Fix | Delete
*
[1048] Fix | Delete
* @type string $toggle_slug Toggle name
[1049] Fix | Delete
* }
[1050] Fix | Delete
*/
[1051] Fix | Delete
public static function get_toggles() {
[1052] Fix | Delete
$utils = ET_Core_Data_Utils::instance();
[1053] Fix | Delete
[1054] Fix | Delete
// Get current post type singular name and use it as toggle title.
[1055] Fix | Delete
$post_type = wp_doing_ajax() ? $utils->array_get( $_POST, 'et_post_type' ) : get_post_type( et_core_page_resource_get_the_ID() );
[1056] Fix | Delete
[1057] Fix | Delete
$post_type_obj = get_post_type_object( $post_type );
[1058] Fix | Delete
[1059] Fix | Delete
$toggles = array(
[1060] Fix | Delete
'main_content' => ! empty( $post_type_obj ) ? $post_type_obj->labels->singular_name : '',
[1061] Fix | Delete
'background' => et_builder_i18n( 'Background' ),
[1062] Fix | Delete
'color_palette' => esc_html__( 'Color Palette', 'et_builder' ),
[1063] Fix | Delete
'custom_css' => et_builder_i18n( 'Custom CSS' ),
[1064] Fix | Delete
'enable_bfb' => esc_html__( 'Enable The Latest Divi Builder Experience', 'et_builder' ),
[1065] Fix | Delete
'enable_classic_editor' => esc_html__( 'Enable Classic Editor', 'et_builder' ),
[1066] Fix | Delete
'performance' => esc_html__( 'Performance', 'et_builder' ),
[1067] Fix | Delete
'product_tour' => esc_html__( 'Product Tour', 'et_builder' ),
[1068] Fix | Delete
'spacing' => esc_html__( 'Spacing', 'et_builder' ),
[1069] Fix | Delete
'ab_testing' => esc_html__( 'Split Testing', 'et_builder' ),
[1070] Fix | Delete
'text' => et_builder_i18n( 'Text' ),
[1071] Fix | Delete
'visibility' => et_builder_i18n( 'Visibility' ),
[1072] Fix | Delete
'position' => et_builder_i18n( 'Position' ),
[1073] Fix | Delete
);
[1074] Fix | Delete
[1075] Fix | Delete
/**
[1076] Fix | Delete
* Filters the builder page settings modal's option group toggles.
[1077] Fix | Delete
*
[1078] Fix | Delete
* @since 3.0.45
[1079] Fix | Delete
*
[1080] Fix | Delete
* @param string[] $toggles {
[1081] Fix | Delete
* Localized Toggle Names
[1082] Fix | Delete
*
[1083] Fix | Delete
* @type string $toggle_slug Toggle name
[1084] Fix | Delete
* ...
[1085] Fix | Delete
* }
[1086] Fix | Delete
*/
[1087] Fix | Delete
return apply_filters( 'et_builder_page_settings_modal_toggles', $toggles );
[1088] Fix | Delete
}
[1089] Fix | Delete
[1090] Fix | Delete
/**
[1091] Fix | Delete
* Returns the values of builder settings for the provided settings scope.
[1092] Fix | Delete
*
[1093] Fix | Delete
* @param string $scope Get values for scope (page|builder|all). Default 'page'.
[1094] Fix | Delete
* @param string|int $post_id Optional. If not provided, {@link get_the_ID()} will be used.
[1095] Fix | Delete
*
[1096] Fix | Delete
* @return mixed[] {
[1097] Fix | Delete
* Settings Values
[1098] Fix | Delete
*
[1099] Fix | Delete
* @type mixed $setting_key The value for the setting.
[1100] Fix | Delete
* ...
[1101] Fix | Delete
* }
[1102] Fix | Delete
*/
[1103] Fix | Delete
public static function get_values( $scope = 'page', $post_id = null, $exclude_defaults = false ) {
[1104] Fix | Delete
$post_id = $post_id ? $post_id : get_the_ID();
[1105] Fix | Delete
$result = array();
[1106] Fix | Delete
[1107] Fix | Delete
if ( 'builder' === $scope ) {
[1108] Fix | Delete
$result = self::$_BUILDER_SETTINGS_VALUES;
[1109] Fix | Delete
} else if ( 'page' === $scope ) {
[1110] Fix | Delete
$result = self::_get_page_settings_values( $post_id );
[1111] Fix | Delete
} else if ( 'all' === $scope ) {
[1112] Fix | Delete
$result = array (
[1113] Fix | Delete
'page' => self::_get_page_settings_values( $post_id ),
[1114] Fix | Delete
'builder' => self::$_BUILDER_SETTINGS_VALUES,
[1115] Fix | Delete
);
[1116] Fix | Delete
}
[1117] Fix | Delete
[1118] Fix | Delete
if ( $exclude_defaults ) {
[1119] Fix | Delete
'all' === $scope || $result = array( $result );
[1120] Fix | Delete
[1121] Fix | Delete
foreach ( $result as $key => $settings ) {
[1122] Fix | Delete
$result[ $key ] = array_diff_key( $result[ $key ], array_flip( self::$_PAGE_SETTINGS_IS_DEFAULT[ $post_id ] ) );
[1123] Fix | Delete
}
[1124] Fix | Delete
[1125] Fix | Delete
'all' === $scope || $result = $result[0];
[1126] Fix | Delete
}
[1127] Fix | Delete
[1128] Fix | Delete
return $result;
[1129] Fix | Delete
}
[1130] Fix | Delete
[1131] Fix | Delete
public static function plugin_dashboard_option_saved_cb( $processed_options, $option_name, $field_info, $output ) {
[1132] Fix | Delete
if ( ! isset( $field_info['id'] ) ) {
[1133] Fix | Delete
return;
[1134] Fix | Delete
}
[1135] Fix | Delete
[1136] Fix | Delete
$setting = $field_info['id'];
[1137] Fix | Delete
$setting_value = $processed_options[ $option_name ];
[1138] Fix | Delete
[1139] Fix | Delete
if ( ! isset( self::$_BUILDER_SETTINGS_FIELDS[ $setting ] ) ) {
[1140] Fix | Delete
return;
[1141] Fix | Delete
}
[1142] Fix | Delete
[1143] Fix | Delete
et_update_option( $setting, $setting_value );
[1144] Fix | Delete
[1145] Fix | Delete
self::_maybe_clear_cached_static_css_files( $setting, $setting_value );
[1146] Fix | Delete
}
[1147] Fix | Delete
[1148] Fix | Delete
public static function plugin_dashboard_option_value_cb( $option_value, $option ) {
[1149] Fix | Delete
if ( ! isset( $option['id'] ) ) {
[1150] Fix | Delete
return $option_value;
[1151] Fix | Delete
}
[1152] Fix | Delete
[1153] Fix | Delete
$setting = $option['id'];
[1154] Fix | Delete
[1155] Fix | Delete
if ( ! isset( self::$_BUILDER_SETTINGS_VALUES[ $setting ] ) ) {
[1156] Fix | Delete
return $option_value;
[1157] Fix | Delete
}
[1158] Fix | Delete
[1159] Fix | Delete
return self::$_BUILDER_SETTINGS_VALUES[ $setting ];
[1160] Fix | Delete
}
[1161] Fix | Delete
[1162] Fix | Delete
/**
[1163] Fix | Delete
* Register filter callback for modifying page settings post meta value based on current
[1164] Fix | Delete
* autosave data if current page is valid builder preview page
[1165] Fix | Delete
*
[1166] Fix | Delete
* @since 3.20
[1167] Fix | Delete
*
[1168] Fix | Delete
* @return void
[1169] Fix | Delete
*/
[1170] Fix | Delete
public static function _register_preview_post_metadata() {
[1171] Fix | Delete
if ( ! is_user_logged_in() || ! is_preview() || ! et_pb_is_pagebuilder_used() ) {
[1172] Fix | Delete
return;
[1173] Fix | Delete
}
[1174] Fix | Delete
[1175] Fix | Delete
// Populate page settings fields meta_key map. Most page setting field id is identical (sans
[1176] Fix | Delete
// `_` prefix) to its meta_key name but some field has completely different meta_key name
[1177] Fix | Delete
foreach ( self::$_PAGE_SETTINGS_FIELDS as $field_id => $field ) {
[1178] Fix | Delete
$meta_key = isset( $field['meta_key'] ) ? $field['meta_key'] : '_' . $field_id;
[1179] Fix | Delete
[1180] Fix | Delete
self::$_PAGE_SETTINGS_FIELDS_META_KEY_MAP[ $meta_key ] = $field_id;
[1181] Fix | Delete
}
[1182] Fix | Delete
[1183] Fix | Delete
// Register filter for modifying page setting's post_meta value
[1184] Fix | Delete
add_filter( 'get_post_metadata', array( 'ET_Builder_Settings', 'modify_preview_post_metadata' ), 10, 4 );
[1185] Fix | Delete
}
[1186] Fix | Delete
[1187] Fix | Delete
/**
[1188] Fix | Delete
* Get page settings' post meta value in preview page. This method should only be called on
[1189] Fix | Delete
* preview page only
[1190] Fix | Delete
*
[1191] Fix | Delete
* @since 3.20
[1192] Fix | Delete
*
[1193] Fix | Delete
* @return array
[1194] Fix | Delete
*/
[1195] Fix | Delete
public static function get_preview_post_metadata() {
[1196] Fix | Delete
static $preview_post_metadata = null;
[1197] Fix | Delete
[1198] Fix | Delete
// Value retrieval should only be done once
[1199] Fix | Delete
if ( is_null( $preview_post_metadata ) ) {
[1200] Fix | Delete
// Get autosave data of current post of current user
[1201] Fix | Delete
$current_user_id = get_current_user_id();
[1202] Fix | Delete
$preview_post_metadata = get_post_meta(
[1203] Fix | Delete
get_the_ID(),
[1204] Fix | Delete
"_et_builder_settings_autosave_{$current_user_id}",
[1205] Fix | Delete
true
[1206] Fix | Delete
);
[1207] Fix | Delete
[1208] Fix | Delete
// Returned value should be array
[1209] Fix | Delete
if ( ! is_array( $preview_post_metadata ) ) {
[1210] Fix | Delete
$preview_post_metadata = array();
[1211] Fix | Delete
}
[1212] Fix | Delete
}
[1213] Fix | Delete
[1214] Fix | Delete
return $preview_post_metadata;
[1215] Fix | Delete
}
[1216] Fix | Delete
[1217] Fix | Delete
/**
[1218] Fix | Delete
* Modify page settings' post meta value in preview page. This should only be hooked after
[1219] Fix | Delete
* checking whether current page is valid preview page or not
[1220] Fix | Delete
*
[1221] Fix | Delete
* @see get_metadata()
[1222] Fix | Delete
*
[1223] Fix | Delete
* @since 3.20
[1224] Fix | Delete
*
[1225] Fix | Delete
* @param null|array|string $value
[1226] Fix | Delete
* @param int $object_id
[1227] Fix | Delete
* @param string $meta_key
[1228] Fix | Delete
* @param bool $single
[1229] Fix | Delete
*
[1230] Fix | Delete
* @return null|array|string
[1231] Fix | Delete
*/
[1232] Fix | Delete
public static function modify_preview_post_metadata( $value, $object_id, $meta_key, $single ) {
[1233] Fix | Delete
$current_user_id = get_current_user_id();
[1234] Fix | Delete
[1235] Fix | Delete
// Bail if $meta_key value is equal to meta_key value used to save current page autosave data
[1236] Fix | Delete
if ( "_et_builder_settings_autosave_{$current_user_id}" === $meta_key ) {
[1237] Fix | Delete
return $value;
[1238] Fix | Delete
}
[1239] Fix | Delete
[1240] Fix | Delete
// Bail if $meta_key is not page settings field's meta key
[1241] Fix | Delete
if ( ! isset( self::$_PAGE_SETTINGS_FIELDS_META_KEY_MAP[ $meta_key ] ) ) {
[1242] Fix | Delete
return $value;
[1243] Fix | Delete
}
[1244] Fix | Delete
[1245] Fix | Delete
// Bail if current $meta_key value doesn't exist on preview page autosave data
[1246] Fix | Delete
$preview_post_meta_key = self::$_PAGE_SETTINGS_FIELDS_META_KEY_MAP[ $meta_key ];
[1247] Fix | Delete
$preview_post_metadata = self::get_preview_post_metadata();
[1248] Fix | Delete
[1249] Fix | Delete
if ( ! isset( $preview_post_metadata[ $preview_post_meta_key ] ) ) {
[1250] Fix | Delete
return $value;
[1251] Fix | Delete
}
[1252] Fix | Delete
[1253] Fix | Delete
return $preview_post_metadata[ $preview_post_meta_key ];
[1254] Fix | Delete
}
[1255] Fix | Delete
}
[1256] Fix | Delete
[1257] Fix | Delete
[1258] Fix | Delete
if ( ! function_exists( 'et_builder_settings_init' ) ):
[1259] Fix | Delete
/**
[1260] Fix | Delete
* Initializes the builder settings class if needed.
[1261] Fix | Delete
* {@see 'current_screen'}
[1262] Fix | Delete
*
[1263] Fix | Delete
* @param WP_Screen $screen Optional. Default `null`.
[1264] Fix | Delete
*/
[1265] Fix | Delete
function et_builder_settings_init( $screen = null ) {
[1266] Fix | Delete
$init_settings = et_builder_should_load_framework() || wp_doing_ajax();
[1267] Fix | Delete
[1268] Fix | Delete
if ( ! $init_settings && is_a( $screen, 'WP_Screen' ) ) {
[1269] Fix | Delete
$init_settings = 1 === preg_match( '/et_\w+_options/', $screen->base );
[1270] Fix | Delete
}
[1271] Fix | Delete
[1272] Fix | Delete
if ( $init_settings ) {
[1273] Fix | Delete
ET_Builder_Settings::get_instance();
[1274] Fix | Delete
}
[1275] Fix | Delete
}
[1276] Fix | Delete
add_action( 'current_screen', 'et_builder_settings_init' );
[1277] Fix | Delete
endif;
[1278] Fix | Delete
[1279] Fix | Delete
[1280] Fix | Delete
if ( ! function_exists( 'et_builder_settings_get' ) ):
[1281] Fix | Delete
/**
[1282] Fix | Delete
* Get a builder setting value. Default and global setting values are considered when applicable.
[1283] Fix | Delete
*
[1284] Fix | Delete
* @param string $setting Page setting name.
[1285] Fix | Delete
* @param string|int $post_id Optional. The post id.
[1286] Fix | Delete
*
[1287] Fix | Delete
* @return mixed
[1288] Fix | Delete
*/
[1289] Fix | Delete
function et_builder_settings_get( $setting, $post_id = '' ) {
[1290] Fix | Delete
$builder_fields = ET_Builder_Settings::get_fields( 'builder' );
[1291] Fix | Delete
$builder_values = ET_Builder_Settings::get_values( 'builder' );
[1292] Fix | Delete
[1293] Fix | Delete
$page_fields = ET_Builder_Settings::get_fields();
[1294] Fix | Delete
$page_values = ET_Builder_Settings::get_values( 'page', $post_id );
[1295] Fix | Delete
[1296] Fix | Delete
$has_page = isset( $page_fields[ $setting ] );
[1297] Fix | Delete
$has_global = isset( $builder_fields[ $setting ] );
[1298] Fix | Delete
[1299] Fix | Delete
$value = $global_value = '';
[1300] Fix | Delete
$global_is_default = false;
[1301] Fix | Delete
[1302] Fix | Delete
if ( ! $has_page && ! $has_global ) {
[1303] Fix | Delete
return $value;
[1304] Fix | Delete
}
[1305] Fix | Delete
[1306] Fix | Delete
if ( $has_global ) {
[1307] Fix | Delete
$global_value = $builder_values[ $setting ];
[1308] Fix | Delete
$global_has_default = isset( $builder_fields[ $setting ]['default'] );
[1309] Fix | Delete
$global_is_default = $global_has_default && $global_value === $builder_fields[ $setting ]['default'];
[1310] Fix | Delete
$value = $global_value;
[1311] Fix | Delete
}
[1312] Fix | Delete
[1313] Fix | Delete
if ( $has_page ) {
[1314] Fix | Delete
$page_value = $page_values[ $setting ];
[1315] Fix | Delete
$page_has_default = isset( $page_fields[ $setting ]['default'] );
[1316] Fix | Delete
$page_is_default = $page_has_default && $page_value === $page_fields[ $setting ]['default'];
[1317] Fix | Delete
$value = $page_value;
[1318] Fix | Delete
}
[1319] Fix | Delete
[1320] Fix | Delete
if ( ! $has_page || ( $page_is_default && ! $global_is_default ) ) {
[1321] Fix | Delete
$value = $global_value;
[1322] Fix | Delete
} else if ( ! $has_global || ! $page_is_default ) {
[1323] Fix | Delete
$value = $page_value;
[1324] Fix | Delete
}
[1325] Fix | Delete
[1326] Fix | Delete
return $value;
[1327] Fix | Delete
}
[1328] Fix | Delete
endif;
[1329] Fix | Delete
[1330] Fix | Delete
[1331] Fix | Delete
if ( ! function_exists( 'et_builder_setting_is_off' ) ):
[1332] Fix | Delete
/**
[1333] Fix | Delete
* Whether or not a builder setting is off. Default and global setting values are
[1334] Fix | Delete
* considered when applicable.
[1335] Fix | Delete
*
[1336] Fix | Delete
* @param string $setting Page setting name.
[1337] Fix | Delete
* @param string|int $post_id Optional. The post id.
[1338] Fix | Delete
*
[1339] Fix | Delete
* @return bool
[1340] Fix | Delete
*/
[1341] Fix | Delete
function et_builder_setting_is_off( $setting, $post_id = '' ) {
[1342] Fix | Delete
return 'off' === et_builder_settings_get( $setting, $post_id );
[1343] Fix | Delete
}
[1344] Fix | Delete
endif;
[1345] Fix | Delete
[1346] Fix | Delete
[1347] Fix | Delete
if ( ! function_exists( 'et_builder_setting_is_on' ) ):
[1348] Fix | Delete
/**
[1349] Fix | Delete
* Whether or not a builder setting is on. Default and global setting values are
[1350] Fix | Delete
* considered when applicable.
[1351] Fix | Delete
*
[1352] Fix | Delete
* @param string $setting Page setting name.
[1353] Fix | Delete
* @param string|int $post_id Optional. The post id.
[1354] Fix | Delete
*
[1355] Fix | Delete
* @return bool
[1356] Fix | Delete
*/
[1357] Fix | Delete
function et_builder_setting_is_on( $setting, $post_id = '' ) {
[1358] Fix | Delete
return 'on' === et_builder_settings_get( $setting, $post_id );
[1359] Fix | Delete
}
[1360] Fix | Delete
endif;
[1361] Fix | Delete
[1362] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function