public static function uninstallPlugin() { //Check if caching is enabled and if it is, disable it and fix the .htaccess file. $cacheType = wfConfig::get('cacheType', false); if ($cacheType == 'falcon') { wfCache::addHtaccessCode('remove'); wfCache::updateBlockedIPs('remove'); wfConfig::set('cacheType', false); //We currently don't clear the cache when plugin is disabled because it will take too long if done synchronously and won't work because plugin is disabled if done asynchronously. //wfCache::scheduleCacheClear(); } else { if ($cacheType == 'php') { wfConfig::set('cacheType', false); } } //Used by MU code below update_option('wordfenceActivated', 0); wp_clear_scheduled_hook('wordfence_daily_cron'); wp_clear_scheduled_hook('wordfence_hourly_cron'); wp_clear_scheduled_hook('wordfence_daily_autoUpdate'); //Remove old legacy cron job if it exists wp_clear_scheduled_hook('wordfence_scheduled_scan'); //Remove all scheduled scans. self::unscheduleAllScans(); // Remove cron for email summary wfActivityReport::clearCronJobs(); wfConfig::clearDiskCache(); if (wfConfig::get('deleteTablesOnDeact')) { $schema = new wfSchema(); $schema->dropAll(); foreach (array('wordfence_version', 'wordfenceActivated') as $opt) { delete_option($opt); } } }
public static function uninstallPlugin() { //Check if caching is enabled and if it is, disable it and fix the .htaccess file. $cacheType = wfConfig::get('cacheType', false); if ($cacheType == 'falcon') { wfCache::addHtaccessCode('remove'); wfCache::updateBlockedIPs('remove'); wfConfig::set('cacheType', false); //We currently don't clear the cache when plugin is disabled because it will take too long if done synchronously and won't work because plugin is disabled if done asynchronously. //wfCache::scheduleCacheClear(); } else { if ($cacheType == 'php') { wfConfig::set('cacheType', false); } } //Used by MU code below update_option('wordfenceActivated', 0); wp_clear_scheduled_hook('wordfence_daily_cron'); wp_clear_scheduled_hook('wordfence_hourly_cron'); wp_clear_scheduled_hook('wordfence_daily_autoUpdate'); //Remove old legacy cron job if it exists wp_clear_scheduled_hook('wordfence_scheduled_scan'); //Remove all scheduled scans. self::unscheduleAllScans(); // Remove cron for email summary wfActivityReport::clearCronJobs(); // Remove the admin user list so it can be regenerated if Wordfence is reactivated. wfConfig::set_ser('adminUserList', false); wfConfig::clearDiskCache(); if (!WFWAF_SUBDIRECTORY_INSTALL) { try { wfWAF::getInstance()->getStorageEngine()->setConfig('wafDisabled', true); } catch (wfWAFStorageFileException $e) { error_log($e->getMessage()); } } if (wfConfig::get('deleteTablesOnDeact')) { $schema = new wfSchema(); $schema->dropAll(); foreach (array('wordfence_version', 'wordfenceActivated') as $opt) { delete_option($opt); } if (!WFWAF_SUBDIRECTORY_INSTALL) { try { if (WFWAF_AUTO_PREPEND) { $helper = new wfWAFAutoPrependHelper(); if ($helper->uninstall()) { wfWAF::getInstance()->uninstall(); } } else { wfWAF::getInstance()->uninstall(); } } catch (wfWAFStorageFileException $e) { error_log($e->getMessage()); } } } }