public static function bulk_archive($checked) { global $wp_filesystem; $plugins = get_plugins(); $form_fields = $_REQUEST; $url = add_query_arg($form_fields, admin_url('plugins.php')); ob_start(); $creds = request_filesystem_credentials($url, get_filesystem_method(), false, false); $output = ob_get_contents(); ob_end_clean(); if ($creds) { WP_Filesystem($creds); $archive_dir = trailingslashit($wp_filesystem->wp_content_dir() . self::$options['archive_dir']); $wp_filesystem->mkdir($archive_dir); $count = 0; foreach ($_REQUEST['checked'] as $plugin) { if (isset($plugins[$plugin])) { $target_dir = self::plugin_basename($plugin, $archive_dir); $plugin_dir = self::plugin_basename($plugin, WP_PLUGIN_DIR); if (self::$options['deactivate']) { deactivate_plugins($plugin); } $result = $wp_filesystem->move($plugin_dir, $target_dir); if ($result) { $count++; } } } self::$count = $count; } else { unset($_REQUEST['success_action']); require_once ABSPATH . 'wp-admin/admin.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; echo '<div class="wrap">'; echo $output; echo '</div>'; include ABSPATH . 'wp-admin/admin-footer.php'; die(''); } }
protected function get_views() { global $totals, $status; $screen = $this->screen; $status_links = array(); $dirs = HackRepair_Plugin_Archiver::get_archive_dirs(); foreach ($dirs as $dir) { $key = $dir; $name = preg_replace('/^plugins\\-/ims', '', $dir); $name = str_replace('-', ' ', $name); $name[0] = strtoupper($name[0]); $count = HackRepair_Plugin_Archiver::get_archived_plugins(WP_CONTENT_DIR . '/' . $dir); $count = sizeof($count); // if ( 1 > $count ) { // continue; // } $link = "<a href=\"%s\" %s>%s%s</a>"; $href = admin_url('plugins.php?page=hackrepair-plugin-archiver'); if ($dir !== HackRepair_Plugin_Archiver::$options['archive_dir']) { $href = add_query_arg('archive_dir', $dir, $href); } $status_links[$key] = sprintf($link, $href, $dir == HackRepair_Plugin_Archiver::$options['archive_dir'] ? ' class="current"' : '', $name, 0 < $count ? " <span class=\"count\">(" . number_format_i18n($count) . ")</span>" : ''); } return $status_links; }