/** * Activate handle */ function do_activate() { // get current version of plugin $latest_version = WR_Pb_Helper_Functions::get_plugin_info(WR_PB_FILE, 'Version'); // get previous version of plugin $old_version = get_transient('wr_pb_version'); // compare version if (!$old_version || version_compare($old_version, $latest_version, '<')) { // update plugin version set_transient('wr_pb_version', $latest_version); // remove cache folder if plugin is installed before if ($old_version) { WR_Pb_Utils_Common::remove_cache_folder(); } } // remove free shortcode directory if (is_dir(WP_PLUGIN_DIR . '/wr-shortcodes-free')) { delete_plugins(array('wr-shortcodes-free/main.php')); } }
/** * Check compatibility of Addons vs Core * * @global type $Wr_Sc_Providers */ public static function compatibility_check() { global $Wr_Sc_Providers; $providers = $Wr_Sc_Providers; // get current version of core $core_version = WR_Pb_Helper_Functions::get_plugin_info(WR_PB_FILE, 'Version'); foreach ($providers as $dir => $provider) { if (!empty($provider['file']) && !empty($provider['path'])) { $addon_file = $provider['file']; // get value of core version required $core_required = WR_Pb_Addon::core_version_requied_value($provider, $addon_file); if ($core_required) { // addon plugin name $addon_name = WR_Pb_Helper_Functions::get_plugin_info($provider['file_path'], 'Name'); $compatibility = WR_Pb_Addon::compatibility_handle($core_required, $core_version, $addon_file); if (!$compatibility) { // remove provider from list unset($Wr_Sc_Providers[$dir]); // show notice self::$notice[] = WR_Pb_Addon::show_notice(array('addon_name' => $addon_name, 'core_required' => $core_required), 'core_required'); } } } } }
/** * Custom function when update an Addon plugin */ public static function update_hook($plugin_file) { // Get plugin_directory/main_file $main_file = pathinfo($plugin_file); $addon_folder = basename($main_file['dirname']); // Get current version of addon $addon_version = WR_Pb_Helper_Functions::get_plugin_info($plugin_file, 'Version'); // Get stored version of addon $option_name = 'wr_addon_' . $addon_folder . '_version'; $addon_version_old = get_option($option_name); // If version is changed, updated if (version_compare($addon_version, $addon_version_old) != 0) { do_action('reload_wr_shortcodes'); // Update version update_option($option_name, $addon_version); } }