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/wp-conte.../plugins/popup-ma.../trunk/classes
File: Install.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Class for Install
[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
// Exit if accessed directly.
[8] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[9] Fix | Delete
exit;
[10] Fix | Delete
}
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Class PUM_Install
[14] Fix | Delete
*
[15] Fix | Delete
* @since 1.9.0
[16] Fix | Delete
*/
[17] Fix | Delete
class PUM_Install {
[18] Fix | Delete
[19] Fix | Delete
/**
[20] Fix | Delete
* @param $network_wide
[21] Fix | Delete
*/
[22] Fix | Delete
public static function activate_plugin( $network_wide ) {
[23] Fix | Delete
self::do_multisite( $network_wide, [ __CLASS__, 'activate_site' ] );
[24] Fix | Delete
}
[25] Fix | Delete
[26] Fix | Delete
/**
[27] Fix | Delete
* @param $network_wide
[28] Fix | Delete
*/
[29] Fix | Delete
public static function deactivate_plugin( $network_wide ) {
[30] Fix | Delete
self::do_multisite( $network_wide, [ __CLASS__, 'deactivate_site' ] );
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
*
[35] Fix | Delete
*/
[36] Fix | Delete
public static function uninstall_plugin() {
[37] Fix | Delete
self::do_multisite( true, [ __CLASS__, 'uninstall_site' ] );
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
/**
[41] Fix | Delete
* @param $network_wide
[42] Fix | Delete
* @param $method
[43] Fix | Delete
* @param array $args
[44] Fix | Delete
*/
[45] Fix | Delete
private static function do_multisite( $network_wide, $method, $args = [] ) {
[46] Fix | Delete
global $wpdb;
[47] Fix | Delete
[48] Fix | Delete
if ( is_multisite() && $network_wide ) {
[49] Fix | Delete
[50] Fix | Delete
$activated = get_site_option( 'pum_activated', [] );
[51] Fix | Delete
[52] Fix | Delete
$blog_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" );
[53] Fix | Delete
[54] Fix | Delete
// Try to reduce the chances of a timeout with a large number of sites.
[55] Fix | Delete
if ( count( $blog_ids ) > 2 ) {
[56] Fix | Delete
[57] Fix | Delete
ignore_user_abort( true );
[58] Fix | Delete
[59] Fix | Delete
if ( ! pum_is_func_disabled( 'set_time_limit' ) ) {
[60] Fix | Delete
@set_time_limit( 0 );
[61] Fix | Delete
}
[62] Fix | Delete
}
[63] Fix | Delete
[64] Fix | Delete
foreach ( $blog_ids as $blog_id ) {
[65] Fix | Delete
switch_to_blog( $blog_id );
[66] Fix | Delete
call_user_func_array( $method, [ $args ] );
[67] Fix | Delete
[68] Fix | Delete
$activated[] = $blog_id;
[69] Fix | Delete
[70] Fix | Delete
restore_current_blog();
[71] Fix | Delete
}
[72] Fix | Delete
[73] Fix | Delete
update_site_option( 'pum_activated', $activated );
[74] Fix | Delete
[75] Fix | Delete
} else {
[76] Fix | Delete
call_user_func_array( $method, [ $args ] );
[77] Fix | Delete
}
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
/**
[81] Fix | Delete
* Installs the plugin
[82] Fix | Delete
*/
[83] Fix | Delete
public static function activate_site() {
[84] Fix | Delete
[85] Fix | Delete
// Add default values where needed.
[86] Fix | Delete
$options = array_merge(
[87] Fix | Delete
get_option( 'popmake_settings', [] ),
[88] Fix | Delete
[
[89] Fix | Delete
'disable_popup_category_tag' => 1,
[90] Fix | Delete
]
[91] Fix | Delete
);
[92] Fix | Delete
[93] Fix | Delete
// Setup some default options.
[94] Fix | Delete
add_option( 'popmake_settings', $options );
[95] Fix | Delete
[96] Fix | Delete
add_option( 'pum_version', Popup_Maker::$VER );
[97] Fix | Delete
[98] Fix | Delete
pum();
[99] Fix | Delete
[100] Fix | Delete
// Setup the Popup & Theme Custom Post Type.
[101] Fix | Delete
// PUM_Types::register_post_types();.
[102] Fix | Delete
[103] Fix | Delete
// Setup the Popup Taxonomies.
[104] Fix | Delete
// PUM_Types::register_taxonomies( true );.
[105] Fix | Delete
[106] Fix | Delete
// Updates stored values for versioning.
[107] Fix | Delete
// PUM_Utils_Upgrades::update_plugin_version();.
[108] Fix | Delete
[109] Fix | Delete
// We used transients before, but since the check for this option runs every admin page load it means 2 queries after its cleared.
[110] Fix | Delete
// To prevent that we flipped it, now we delete the following option, and check for it.
[111] Fix | Delete
// If its missing then we know its a fresh install.
[112] Fix | Delete
delete_option( '_pum_installed' );
[113] Fix | Delete
[114] Fix | Delete
// Prepare to redirect to welcome screen, if not seen before.
[115] Fix | Delete
if ( false === get_option( 'pum_seen_welcome' ) ) {
[116] Fix | Delete
set_transient( 'pum_activation_redirect', 1, 60 );
[117] Fix | Delete
}
[118] Fix | Delete
[119] Fix | Delete
pum_get_default_theme_id();
[120] Fix | Delete
pum_install_built_in_themes();
[121] Fix | Delete
pum_install_example_popups();
[122] Fix | Delete
[123] Fix | Delete
// Reset JS/CSS assets for regeneration.
[124] Fix | Delete
pum_reset_assets();
[125] Fix | Delete
}
[126] Fix | Delete
[127] Fix | Delete
public static function get_option( $key, $default = false ) {
[128] Fix | Delete
if ( function_exists( 'pum_get_option' ) ) {
[129] Fix | Delete
return pum_get_option( $key, $default );
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
return PUM_Utils_Options::get( $key, $default );
[133] Fix | Delete
}
[134] Fix | Delete
[135] Fix | Delete
/**
[136] Fix | Delete
* Run when Popup Maker is deactivated. Completely deletes all data if complete_uninstall is set to true.
[137] Fix | Delete
*
[138] Fix | Delete
* @since 1.4
[139] Fix | Delete
*/
[140] Fix | Delete
public static function deactivate_site() {
[141] Fix | Delete
[142] Fix | Delete
/**
[143] Fix | Delete
* Process complete uninstall
[144] Fix | Delete
*/
[145] Fix | Delete
if ( self::get_option( 'complete_uninstall' ) ) {
[146] Fix | Delete
global $wpdb;
[147] Fix | Delete
[148] Fix | Delete
// Delete all popups and associated meta.
[149] Fix | Delete
$wpdb->query( "DELETE a,b,c FROM $wpdb->posts a LEFT JOIN $wpdb->term_relationships b ON (a.ID = b.object_id) LEFT JOIN $wpdb->postmeta c ON (a.ID = c.post_id) WHERE a.post_type IN ('popup', 'popup_theme')" );
[150] Fix | Delete
$wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key LIKE 'popup_%'" );
[151] Fix | Delete
[152] Fix | Delete
/** Delete All the Taxonomies */
[153] Fix | Delete
foreach ( [ 'popup_category', 'popup_tag' ] as $taxonomy ) {
[154] Fix | Delete
// Prepare & excecute SQL, Delete Terms.
[155] Fix | Delete
$wpdb->get_results( $wpdb->prepare( "DELETE t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('%s')", $taxonomy ) );
[156] Fix | Delete
[157] Fix | Delete
// Delete Taxonomy.
[158] Fix | Delete
$wpdb->delete( $wpdb->term_taxonomy, [ 'taxonomy' => $taxonomy ], [ '%s' ] );
[159] Fix | Delete
}
[160] Fix | Delete
[161] Fix | Delete
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE 'popmake%' OR option_name LIKE '_pum_%' OR option_name LIKE 'pum_%' OR option_name LIKE 'popup_analytics_%'" );
[162] Fix | Delete
[163] Fix | Delete
// Delete all Popup Maker related user meta.
[164] Fix | Delete
$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE '_pum_%' OR meta_key lIKE 'pum_%'" );
[165] Fix | Delete
[166] Fix | Delete
// Delete subscribers table.
[167] Fix | Delete
$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}pum_subscribers" );
[168] Fix | Delete
[169] Fix | Delete
// Delete error log.
[170] Fix | Delete
PUM_Utils_Logging::instance()->clear_log();
[171] Fix | Delete
[172] Fix | Delete
// Reset JS/CSS assets for regeneration.
[173] Fix | Delete
pum_reset_assets();
[174] Fix | Delete
[175] Fix | Delete
// # TODO Delete AssetCache files and folder.
[176] Fix | Delete
[177] Fix | Delete
do_action( 'pum_uninstall' );
[178] Fix | Delete
}
[179] Fix | Delete
}
[180] Fix | Delete
[181] Fix | Delete
/**
[182] Fix | Delete
* @since 1.9.0
[183] Fix | Delete
*/
[184] Fix | Delete
public static function uninstall_site() {
[185] Fix | Delete
[186] Fix | Delete
}
[187] Fix | Delete
[188] Fix | Delete
/**
[189] Fix | Delete
* Returns an activation failure flag if one exists.
[190] Fix | Delete
*
[191] Fix | Delete
* @return string|null
[192] Fix | Delete
*/
[193] Fix | Delete
public static function get_activation_flag() {
[194] Fix | Delete
global $wp_version;
[195] Fix | Delete
[196] Fix | Delete
$flag = null;
[197] Fix | Delete
[198] Fix | Delete
if ( version_compare( PHP_VERSION, Popup_Maker::$MIN_PHP_VER, '<' ) ) {
[199] Fix | Delete
$flag = 'PHP';
[200] Fix | Delete
} elseif ( version_compare( $wp_version, Popup_Maker::$MIN_WP_VER, '<' ) ) {
[201] Fix | Delete
$flag = 'WordPress';
[202] Fix | Delete
}
[203] Fix | Delete
[204] Fix | Delete
return $flag;
[205] Fix | Delete
}
[206] Fix | Delete
[207] Fix | Delete
/**
[208] Fix | Delete
* Checks if Popup Maker can activate safely.
[209] Fix | Delete
*
[210] Fix | Delete
* @return bool
[211] Fix | Delete
*/
[212] Fix | Delete
public static function meets_activation_requirements() {
[213] Fix | Delete
return self::get_activation_flag() === null;
[214] Fix | Delete
}
[215] Fix | Delete
[216] Fix | Delete
/**
[217] Fix | Delete
* Gets activation failure notice message.
[218] Fix | Delete
*
[219] Fix | Delete
* @return string
[220] Fix | Delete
*/
[221] Fix | Delete
public static function get_activation_failure_notice() {
[222] Fix | Delete
$flag = self::get_activation_flag();
[223] Fix | Delete
$version = 'PHP' === $flag ? Popup_Maker::$MIN_PHP_VER : Popup_Maker::$MIN_WP_VER;
[224] Fix | Delete
[225] Fix | Delete
return sprintf( __( 'The %4$s %1$s %5$s plugin requires %2$s version %3$s or greater.', 'popup-maker' ), Popup_Maker::$NAME, $flag, $version, '<strong>', '</strong>' );
[226] Fix | Delete
}
[227] Fix | Delete
[228] Fix | Delete
/**
[229] Fix | Delete
*
[230] Fix | Delete
*/
[231] Fix | Delete
public static function activation_failure_admin_notice() {
[232] Fix | Delete
?>
[233] Fix | Delete
<div class="notice notice-error is-dismissible">
[234] Fix | Delete
<p><?php esc_html_e( self::get_activation_failure_notice() ); ?></p>
[235] Fix | Delete
</div>
[236] Fix | Delete
<?php
[237] Fix | Delete
}
[238] Fix | Delete
[239] Fix | Delete
/**
[240] Fix | Delete
* Plugin Activation hook function to check for Minimum PHP and WordPress versions
[241] Fix | Delete
*
[242] Fix | Delete
* Cannot use static:: in case php 5.2 is used.
[243] Fix | Delete
*/
[244] Fix | Delete
public static function activation_check() {
[245] Fix | Delete
if ( self::meets_activation_requirements() ) {
[246] Fix | Delete
return;
[247] Fix | Delete
}
[248] Fix | Delete
[249] Fix | Delete
// Deactivate automatically due to insufficient PHP or WP Version.
[250] Fix | Delete
deactivate_plugins( basename( __FILE__ ) );
[251] Fix | Delete
[252] Fix | Delete
$notice = self::get_activation_failure_notice();
[253] Fix | Delete
[254] Fix | Delete
wp_die(
[255] Fix | Delete
"<p>$notice</p>",
[256] Fix | Delete
__( 'Plugin Activation Error', 'popup-maker' ),
[257] Fix | Delete
[
[258] Fix | Delete
'response' => 200,
[259] Fix | Delete
'back_link' => true,
[260] Fix | Delete
]
[261] Fix | Delete
);
[262] Fix | Delete
}
[263] Fix | Delete
[264] Fix | Delete
}
[265] Fix | Delete
[266] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function