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: core.php
}
[3500] Fix | Delete
}
[3501] Fix | Delete
[3502] Fix | Delete
if ( $third_party_plugins_active ) {
[3503] Fix | Delete
$warnings[] = sprintf(
[3504] Fix | Delete
'%1$s <a href="%3$s" class="et_builder_modal_action_button" target="_blank">%2$s</a>',
[3505] Fix | Delete
esc_html__( 'You are using third party plugins. Try disabling each plugin to see if one is causing a conflict.', 'et_builder' ),
[3506] Fix | Delete
esc_html__( 'Manage Your Plugins', 'et_builder' ),
[3507] Fix | Delete
esc_url( admin_url( 'plugins.php' ) )
[3508] Fix | Delete
);
[3509] Fix | Delete
}
[3510] Fix | Delete
[3511] Fix | Delete
[3512] Fix | Delete
// WordPress update check
[3513] Fix | Delete
require_once( ABSPATH . 'wp-admin/includes/update.php' );
[3514] Fix | Delete
[3515] Fix | Delete
$updates = get_core_updates();
[3516] Fix | Delete
[3517] Fix | Delete
if ( isset( $updates[0]->response ) && 'latest' !== $updates[0]->response ) {
[3518] Fix | Delete
$warnings[] = sprintf(
[3519] Fix | Delete
'%1$s <a href="%3$s" class="et_builder_modal_action_button" target="_blank">%2$s</a>',
[3520] Fix | Delete
esc_html__( 'You are using an outdated version of WordPress. Please upgrade.', 'et_builder' ),
[3521] Fix | Delete
esc_html__( 'Upgrade WordPress', 'et_builder' ),
[3522] Fix | Delete
esc_url( admin_url( 'update-core.php' ) )
[3523] Fix | Delete
);
[3524] Fix | Delete
}
[3525] Fix | Delete
[3526] Fix | Delete
[3527] Fix | Delete
// Memory check
[3528] Fix | Delete
global $et_current_memory_limit;
[3529] Fix | Delete
[3530] Fix | Delete
if ( ! empty( $et_current_memory_limit ) && intval( $et_current_memory_limit ) < 128 ) {
[3531] Fix | Delete
$class = ' et_builder_increase_memory';
[3532] Fix | Delete
[3533] Fix | Delete
$warnings[] = sprintf(
[3534] Fix | Delete
'%1$s. <a href="http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" class="et_builder_modal_action_button%3$s" target="_blank">%2$s</a>',
[3535] Fix | Delete
esc_html__( 'Please increase your PHP Memory Limit. You can return the value to default via the Divi Theme Options in the future', 'et_builder' ),
[3536] Fix | Delete
esc_html__( 'Increase Your Memory Limit Now', 'et_builder' ),
[3537] Fix | Delete
esc_attr( $class )
[3538] Fix | Delete
);
[3539] Fix | Delete
}
[3540] Fix | Delete
[3541] Fix | Delete
[3542] Fix | Delete
// Version check
[3543] Fix | Delete
$et_update_themes = get_site_transient( 'et_update_themes' );
[3544] Fix | Delete
[3545] Fix | Delete
if ( is_object( $et_update_themes ) && isset( $et_update_themes->response ) ) {
[3546] Fix | Delete
$theme_info = wp_get_theme();
[3547] Fix | Delete
[3548] Fix | Delete
if ( is_child_theme() ) {
[3549] Fix | Delete
$theme_info = wp_get_theme( $theme_info->parent_theme );
[3550] Fix | Delete
}
[3551] Fix | Delete
[3552] Fix | Delete
$name = $theme_info->get( 'Name' );
[3553] Fix | Delete
$version = $theme_info->get( 'Version' );
[3554] Fix | Delete
[3555] Fix | Delete
if ( isset( $et_update_themes->response[ $name ] ) && isset( $et_update_themes->response[ $name ]['new_version'] ) && version_compare( $version, $et_update_themes->response[ $name ]['new_version'], '<' ) ) {
[3556] Fix | Delete
$warnings[] = sprintf(
[3557] Fix | Delete
'%1$s <a href="%3$s" class="et_builder_modal_action_button" target="_blank">%2$s</a>',
[3558] Fix | Delete
sprintf(
[3559] Fix | Delete
esc_html__( 'You are using an outdated version of the theme. The latest version is %1$s', 'et_builder' ),
[3560] Fix | Delete
esc_html( $et_update_themes->response[ $name ]['new_version'] )
[3561] Fix | Delete
),
[3562] Fix | Delete
esc_html__( 'Upgrade', 'et_builder' ),
[3563] Fix | Delete
esc_url( admin_url( 'themes.php' ) )
[3564] Fix | Delete
);
[3565] Fix | Delete
}
[3566] Fix | Delete
}
[3567] Fix | Delete
[3568] Fix | Delete
if ( empty( $warnings ) ) {
[3569] Fix | Delete
return false;
[3570] Fix | Delete
}
[3571] Fix | Delete
[3572] Fix | Delete
return $warnings;
[3573] Fix | Delete
}
[3574] Fix | Delete
endif;
[3575] Fix | Delete
[3576] Fix | Delete
if ( ! function_exists( 'et_increase_memory_limit' ) ) :
[3577] Fix | Delete
function et_increase_memory_limit() {
[3578] Fix | Delete
if ( ! is_admin() ) {
[3579] Fix | Delete
return false;
[3580] Fix | Delete
}
[3581] Fix | Delete
[3582] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[3583] Fix | Delete
return false;
[3584] Fix | Delete
}
[3585] Fix | Delete
[3586] Fix | Delete
// proceed only if current memory limit < 256
[3587] Fix | Delete
if ( et_core_get_memory_limit() >= 256 ) {
[3588] Fix | Delete
return true;
[3589] Fix | Delete
}
[3590] Fix | Delete
[3591] Fix | Delete
$result = @ini_set( 'memory_limit', '256M' );
[3592] Fix | Delete
[3593] Fix | Delete
return ! empty( $result );
[3594] Fix | Delete
}
[3595] Fix | Delete
endif;
[3596] Fix | Delete
[3597] Fix | Delete
if ( ! function_exists( 'et_maybe_increase_memory_limit' ) ) :
[3598] Fix | Delete
function et_maybe_increase_memory_limit() {
[3599] Fix | Delete
global $pagenow;
[3600] Fix | Delete
[3601] Fix | Delete
if ( ! is_admin() ) {
[3602] Fix | Delete
return;
[3603] Fix | Delete
}
[3604] Fix | Delete
[3605] Fix | Delete
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
[3606] Fix | Delete
return;
[3607] Fix | Delete
}
[3608] Fix | Delete
[3609] Fix | Delete
if ( ! current_user_can( 'edit_posts' ) ) {
[3610] Fix | Delete
return;
[3611] Fix | Delete
}
[3612] Fix | Delete
[3613] Fix | Delete
if ( empty( $pagenow ) ) {
[3614] Fix | Delete
return;
[3615] Fix | Delete
}
[3616] Fix | Delete
[3617] Fix | Delete
// increase memory limit on Edit Post page only
[3618] Fix | Delete
if ( ! in_array( $pagenow, array( 'post.php', 'post-new.php' ) ) ) {
[3619] Fix | Delete
return;
[3620] Fix | Delete
}
[3621] Fix | Delete
[3622] Fix | Delete
/**
[3623] Fix | Delete
* check if a user clicked "Increase Memory Limit" button
[3624] Fix | Delete
* in the "Failure Notification" modal window
[3625] Fix | Delete
*/
[3626] Fix | Delete
if ( ! et_should_memory_limit_increase() ) {
[3627] Fix | Delete
return;
[3628] Fix | Delete
}
[3629] Fix | Delete
[3630] Fix | Delete
et_increase_memory_limit();
[3631] Fix | Delete
}
[3632] Fix | Delete
endif;
[3633] Fix | Delete
add_action( 'admin_init', 'et_maybe_increase_memory_limit' );
[3634] Fix | Delete
[3635] Fix | Delete
if ( ! function_exists( 'et_should_memory_limit_increase' ) ) :
[3636] Fix | Delete
function et_should_memory_limit_increase() {
[3637] Fix | Delete
if ( '1' === ( $memory_limit = et_get_option( 'set_memory_limit' ) ) ) {
[3638] Fix | Delete
return true;
[3639] Fix | Delete
}
[3640] Fix | Delete
[3641] Fix | Delete
return false;
[3642] Fix | Delete
}
[3643] Fix | Delete
endif;
[3644] Fix | Delete
[3645] Fix | Delete
if ( ! function_exists( 'et_reset_memory_limit_increase_setting' ) ) :
[3646] Fix | Delete
function et_reset_memory_limit_increase_setting() {
[3647] Fix | Delete
wp_enqueue_script( 'et-builder-reset-memory-limit-increase', ET_BUILDER_URI . '/scripts/reset_memory_limit_increase_setting.js', array( 'jquery' ), ET_BUILDER_VERSION, true );
[3648] Fix | Delete
wp_localize_script( 'et-builder-reset-memory-limit-increase', 'et_reset_memory_limit_increase', array(
[3649] Fix | Delete
'et_builder_reset_memory_limit_nonce' => wp_create_nonce( 'et_builder_reset_memory_limit_nonce' ),
[3650] Fix | Delete
) );
[3651] Fix | Delete
[3652] Fix | Delete
printf(
[3653] Fix | Delete
'<button class="et_disable_memory_limit_increase button button-primary button-large">%1$s</button>',
[3654] Fix | Delete
esc_html__( 'Disable Memory Limit Increase' )
[3655] Fix | Delete
);
[3656] Fix | Delete
}
[3657] Fix | Delete
endif;
[3658] Fix | Delete
[3659] Fix | Delete
if ( ! function_exists( 'et_pb_detect_cache_plugins' ) ) :
[3660] Fix | Delete
/**
[3661] Fix | Delete
* Detect the activated cache plugins and return the link to plugin options and return its page link or false
[3662] Fix | Delete
* @return string or bool
[3663] Fix | Delete
*/
[3664] Fix | Delete
function et_pb_detect_cache_plugins() {
[3665] Fix | Delete
if ( function_exists( 'edd_w3edge_w3tc_activate_license' ) ) {
[3666] Fix | Delete
return array(
[3667] Fix | Delete
'name' => 'W3 Total Cache',
[3668] Fix | Delete
'page' => 'admin.php?page=w3tc_pgcache',
[3669] Fix | Delete
);
[3670] Fix | Delete
}
[3671] Fix | Delete
[3672] Fix | Delete
if ( function_exists( 'wpsupercache_activate' ) ) {
[3673] Fix | Delete
return array(
[3674] Fix | Delete
'name' => 'WP Super Cache',
[3675] Fix | Delete
'page' => 'options-general.php?page=wpsupercache',
[3676] Fix | Delete
);
[3677] Fix | Delete
}
[3678] Fix | Delete
[3679] Fix | Delete
if ( class_exists( 'HyperCache' ) ) {
[3680] Fix | Delete
return array(
[3681] Fix | Delete
'name' => 'Hyper Cache',
[3682] Fix | Delete
'page' => 'options-general.php?page=hyper-cache%2Foptions.php',
[3683] Fix | Delete
);
[3684] Fix | Delete
}
[3685] Fix | Delete
[3686] Fix | Delete
if ( class_exists( '\zencache\plugin' ) ) {
[3687] Fix | Delete
return array(
[3688] Fix | Delete
'name' => 'ZenCache',
[3689] Fix | Delete
'page' => 'admin.php?page=zencache',
[3690] Fix | Delete
);
[3691] Fix | Delete
}
[3692] Fix | Delete
[3693] Fix | Delete
if ( class_exists( 'WpFastestCache' ) ) {
[3694] Fix | Delete
return array(
[3695] Fix | Delete
'name' => 'WP Fastest Cache',
[3696] Fix | Delete
'page' => 'admin.php?page=WpFastestCacheOptions',
[3697] Fix | Delete
);
[3698] Fix | Delete
}
[3699] Fix | Delete
[3700] Fix | Delete
if ( '1' === get_option( 'wordfenceActivated' ) ) {
[3701] Fix | Delete
// Wordfence removed their support of Falcon cache in v6.2.8, so we'll
[3702] Fix | Delete
// just check against their `cacheType` setting (if it exists).
[3703] Fix | Delete
if ( class_exists( 'wfConfig' ) && 'falcon' === wfConfig::get( 'cacheType' ) ) {
[3704] Fix | Delete
return array(
[3705] Fix | Delete
'name' => 'Wordfence',
[3706] Fix | Delete
'page' => 'admin.php?page=WordfenceSitePerf',
[3707] Fix | Delete
);
[3708] Fix | Delete
}
[3709] Fix | Delete
}
[3710] Fix | Delete
[3711] Fix | Delete
if ( function_exists( 'cachify_autoload' ) ) {
[3712] Fix | Delete
return array(
[3713] Fix | Delete
'name' => 'Cachify',
[3714] Fix | Delete
'page' => 'options-general.php?page=cachify',
[3715] Fix | Delete
);
[3716] Fix | Delete
}
[3717] Fix | Delete
[3718] Fix | Delete
if ( class_exists( 'FlexiCache' ) ) {
[3719] Fix | Delete
return array(
[3720] Fix | Delete
'name' => 'FlexiCache',
[3721] Fix | Delete
'page' => 'options-general.php?page=flexicache',
[3722] Fix | Delete
);
[3723] Fix | Delete
}
[3724] Fix | Delete
[3725] Fix | Delete
if ( function_exists( 'rocket_init' ) ) {
[3726] Fix | Delete
return array(
[3727] Fix | Delete
'name' => 'WP Rocket',
[3728] Fix | Delete
'page' => 'options-general.php?page=wprocket',
[3729] Fix | Delete
);
[3730] Fix | Delete
}
[3731] Fix | Delete
[3732] Fix | Delete
if ( function_exists( 'cloudflare_init' ) ) {
[3733] Fix | Delete
return array(
[3734] Fix | Delete
'name' => 'CloudFlare',
[3735] Fix | Delete
'page' => 'options-general.php?page=cloudflare',
[3736] Fix | Delete
);
[3737] Fix | Delete
}
[3738] Fix | Delete
[3739] Fix | Delete
if ( class_exists( 'Hummingbird\\WP_Hummingbird' ) ) {
[3740] Fix | Delete
return array(
[3741] Fix | Delete
'name' => 'Hummingbird',
[3742] Fix | Delete
'page' => 'admin.php?page=wphb',
[3743] Fix | Delete
);
[3744] Fix | Delete
}
[3745] Fix | Delete
[3746] Fix | Delete
return false;
[3747] Fix | Delete
}
[3748] Fix | Delete
endif;
[3749] Fix | Delete
[3750] Fix | Delete
function et_pb_force_regenerate_templates() {
[3751] Fix | Delete
// add option to indicate that templates cache should be updated in case of term added/removed/updated
[3752] Fix | Delete
et_update_option( 'et_pb_clear_templates_cache', true );
[3753] Fix | Delete
[3754] Fix | Delete
// Delete cached definitions / helpers
[3755] Fix | Delete
et_fb_delete_builder_assets();
[3756] Fix | Delete
}
[3757] Fix | Delete
[3758] Fix | Delete
add_action( 'created_term', 'et_pb_force_regenerate_templates' );
[3759] Fix | Delete
add_action( 'edited_term', 'et_pb_force_regenerate_templates' );
[3760] Fix | Delete
add_action( 'delete_term', 'et_pb_force_regenerate_templates' );
[3761] Fix | Delete
[3762] Fix | Delete
//@Todo we should remove this hook after BB is retired
[3763] Fix | Delete
//purge BB microtemplates cache after Theme Customizer changes
[3764] Fix | Delete
add_action( 'customize_save_after', 'et_pb_force_regenerate_templates' );
[3765] Fix | Delete
[3766] Fix | Delete
function et_pb_ab_get_current_ab_module_id( $test_id, $subject_index = false ) {
[3767] Fix | Delete
$all_subjects = false !== ( $all_subjects_raw = get_post_meta( $test_id, '_et_pb_ab_subjects' , true ) ) ? explode( ',', $all_subjects_raw ) : array();
[3768] Fix | Delete
[3769] Fix | Delete
if ( false === $subject_index ) {
[3770] Fix | Delete
$current_subject_index = false !== ( $saved_next_subject = get_post_meta( $test_id, '_et_pb_ab_next_subject' , true ) ) ? (int) $saved_next_subject : 0;
[3771] Fix | Delete
} else {
[3772] Fix | Delete
$current_subject_index = $subject_index;
[3773] Fix | Delete
}
[3774] Fix | Delete
[3775] Fix | Delete
if ( empty( $all_subjects ) ) {
[3776] Fix | Delete
return 0;
[3777] Fix | Delete
}
[3778] Fix | Delete
[3779] Fix | Delete
if ( ! isset( $all_subjects[ $current_subject_index ] ) ) {
[3780] Fix | Delete
return $all_subjects[0];
[3781] Fix | Delete
}
[3782] Fix | Delete
[3783] Fix | Delete
return $all_subjects[ $current_subject_index ];
[3784] Fix | Delete
}
[3785] Fix | Delete
[3786] Fix | Delete
/**
[3787] Fix | Delete
* Increment current subject index value on post meta
[3788] Fix | Delete
*
[3789] Fix | Delete
* @param int post ID
[3790] Fix | Delete
*/
[3791] Fix | Delete
function et_pb_ab_increment_current_ab_module_id( $test_id ) {
[3792] Fix | Delete
global $wpdb;
[3793] Fix | Delete
[3794] Fix | Delete
// Get subjects and current subject index
[3795] Fix | Delete
$all_subjects_raw = get_post_meta( $test_id, '_et_pb_ab_subjects' , true );
[3796] Fix | Delete
$all_subjects = false !== $all_subjects_raw ? explode( ',', $all_subjects_raw ) : array();
[3797] Fix | Delete
$saved_next_subject = get_post_meta( $test_id, '_et_pb_ab_next_subject' , true );
[3798] Fix | Delete
$current_subject_index = false !== $saved_next_subject ? (int) $saved_next_subject : 0;
[3799] Fix | Delete
[3800] Fix | Delete
if ( empty( $all_subjects ) ) {
[3801] Fix | Delete
return;
[3802] Fix | Delete
}
[3803] Fix | Delete
[3804] Fix | Delete
// increment the index of next subject, set to 0 if it's a last subject in the list
[3805] Fix | Delete
$next_subject_index = ( count( $all_subjects ) - 1 ) < ( $current_subject_index + 1 ) ? 0 : $current_subject_index + 1;
[3806] Fix | Delete
[3807] Fix | Delete
update_post_meta( $test_id, '_et_pb_ab_next_subject' , $next_subject_index );
[3808] Fix | Delete
}
[3809] Fix | Delete
[3810] Fix | Delete
/**
[3811] Fix | Delete
* Add the record into AB Testing log table
[3812] Fix | Delete
*
[3813] Fix | Delete
* @return void
[3814] Fix | Delete
*/
[3815] Fix | Delete
function et_pb_add_stats_record( $stats_data_array ) {
[3816] Fix | Delete
global $wpdb;
[3817] Fix | Delete
[3818] Fix | Delete
$table_name = $wpdb->prefix . 'et_divi_ab_testing_stats';
[3819] Fix | Delete
[3820] Fix | Delete
$record_date = current_time( 'mysql' );
[3821] Fix | Delete
[3822] Fix | Delete
// sanitize and set vars
[3823] Fix | Delete
$test_id = intval( $stats_data_array['test_id'] );
[3824] Fix | Delete
$subject_id = intval( $stats_data_array['subject_id'] );
[3825] Fix | Delete
$record_type = sanitize_text_field( $stats_data_array['record_type'] );
[3826] Fix | Delete
$record_date = sanitize_text_field( $record_date );
[3827] Fix | Delete
[3828] Fix | Delete
// Check visitor cookie and do not proceed if event already logged for current visitor
[3829] Fix | Delete
if ( et_pb_ab_get_visitor_cookie( $test_id, $record_date ) ) {
[3830] Fix | Delete
return;
[3831] Fix | Delete
}
[3832] Fix | Delete
[3833] Fix | Delete
$wpdb->insert(
[3834] Fix | Delete
$table_name,
[3835] Fix | Delete
array(
[3836] Fix | Delete
'record_date' => $record_date,
[3837] Fix | Delete
'test_id' => $test_id,
[3838] Fix | Delete
'subject_id' => $subject_id,
[3839] Fix | Delete
'event' => $record_type,
[3840] Fix | Delete
),
[3841] Fix | Delete
array(
[3842] Fix | Delete
'%s', // record_date
[3843] Fix | Delete
'%d', // test_id
[3844] Fix | Delete
'%d', // subject_id
[3845] Fix | Delete
'%s', // event
[3846] Fix | Delete
)
[3847] Fix | Delete
);
[3848] Fix | Delete
}
[3849] Fix | Delete
[3850] Fix | Delete
/**
[3851] Fix | Delete
* Set AB Testing formatted cookie
[3852] Fix | Delete
*
[3853] Fix | Delete
* @since 4.4.3 Set cookie path, so the cookie will be available on overall site.
[3854] Fix | Delete
*
[3855] Fix | Delete
* @param int post ID
[3856] Fix | Delete
* @param string record type
[3857] Fix | Delete
* @param mixed cookie value
[3858] Fix | Delete
*
[3859] Fix | Delete
* @return bool|mixed
[3860] Fix | Delete
*/
[3861] Fix | Delete
function et_pb_ab_set_visitor_cookie( $post_id, $record_type, $value = true ) {
[3862] Fix | Delete
$unique_test_id = get_post_meta( $post_id, '_et_pb_ab_testing_id', true );
[3863] Fix | Delete
$cookie_name = sanitize_text_field( "et_pb_ab_{$record_type}_{$post_id}{$unique_test_id}" );
[3864] Fix | Delete
[3865] Fix | Delete
return setcookie( $cookie_name, $value, 0, SITECOOKIEPATH );
[3866] Fix | Delete
}
[3867] Fix | Delete
[3868] Fix | Delete
/**
[3869] Fix | Delete
* Get AB Testing formatted cookie
[3870] Fix | Delete
*
[3871] Fix | Delete
* @param int post ID
[3872] Fix | Delete
* @param string record type
[3873] Fix | Delete
*
[3874] Fix | Delete
* @return bool|mixed
[3875] Fix | Delete
*/
[3876] Fix | Delete
function et_pb_ab_get_visitor_cookie( $post_id, $record_type ) {
[3877] Fix | Delete
$unique_test_id = get_post_meta( $post_id, '_et_pb_ab_testing_id', true );
[3878] Fix | Delete
$cookie_name = "et_pb_ab_{$record_type}_{$post_id}{$unique_test_id}";
[3879] Fix | Delete
[3880] Fix | Delete
return isset( $_COOKIE[ $cookie_name ] ) ? $_COOKIE[ $cookie_name ] : false;
[3881] Fix | Delete
}
[3882] Fix | Delete
[3883] Fix | Delete
/**
[3884] Fix | Delete
* Get subjects of particular post / AB Testing
[3885] Fix | Delete
*
[3886] Fix | Delete
* @param int post id
[3887] Fix | Delete
* @param string array|string type of output
[3888] Fix | Delete
* @param mixed string|bool prefix that should be prepended
[3889] Fix | Delete
*/
[3890] Fix | Delete
function et_pb_ab_get_subjects( $post_id, $type = 'array', $prefix = false, $is_cron_task = false ) {
[3891] Fix | Delete
$subjects_data = get_post_meta( $post_id, '_et_pb_ab_subjects', true );
[3892] Fix | Delete
$fb_enabled = function_exists( 'et_fb_enabled' ) ? et_fb_enabled() : false;
[3893] Fix | Delete
[3894] Fix | Delete
// Get autosave/draft subjects if post hasn't been published
[3895] Fix | Delete
if ( ! $is_cron_task && ! $subjects_data && $fb_enabled && 'publish' !== get_post_status() ) {
[3896] Fix | Delete
$subjects_data = get_post_meta( $post_id, '_et_pb_ab_subjects_draft', true );
[3897] Fix | Delete
}
[3898] Fix | Delete
[3899] Fix | Delete
// If user wants string
[3900] Fix | Delete
if ( 'string' === $type ) {
[3901] Fix | Delete
return $subjects_data;
[3902] Fix | Delete
}
[3903] Fix | Delete
[3904] Fix | Delete
// Convert into array
[3905] Fix | Delete
$subjects = explode(',', $subjects_data );
[3906] Fix | Delete
[3907] Fix | Delete
if ( ! empty( $subjects ) && $prefix ) {
[3908] Fix | Delete
[3909] Fix | Delete
$prefixed_subjects = array();
[3910] Fix | Delete
[3911] Fix | Delete
// Loop subject, add prefix
[3912] Fix | Delete
foreach ( $subjects as $subject ) {
[3913] Fix | Delete
$prefixed_subjects[] = $prefix . (string) $subject;
[3914] Fix | Delete
}
[3915] Fix | Delete
[3916] Fix | Delete
return $prefixed_subjects;
[3917] Fix | Delete
}
[3918] Fix | Delete
[3919] Fix | Delete
return $subjects;
[3920] Fix | Delete
}
[3921] Fix | Delete
[3922] Fix | Delete
/**
[3923] Fix | Delete
* Unhashed hashed subject id
[3924] Fix | Delete
*
[3925] Fix | Delete
* @param int post ID
[3926] Fix | Delete
* @param string hashed subject id
[3927] Fix | Delete
*
[3928] Fix | Delete
* @return string subject ID
[3929] Fix | Delete
*/
[3930] Fix | Delete
function et_pb_ab_unhashed_subject_id( $post_id, $hashed_subject_id ) {
[3931] Fix | Delete
if ( ! $post_id || ! $hashed_subject_id ) {
[3932] Fix | Delete
return false;
[3933] Fix | Delete
}
[3934] Fix | Delete
[3935] Fix | Delete
$ab_subjects = et_pb_ab_get_subjects( $post_id );
[3936] Fix | Delete
$ab_hash_key = defined( 'NONCE_SALT' ) ? NONCE_SALT : 'default-divi-hash-key';
[3937] Fix | Delete
$subject_id = false;
[3938] Fix | Delete
[3939] Fix | Delete
// Compare subjects against hashed subject id found on cookie to verify whether cookie value is valid or not
[3940] Fix | Delete
foreach ( $ab_subjects as $ab_subject ) {
[3941] Fix | Delete
// Valid subject_id is found
[3942] Fix | Delete
if ( hash_hmac( 'md5', $ab_subject, $ab_hash_key ) === $hashed_subject_id ) {
[3943] Fix | Delete
$subject_id = $ab_subject;
[3944] Fix | Delete
[3945] Fix | Delete
// no need to continue
[3946] Fix | Delete
break;
[3947] Fix | Delete
}
[3948] Fix | Delete
}
[3949] Fix | Delete
[3950] Fix | Delete
// If no valid subject found, get the first one
[3951] Fix | Delete
if ( ! $subject_id && isset( $ab_subjects[0] ) ) {
[3952] Fix | Delete
$subject_id = $ab_subjects[0];
[3953] Fix | Delete
}
[3954] Fix | Delete
[3955] Fix | Delete
return $subject_id;
[3956] Fix | Delete
}
[3957] Fix | Delete
[3958] Fix | Delete
function et_pb_ab_get_subject_id() {
[3959] Fix | Delete
if ( ! isset( $_POST['et_frontend_nonce'] ) || ! wp_verify_nonce( $_POST['et_frontend_nonce'], 'et_frontend_nonce' ) ) {
[3960] Fix | Delete
die( -1 );
[3961] Fix | Delete
}
[3962] Fix | Delete
[3963] Fix | Delete
$test_id = intval( $_POST['et_pb_ab_test_id'] );
[3964] Fix | Delete
$hashed_subject_id = et_pb_ab_get_visitor_cookie( $test_id, 'view_page' );
[3965] Fix | Delete
$current_ab_module_id = et_pb_ab_unhashed_subject_id( $test_id, $hashed_subject_id );
[3966] Fix | Delete
[3967] Fix | Delete
// retrieve the cached subjects HTML
[3968] Fix | Delete
$subjects_cache = get_post_meta( $test_id, 'et_pb_subjects_cache', true );
[3969] Fix | Delete
[3970] Fix | Delete
$result = array(
[3971] Fix | Delete
'id' => $current_ab_module_id,
[3972] Fix | Delete
'content' => isset( $subjects_cache[ $current_ab_module_id ] ) ? $subjects_cache[ $current_ab_module_id ] : '',
[3973] Fix | Delete
);
[3974] Fix | Delete
[3975] Fix | Delete
die( wp_json_encode( $result ) );
[3976] Fix | Delete
}
[3977] Fix | Delete
add_action( 'wp_ajax_et_pb_ab_get_subject_id', 'et_pb_ab_get_subject_id' );
[3978] Fix | Delete
add_action( 'wp_ajax_nopriv_et_pb_ab_get_subject_id', 'et_pb_ab_get_subject_id' );
[3979] Fix | Delete
[3980] Fix | Delete
/**
[3981] Fix | Delete
* Register Builder Portability.
[3982] Fix | Delete
*
[3983] Fix | Delete
* @since 2.7.0
[3984] Fix | Delete
*/
[3985] Fix | Delete
function et_pb_register_builder_portabilities() {
[3986] Fix | Delete
global $shortname;
[3987] Fix | Delete
[3988] Fix | Delete
// Don't overwrite global.
[3989] Fix | Delete
$_shortname = empty( $shortname ) ? 'divi' : $shortname;
[3990] Fix | Delete
[3991] Fix | Delete
// Make sure the Portability is loaded.
[3992] Fix | Delete
et_core_load_component( 'portability' );
[3993] Fix | Delete
[3994] Fix | Delete
if ( current_user_can( 'edit_theme_options' ) ) {
[3995] Fix | Delete
// Register the Roles Editor portability.
[3996] Fix | Delete
et_core_portability_register( 'et_pb_roles', array(
[3997] Fix | Delete
'name' => esc_html__( 'Divi Role Editor Settings', 'et_builder' ),
[3998] Fix | Delete
'type' => 'options',
[3999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function