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.../plugins/popup-ma.../trunk/includes/function.../popups
File: migrations.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Functions for Popup Migrations
[2] Fix | Delete
*
[3] Fix | Delete
* @package PUM
[4] Fix | Delete
* @copyright Copyright (c) 2023, Code Atlantic LLC
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
/**
[8] Fix | Delete
* Checks if passive migration for popups should be enabled.
[9] Fix | Delete
*
[10] Fix | Delete
* This determines if the query load may be potentially too high to run passive migrations on live servers.
[11] Fix | Delete
*
[12] Fix | Delete
* @return bool
[13] Fix | Delete
*/
[14] Fix | Delete
function pum_passive_popup_upgrades_enabled() {
[15] Fix | Delete
/** @var int $popup_count */
[16] Fix | Delete
static $popup_count;
[17] Fix | Delete
[18] Fix | Delete
if ( defined( 'PUM_DISABLE_PASSIVE_UPGRADES' ) && PUM_DISABLE_PASSIVE_UPGRADES ) {
[19] Fix | Delete
return false;
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
if ( ! $popup_count ) {
[23] Fix | Delete
$popup_count = get_transient( 'pum_popup_count' );
[24] Fix | Delete
[25] Fix | Delete
if ( false === $popup_count ) {
[26] Fix | Delete
$popup_count = pum_count_popups(
[27] Fix | Delete
[
[28] Fix | Delete
'post_status' => [ 'publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash' ],
[29] Fix | Delete
]
[30] Fix | Delete
);
[31] Fix | Delete
[32] Fix | Delete
set_transient( 'pum_popup_count', $popup_count, HOUR_IN_SECONDS * 24 );
[33] Fix | Delete
}
[34] Fix | Delete
}
[35] Fix | Delete
[36] Fix | Delete
return $popup_count > apply_filters( 'pum_passive_popups_enabled_max_count', 5 );
[37] Fix | Delete
}
[38] Fix | Delete
[39] Fix | Delete
/**
[40] Fix | Delete
* Upgrade popup data to model v3.
[41] Fix | Delete
*
[42] Fix | Delete
* @since 1.7.0
[43] Fix | Delete
*
[44] Fix | Delete
* @param $popup PUM_Model_Popup
[45] Fix | Delete
*/
[46] Fix | Delete
function pum_popup_migration_2( &$popup ) {
[47] Fix | Delete
[48] Fix | Delete
$changed = false;
[49] Fix | Delete
$delete_meta = [];
[50] Fix | Delete
[51] Fix | Delete
/**
[52] Fix | Delete
* Update pum_sub_form shortcode args
[53] Fix | Delete
*/
[54] Fix | Delete
if ( has_shortcode( $popup->post_content, 'pum_sub_form' ) ) {
[55] Fix | Delete
$new_content = preg_replace( '/\[pum_sub_form(.*)provider="none"(.*)\]/', '[pum_sub_form$1 provider=""$2]', $popup->post_content );
[56] Fix | Delete
[57] Fix | Delete
if ( $popup->post_content !== $new_content ) {
[58] Fix | Delete
$popup->post_content = $new_content;
[59] Fix | Delete
$changed = true;
[60] Fix | Delete
$popup->save( false );
[61] Fix | Delete
}
[62] Fix | Delete
}
[63] Fix | Delete
[64] Fix | Delete
$settings = $popup->get_settings();
[65] Fix | Delete
[66] Fix | Delete
/**
[67] Fix | Delete
* Migrate popup theme selection.
[68] Fix | Delete
*/
[69] Fix | Delete
$theme = $popup->get_meta( 'popup_theme' );
[70] Fix | Delete
if ( ! empty( $theme ) && is_numeric( $theme ) ) {
[71] Fix | Delete
$settings['theme_id'] = absint( $theme );
[72] Fix | Delete
$changed = true;
[73] Fix | Delete
$delete_meta[] = 'popup_theme';
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
/**
[77] Fix | Delete
* Migrate popup_display meta data.
[78] Fix | Delete
*/
[79] Fix | Delete
$display = $popup->get_meta( 'popup_display' );
[80] Fix | Delete
if ( ! empty( $display ) && is_array( $display ) ) {
[81] Fix | Delete
$keys = $popup->remapped_meta_settings_keys( 'display' );
[82] Fix | Delete
[83] Fix | Delete
// Foreach old key, save the value under popup settings for the new key.
[84] Fix | Delete
foreach ( $keys as $old_key => $new_key ) {
[85] Fix | Delete
if ( isset( $display[ $old_key ] ) && ! empty( $display[ $old_key ] ) ) {
[86] Fix | Delete
$settings[ $new_key ] = $display[ $old_key ];
[87] Fix | Delete
$changed = true;
[88] Fix | Delete
unset( $display[ $old_key ] );
[89] Fix | Delete
[90] Fix | Delete
if ( in_array(
[91] Fix | Delete
$old_key,
[92] Fix | Delete
[
[93] Fix | Delete
'responsive_min_width',
[94] Fix | Delete
'responsive_max_width',
[95] Fix | Delete
'custom_width',
[96] Fix | Delete
'custom_height',
[97] Fix | Delete
]
[98] Fix | Delete
) && isset( $display[ $old_key . '_unit' ] ) ) {
[99] Fix | Delete
$settings[ $new_key ] .= $display[ $old_key . '_unit' ];
[100] Fix | Delete
unset( $display[ $old_key . '_unit' ] );
[101] Fix | Delete
}
[102] Fix | Delete
}
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
if ( empty( $display ) ) {
[106] Fix | Delete
$delete_meta[] = 'popup_display';
[107] Fix | Delete
} else {
[108] Fix | Delete
// Update the saved popup display data with any remaining keys from extensions.
[109] Fix | Delete
$popup->update_meta( 'popup_display', $display );
[110] Fix | Delete
}
[111] Fix | Delete
}
[112] Fix | Delete
[113] Fix | Delete
/**
[114] Fix | Delete
* Migrate popup_close meta data
[115] Fix | Delete
*/
[116] Fix | Delete
$close = $popup->get_meta( 'popup_close' );
[117] Fix | Delete
if ( ! empty( $close ) && is_array( $close ) ) {
[118] Fix | Delete
$keys = $popup->remapped_meta_settings_keys( 'close' );
[119] Fix | Delete
[120] Fix | Delete
// Foreach old key, save the value under popup settings for the new key.
[121] Fix | Delete
foreach ( $keys as $old_key => $new_key ) {
[122] Fix | Delete
if ( isset( $close[ $old_key ] ) ) {
[123] Fix | Delete
$settings[ $new_key ] = $close[ $old_key ];
[124] Fix | Delete
$changed = true;
[125] Fix | Delete
unset( $close[ $old_key ] );
[126] Fix | Delete
}
[127] Fix | Delete
}
[128] Fix | Delete
[129] Fix | Delete
if ( empty( $close ) ) {
[130] Fix | Delete
$delete_meta[] = 'popup_close';
[131] Fix | Delete
} else {
[132] Fix | Delete
// Update the saved popup close data with any remaining keys from extensions.
[133] Fix | Delete
$popup->update_meta( 'popup_close', $close );
[134] Fix | Delete
}
[135] Fix | Delete
}
[136] Fix | Delete
[137] Fix | Delete
/**
[138] Fix | Delete
* Migrate triggers.
[139] Fix | Delete
*/
[140] Fix | Delete
$triggers = $popup->get_meta( 'popup_triggers' );
[141] Fix | Delete
if ( ! empty( $triggers ) && is_array( $triggers ) ) {
[142] Fix | Delete
$triggers = ! empty( $settings['triggers'] ) && is_array( $settings['triggers'] ) ? array_merge( $settings['triggers'], $triggers ) : $triggers;
[143] Fix | Delete
[144] Fix | Delete
foreach ( $triggers as $key => $trigger ) {
[145] Fix | Delete
if ( isset( $trigger['settings']['cookie']['name'] ) ) {
[146] Fix | Delete
$triggers[ $key ]['settings']['cookie_name'] = $trigger['settings']['cookie']['name'];
[147] Fix | Delete
unset( $triggers[ $key ]['settings']['cookie'] );
[148] Fix | Delete
}
[149] Fix | Delete
}
[150] Fix | Delete
[151] Fix | Delete
$settings['triggers'] = $triggers;
[152] Fix | Delete
$changed = true;
[153] Fix | Delete
[154] Fix | Delete
$delete_meta[] = 'popup_triggers';
[155] Fix | Delete
}
[156] Fix | Delete
[157] Fix | Delete
/**
[158] Fix | Delete
* Migrate cookies.
[159] Fix | Delete
*/
[160] Fix | Delete
$cookies = $popup->get_meta( 'popup_cookies' );
[161] Fix | Delete
if ( ! empty( $cookies ) && is_array( $cookies ) ) {
[162] Fix | Delete
$cookies = ! empty( $settings['cookies'] ) && is_array( $settings['cookies'] ) ? array_merge( $settings['cookies'], $cookies ) : $cookies;
[163] Fix | Delete
$settings['cookies'] = $cookies;
[164] Fix | Delete
$changed = true;
[165] Fix | Delete
$delete_meta[] = 'popup_cookies';
[166] Fix | Delete
}
[167] Fix | Delete
[168] Fix | Delete
/**
[169] Fix | Delete
* Migrate conditions.
[170] Fix | Delete
*/
[171] Fix | Delete
$conditions = $popup->get_meta( 'popup_conditions' );
[172] Fix | Delete
if ( ! empty( $conditions ) && is_array( $conditions ) ) {
[173] Fix | Delete
$conditions = ! empty( $settings['conditions'] ) && is_array( $settings['conditions'] ) ? array_merge( $settings['conditions'], $conditions ) : $conditions;
[174] Fix | Delete
[175] Fix | Delete
foreach ( $conditions as $cg_key => $group ) {
[176] Fix | Delete
if ( ! empty( $group ) ) {
[177] Fix | Delete
foreach ( $group as $c_key => $condition ) {
[178] Fix | Delete
[179] Fix | Delete
// Clean empty conditions.
[180] Fix | Delete
if ( ! empty( $condition['target'] ) ) {
[181] Fix | Delete
$fixed_condition = [
[182] Fix | Delete
'target' => $condition['target'],
[183] Fix | Delete
'not_operand' => isset( $condition['not_operand'] ) ? (bool) $condition['not_operand'] : false,
[184] Fix | Delete
'settings' => isset( $condition['settings'] ) ? $condition['settings'] : [],
[185] Fix | Delete
];
[186] Fix | Delete
[187] Fix | Delete
foreach ( $condition as $key => $val ) {
[188] Fix | Delete
if ( ! in_array( $key, [ 'target', 'not_operand', 'settings' ] ) ) {
[189] Fix | Delete
$fixed_condition['settings'][ $key ] = $val;
[190] Fix | Delete
}
[191] Fix | Delete
}
[192] Fix | Delete
[193] Fix | Delete
$conditions[ $cg_key ][ $c_key ] = $fixed_condition;
[194] Fix | Delete
} else {
[195] Fix | Delete
unset( $conditions[ $cg_key ][ $c_key ] );
[196] Fix | Delete
}
[197] Fix | Delete
}
[198] Fix | Delete
[199] Fix | Delete
// Clean empty groups.
[200] Fix | Delete
if ( empty( $conditions[ $cg_key ] ) ) {
[201] Fix | Delete
unset( $conditions[ $cg_key ] );
[202] Fix | Delete
}
[203] Fix | Delete
}
[204] Fix | Delete
}
[205] Fix | Delete
[206] Fix | Delete
$settings['conditions'] = $conditions;
[207] Fix | Delete
$changed = true;
[208] Fix | Delete
$delete_meta[] = 'popup_conditions';
[209] Fix | Delete
}
[210] Fix | Delete
[211] Fix | Delete
/**
[212] Fix | Delete
* Migrate popup_mobile_disabled.
[213] Fix | Delete
*/
[214] Fix | Delete
$mobile_disabled = $popup->get_meta( 'popup_mobile_disabled' );
[215] Fix | Delete
if ( ! empty( $mobile_disabled ) ) {
[216] Fix | Delete
$settings['disable_on_mobile'] = (bool) ( $mobile_disabled );
[217] Fix | Delete
$changed = true;
[218] Fix | Delete
$delete_meta[] = 'popup_mobile_disabled';
[219] Fix | Delete
}
[220] Fix | Delete
[221] Fix | Delete
/**
[222] Fix | Delete
* Migrate popup_tablet_disabled.
[223] Fix | Delete
*/
[224] Fix | Delete
$tablet_disabled = $popup->get_meta( 'popup_tablet_disabled' );
[225] Fix | Delete
if ( ! empty( $tablet_disabled ) ) {
[226] Fix | Delete
$settings['disable_on_tablet'] = (bool) ( $tablet_disabled );
[227] Fix | Delete
$changed = true;
[228] Fix | Delete
$delete_meta[] = 'popup_tablet_disabled';
[229] Fix | Delete
}
[230] Fix | Delete
[231] Fix | Delete
/**
[232] Fix | Delete
* Migrate analytics reset keys.
[233] Fix | Delete
*/
[234] Fix | Delete
$open_count_reset = $popup->get_meta( 'popup_open_count_reset', false );
[235] Fix | Delete
if ( ! empty( $open_count_reset ) && is_array( $open_count_reset ) ) {
[236] Fix | Delete
foreach ( $open_count_reset as $key => $reset ) {
[237] Fix | Delete
if ( is_array( $reset ) ) {
[238] Fix | Delete
add_post_meta(
[239] Fix | Delete
$popup->ID,
[240] Fix | Delete
'popup_count_reset',
[241] Fix | Delete
[
[242] Fix | Delete
'timestamp' => ! empty( $reset['timestamp'] ) ? $reset['timestamp'] : '',
[243] Fix | Delete
'opens' => ! empty( $reset['count'] ) ? absint( $reset['count'] ) : 0,
[244] Fix | Delete
'conversions' => 0,
[245] Fix | Delete
]
[246] Fix | Delete
);
[247] Fix | Delete
}
[248] Fix | Delete
}
[249] Fix | Delete
[250] Fix | Delete
$delete_meta[] = 'popup_open_count_reset';
[251] Fix | Delete
}
[252] Fix | Delete
[253] Fix | Delete
/**
[254] Fix | Delete
* Save only if something changed.
[255] Fix | Delete
*/
[256] Fix | Delete
if ( $changed ) {
[257] Fix | Delete
$popup->update_meta( 'popup_settings', $settings );
[258] Fix | Delete
}
[259] Fix | Delete
[260] Fix | Delete
/**
[261] Fix | Delete
* Clean up automatically.
[262] Fix | Delete
*/
[263] Fix | Delete
if ( ! empty( $delete_meta ) ) {
[264] Fix | Delete
foreach ( $delete_meta as $key ) {
[265] Fix | Delete
$popup->delete_meta( $key );
[266] Fix | Delete
}
[267] Fix | Delete
}
[268] Fix | Delete
}
[269] Fix | Delete
[270] Fix | Delete
add_action( 'pum_popup_passive_migration_2', 'pum_popup_migration_2' );
[271] Fix | Delete
[272] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function