first commit
This commit is contained in:
61
wp-content/plugins/brizy/admin/cloud/cron.php
Normal file
61
wp-content/plugins/brizy/admin/cloud/cron.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
class Brizy_Admin_Cloud_Cron {
|
||||
|
||||
use Brizy_Admin_Cloud_SyncAware;
|
||||
|
||||
const BRIZY_CLOUD_CRON_KEY = 'brizy-cloud-synchronize';
|
||||
|
||||
|
||||
public static function _init() {
|
||||
static $instance;
|
||||
|
||||
if ( ! $instance ) {
|
||||
$instance = new self( Brizy_Admin_Cloud_Client::instance( Brizy_Editor_Project::get(), new WP_Http() ) );
|
||||
}
|
||||
|
||||
return $instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Brizy_Admin_Cloud_Cron constructor.
|
||||
*/
|
||||
public function __construct( $client ) {
|
||||
|
||||
$this->setClient( $client );
|
||||
|
||||
add_action( self::BRIZY_CLOUD_CRON_KEY, array( $this, 'syncBlocksAction' ) );
|
||||
add_action( self::BRIZY_CLOUD_CRON_KEY, array( $this, 'syncLayoutsAction' ) );
|
||||
|
||||
add_filter( 'cron_schedules', array( $this, 'addBrizyCloudCronSchedules' ) );
|
||||
|
||||
|
||||
if ( ! wp_next_scheduled( self::BRIZY_CLOUD_CRON_KEY ) ) {
|
||||
$interval = is_user_logged_in() ? '5minute' : 'hourly';
|
||||
|
||||
if ( is_user_logged_in() ) {
|
||||
wp_schedule_event( time(), $interval, self::BRIZY_CLOUD_CRON_KEY );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function syncLayoutsAction() {
|
||||
Brizy_Logger::instance()->debug('Sync layouts cron called');
|
||||
return $this->syncLayouts(1);
|
||||
}
|
||||
|
||||
public function syncBlocksAction() {
|
||||
Brizy_Logger::instance()->debug('Sync blocks cron called');
|
||||
return $this->syncBlocks(1);
|
||||
}
|
||||
|
||||
public function addBrizyCloudCronSchedules( $schedules ) {
|
||||
// Adds once weekly to the existing schedules.
|
||||
$schedules['5minute'] = array(
|
||||
'interval' => 300,
|
||||
'display' => __( 'Once in 5 minutes' )
|
||||
);
|
||||
|
||||
return $schedules;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user