delete_active_modules() static public method

static public delete_active_modules ( )
Example #1
0
 /**
  * Manage Jetpack Modules
  *
  * ## OPTIONS
  *
  * list          : View all available modules, and their status.
  * activate all  : Activate all modules
  * deactivate all: Deactivate all modules
  *
  * activate   <module_slug> : Activate a module.
  * deactivate <module_slug> : Deactivate a module.
  * toggle     <module_slug> : Toggle a module on or off.
  *
  * ## EXAMPLES
  *
  * wp jetpack module list
  * wp jetpack module activate stats
  * wp jetpack module deactivate stats
  * wp jetpack module toggle stats
  *
  * wp jetpack module activate all
  * wp jetpack module deactivate all
  *
  * @synopsis <list|activate|deactivate|toggle> [<module_name>]
  */
 public function module($args, $assoc_args)
 {
     $action = isset($args[0]) ? $args[0] : 'list';
     if (!in_array($action, array('list', 'activate', 'deactivate', 'toggle'))) {
         WP_CLI::error(sprintf(__('%s is not a valid command.', 'jetpack'), $action));
     }
     if (in_array($action, array('activate', 'deactivate', 'toggle'))) {
         if (isset($args[1])) {
             $module_slug = $args[1];
             if ('all' !== $module_slug && !Jetpack::is_module($module_slug)) {
                 WP_CLI::error(sprintf(__('%s is not a valid module.', 'jetpack'), $module_slug));
             }
             if ('toggle' == $action) {
                 $action = Jetpack::is_module_active($module_slug) ? 'deactivate' : 'activate';
             }
             // Bulk actions
             if ('all' == $args[1]) {
                 $action = 'deactivate' == $action ? 'deactivate_all' : 'activate_all';
             }
             // VaultPress needs to be handled elsewhere.
             if (in_array($action, array('activate', 'deactivate', 'toggle')) && 'vaultpress' == $args[1]) {
                 WP_CLI::error(sprintf(_x('Please visit %s to configure your VaultPress subscription.', '%s is a website', 'jetpack'), esc_url('https://vaultpress.com/jetpack/')));
             }
         } else {
             WP_CLI::line(__('Please specify a valid module.', 'jetpack'));
             $action = 'list';
         }
     }
     switch ($action) {
         case 'list':
             WP_CLI::line(__('Available Modules:', 'jetpack'));
             $modules = Jetpack::get_available_modules();
             sort($modules);
             foreach ($modules as $module_slug) {
                 if ('vaultpress' == $module_slug) {
                     continue;
                 }
                 $active = Jetpack::is_module_active($module_slug) ? __('Active', 'jetpack') : __('Inactive', 'jetpack');
                 WP_CLI::line("\t" . str_pad($module_slug, 24) . $active);
             }
             break;
         case 'activate':
             $module = Jetpack::get_module($module_slug);
             Jetpack::log('activate', $module_slug);
             Jetpack::activate_module($module_slug, false, false);
             WP_CLI::success(sprintf(__('%s has been activated.', 'jetpack'), $module['name']));
             break;
         case 'activate_all':
             $modules = Jetpack::get_available_modules();
             Jetpack::update_active_modules($modules);
             WP_CLI::success(__('All modules activated!', 'jetpack'));
             break;
         case 'deactivate':
             $module = Jetpack::get_module($module_slug);
             Jetpack::log('deactivate', $module_slug);
             Jetpack::deactivate_module($module_slug);
             WP_CLI::success(sprintf(__('%s has been deactivated.', 'jetpack'), $module['name']));
             break;
         case 'deactivate_all':
             Jetpack::delete_active_modules();
             WP_CLI::success(__('All modules deactivated!', 'jetpack'));
             break;
         case 'toggle':
             // Will never happen, should have been handled above and changed to activate or deactivate.
             break;
     }
 }
 function authorize($data = array())
 {
     $redirect = isset($data['redirect']) ? esc_url_raw((string) $data['redirect']) : '';
     $jetpack_unique_connection = Jetpack_Options::get_option('unique_connection');
     // Checking if site has been active/connected previously before recording unique connection
     if (!$jetpack_unique_connection) {
         // jetpack_unique_connection option has never been set
         $jetpack_unique_connection = array('connected' => 0, 'disconnected' => 0, 'version' => '3.6.1');
         update_option('jetpack_unique_connection', $jetpack_unique_connection);
         //track unique connection
         $jetpack = $this->get_jetpack();
         $jetpack->stat('connections', 'unique-connection');
         $jetpack->do_stats('server_side');
     }
     // increment number of times connected
     $jetpack_unique_connection['connected'] += 1;
     Jetpack_Options::update_option('unique_connection', $jetpack_unique_connection);
     $role = Jetpack::translate_current_user_to_role();
     if (!$role) {
         return new Jetpack_Error('no_role', 'Invalid request.', 400);
     }
     $cap = Jetpack::translate_role_to_cap($role);
     if (!$cap) {
         return new Jetpack_Error('no_cap', 'Invalid request.', 400);
     }
     if (!empty($data['error'])) {
         return new Jetpack_Error($data['error'], 'Error included in the request.', 400);
     }
     if (!isset($data['state'])) {
         return new Jetpack_Error('no_state', 'Request must include state.', 400);
     }
     if (!ctype_digit($data['state'])) {
         return new Jetpack_Error($data['error'], 'State must be an integer.', 400);
     }
     $current_user_id = get_current_user_id();
     if ($current_user_id != $data['state']) {
         return new Jetpack_Error('wrong_state', 'State does not match current user.', 400);
     }
     if (empty($data['code'])) {
         return new Jetpack_Error('no_code', 'Request must include an authorization code.', 400);
     }
     $token = $this->get_token($data);
     if (is_wp_error($token)) {
         $code = $token->get_error_code();
         if (empty($code)) {
             $code = 'invalid_token';
         }
         return new Jetpack_Error($code, $token->get_error_message(), 400);
     }
     if (!$token) {
         return new Jetpack_Error('no_token', 'Error generating token.', 400);
     }
     $is_master_user = !Jetpack::is_active();
     Jetpack::update_user_token($current_user_id, sprintf('%s.%d', $token, $current_user_id), $is_master_user);
     if (!$is_master_user) {
         Jetpack::state('message', 'linked');
         // Don't activate anything since we are just connecting a user.
         return 'linked';
     }
     $redirect_on_activation_error = 'client' === $data['auth_type'] ? true : false;
     if ($active_modules = Jetpack_Options::get_option('active_modules')) {
         Jetpack::delete_active_modules();
         Jetpack::activate_default_modules(999, 1, $active_modules, $redirect_on_activation_error);
     } else {
         Jetpack::activate_default_modules(false, false, array(), $redirect_on_activation_error);
     }
     // Start nonce cleaner
     wp_clear_scheduled_hook('jetpack_clean_nonces');
     wp_schedule_event(time(), 'hourly', 'jetpack_clean_nonces');
     Jetpack::state('message', 'authorized');
     return 'authorized';
 }