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.../plugins/content-.../inc/freemius/includes
File: class-freemius.php
[6500] Fix | Delete
$cron_blog_id = $this->get_cron_blog_id( $name );
[6501] Fix | Delete
[6502] Fix | Delete
$this->clear_cron_data( $name );
[6503] Fix | Delete
[6504] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6505] Fix | Delete
switch_to_blog( $cron_blog_id );
[6506] Fix | Delete
}
[6507] Fix | Delete
[6508] Fix | Delete
if ( empty( $action_tag ) ) {
[6509] Fix | Delete
$action_tag = $name;
[6510] Fix | Delete
}
[6511] Fix | Delete
[6512] Fix | Delete
wp_clear_scheduled_hook( $this->get_action_tag( $action_tag ) );
[6513] Fix | Delete
[6514] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6515] Fix | Delete
restore_current_blog();
[6516] Fix | Delete
}
[6517] Fix | Delete
}
[6518] Fix | Delete
[6519] Fix | Delete
/**
[6520] Fix | Delete
* Unix timestamp for next cron execution or false if not scheduled.
[6521] Fix | Delete
*
[6522] Fix | Delete
* @author Vova Feldman (@svovaf)
[6523] Fix | Delete
* @since 2.0.0
[6524] Fix | Delete
*
[6525] Fix | Delete
* @param string $name Cron name.
[6526] Fix | Delete
* @param string $action_tag Callback action tag.
[6527] Fix | Delete
*
[6528] Fix | Delete
* @return int|false
[6529] Fix | Delete
*/
[6530] Fix | Delete
private function get_next_scheduled_cron( $name, $action_tag = '' ) {
[6531] Fix | Delete
$this->_logger->entrance( $name );
[6532] Fix | Delete
[6533] Fix | Delete
if ( ! $this->is_cron_on( $name ) ) {
[6534] Fix | Delete
return false;
[6535] Fix | Delete
}
[6536] Fix | Delete
[6537] Fix | Delete
$cron_blog_id = $this->get_cron_blog_id( $name );
[6538] Fix | Delete
[6539] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6540] Fix | Delete
switch_to_blog( $cron_blog_id );
[6541] Fix | Delete
}
[6542] Fix | Delete
[6543] Fix | Delete
if ( empty( $action_tag ) ) {
[6544] Fix | Delete
$action_tag = $name;
[6545] Fix | Delete
}
[6546] Fix | Delete
[6547] Fix | Delete
$next_scheduled = wp_next_scheduled( $this->get_action_tag( $action_tag ) );
[6548] Fix | Delete
[6549] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6550] Fix | Delete
restore_current_blog();
[6551] Fix | Delete
}
[6552] Fix | Delete
[6553] Fix | Delete
return $next_scheduled;
[6554] Fix | Delete
}
[6555] Fix | Delete
[6556] Fix | Delete
/**
[6557] Fix | Delete
* @author Vova Feldman (@svovaf)
[6558] Fix | Delete
* @since 2.0.0
[6559] Fix | Delete
*
[6560] Fix | Delete
* @param string $name Cron name.
[6561] Fix | Delete
* @param string $action_tag Callback action tag.
[6562] Fix | Delete
* @param string $recurrence 'single' or 'daily'.
[6563] Fix | Delete
* @param int $start_at Defaults to now.
[6564] Fix | Delete
* @param bool $randomize_start If true, schedule first job randomly during the next 12 hours. Otherwise, schedule job to start right away.
[6565] Fix | Delete
* @param int $except_blog_id Target any except the excluded blog ID.
[6566] Fix | Delete
*/
[6567] Fix | Delete
private function schedule_cron(
[6568] Fix | Delete
$name,
[6569] Fix | Delete
$action_tag = '',
[6570] Fix | Delete
$recurrence = 'single',
[6571] Fix | Delete
$start_at = WP_FS__SCRIPT_START_TIME,
[6572] Fix | Delete
$randomize_start = true,
[6573] Fix | Delete
$except_blog_id = 0
[6574] Fix | Delete
) {
[6575] Fix | Delete
$this->_logger->entrance( $name );
[6576] Fix | Delete
[6577] Fix | Delete
$this->clear_cron( $name, $action_tag, true );
[6578] Fix | Delete
[6579] Fix | Delete
$cron_blog_id = $this->get_cron_target_blog_id( $except_blog_id );
[6580] Fix | Delete
[6581] Fix | Delete
if ( is_multisite() && 0 == $cron_blog_id ) {
[6582] Fix | Delete
// Don't schedule cron since couldn't find a target blog.
[6583] Fix | Delete
return;
[6584] Fix | Delete
}
[6585] Fix | Delete
[6586] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6587] Fix | Delete
switch_to_blog( $cron_blog_id );
[6588] Fix | Delete
}
[6589] Fix | Delete
[6590] Fix | Delete
if ( 'daily' === $recurrence ) {
[6591] Fix | Delete
if ( $randomize_start ) {
[6592] Fix | Delete
// Schedule first sync with a random 12 hour time range from now.
[6593] Fix | Delete
$start_at += rand( 0, ( WP_FS__TIME_24_HOURS_IN_SEC / 2 ) );
[6594] Fix | Delete
}
[6595] Fix | Delete
[6596] Fix | Delete
// Schedule daily WP cron.
[6597] Fix | Delete
wp_schedule_event(
[6598] Fix | Delete
$start_at,
[6599] Fix | Delete
'daily',
[6600] Fix | Delete
$this->get_action_tag( $action_tag )
[6601] Fix | Delete
);
[6602] Fix | Delete
} else if ( 'single' === $recurrence ) {
[6603] Fix | Delete
// Schedule single cron.
[6604] Fix | Delete
wp_schedule_single_event(
[6605] Fix | Delete
$start_at,
[6606] Fix | Delete
$this->get_action_tag( $action_tag )
[6607] Fix | Delete
);
[6608] Fix | Delete
}
[6609] Fix | Delete
[6610] Fix | Delete
$this->set_cron_data( $name, $cron_blog_id );
[6611] Fix | Delete
[6612] Fix | Delete
if ( 0 < $cron_blog_id ) {
[6613] Fix | Delete
restore_current_blog();
[6614] Fix | Delete
}
[6615] Fix | Delete
}
[6616] Fix | Delete
[6617] Fix | Delete
/**
[6618] Fix | Delete
* Consolidated cron execution for performance optimization. The max number of API requests is based on the number of unique opted-in users.
[6619] Fix | Delete
* that doesn't halt page loading.
[6620] Fix | Delete
*
[6621] Fix | Delete
* @author Vova Feldman (@svovaf)
[6622] Fix | Delete
* @since 2.0.0
[6623] Fix | Delete
*
[6624] Fix | Delete
* @param string $name Cron name.
[6625] Fix | Delete
* @param callable $callable The function that should be executed.
[6626] Fix | Delete
*/
[6627] Fix | Delete
private function execute_cron( $name, $callable ) {
[6628] Fix | Delete
$this->_logger->entrance( $name );
[6629] Fix | Delete
[6630] Fix | Delete
// Store the last time data sync was executed.
[6631] Fix | Delete
$this->set_cron_execution_timestamp( $name );
[6632] Fix | Delete
[6633] Fix | Delete
// Check if API is temporary down.
[6634] Fix | Delete
if ( FS_Api::is_temporary_down() ) {
[6635] Fix | Delete
return;
[6636] Fix | Delete
}
[6637] Fix | Delete
[6638] Fix | Delete
// @todo Add logic that identifies API latency, and reschedule the next background sync randomly between 8-16 hours.
[6639] Fix | Delete
[6640] Fix | Delete
$users_2_blog_ids = array();
[6641] Fix | Delete
[6642] Fix | Delete
if ( ! is_multisite() ) {
[6643] Fix | Delete
// Add dummy blog.
[6644] Fix | Delete
$users_2_blog_ids[0] = array( 0 );
[6645] Fix | Delete
} else {
[6646] Fix | Delete
$installs = $this->get_blog_install_map();
[6647] Fix | Delete
foreach ( $installs as $blog_id => $install ) {
[6648] Fix | Delete
if ( $this->is_tracking_allowed( $blog_id, $install ) ) {
[6649] Fix | Delete
if ( ! isset( $users_2_blog_ids[ $install->user_id ] ) ) {
[6650] Fix | Delete
$users_2_blog_ids[ $install->user_id ] = array();
[6651] Fix | Delete
}
[6652] Fix | Delete
[6653] Fix | Delete
$users_2_blog_ids[ $install->user_id ][] = $blog_id;
[6654] Fix | Delete
}
[6655] Fix | Delete
}
[6656] Fix | Delete
}
[6657] Fix | Delete
[6658] Fix | Delete
$current_blog_id = get_current_blog_id();
[6659] Fix | Delete
[6660] Fix | Delete
foreach ( $users_2_blog_ids as $user_id => $blog_ids ) {
[6661] Fix | Delete
if ( 0 < $blog_ids[0] ) {
[6662] Fix | Delete
$this->switch_to_blog( $blog_ids[0] );
[6663] Fix | Delete
}
[6664] Fix | Delete
[6665] Fix | Delete
call_user_func_array( $callable, array( $blog_ids, ( is_multisite() ? $current_blog_id : null ) ) );
[6666] Fix | Delete
[6667] Fix | Delete
foreach ( $blog_ids as $blog_id ) {
[6668] Fix | Delete
$this->do_action( "after_{$name}_cron", $blog_id );
[6669] Fix | Delete
}
[6670] Fix | Delete
}
[6671] Fix | Delete
[6672] Fix | Delete
if ( is_multisite() ) {
[6673] Fix | Delete
$this->switch_to_blog( $current_blog_id, fs_is_network_admin() ? $this->get_network_install() : null );
[6674] Fix | Delete
[6675] Fix | Delete
$this->do_action( "after_{$name}_cron_multisite" );
[6676] Fix | Delete
}
[6677] Fix | Delete
}
[6678] Fix | Delete
[6679] Fix | Delete
#endregion
[6680] Fix | Delete
[6681] Fix | Delete
#----------------------------------------------------------------------------------
[6682] Fix | Delete
#region Daily Sync Cron
[6683] Fix | Delete
#----------------------------------------------------------------------------------
[6684] Fix | Delete
[6685] Fix | Delete
[6686] Fix | Delete
/**
[6687] Fix | Delete
* @author Vova Feldman (@svovaf)
[6688] Fix | Delete
* @since 2.0.0
[6689] Fix | Delete
*
[6690] Fix | Delete
* @return bool
[6691] Fix | Delete
*/
[6692] Fix | Delete
private function is_sync_cron_scheduled() {
[6693] Fix | Delete
return $this->is_cron_on( 'sync' );
[6694] Fix | Delete
}
[6695] Fix | Delete
[6696] Fix | Delete
/**
[6697] Fix | Delete
* Get the sync cron's executing blog ID.
[6698] Fix | Delete
*
[6699] Fix | Delete
* @author Vova Feldman (@svovaf)
[6700] Fix | Delete
* @since 2.0.0
[6701] Fix | Delete
*
[6702] Fix | Delete
* @return int
[6703] Fix | Delete
*/
[6704] Fix | Delete
private function get_sync_cron_blog_id() {
[6705] Fix | Delete
return $this->get_cron_blog_id( 'sync' );
[6706] Fix | Delete
}
[6707] Fix | Delete
[6708] Fix | Delete
/**
[6709] Fix | Delete
* @author Vova Feldman (@svovaf)
[6710] Fix | Delete
* @since 1.1.7.3
[6711] Fix | Delete
*/
[6712] Fix | Delete
private function run_manual_sync() {
[6713] Fix | Delete
if ( ! $this->is_user_admin() ) {
[6714] Fix | Delete
return;
[6715] Fix | Delete
}
[6716] Fix | Delete
[6717] Fix | Delete
// Run manual sync.
[6718] Fix | Delete
$this->_sync_cron();
[6719] Fix | Delete
[6720] Fix | Delete
// Reschedule next cron to run 24 hours from now (performance optimization).
[6721] Fix | Delete
$this->schedule_sync_cron( time() + WP_FS__TIME_24_HOURS_IN_SEC, false );
[6722] Fix | Delete
}
[6723] Fix | Delete
[6724] Fix | Delete
/**
[6725] Fix | Delete
* Data sync cron job. Replaces the background sync non blocking HTTP request
[6726] Fix | Delete
* that doesn't halt page loading.
[6727] Fix | Delete
*
[6728] Fix | Delete
* @author Vova Feldman (@svovaf)
[6729] Fix | Delete
* @since 1.1.7.3
[6730] Fix | Delete
* @since 2.0.0 Consolidate all the data sync into the same cron for performance optimization. The max number of API requests is based on the number of unique opted-in users.
[6731] Fix | Delete
*/
[6732] Fix | Delete
function _sync_cron() {
[6733] Fix | Delete
$this->_logger->entrance();
[6734] Fix | Delete
[6735] Fix | Delete
$this->execute_cron( 'sync', array( &$this, '_sync_cron_method' ) );
[6736] Fix | Delete
}
[6737] Fix | Delete
[6738] Fix | Delete
/**
[6739] Fix | Delete
* The actual data sync cron logic.
[6740] Fix | Delete
*
[6741] Fix | Delete
* @author Vova Feldman (@svovaf)
[6742] Fix | Delete
* @since 2.0.0
[6743] Fix | Delete
*
[6744] Fix | Delete
* @param int[] $blog_ids
[6745] Fix | Delete
* @param int|null $current_blog_id @since 2.2.3. This is passed from the `execute_cron` method and used by the
[6746] Fix | Delete
* `_sync_plugin_license` method in order to switch to the previous blog when sending
[6747] Fix | Delete
* updates for a single site in case `execute_cron` has switched to a different blog.
[6748] Fix | Delete
*/
[6749] Fix | Delete
function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
[6750] Fix | Delete
if ( $this->is_registered() ) {
[6751] Fix | Delete
if ( $this->has_paid_plan() ) {
[6752] Fix | Delete
// Initiate background plan sync.
[6753] Fix | Delete
$this->_sync_license( true, false, $current_blog_id );
[6754] Fix | Delete
[6755] Fix | Delete
if ( $this->is_paying() ) {
[6756] Fix | Delete
// Check for premium plugin updates.
[6757] Fix | Delete
$this->check_updates( true );
[6758] Fix | Delete
}
[6759] Fix | Delete
} else {
[6760] Fix | Delete
// Sync install(s) (only if something changed locally).
[6761] Fix | Delete
if ( 1 < count( $blog_ids ) ) {
[6762] Fix | Delete
$this->sync_installs();
[6763] Fix | Delete
} else {
[6764] Fix | Delete
$this->sync_install();
[6765] Fix | Delete
}
[6766] Fix | Delete
[6767] Fix | Delete
$this->maybe_sync_install_user();
[6768] Fix | Delete
}
[6769] Fix | Delete
}
[6770] Fix | Delete
}
[6771] Fix | Delete
[6772] Fix | Delete
/**
[6773] Fix | Delete
* Check if sync was executed in the last $period of seconds.
[6774] Fix | Delete
*
[6775] Fix | Delete
* @author Vova Feldman (@svovaf)
[6776] Fix | Delete
* @since 1.1.7.3
[6777] Fix | Delete
*
[6778] Fix | Delete
* @param int $period In seconds
[6779] Fix | Delete
*
[6780] Fix | Delete
* @return bool
[6781] Fix | Delete
*/
[6782] Fix | Delete
private function is_sync_executed( $period = WP_FS__TIME_24_HOURS_IN_SEC ) {
[6783] Fix | Delete
return $this->is_cron_executed( 'sync', $period );
[6784] Fix | Delete
}
[6785] Fix | Delete
[6786] Fix | Delete
/**
[6787] Fix | Delete
* @author Vova Feldman (@svovaf)
[6788] Fix | Delete
* @since 1.1.7.3
[6789] Fix | Delete
*
[6790] Fix | Delete
* @return bool
[6791] Fix | Delete
*/
[6792] Fix | Delete
private function is_sync_cron_on() {
[6793] Fix | Delete
return $this->is_cron_on( 'sync' );
[6794] Fix | Delete
}
[6795] Fix | Delete
[6796] Fix | Delete
/**
[6797] Fix | Delete
* @author Leo Fajardo (@leorw)
[6798] Fix | Delete
* @since 2.5.0
[6799] Fix | Delete
*/
[6800] Fix | Delete
private function maybe_schedule_sync_cron() {
[6801] Fix | Delete
$next_schedule = $this->next_sync_cron();
[6802] Fix | Delete
[6803] Fix | Delete
// The event is properly scheduled, so no need to reschedule it.
[6804] Fix | Delete
if (
[6805] Fix | Delete
is_numeric( $next_schedule ) &&
[6806] Fix | Delete
$next_schedule > time()
[6807] Fix | Delete
) {
[6808] Fix | Delete
return;
[6809] Fix | Delete
}
[6810] Fix | Delete
[6811] Fix | Delete
$this->schedule_sync_cron();
[6812] Fix | Delete
}
[6813] Fix | Delete
[6814] Fix | Delete
/**
[6815] Fix | Delete
* @author Vova Feldman (@svovaf)
[6816] Fix | Delete
* @since 1.1.7.3
[6817] Fix | Delete
*
[6818] Fix | Delete
* @param int $start_at Defaults to now.
[6819] Fix | Delete
* @param bool $randomize_start If true, schedule first job randomly during the next 12 hours. Otherwise, schedule job to start right away.
[6820] Fix | Delete
* @param int $except_blog_id Since 2.0.0 when running in a multisite network environment, the cron execution is consolidated. This param allows excluding excluded specified blog ID from being the cron executor.
[6821] Fix | Delete
*/
[6822] Fix | Delete
private function schedule_sync_cron(
[6823] Fix | Delete
$start_at = WP_FS__SCRIPT_START_TIME,
[6824] Fix | Delete
$randomize_start = true,
[6825] Fix | Delete
$except_blog_id = 0
[6826] Fix | Delete
) {
[6827] Fix | Delete
$this->schedule_cron(
[6828] Fix | Delete
'sync',
[6829] Fix | Delete
'data_sync',
[6830] Fix | Delete
'daily',
[6831] Fix | Delete
$start_at,
[6832] Fix | Delete
$randomize_start,
[6833] Fix | Delete
$except_blog_id
[6834] Fix | Delete
);
[6835] Fix | Delete
}
[6836] Fix | Delete
[6837] Fix | Delete
/**
[6838] Fix | Delete
* Add the actual sync function to the cron job hook.
[6839] Fix | Delete
*
[6840] Fix | Delete
* @author Vova Feldman (@svovaf)
[6841] Fix | Delete
* @since 1.1.7.3
[6842] Fix | Delete
*/
[6843] Fix | Delete
private function hook_callback_to_sync_cron() {
[6844] Fix | Delete
$this->add_action( 'data_sync', array( &$this, '_sync_cron' ) );
[6845] Fix | Delete
}
[6846] Fix | Delete
[6847] Fix | Delete
/**
[6848] Fix | Delete
* @author Vova Feldman (@svovaf)
[6849] Fix | Delete
* @since 1.1.7.3
[6850] Fix | Delete
*
[6851] Fix | Delete
* @param bool $is_network_clear Since 2.0.0 If set to TRUE, clear sync cron even if there are installs that are still connected.
[6852] Fix | Delete
*/
[6853] Fix | Delete
private function clear_sync_cron( $is_network_clear = false ) {
[6854] Fix | Delete
$this->_logger->entrance();
[6855] Fix | Delete
[6856] Fix | Delete
$this->clear_cron( 'sync', 'data_sync', $is_network_clear );
[6857] Fix | Delete
}
[6858] Fix | Delete
[6859] Fix | Delete
/**
[6860] Fix | Delete
* Unix timestamp for next sync cron execution or false if not scheduled.
[6861] Fix | Delete
*
[6862] Fix | Delete
* @author Vova Feldman (@svovaf)
[6863] Fix | Delete
* @since 1.1.7.3
[6864] Fix | Delete
*
[6865] Fix | Delete
* @return int|false
[6866] Fix | Delete
*/
[6867] Fix | Delete
function next_sync_cron() {
[6868] Fix | Delete
return $this->get_next_scheduled_cron( 'sync', 'data_sync' );
[6869] Fix | Delete
}
[6870] Fix | Delete
[6871] Fix | Delete
/**
[6872] Fix | Delete
* Unix timestamp for previous sync cron execution or false if never executed.
[6873] Fix | Delete
*
[6874] Fix | Delete
* @author Vova Feldman (@svovaf)
[6875] Fix | Delete
* @since 1.1.7.3
[6876] Fix | Delete
*
[6877] Fix | Delete
* @return int|false
[6878] Fix | Delete
*/
[6879] Fix | Delete
function last_sync_cron() {
[6880] Fix | Delete
return $this->cron_last_execution( 'sync' );
[6881] Fix | Delete
}
[6882] Fix | Delete
[6883] Fix | Delete
#endregion Daily Sync Cron ------------------------------------------------------------------
[6884] Fix | Delete
[6885] Fix | Delete
#----------------------------------------------------------------------------------
[6886] Fix | Delete
#region Async Install Sync
[6887] Fix | Delete
#----------------------------------------------------------------------------------
[6888] Fix | Delete
[6889] Fix | Delete
/**
[6890] Fix | Delete
* @author Vova Feldman (@svovaf)
[6891] Fix | Delete
* @since 1.1.7.3
[6892] Fix | Delete
*
[6893] Fix | Delete
* @return bool
[6894] Fix | Delete
*/
[6895] Fix | Delete
private function is_install_sync_scheduled() {
[6896] Fix | Delete
return $this->is_cron_on( 'install_sync' );
[6897] Fix | Delete
}
[6898] Fix | Delete
[6899] Fix | Delete
/**
[6900] Fix | Delete
* Get the sync cron's executing blog ID.
[6901] Fix | Delete
*
[6902] Fix | Delete
* @author Vova Feldman (@svovaf)
[6903] Fix | Delete
* @since 2.0.0
[6904] Fix | Delete
*
[6905] Fix | Delete
* @return int
[6906] Fix | Delete
*/
[6907] Fix | Delete
private function get_install_sync_cron_blog_id() {
[6908] Fix | Delete
return $this->get_cron_blog_id( 'install_sync' );
[6909] Fix | Delete
}
[6910] Fix | Delete
[6911] Fix | Delete
/**
[6912] Fix | Delete
* Instead of running blocking install sync event, execute non blocking scheduled wp-cron.
[6913] Fix | Delete
*
[6914] Fix | Delete
* @author Vova Feldman (@svovaf)
[6915] Fix | Delete
* @since 1.1.7.3
[6916] Fix | Delete
*
[6917] Fix | Delete
* @param int $except_blog_id Since 2.0.0 when running in a multisite network environment, the cron execution is consolidated. This param allows excluding excluded specified blog ID from being the cron executor.
[6918] Fix | Delete
*/
[6919] Fix | Delete
private function schedule_install_sync( $except_blog_id = 0 ) {
[6920] Fix | Delete
if ( $this->is_clone() ) {
[6921] Fix | Delete
return;
[6922] Fix | Delete
}
[6923] Fix | Delete
[6924] Fix | Delete
$this->schedule_cron( 'install_sync', 'install_sync', 'single', WP_FS__SCRIPT_START_TIME, false, $except_blog_id );
[6925] Fix | Delete
}
[6926] Fix | Delete
[6927] Fix | Delete
/**
[6928] Fix | Delete
* Unix timestamp for previous install sync cron execution or false if never executed.
[6929] Fix | Delete
*
[6930] Fix | Delete
* @todo There's some very strange bug that $this->_storage->install_sync_timestamp value is not being updated. But for sure the sync event is working.
[6931] Fix | Delete
*
[6932] Fix | Delete
* @author Vova Feldman (@svovaf)
[6933] Fix | Delete
* @since 1.1.7.3
[6934] Fix | Delete
*
[6935] Fix | Delete
* @return int|false
[6936] Fix | Delete
*/
[6937] Fix | Delete
function last_install_sync() {
[6938] Fix | Delete
return $this->cron_last_execution( 'install_sync' );
[6939] Fix | Delete
}
[6940] Fix | Delete
[6941] Fix | Delete
/**
[6942] Fix | Delete
* Unix timestamp for next install sync cron execution or false if not scheduled.
[6943] Fix | Delete
*
[6944] Fix | Delete
* @author Vova Feldman (@svovaf)
[6945] Fix | Delete
* @since 1.1.7.3
[6946] Fix | Delete
*
[6947] Fix | Delete
* @return int|false
[6948] Fix | Delete
*/
[6949] Fix | Delete
function next_install_sync() {
[6950] Fix | Delete
return $this->get_next_scheduled_cron( 'install_sync', 'install_sync' );
[6951] Fix | Delete
}
[6952] Fix | Delete
[6953] Fix | Delete
/**
[6954] Fix | Delete
* Add the actual install sync function to the cron job hook.
[6955] Fix | Delete
*
[6956] Fix | Delete
* @author Vova Feldman (@svovaf)
[6957] Fix | Delete
* @since 1.1.7.3
[6958] Fix | Delete
*/
[6959] Fix | Delete
private function hook_callback_to_install_sync() {
[6960] Fix | Delete
$this->add_action( 'install_sync', array( &$this, '_run_sync_install' ) );
[6961] Fix | Delete
}
[6962] Fix | Delete
[6963] Fix | Delete
/**
[6964] Fix | Delete
* @author Vova Feldman (@svovaf)
[6965] Fix | Delete
* @since 1.1.7.3
[6966] Fix | Delete
*
[6967] Fix | Delete
* @param bool $is_network_clear Since 2.0.0 If set to TRUE, clear sync cron even if there are installs that are still connected.
[6968] Fix | Delete
*/
[6969] Fix | Delete
private function clear_install_sync_cron( $is_network_clear = false ) {
[6970] Fix | Delete
$this->_logger->entrance();
[6971] Fix | Delete
[6972] Fix | Delete
$this->clear_cron( 'install_sync', 'install_sync', $is_network_clear );
[6973] Fix | Delete
}
[6974] Fix | Delete
[6975] Fix | Delete
/**
[6976] Fix | Delete
* @author Vova Feldman (@svovaf)
[6977] Fix | Delete
* @since 1.1.7.3
[6978] Fix | Delete
* @since 2.0.0 Consolidate all the data sync into the same cron for performance optimization. The max number of API requests is based on the number of unique opted-in users.
[6979] Fix | Delete
*/
[6980] Fix | Delete
public function _run_sync_install() {
[6981] Fix | Delete
$this->_logger->entrance();
[6982] Fix | Delete
[6983] Fix | Delete
$this->execute_cron( 'sync', array( &$this, '_sync_install_cron_method' ) );
[6984] Fix | Delete
}
[6985] Fix | Delete
[6986] Fix | Delete
/**
[6987] Fix | Delete
* The actual install(s) sync cron logic.
[6988] Fix | Delete
*
[6989] Fix | Delete
* @author Vova Feldman (@svovaf)
[6990] Fix | Delete
* @since 2.0.0
[6991] Fix | Delete
*
[6992] Fix | Delete
* @param int[] $blog_ids
[6993] Fix | Delete
* @param int|null $current_blog_id
[6994] Fix | Delete
*/
[6995] Fix | Delete
function _sync_install_cron_method( array $blog_ids, $current_blog_id = null ) {
[6996] Fix | Delete
if ( $this->is_registered() ) {
[6997] Fix | Delete
if ( 1 < count( $blog_ids ) ) {
[6998] Fix | Delete
$this->sync_installs( array(), true );
[6999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function