示例#1
0
 /**
  * Disconnect Jetpack Blogs or Users
  *
  * ## OPTIONS
  *
  * blog: Disconnect the entire blog.
  *
  * user <user_identifier>: Disconnect a specific user from WordPress.com.
  *
  * Please note, the primary account that the blog is connected
  * to WordPress.com with cannot be disconnected without
  * disconnecting the entire blog.
  *
  * ## EXAMPLES
  *
  * wp jetpack disconnect blog
  * wp jetpack disconnect user 13
  * wp jetpack disconnect user username
  * wp jetpack disconnect user email@domain.com
  *
  * @synopsis <blog|user> [<user_identifier>]
  */
 public function disconnect($args, $assoc_args)
 {
     if (!Jetpack::is_active()) {
         WP_CLI::error(__('You cannot disconnect, without having first connected.', 'jetpack'));
     }
     $action = isset($args[0]) ? $args[0] : 'prompt';
     if (!in_array($action, array('blog', 'user', 'prompt'))) {
         WP_CLI::error(sprintf(__('%s is not a valid command.', 'jetpack'), $action));
     }
     if (in_array($action, array('user'))) {
         if (isset($args[1])) {
             $user_id = $args[1];
             if (ctype_digit($user_id)) {
                 $field = 'id';
                 $user_id = (int) $user_id;
             } elseif (is_email($user_id)) {
                 $field = 'email';
                 $user_id = sanitize_user($user_id, true);
             } else {
                 $field = 'login';
                 $user_id = sanitize_user($user_id, true);
             }
             if (!($user = get_user_by($field, $user_id))) {
                 WP_CLI::error(__('Please specify a valid user.', 'jetpack'));
             }
         } else {
             WP_CLI::error(__('Please specify a user by either ID, username, or email.', 'jetpack'));
         }
     }
     switch ($action) {
         case 'blog':
             Jetpack::log('disconnect');
             Jetpack::disconnect();
             WP_CLI::success(__('Jetpack has been successfully disconnected.', 'jetpack'));
             break;
         case 'user':
             if (Jetpack::unlink_user($user->ID)) {
                 Jetpack::log('unlink', $user->ID);
                 WP_CLI::success(sprintf(__('%s has been successfully disconnected.', 'jetpack'), $action));
             } else {
                 WP_CLI::error(sprintf(__('%s could not be disconnected.  Are you sure they\'re connected currently?', 'jetpack'), "{$user->login} <{$user->email}>"));
             }
             break;
         case 'prompt':
             WP_CLI::error(__('Please specify if you would like to disconnect a blog or user.', 'jetpack'));
             break;
     }
 }
 /**
  * Unlink a user from WordPress.com
  *
  * This will fail if called by the Master User.
  */
 function unlink_user()
 {
     Jetpack::log('unlink');
     return Jetpack::unlink_user();
 }
 /**
  * Unlinks current user from the WordPress.com Servers.
  *
  * @since 4.3.0
  * @uses  Jetpack::unlink_user
  *
  * @return bool|WP_Error True if user successfully unlinked.
  */
 public static function unlink_user($data)
 {
     $param = $data->get_json_params();
     if (!isset($param['linked']) || $param['linked'] !== false) {
         return new WP_Error('invalid_param', esc_html__('Invalid Parameter', 'jetpack'), array('status' => 404));
     }
     if (Jetpack::unlink_user()) {
         return rest_ensure_response(array('code' => 'success'));
     }
     return new WP_Error('unlink_user_failed', esc_html__('Was not able to unlink the user.  Please try again.', 'jetpack'), array('status' => 400));
 }
 /**
  * Unlinks a user from the WordPress.com Servers.
  * Default $data['id'] will default to current_user_id if no value is given.
  *
  * Example: '/unlink?id=1234'
  *
  * @since 4.1.0
  * @uses  Jetpack::unlink_user
  *
  * @param WP_REST_Request $data {
  *     Array of parameters received by request.
  *
  *     @type int $id ID of user to unlink.
  * }
  *
  * @return bool|WP_Error True if user successfully unlinked.
  */
 public static function unlink_user($data)
 {
     if (isset($data['id']) && Jetpack::unlink_user($data['id'])) {
         return rest_ensure_response(array('code' => 'success'));
     }
     return new WP_Error('unlink_user_failed', esc_html__('Was not able to unlink the user.  Please try again.', 'jetpack'), array('status' => 400));
 }