From: Steve Sutton Date: Thu, 25 Aug 2016 13:28:51 +0000 (-0400) Subject: Clean up on the wp cron for this plugin. X-Git-Tag: v1.3.3^2~35^2~1 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=beb9fb50b5137c2d82fe5ccba024653a8b4ca20e;p=WP-Plugins%2Fglm-member-db-events.git Clean up on the wp cron for this plugin. If you deactivate this plugin it will go through and clear the cron schedules for this plugin. If you activate the plugin it will also go through and reset the cron needed for any ical feeds. --- diff --git a/activate.php b/activate.php index 00cd105..5d1ed58 100644 --- a/activate.php +++ b/activate.php @@ -31,6 +31,7 @@ if (!defined('ABSPATH')) { die("Please do not call this code directly!"); } +require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataFeedImport.php'; /* * This class performs all necessary additional work when this * plugin is activated. @@ -83,7 +84,20 @@ class glmMembersEventsPluginActivate update_option('glmMembersDatabaseEventsPluginVersion', GLM_MEMBERS_EVENTS_PLUGIN_VERSION); // Set Roles and Capabilities for this plugin - require_once(GLM_MEMBERS_EVENTS_PLUGIN_SETUP_PATH.'/rolesAndCapabilities.php'); + require_once GLM_MEMBERS_EVENTS_PLUGIN_SETUP_PATH . '/rolesAndCapabilities.php'; + $this->create_cron_schedules(); + } + + public function create_cron_schedules() + { + $importFeeds = new GlmDataFeedImport( $this->wpdb, $this->config ); + $import_feeds = $importFeeds->getList(); + if ( $import_feeds ) { + foreach ( $import_feeds as $key => &$feed ) { + // check the next run time + wp_schedule_event( time(), GLM_MEMBERS_EVENTS_PLUGIN_CRON_RECURRANCE, GLM_MEMBERS_EVENTS_PLUGIN_CRON_EVENT, array( (int)$feed['id'] ) ); + } + } } /* diff --git a/deactivate.php b/deactivate.php index 76887aa..74ef441 100644 --- a/deactivate.php +++ b/deactivate.php @@ -30,6 +30,7 @@ if (!defined('ABSPATH')) { die("Please do not call this code directly!"); } +require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataFeedImport.php'; /* * This class performs all necessary additional work when this * plugin is deactivated. @@ -68,6 +69,21 @@ class glmMembersEventsPluginDeactivate // Delete our version from WordPress Options delete_option('glmMembersDatabaseEventsPluginVersion'); + $this->clear_cron_schedules(); + } + + public function clear_cron_schedules() + { + // clear the cron schedule for this plugin + wp_clear_scheduled_hook( GLM_MEMBERS_EVENTS_PLUGIN_CRON_EVENT ); + $importFeeds = new GlmDataFeedImport( $this->wpdb, $this->config ); + $import_feeds = $importFeeds->getList(); + if ( $import_feeds ) { + foreach ( $import_feeds as $key => &$feed ) { + // check the next run time + wp_clear_scheduled_hook( GLM_MEMBERS_EVENTS_PLUGIN_CRON_EVENT, array( (int)$feed['id'] ) ); + } + } } }