$schedule ] ) ) { return $schedule; } return self::DEFAULT_SYNC_CRON_INTERVAL_NAME; } /** * Allows offsetting of start times for sync cron jobs. * * @access public * @static * * @param string $schedule The name of a cron schedule. * @param string $hook The hook that this method is responding to. * @return int The offset for the sync cron schedule. */ public static function get_start_time_offset( $schedule = '', $hook = '' ) { $start_time_offset = is_multisite() ? wp_rand( 0, ( 2 * self::DEFAULT_SYNC_CRON_INTERVAL_VALUE ) ) : 0; /** * Allows overriding the offset that the sync cron jobs will first run. This can be useful when scheduling * cron jobs across multiple sites in a network. * * @since 1.6.3 * @since-jetpack 4.5.0 * * @param int $start_time_offset * @param string $hook * @param string $schedule */ return (int) apply_filters( 'jetpack_sync_cron_start_time_offset', $start_time_offset, $hook, $schedule ); } /** * Decides if a sync cron should be scheduled. * * @access public * @static * * @param string $schedule The name of a cron schedule. * @param string $hook The hook that this method is responding to. */ public static function maybe_schedule_sync_cron( $schedule, $hook ) { if ( ! $hook ) { return; } $schedule = self::sanitize_filtered_sync_cron_schedule( $schedule ); $start_time = time() + self::get_start_time_offset( $schedule, $hook ); if ( ! wp_next_scheduled( $hook ) ) { // Schedule a job to send pending queue items once a minute. wp_schedule_event( $start_time, $schedule, $hook ); } elseif ( wp_get_schedule( $hook ) !== $schedule ) { // If the schedule has changed, update the schedule. wp_clear_scheduled_hook( $hook ); wp_schedule_event( $start_time, $schedule, $hook ); } } /** * Clears Jetpack sync cron jobs. * * @access public * @static */ public static function clear_sync_cron_jobs() { wp_clear_scheduled_hook( 'jetpack_sync_cron' ); wp_clear_scheduled_hook( 'jetpack_sync_full_cron' ); } /** * Initializes Jetpack sync cron jobs. * * @access public * @static */ public static function init_sync_cron_jobs() { add_filter( 'cron_schedules', array( __CLASS__, 'jetpack_cron_schedule' ) ); // phpcs:ignore WordPress.WP.CronInterval.ChangeDetected add_action( 'jetpack_sync_cron', array( __CLASS__, 'do_cron_sync' ) ); add_action( 'jetpack_sync_full_cron', array( __CLASS__, 'do_cron_full_sync' ) ); /** * Allows overriding of the default incremental sync cron schedule which defaults to once every 5 minutes. * * @since 1.6.3 * @since-jetpack 4.3.2 * * @param string self::DEFAULT_SYNC_CRON_INTERVAL_NAME */ $incremental_sync_cron_schedule = apply_filters( 'jetpack_sync_incremental_sync_interval', self::DEFAULT_SYNC_CRON_INTERVAL_NAME ); self::maybe_schedule_sync_cron( $incremental_sync_cron_schedule, 'jetpack_sync_cron' ); /** * Allows overriding of the full sync cron schedule which defaults to once every 5 minutes. * * @since 1.6.3 * @since-jetpack 4.3.2 * * @param string self::DEFAULT_SYNC_CRON_INTERVAL_NAME */ $full_sync_cron_schedule = apply_filters( 'jetpack_sync_full_sync_interval', self::DEFAULT_SYNC_CRON_INTERVAL_NAME ); self::maybe_schedule_sync_cron( $full_sync_cron_schedule, 'jetpack_sync_full_cron' ); } /** * Perform maintenance when a plugin upgrade occurs. * * @access public * @static * * @param string $new_version New version of the plugin. * @param string $old_version Old version of the plugin. */ public static function cleanup_on_upgrade( $new_version = '', $old_version = '' ) { if ( wp_next_scheduled( 'jetpack_sync_send_db_checksum' ) ) { wp_clear_scheduled_hook( 'jetpack_sync_send_db_checksum' ); } $is_new_sync_upgrade = version_compare( $old_version, '4.2', '>=' ); if ( ! empty( $old_version ) && $is_new_sync_upgrade && version_compare( $old_version, '4.5', '<' ) ) { self::clear_sync_cron_jobs(); Settings::update_settings( array( 'render_filtered_content' => Defaults::$default_render_filtered_content, ) ); } Health::on_jetpack_upgraded(); } /** * Get syncing status for the given fields. * * @access public * @static * * @param string|null $fields A comma-separated string of the fields to include in the array from the JSON response. * @return array An associative array with the status report. */ public static function get_sync_status( $fields = null ) { self::initialize_sender(); $sync_module = Modules::get_module( 'full-sync' ); $queue = self::$sender->get_sync_queue(); // _get_cron_array can be false $cron_timestamps = ( _get_cron_array() ) ? array_keys( _get_cron_array() ) : array(); $next_cron = ( ! empty( $cron_timestamps ) ) ? $cron_timestamps[0] - time() : ''; $checksums = array(); $debug = array(); if ( ! empty( $fields ) ) { $store = new Replicastore(); $fields_params = array_map( 'trim', explode( ',', $fields ) ); if ( in_array( 'posts_checksum', $fields_params, true ) ) { $checksums['posts_checksum'] = $store->posts_checksum(); } if ( in_array( 'comments_checksum', $fields_params, true ) ) { $checksums['comments_checksum'] = $store->comments_checksum(); } if ( in_array( 'post_meta_checksum', $fields_params, true ) ) { $checksums['post_meta_checksum'] = $store->post_meta_checksum(); } if ( in_array( 'comment_meta_checksum', $fields_params, true ) ) { $checksums['comment_meta_checksum'] = $store->comment_meta_checksum(); } if ( in_array( 'debug_details', $fields_params, true ) ) { $debug = self::get_debug_details(); } } $full_sync_status = ( $sync_module ) ? $sync_module->get_status() : array(); $full_queue = self::$sender->get_full_sync_queue(); $result = array_merge( $full_sync_status, $checksums, $debug, array( 'cron_size' => count( $cron_timestamps ), 'next_cron' => $next_cron, 'queue_size' => $queue->size(), 'queue_lag' => $queue->lag(), 'queue_next_sync' => ( self::$sender->get_next_sync_time( 'sync' ) - microtime( true ) ), 'full_queue_next_sync' => ( self::$sender->get_next_sync_time( 'full_sync' ) - microtime( true ) ), ) ); // Verify $sync_module is not false. if ( ( $sync_module ) && false === strpos( get_class( $sync_module ), 'Full_Sync_Immediately' ) ) { $result['full_queue_size'] = $full_queue->size(); $result['full_queue_lag'] = $full_queue->lag(); } return $result; } /** * Reset Sync locks. * * @access public * @static * @since 1.43.0 * * @param bool $unlock_queues Whether to unlock Sync queues. Defaults to true. */ public static function reset_sync_locks( $unlock_queues = true ) { // Next sync locks. delete_option( Sender::NEXT_SYNC_TIME_OPTION_NAME . '_sync' ); delete_option( Sender::NEXT_SYNC_TIME_OPTION_NAME . '_full_sync' ); delete_option( Sender::NEXT_SYNC_TIME_OPTION_NAME . '_full-sync-enqueue' ); // Retry after locks. delete_option( self::RETRY_AFTER_PREFIX . 'sync' ); delete_option( self::RETRY_AFTER_PREFIX . 'full_sync' ); // Dedicated sync locks. \Jetpack_Options::delete_raw_option( Dedicated_Sender::DEDICATED_SYNC_REQUEST_LOCK_OPTION_NAME ); delete_transient( Dedicated_Sender::DEDICATED_SYNC_TEMPORARY_DISABLE_FLAG ); // Queue locks. // Note that we are just unlocking the queues here, not reseting them. if ( $unlock_queues ) { $sync_queue = new Queue( 'sync' ); $sync_queue->unlock(); $full_sync_queue = new Queue( 'full_sync' ); $full_sync_queue->unlock(); } } }
Fatal error: Uncaught Error: Class 'Automattic\Jetpack\Sync\Actions' not found in /home/healths/public_html/wp-content/plugins/jetpack-social/jetpack_vendor/automattic/jetpack-sync/src/class-main.php:23 Stack trace: #0 /home/healths/public_html/wp-content/plugins/jetpack-social/jetpack_vendor/automattic/jetpack-config/src/class-config.php(258): Automattic\Jetpack\Sync\Main::configure() #1 /home/healths/public_html/wp-content/plugins/jetpack-social/jetpack_vendor/automattic/jetpack-config/src/class-config.php(219): Automattic\Jetpack\Config->enable_sync() #2 /home/healths/public_html/wp-content/plugins/jetpack-social/jetpack_vendor/automattic/jetpack-config/src/class-config.php(114): Automattic\Jetpack\Config->ensure_feature() #3 /home/healths/public_html/wp-includes/class-wp-hook.php(324): Automattic\Jetpack\Config->on_plugins_loaded() #4 /home/healths/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #5 /home/healths/public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #6 /home/healths/pub in /home/healths/public_html/wp-content/plugins/jetpack-social/jetpack_vendor/automattic/jetpack-sync/src/class-main.php on line 23