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/wp-conte.../plugins/content-.../inc/freemius/includes
File: class-freemius.php
*/
[6000] Fix | Delete
private function deactivate_premium_only_addon_without_license( $is_after_trial_cancel = false ) {
[6001] Fix | Delete
if ( ! $this->has_free_plan() &&
[6002] Fix | Delete
! $this->has_features_enabled_license() &&
[6003] Fix | Delete
! $this->_has_premium_license()
[6004] Fix | Delete
) {
[6005] Fix | Delete
if ( $this->is_registered() ) {
[6006] Fix | Delete
// IF wrapper is turned off because activation_timestamp is currently only stored for plugins (not addons).
[6007] Fix | Delete
// if (empty($this->_storage->activation_timestamp) ||
[6008] Fix | Delete
// (WP_FS__SCRIPT_START_TIME - $this->_storage->activation_timestamp) > 30
[6009] Fix | Delete
// ) {
[6010] Fix | Delete
/**
[6011] Fix | Delete
* @todo When it's first fail, there's no reason to try and re-sync because the licenses were just synced after initial activation.
[6012] Fix | Delete
*
[6013] Fix | Delete
* Retry syncing the user add-on licenses.
[6014] Fix | Delete
*/
[6015] Fix | Delete
// Sync licenses.
[6016] Fix | Delete
$this->_sync_licenses();
[6017] Fix | Delete
// }
[6018] Fix | Delete
[6019] Fix | Delete
// Try to activate premium license.
[6020] Fix | Delete
$this->_activate_license( true );
[6021] Fix | Delete
}
[6022] Fix | Delete
[6023] Fix | Delete
if ( ! $this->has_free_plan() &&
[6024] Fix | Delete
! $this->has_features_enabled_license() &&
[6025] Fix | Delete
! $this->_has_premium_license()
[6026] Fix | Delete
) {
[6027] Fix | Delete
// @todo Check if deactivate plugins also call the deactivation hook.
[6028] Fix | Delete
[6029] Fix | Delete
$this->_parent->_admin_notices->add_sticky(
[6030] Fix | Delete
sprintf(
[6031] Fix | Delete
( $is_after_trial_cancel ?
[6032] Fix | Delete
$this->_parent->get_text_inline(
[6033] Fix | Delete
'%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you\'ll have to purchase a license.',
[6034] Fix | Delete
'addon-trial-cancelled-message'
[6035] Fix | Delete
) :
[6036] Fix | Delete
$this->_parent->get_text_inline(
[6037] Fix | Delete
'%s is a premium only add-on. You have to purchase a license first before activating the plugin.',
[6038] Fix | Delete
'addon-no-license-message'
[6039] Fix | Delete
)
[6040] Fix | Delete
),
[6041] Fix | Delete
'<b>' . $this->_plugin->title . '</b>'
[6042] Fix | Delete
) . ' ' . sprintf(
[6043] Fix | Delete
'<a href="%s" aria-label="%s" class="button button-primary" style="margin-left: 10px; vertical-align: middle;">%s &nbsp;&#10140;</a>',
[6044] Fix | Delete
$this->_parent->addon_url( $this->_slug ),
[6045] Fix | Delete
esc_attr( sprintf( $this->_parent->get_text_inline( 'More information about %s', 'more-information-about-x' ), $this->_plugin->title ) ),
[6046] Fix | Delete
$this->_parent->get_text_inline( 'Purchase License', 'purchase-license' )
[6047] Fix | Delete
),
[6048] Fix | Delete
'no_addon_license_' . $this->_slug,
[6049] Fix | Delete
( $is_after_trial_cancel ? '' : $this->_parent->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' ),
[6050] Fix | Delete
( $is_after_trial_cancel ? 'success' : 'error' )
[6051] Fix | Delete
);
[6052] Fix | Delete
[6053] Fix | Delete
deactivate_plugins( array( $this->_plugin_basename ), true );
[6054] Fix | Delete
[6055] Fix | Delete
return true;
[6056] Fix | Delete
}
[6057] Fix | Delete
}
[6058] Fix | Delete
[6059] Fix | Delete
return false;
[6060] Fix | Delete
}
[6061] Fix | Delete
[6062] Fix | Delete
#endregion
[6063] Fix | Delete
[6064] Fix | Delete
#----------------------------------------------------------------------------------
[6065] Fix | Delete
#region Sandbox
[6066] Fix | Delete
#----------------------------------------------------------------------------------
[6067] Fix | Delete
[6068] Fix | Delete
/**
[6069] Fix | Delete
* Set Freemius into sandbox mode for debugging.
[6070] Fix | Delete
*
[6071] Fix | Delete
* @author Vova Feldman (@svovaf)
[6072] Fix | Delete
* @since 1.0.4
[6073] Fix | Delete
*
[6074] Fix | Delete
* @param string $secret_key
[6075] Fix | Delete
*/
[6076] Fix | Delete
function init_sandbox( $secret_key ) {
[6077] Fix | Delete
$this->_plugin->secret_key = $secret_key;
[6078] Fix | Delete
[6079] Fix | Delete
// Update plugin details.
[6080] Fix | Delete
FS_Plugin_Manager::instance( $this->_module_id )->update( $this->_plugin, true );
[6081] Fix | Delete
}
[6082] Fix | Delete
[6083] Fix | Delete
/**
[6084] Fix | Delete
* Check if running payments in sandbox mode.
[6085] Fix | Delete
*
[6086] Fix | Delete
* @author Vova Feldman (@svovaf)
[6087] Fix | Delete
* @since 1.0.4
[6088] Fix | Delete
*
[6089] Fix | Delete
* @return bool
[6090] Fix | Delete
*/
[6091] Fix | Delete
function is_payments_sandbox() {
[6092] Fix | Delete
return ( ! $this->is_live() ) || isset( $this->_plugin->secret_key );
[6093] Fix | Delete
}
[6094] Fix | Delete
[6095] Fix | Delete
#endregion
[6096] Fix | Delete
[6097] Fix | Delete
/**
[6098] Fix | Delete
* Check if running test vs. live plugin.
[6099] Fix | Delete
*
[6100] Fix | Delete
* @author Vova Feldman (@svovaf)
[6101] Fix | Delete
* @since 1.0.5
[6102] Fix | Delete
*
[6103] Fix | Delete
* @return bool
[6104] Fix | Delete
*/
[6105] Fix | Delete
function is_live() {
[6106] Fix | Delete
return $this->_plugin->is_live;
[6107] Fix | Delete
}
[6108] Fix | Delete
[6109] Fix | Delete
/**
[6110] Fix | Delete
* Check if super-admin skipped connection for all sites in the network.
[6111] Fix | Delete
*
[6112] Fix | Delete
* @author Vova Feldman (@svovaf)
[6113] Fix | Delete
* @since 2.0.0
[6114] Fix | Delete
*/
[6115] Fix | Delete
function is_network_anonymous() {
[6116] Fix | Delete
if ( ! $this->_is_network_active ) {
[6117] Fix | Delete
return false;
[6118] Fix | Delete
}
[6119] Fix | Delete
[6120] Fix | Delete
$is_anonymous_ms = $this->_storage->get( 'is_anonymous_ms' );
[6121] Fix | Delete
[6122] Fix | Delete
if ( empty( $is_anonymous_ms ) ) {
[6123] Fix | Delete
return false;
[6124] Fix | Delete
}
[6125] Fix | Delete
[6126] Fix | Delete
return $is_anonymous_ms['is'];
[6127] Fix | Delete
}
[6128] Fix | Delete
[6129] Fix | Delete
/**
[6130] Fix | Delete
* Check if super-admin opted-in for all sites in the network.
[6131] Fix | Delete
*
[6132] Fix | Delete
* @author Vova Feldman (@svovaf)
[6133] Fix | Delete
* @since 2.0.0
[6134] Fix | Delete
*/
[6135] Fix | Delete
function is_network_connected() {
[6136] Fix | Delete
if ( ! $this->_is_network_active ) {
[6137] Fix | Delete
return false;
[6138] Fix | Delete
}
[6139] Fix | Delete
[6140] Fix | Delete
return $this->_storage->get( 'is_network_connected' );
[6141] Fix | Delete
}
[6142] Fix | Delete
[6143] Fix | Delete
/**
[6144] Fix | Delete
* Check if the user skipped connecting the account with Freemius.
[6145] Fix | Delete
*
[6146] Fix | Delete
* @author Vova Feldman (@svovaf)
[6147] Fix | Delete
* @since 1.0.7
[6148] Fix | Delete
*
[6149] Fix | Delete
* @return bool
[6150] Fix | Delete
*/
[6151] Fix | Delete
function is_anonymous() {
[6152] Fix | Delete
if ( ! isset( $this->_is_anonymous ) ) {
[6153] Fix | Delete
if ( $this->is_network_anonymous() ) {
[6154] Fix | Delete
$this->_is_anonymous = true;
[6155] Fix | Delete
} else if ( fs_is_network_admin() ) {
[6156] Fix | Delete
/**
[6157] Fix | Delete
* When not-network-anonymous, yet, running in the network admin, consider as anonymous only when ALL non-delegated sites are set to anonymous.
[6158] Fix | Delete
*/
[6159] Fix | Delete
$non_delegated_sites = $this->get_non_delegated_blog_ids();
[6160] Fix | Delete
[6161] Fix | Delete
foreach ( $non_delegated_sites as $blog_id ) {
[6162] Fix | Delete
$is_anonymous = $this->_storage->get( 'is_anonymous', false, $blog_id );
[6163] Fix | Delete
[6164] Fix | Delete
if ( empty( $is_anonymous ) || false === $is_anonymous[ 'is' ] ) {
[6165] Fix | Delete
$this->_is_anonymous = false;
[6166] Fix | Delete
break;
[6167] Fix | Delete
}
[6168] Fix | Delete
}
[6169] Fix | Delete
[6170] Fix | Delete
if ( false !== $this->_is_anonymous ) {
[6171] Fix | Delete
$this->_is_anonymous = true;
[6172] Fix | Delete
}
[6173] Fix | Delete
} else {
[6174] Fix | Delete
if ( ! isset( $this->_storage->is_anonymous ) ) {
[6175] Fix | Delete
// Not skipped.
[6176] Fix | Delete
$this->_is_anonymous = false;
[6177] Fix | Delete
} else if ( is_bool( $this->_storage->is_anonymous ) ) {
[6178] Fix | Delete
// For back compatibility, since the variable was boolean before.
[6179] Fix | Delete
$this->_is_anonymous = $this->_storage->is_anonymous;
[6180] Fix | Delete
[6181] Fix | Delete
// Upgrade stored data format to 1.1.3 format.
[6182] Fix | Delete
$this->set_anonymous_mode( $this->_storage->is_anonymous );
[6183] Fix | Delete
} else {
[6184] Fix | Delete
// Version 1.1.3 and later.
[6185] Fix | Delete
$this->_is_anonymous = $this->_storage->is_anonymous['is'];
[6186] Fix | Delete
}
[6187] Fix | Delete
}
[6188] Fix | Delete
}
[6189] Fix | Delete
[6190] Fix | Delete
return $this->_is_anonymous;
[6191] Fix | Delete
}
[6192] Fix | Delete
[6193] Fix | Delete
/**
[6194] Fix | Delete
* Check if the user skipped the connection of a specified site.
[6195] Fix | Delete
*
[6196] Fix | Delete
* @author Vova Feldman (@svovaf)
[6197] Fix | Delete
* @since 2.0.0
[6198] Fix | Delete
*
[6199] Fix | Delete
* @param int $blog_id
[6200] Fix | Delete
*
[6201] Fix | Delete
* @return bool
[6202] Fix | Delete
*/
[6203] Fix | Delete
function is_anonymous_site( $blog_id = 0 ) {
[6204] Fix | Delete
if ( $this->is_network_anonymous() ) {
[6205] Fix | Delete
return true;
[6206] Fix | Delete
}
[6207] Fix | Delete
[6208] Fix | Delete
$is_anonymous = $this->_storage->get( 'is_anonymous', false, $blog_id );
[6209] Fix | Delete
[6210] Fix | Delete
if ( empty( $is_anonymous ) ) {
[6211] Fix | Delete
return false;
[6212] Fix | Delete
}
[6213] Fix | Delete
[6214] Fix | Delete
return $is_anonymous['is'];
[6215] Fix | Delete
}
[6216] Fix | Delete
[6217] Fix | Delete
/**
[6218] Fix | Delete
* Check if user connected his account and install pending email activation.
[6219] Fix | Delete
*
[6220] Fix | Delete
* @author Vova Feldman (@svovaf)
[6221] Fix | Delete
* @since 1.0.7
[6222] Fix | Delete
*
[6223] Fix | Delete
* @return bool
[6224] Fix | Delete
*/
[6225] Fix | Delete
function is_pending_activation() {
[6226] Fix | Delete
return $this->_storage->get( 'is_pending_activation', false );
[6227] Fix | Delete
}
[6228] Fix | Delete
[6229] Fix | Delete
/**
[6230] Fix | Delete
* @author Leo Fajardo (@leorw)
[6231] Fix | Delete
* @since 2.5.0
[6232] Fix | Delete
*/
[6233] Fix | Delete
private function clear_pending_activation_mode() {
[6234] Fix | Delete
// Remove the pending activation sticky notice (if it still exists).
[6235] Fix | Delete
$this->_admin_notices->remove_sticky( 'activation_pending' );
[6236] Fix | Delete
[6237] Fix | Delete
// Clear the plugin's pending activation mode.
[6238] Fix | Delete
unset( $this->_storage->is_pending_activation );
[6239] Fix | Delete
}
[6240] Fix | Delete
[6241] Fix | Delete
/**
[6242] Fix | Delete
* Check if plugin must be WordPress.org compliant.
[6243] Fix | Delete
*
[6244] Fix | Delete
* @since 1.0.7
[6245] Fix | Delete
*
[6246] Fix | Delete
* @return bool
[6247] Fix | Delete
*/
[6248] Fix | Delete
function is_org_repo_compliant() {
[6249] Fix | Delete
return $this->_is_org_compliant;
[6250] Fix | Delete
}
[6251] Fix | Delete
[6252] Fix | Delete
#--------------------------------------------------------------------------------
[6253] Fix | Delete
#region WP Cron Common
[6254] Fix | Delete
#--------------------------------------------------------------------------------
[6255] Fix | Delete
[6256] Fix | Delete
/**
[6257] Fix | Delete
* @author Vova Feldman (@svovaf)
[6258] Fix | Delete
* @since 2.0.0
[6259] Fix | Delete
*
[6260] Fix | Delete
* @param string $name Cron name.
[6261] Fix | Delete
*
[6262] Fix | Delete
* @return object
[6263] Fix | Delete
*/
[6264] Fix | Delete
private function get_cron_data( $name ) {
[6265] Fix | Delete
$this->_logger->entrance( $name );
[6266] Fix | Delete
[6267] Fix | Delete
/**
[6268] Fix | Delete
* @var object $cron_data
[6269] Fix | Delete
*/
[6270] Fix | Delete
return $this->_storage->get( "{$name}_cron", null );
[6271] Fix | Delete
}
[6272] Fix | Delete
[6273] Fix | Delete
/**
[6274] Fix | Delete
* @author Vova Feldman (@svovaf)
[6275] Fix | Delete
* @since 2.0.0
[6276] Fix | Delete
*
[6277] Fix | Delete
* @param string $name Cron name.
[6278] Fix | Delete
*/
[6279] Fix | Delete
private function clear_cron_data( $name ) {
[6280] Fix | Delete
$this->_logger->entrance( $name );
[6281] Fix | Delete
[6282] Fix | Delete
$this->_storage->remove( "{$name}_cron" );
[6283] Fix | Delete
}
[6284] Fix | Delete
[6285] Fix | Delete
/**
[6286] Fix | Delete
* @author Vova Feldman (@svovaf)
[6287] Fix | Delete
* @since 2.0.0
[6288] Fix | Delete
*
[6289] Fix | Delete
* @param string $name Cron name.
[6290] Fix | Delete
* @param int $cron_blog_id The cron executing blog ID.
[6291] Fix | Delete
*/
[6292] Fix | Delete
private function set_cron_data( $name, $cron_blog_id = 0 ) {
[6293] Fix | Delete
$this->_logger->entrance( $name );
[6294] Fix | Delete
[6295] Fix | Delete
$this->_storage->store( "{$name}_cron", (object) array(
[6296] Fix | Delete
'version' => $this->get_plugin_version(),
[6297] Fix | Delete
'blog_id' => $cron_blog_id,
[6298] Fix | Delete
'sdk_version' => $this->version,
[6299] Fix | Delete
'timestamp' => WP_FS__SCRIPT_START_TIME,
[6300] Fix | Delete
'on' => true,
[6301] Fix | Delete
) );
[6302] Fix | Delete
}
[6303] Fix | Delete
[6304] Fix | Delete
/**
[6305] Fix | Delete
* Get the cron's executing blog ID.
[6306] Fix | Delete
*
[6307] Fix | Delete
* @author Vova Feldman (@svovaf)
[6308] Fix | Delete
* @since 2.0.0
[6309] Fix | Delete
*
[6310] Fix | Delete
* @param string $name Cron name.
[6311] Fix | Delete
*
[6312] Fix | Delete
* @return int
[6313] Fix | Delete
*/
[6314] Fix | Delete
private function get_cron_blog_id( $name ) {
[6315] Fix | Delete
$this->_logger->entrance( $name );
[6316] Fix | Delete
[6317] Fix | Delete
if ( ! is_multisite() ) {
[6318] Fix | Delete
// Not a multisite.
[6319] Fix | Delete
return 0;
[6320] Fix | Delete
}
[6321] Fix | Delete
[6322] Fix | Delete
$cron_data = $this->get_cron_data( $name );
[6323] Fix | Delete
[6324] Fix | Delete
return ( is_object( $cron_data ) && is_numeric( $cron_data->blog_id ) ) ?
[6325] Fix | Delete
$cron_data->blog_id :
[6326] Fix | Delete
0;
[6327] Fix | Delete
}
[6328] Fix | Delete
[6329] Fix | Delete
/**
[6330] Fix | Delete
* @author Vova Feldman (@svovaf)
[6331] Fix | Delete
* @since 2.0.0
[6332] Fix | Delete
*
[6333] Fix | Delete
* @param string $name Cron name.
[6334] Fix | Delete
*
[6335] Fix | Delete
* @return bool
[6336] Fix | Delete
*/
[6337] Fix | Delete
private function is_cron_on( $name ) {
[6338] Fix | Delete
$this->_logger->entrance( $name );
[6339] Fix | Delete
[6340] Fix | Delete
/**
[6341] Fix | Delete
* @var object $cron_data
[6342] Fix | Delete
*/
[6343] Fix | Delete
$cron_data = $this->get_cron_data( $name );
[6344] Fix | Delete
[6345] Fix | Delete
return ( ! is_null( $cron_data ) && true === $cron_data->on );
[6346] Fix | Delete
}
[6347] Fix | Delete
[6348] Fix | Delete
/**
[6349] Fix | Delete
* Unix timestamp for previous cron execution or false if never executed.
[6350] Fix | Delete
*
[6351] Fix | Delete
* @author Vova Feldman (@svovaf)
[6352] Fix | Delete
* @since 2.0.0
[6353] Fix | Delete
*
[6354] Fix | Delete
* @param string $name Cron name.
[6355] Fix | Delete
*
[6356] Fix | Delete
* @return int|false
[6357] Fix | Delete
*/
[6358] Fix | Delete
private function cron_last_execution( $name ) {
[6359] Fix | Delete
$this->_logger->entrance( $name );
[6360] Fix | Delete
[6361] Fix | Delete
return $this->_storage->get( "{$name}_timestamp" );
[6362] Fix | Delete
}
[6363] Fix | Delete
[6364] Fix | Delete
/**
[6365] Fix | Delete
* Set cron execution time to now.
[6366] Fix | Delete
*
[6367] Fix | Delete
* @author Vova Feldman (@svovaf)
[6368] Fix | Delete
* @since 2.0.0
[6369] Fix | Delete
*
[6370] Fix | Delete
* @param string $name Cron name.
[6371] Fix | Delete
*/
[6372] Fix | Delete
private function set_cron_execution_timestamp( $name ) {
[6373] Fix | Delete
$this->_logger->entrance( $name );
[6374] Fix | Delete
[6375] Fix | Delete
$this->_storage->store( "{$name}_timestamp", time() );
[6376] Fix | Delete
}
[6377] Fix | Delete
[6378] Fix | Delete
/**
[6379] Fix | Delete
* Sets the keepalive time to now.
[6380] Fix | Delete
*
[6381] Fix | Delete
* @author Leo Fajardo (@leorw)
[6382] Fix | Delete
* @since 2.2.3
[6383] Fix | Delete
*
[6384] Fix | Delete
* @param bool|null $use_network_level_storage
[6385] Fix | Delete
*/
[6386] Fix | Delete
private function set_keepalive_timestamp( $use_network_level_storage = null ) {
[6387] Fix | Delete
$this->_logger->entrance();
[6388] Fix | Delete
[6389] Fix | Delete
$this->_storage->store( 'keepalive_timestamp', time(), $use_network_level_storage );
[6390] Fix | Delete
}
[6391] Fix | Delete
[6392] Fix | Delete
/**
[6393] Fix | Delete
* Check if cron was executed in the last $period of seconds.
[6394] Fix | Delete
*
[6395] Fix | Delete
* @author Vova Feldman (@svovaf)
[6396] Fix | Delete
* @since 2.0.0
[6397] Fix | Delete
*
[6398] Fix | Delete
* @param string $name Cron name.
[6399] Fix | Delete
* @param int $period In seconds
[6400] Fix | Delete
*
[6401] Fix | Delete
* @return bool
[6402] Fix | Delete
*/
[6403] Fix | Delete
private function is_cron_executed( $name, $period = WP_FS__TIME_24_HOURS_IN_SEC ) {
[6404] Fix | Delete
$this->_logger->entrance( $name );
[6405] Fix | Delete
[6406] Fix | Delete
$last_execution = $this->cron_last_execution( $name );
[6407] Fix | Delete
[6408] Fix | Delete
if ( ! is_numeric( $last_execution ) ) {
[6409] Fix | Delete
return false;
[6410] Fix | Delete
}
[6411] Fix | Delete
[6412] Fix | Delete
return ( $last_execution > ( WP_FS__SCRIPT_START_TIME - $period ) );
[6413] Fix | Delete
}
[6414] Fix | Delete
[6415] Fix | Delete
/**
[6416] Fix | Delete
* WP Cron is executed on a site level. When running in a multisite network environment
[6417] Fix | Delete
* with the network integration activated, for optimization reasons, we are consolidating
[6418] Fix | Delete
* the installs data sync cron to be executed only from a single site.
[6419] Fix | Delete
*
[6420] Fix | Delete
* @author Vova Feldman (@svovaf)
[6421] Fix | Delete
* @since 2.0.0
[6422] Fix | Delete
*
[6423] Fix | Delete
* @param int $except_blog_id Target any except the excluded blog ID.
[6424] Fix | Delete
*
[6425] Fix | Delete
* @return int
[6426] Fix | Delete
*/
[6427] Fix | Delete
private function get_cron_target_blog_id( $except_blog_id = 0 ) {
[6428] Fix | Delete
if ( ! is_multisite() ) {
[6429] Fix | Delete
return 0;
[6430] Fix | Delete
}
[6431] Fix | Delete
[6432] Fix | Delete
if ( $this->_is_network_active ) {
[6433] Fix | Delete
$network_install_blog_id = $this->_storage->network_install_blog_id;
[6434] Fix | Delete
[6435] Fix | Delete
if (
[6436] Fix | Delete
is_numeric( $network_install_blog_id ) &&
[6437] Fix | Delete
$except_blog_id != $network_install_blog_id &&
[6438] Fix | Delete
self::is_site_active( $network_install_blog_id )
[6439] Fix | Delete
) {
[6440] Fix | Delete
// Try to run cron from the main network blog.
[6441] Fix | Delete
$install = $this->get_install_by_blog_id( $network_install_blog_id );
[6442] Fix | Delete
[6443] Fix | Delete
if (
[6444] Fix | Delete
is_object( $install ) &&
[6445] Fix | Delete
$this->is_tracking_allowed( $network_install_blog_id, $install )
[6446] Fix | Delete
) {
[6447] Fix | Delete
return $network_install_blog_id;
[6448] Fix | Delete
}
[6449] Fix | Delete
}
[6450] Fix | Delete
}
[6451] Fix | Delete
[6452] Fix | Delete
// Get first opted-in blog ID with active tracking.
[6453] Fix | Delete
$installs = $this->get_blog_install_map();
[6454] Fix | Delete
foreach ( $installs as $blog_id => $install ) {
[6455] Fix | Delete
if ( $except_blog_id != $blog_id &&
[6456] Fix | Delete
self::is_site_active( $blog_id ) &&
[6457] Fix | Delete
$this->is_tracking_allowed( $blog_id, $install )
[6458] Fix | Delete
) {
[6459] Fix | Delete
return $blog_id;
[6460] Fix | Delete
}
[6461] Fix | Delete
}
[6462] Fix | Delete
[6463] Fix | Delete
return 0;
[6464] Fix | Delete
}
[6465] Fix | Delete
[6466] Fix | Delete
/**
[6467] Fix | Delete
* @author Vova Feldman (@svovaf)
[6468] Fix | Delete
* @since 2.0.0
[6469] Fix | Delete
*
[6470] Fix | Delete
* @param string $name Cron name.
[6471] Fix | Delete
* @param string $action_tag Callback action tag.
[6472] Fix | Delete
* @param bool $is_network_clear If set to TRUE, clear sync cron even if there are installs that are still connected.
[6473] Fix | Delete
*/
[6474] Fix | Delete
private function clear_cron( $name, $action_tag = '', $is_network_clear = false ) {
[6475] Fix | Delete
$this->_logger->entrance( $name );
[6476] Fix | Delete
[6477] Fix | Delete
if ( ! $this->is_cron_on( $name ) ) {
[6478] Fix | Delete
return;
[6479] Fix | Delete
}
[6480] Fix | Delete
[6481] Fix | Delete
$clear_cron = true;
[6482] Fix | Delete
if ( ! $is_network_clear && $this->_is_network_active ) {
[6483] Fix | Delete
$installs = $this->get_blog_install_map();
[6484] Fix | Delete
[6485] Fix | Delete
foreach ( $installs as $blog_id => $install ) {
[6486] Fix | Delete
/**
[6487] Fix | Delete
* @var FS_Site $install
[6488] Fix | Delete
*/
[6489] Fix | Delete
if ( $this->is_tracking_allowed( $blog_id, $install ) ) {
[6490] Fix | Delete
$clear_cron = false;
[6491] Fix | Delete
break;
[6492] Fix | Delete
}
[6493] Fix | Delete
}
[6494] Fix | Delete
}
[6495] Fix | Delete
[6496] Fix | Delete
if ( ! $clear_cron ) {
[6497] Fix | Delete
return;
[6498] Fix | Delete
}
[6499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function