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-bu.../com/classes
File: Installer.php
<?php
[0] Fix | Delete
namespace sgpb;
[1] Fix | Delete
use \SgpbPopupExtensionRegister;
[2] Fix | Delete
[3] Fix | Delete
class Installer
[4] Fix | Delete
{
[5] Fix | Delete
public static function createTables($tables, $blogId = '')
[6] Fix | Delete
{
[7] Fix | Delete
global $wpdb;
[8] Fix | Delete
if (empty($tables)) {
[9] Fix | Delete
return false;
[10] Fix | Delete
}
[11] Fix | Delete
[12] Fix | Delete
foreach ($tables as $table) {
[13] Fix | Delete
$pbsgTableName = $wpdb->prefix.$blogId.$table;
[14] Fix | Delete
$wpdb->query( $wpdb->prepare( "CREATE TABLE IF NOT EXISTS $pbsgTableName") );
[15] Fix | Delete
}
[16] Fix | Delete
[17] Fix | Delete
return true;
[18] Fix | Delete
}
[19] Fix | Delete
[20] Fix | Delete
private static function getAllNeededTables()
[21] Fix | Delete
{
[22] Fix | Delete
$tables = array();
[23] Fix | Delete
global $SGPB_POPUP_TYPES;
[24] Fix | Delete
$popupTypes = $SGPB_POPUP_TYPES['typeName'];
[25] Fix | Delete
[26] Fix | Delete
if (empty($popupTypes)) {
[27] Fix | Delete
return $tables;
[28] Fix | Delete
}
[29] Fix | Delete
[30] Fix | Delete
foreach ($popupTypes as $popupTypeKey => $popupTypeLevel) {
[31] Fix | Delete
if (SGPB_POPUP_PKG >= $popupTypeLevel) {
[32] Fix | Delete
$className = ucfirst($popupTypeKey).'Popup';
[33] Fix | Delete
[34] Fix | Delete
if (file_exists(SG_POPUP_CLASSES_POPUPS_PATH.$className.'.php')) {
[35] Fix | Delete
[36] Fix | Delete
require_once(SG_POPUP_CLASSES_POPUPS_PATH.$className.'.php');
[37] Fix | Delete
[38] Fix | Delete
$className = __NAMESPACE__.'\\'.$className;
[39] Fix | Delete
[40] Fix | Delete
$popupTables = $className::getTablesSql();
[41] Fix | Delete
[42] Fix | Delete
if (empty($popupTables)) {
[43] Fix | Delete
continue;
[44] Fix | Delete
}
[45] Fix | Delete
[46] Fix | Delete
foreach ($popupTables as $tableSql) {
[47] Fix | Delete
$tables[] = $tableSql;
[48] Fix | Delete
}
[49] Fix | Delete
}
[50] Fix | Delete
}
[51] Fix | Delete
[52] Fix | Delete
}
[53] Fix | Delete
[54] Fix | Delete
return $tables;
[55] Fix | Delete
}
[56] Fix | Delete
[57] Fix | Delete
public static function install()
[58] Fix | Delete
{
[59] Fix | Delete
$tables = self::getAllNeededTables();
[60] Fix | Delete
$filteredTables = apply_filters('sgpbTablesInstall', $tables);
[61] Fix | Delete
[62] Fix | Delete
if (get_option('sgpb-dont-delete-data') === false) {
[63] Fix | Delete
// Initial option insert
[64] Fix | Delete
update_option('sgpb-dont-delete-data', 1);
[65] Fix | Delete
}
[66] Fix | Delete
[67] Fix | Delete
self::createTables($filteredTables);
[68] Fix | Delete
[69] Fix | Delete
self::setupInstallationsDateConfig($filteredTables);
[70] Fix | Delete
[71] Fix | Delete
// get_current_blog_id() == 1 When plugin activated inside the child of multisite instance
[72] Fix | Delete
if (is_multisite() && get_current_blog_id() == 1) {
[73] Fix | Delete
global $wp_version;
[74] Fix | Delete
[75] Fix | Delete
if ($wp_version > '4.6.0') {
[76] Fix | Delete
$sites = get_sites();
[77] Fix | Delete
}
[78] Fix | Delete
else {
[79] Fix | Delete
$sites = wp_get_sites();
[80] Fix | Delete
}
[81] Fix | Delete
[82] Fix | Delete
foreach ($sites as $site) {
[83] Fix | Delete
[84] Fix | Delete
if ($wp_version > '4.6.0') {
[85] Fix | Delete
$blogId = $site->blog_id.'_';
[86] Fix | Delete
}
[87] Fix | Delete
else {
[88] Fix | Delete
$blogId = $site['blog_id'].'_';
[89] Fix | Delete
}
[90] Fix | Delete
// blog Id 1 for multisite main site
[91] Fix | Delete
if ($blogId != 1) {
[92] Fix | Delete
self::createTables($filteredTables, $blogId);
[93] Fix | Delete
}
[94] Fix | Delete
}
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
// install extensions
[98] Fix | Delete
if (SGPB_POPUP_PKG != SGPB_POPUP_PKG_FREE) {
[99] Fix | Delete
$obj = new PopupExtensionActivator();
[100] Fix | Delete
$obj->install();
[101] Fix | Delete
}
[102] Fix | Delete
}
[103] Fix | Delete
[104] Fix | Delete
public static function setupInstallationsDateConfig()
[105] Fix | Delete
{
[106] Fix | Delete
update_option('sgpbUnsubscribeColumnFixed', 1);
[107] Fix | Delete
$usageDays = get_option('SGPBUsageDays');
[108] Fix | Delete
if (!$usageDays) {
[109] Fix | Delete
update_option('SGPBUsageDays', 0);
[110] Fix | Delete
[111] Fix | Delete
$timeDate = new \DateTime('now');
[112] Fix | Delete
$installTime = strtotime($timeDate->format('Y-m-d H:i:s'));
[113] Fix | Delete
update_option('SGPBInstallDate', $installTime);
[114] Fix | Delete
$timeDate->modify('+'.SGPB_REVIEW_POPUP_PERIOD.' day');
[115] Fix | Delete
[116] Fix | Delete
$timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
[117] Fix | Delete
update_option('SGPBOpenNextTime', $timeNow);
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
$maxPopupCount = get_option('SGPBMaxOpenCount');
[121] Fix | Delete
if (!$maxPopupCount) {
[122] Fix | Delete
update_option('SGPBMaxOpenCount', SGPB_ASK_REVIEW_POPUP_COUNT);
[123] Fix | Delete
}
[124] Fix | Delete
}
[125] Fix | Delete
[126] Fix | Delete
public static function uninstall()
[127] Fix | Delete
{
[128] Fix | Delete
delete_option('sgpb-user-roles');
[129] Fix | Delete
[130] Fix | Delete
// When don't delete data if don't delete data option was unchecked
[131] Fix | Delete
if (!get_option('sgpb-dont-delete-data')) {
[132] Fix | Delete
return false;
[133] Fix | Delete
}
[134] Fix | Delete
delete_option('sgpb-dont-delete-data');
[135] Fix | Delete
delete_option('sgpb-new-subscriber');
[136] Fix | Delete
delete_option('sgpbUnsubscribeColumnFixed');
[137] Fix | Delete
delete_option('sgpbActivateExtensions');
[138] Fix | Delete
delete_option('sgpbExtensionsInfo');
[139] Fix | Delete
delete_option('sgpb-enable-debug-mode');
[140] Fix | Delete
delete_option('sgpb-disable-analytics-general');
[141] Fix | Delete
delete_option('sgpb-disable-disable-custom-js');
[142] Fix | Delete
[143] Fix | Delete
// Trigger popup data delete action
[144] Fix | Delete
do_action('sgpbDeletePopupData');
[145] Fix | Delete
[146] Fix | Delete
self::deletePopups();
[147] Fix | Delete
self::deleteCustomTables();
[148] Fix | Delete
[149] Fix | Delete
if (is_multisite()) {
[150] Fix | Delete
global $wp_version;
[151] Fix | Delete
if ($wp_version > '4.6.0') {
[152] Fix | Delete
$sites = get_sites();
[153] Fix | Delete
}
[154] Fix | Delete
else {
[155] Fix | Delete
$sites = wp_get_sites();
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
foreach ($sites as $site) {
[159] Fix | Delete
if ($wp_version > '4.6.0') {
[160] Fix | Delete
$blogId = $site->blog_id.'_';
[161] Fix | Delete
}
[162] Fix | Delete
else {
[163] Fix | Delete
$blogId = $site['blog_id'].'_';
[164] Fix | Delete
}
[165] Fix | Delete
self::deleteCustomTables($blogId);
[166] Fix | Delete
}
[167] Fix | Delete
}
[168] Fix | Delete
[169] Fix | Delete
return true;
[170] Fix | Delete
}
[171] Fix | Delete
[172] Fix | Delete
/**
[173] Fix | Delete
* Delete Taxonomy by name
[174] Fix | Delete
*
[175] Fix | Delete
* @since 1.0.0
[176] Fix | Delete
*
[177] Fix | Delete
* @param string $taxonomy
[178] Fix | Delete
*
[179] Fix | Delete
* @return void
[180] Fix | Delete
*/
[181] Fix | Delete
public static function deleteCustomTerms($taxonomy)
[182] Fix | Delete
{
[183] Fix | Delete
global $wpdb;
[184] Fix | Delete
[185] Fix | Delete
$terms = $wpdb->get_results( $wpdb->prepare( "SELECT t.name, t.term_id FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s" , esc_sql($taxonomy) ) );
[186] Fix | Delete
[187] Fix | Delete
$terms = apply_filters('sgpbDeleteTerms', $terms);
[188] Fix | Delete
[189] Fix | Delete
foreach ($terms as $term) {
[190] Fix | Delete
if (empty($term)) {
[191] Fix | Delete
continue;
[192] Fix | Delete
}
[193] Fix | Delete
wp_delete_term($term->term_id, $taxonomy);
[194] Fix | Delete
}
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
/**
[198] Fix | Delete
* Delete all popup builder post types posts
[199] Fix | Delete
*
[200] Fix | Delete
* @since 1.0.0
[201] Fix | Delete
*
[202] Fix | Delete
* @return void
[203] Fix | Delete
*
[204] Fix | Delete
*/
[205] Fix | Delete
private static function deletePopups()
[206] Fix | Delete
{
[207] Fix | Delete
$popups = get_posts(
[208] Fix | Delete
array(
[209] Fix | Delete
'post_type' => SG_POPUP_POST_TYPE,
[210] Fix | Delete
'post_status' => array(
[211] Fix | Delete
'publish',
[212] Fix | Delete
'pending',
[213] Fix | Delete
'draft',
[214] Fix | Delete
'auto-draft',
[215] Fix | Delete
'future',
[216] Fix | Delete
'private',
[217] Fix | Delete
'inherit',
[218] Fix | Delete
'trash'
[219] Fix | Delete
)
[220] Fix | Delete
)
[221] Fix | Delete
);
[222] Fix | Delete
$popups = apply_filters('sgpbDeletePopups', $popups);
[223] Fix | Delete
[224] Fix | Delete
foreach ($popups as $popup) {
[225] Fix | Delete
if (empty($popup)) {
[226] Fix | Delete
continue;
[227] Fix | Delete
}
[228] Fix | Delete
wp_delete_post($popup->ID, true);
[229] Fix | Delete
}
[230] Fix | Delete
}
[231] Fix | Delete
[232] Fix | Delete
private static function deleteCustomTables($blogId = '')
[233] Fix | Delete
{
[234] Fix | Delete
$allTableNames = self::getAllTableNames();
[235] Fix | Delete
[236] Fix | Delete
if (empty($allTableNames)) {
[237] Fix | Delete
return false;
[238] Fix | Delete
}
[239] Fix | Delete
global $wpdb;
[240] Fix | Delete
[241] Fix | Delete
foreach ($allTableNames as $tableName) {
[242] Fix | Delete
$deleteTable = $wpdb->prefix.$blogId.$tableName;
[243] Fix | Delete
$wpdb->query( "DROP TABLE $deleteTable" );
[244] Fix | Delete
}
[245] Fix | Delete
[246] Fix | Delete
return true;
[247] Fix | Delete
}
[248] Fix | Delete
[249] Fix | Delete
/**
[250] Fix | Delete
* It's acquire all popup types installed table names
[251] Fix | Delete
*
[252] Fix | Delete
* @since 1.0.0
[253] Fix | Delete
*
[254] Fix | Delete
* @return array $popup types table names
[255] Fix | Delete
*
[256] Fix | Delete
*/
[257] Fix | Delete
private static function getAllTableNames()
[258] Fix | Delete
{
[259] Fix | Delete
$tables = array();
[260] Fix | Delete
global $SGPB_POPUP_TYPES;
[261] Fix | Delete
$popupTypes = $SGPB_POPUP_TYPES['typeName'];
[262] Fix | Delete
[263] Fix | Delete
if (empty($popupTypes)) {
[264] Fix | Delete
return $tables;
[265] Fix | Delete
}
[266] Fix | Delete
[267] Fix | Delete
require_once(SG_POPUP_CONFIG_PATH.'configPackage.php');
[268] Fix | Delete
[269] Fix | Delete
foreach ($popupTypes as $popupTypeKey => $popupTypeLevel) {
[270] Fix | Delete
if (SGPB_POPUP_PKG >= $popupTypeLevel) {
[271] Fix | Delete
$className = ucfirst($popupTypeKey).'Popup';
[272] Fix | Delete
[273] Fix | Delete
if (file_exists(SG_POPUP_CLASSES_POPUPS_PATH.$className.'.php')) {
[274] Fix | Delete
[275] Fix | Delete
require_once(SG_POPUP_CLASSES_POPUPS_PATH.$className.'.php');
[276] Fix | Delete
[277] Fix | Delete
$className = __NAMESPACE__.'\\'.$className;
[278] Fix | Delete
[279] Fix | Delete
$popupTables = $className::getTableNames();
[280] Fix | Delete
[281] Fix | Delete
if (empty($popupTables)) {
[282] Fix | Delete
continue;
[283] Fix | Delete
}
[284] Fix | Delete
[285] Fix | Delete
foreach ($popupTables as $tableName) {
[286] Fix | Delete
$tables[] = $tableName;
[287] Fix | Delete
}
[288] Fix | Delete
}
[289] Fix | Delete
}
[290] Fix | Delete
[291] Fix | Delete
}
[292] Fix | Delete
[293] Fix | Delete
return $tables;
[294] Fix | Delete
}
[295] Fix | Delete
[296] Fix | Delete
public static function registerPlugin()
[297] Fix | Delete
{
[298] Fix | Delete
$pluginName = SGPB_POPUP_FILE_NAME;
[299] Fix | Delete
$classPath = SG_POPUP_EXTENSION_PATH.'SgpbPopupExtension.php';
[300] Fix | Delete
$className = 'SgpbPopupExtension';
[301] Fix | Delete
$options = array();
[302] Fix | Delete
[303] Fix | Delete
if (SGPB_POPUP_PKG != SGPB_POPUP_PKG_FREE) {
[304] Fix | Delete
$options = array(
[305] Fix | Delete
'licence' => array(
[306] Fix | Delete
'key' => SG_POPUP_KEY,
[307] Fix | Delete
'storeURL' => SG_POPUP_STORE_URL,
[308] Fix | Delete
'file' => SGPB_POPUP_FILE_NAME,
[309] Fix | Delete
'itemId' => SGPB_ITEM_ID,
[310] Fix | Delete
'itemName' => __('Popup Builder', 'popup-builder'),
[311] Fix | Delete
'autor' => SG_POPUP_AUTHOR,
[312] Fix | Delete
'boxLabel' => __('Popup Builder License', 'popup-builder')
[313] Fix | Delete
)
[314] Fix | Delete
);
[315] Fix | Delete
$options = apply_filters('sgpbRegisterOptions', $options);
[316] Fix | Delete
}
[317] Fix | Delete
[318] Fix | Delete
@SgpbPopupExtensionRegister::register($pluginName, $classPath, $className, $options);
[319] Fix | Delete
}
[320] Fix | Delete
}
[321] Fix | Delete
[322] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function