public static function trashExtension() { ob_start(); $slug = $_POST['slug']; include_once ABSPATH . '/wp-admin/includes/plugin.php'; $thePlugin = get_plugin_data($slug); if ($thePlugin != null && $thePlugin != '') { deactivate_plugins($slug); } if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) { include_once ABSPATH . '/wp-admin/includes/screen.php'; } include_once ABSPATH . '/wp-admin/includes/file.php'; include_once ABSPATH . '/wp-admin/includes/template.php'; include_once ABSPATH . '/wp-admin/includes/misc.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php'; MainWP_Utility::getWPFilesystem(); /** @global WP_Filesystem_Base $wp_filesystem */ global $wp_filesystem; if (empty($wp_filesystem)) { $wp_filesystem = new WP_Filesystem_Direct(null); } $pluginUpgrader = new Plugin_Upgrader(); $thePlugin = get_plugin_data($slug); if ($thePlugin != null && $thePlugin != '') { $pluginUpgrader->delete_old_plugin(null, null, null, array('plugin' => $slug)); } ob_end_clean(); die(json_encode(array('result' => 'SUCCESS'))); }
function plugin_action() { //Read form data $action = $_POST['action']; $plugins = explode('||', $_POST['plugin']); if ('activate' === $action) { include_once ABSPATH . '/wp-admin/includes/plugin.php'; foreach ($plugins as $idx => $plugin) { if ($plugin !== $this->plugin_slug) { $thePlugin = get_plugin_data($plugin); if (null !== $thePlugin && '' !== $thePlugin) { activate_plugin($plugin); } } } } else { if ('deactivate' === $action) { include_once ABSPATH . '/wp-admin/includes/plugin.php'; foreach ($plugins as $idx => $plugin) { if ($plugin !== $this->plugin_slug) { $thePlugin = get_plugin_data($plugin); if (null !== $thePlugin && '' !== $thePlugin) { deactivate_plugins($plugin); } } } } else { if ('delete' === $action) { include_once ABSPATH . '/wp-admin/includes/plugin.php'; // if (file_exists(ABSPATH . '/wp-admin/includes/deprecated.php')) include_once(ABSPATH . '/wp-admin/includes/deprecated.php'); if (file_exists(ABSPATH . '/wp-admin/includes/screen.php')) { include_once ABSPATH . '/wp-admin/includes/screen.php'; } include_once ABSPATH . '/wp-admin/includes/file.php'; include_once ABSPATH . '/wp-admin/includes/template.php'; include_once ABSPATH . '/wp-admin/includes/misc.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php'; include_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php'; $wp_filesystem = $this->getWPFilesystem(); if (null === $wp_filesystem) { $wp_filesystem = new WP_Filesystem_Direct(null); } $pluginUpgrader = new Plugin_Upgrader(); $all_plugins = get_plugins(); foreach ($plugins as $idx => $plugin) { if ($plugin !== $this->plugin_slug) { if (isset($all_plugins[$plugin])) { $tmp['plugin'] = $plugin; if (true === $pluginUpgrader->delete_old_plugin(null, null, null, $tmp)) { $args = array('action' => 'delete', 'Name' => $all_plugins[$plugin]['Name']); do_action('mainwp_child_plugin_action', $args); } } } } } else { $information['status'] = 'FAIL'; } } } if (!isset($information['status'])) { $information['status'] = 'SUCCESS'; } $information['sync'] = $this->getSiteStats(array(), false); MainWP_Helper::write($information); }