/**
  * Checks one or more comments against the Akismet API.
  *
  * ## OPTIONS
  * <comment_id>...
  * : The ID(s) of the comment(s) to check.
  *
  * [--noaction]
  * : Don't change the status of the comment. Just report what Akismet thinks it is.
  *
  * ## EXAMPLES
  *
  *     wp akismet check 12345
  *
  * @alias comment-check
  */
 public function check($args, $assoc_args)
 {
     foreach ($args as $comment_id) {
         if (isset($assoc_args['noaction'])) {
             // Check the comment, but don't reclassify it.
             $api_response = Akismet::check_db_comment($comment_id, 'wp-cli');
         } else {
             $api_response = Akismet::recheck_comment($comment_id, 'wp-cli');
         }
         if ('true' === $api_response) {
             WP_CLI::line(sprintf(__("Comment #%d is spam.", 'akismet'), $comment_id));
         } else {
             if ('false' === $api_response) {
                 WP_CLI::line(sprintf(__("Comment #%d is not spam.", 'akismet'), $comment_id));
             } else {
                 if (false === $api_response) {
                     WP_CLI::error(__("Failed to connect to Akismet.", 'akismet'));
                 } else {
                     if (is_wp_error($api_response)) {
                         WP_CLI::warning(sprintf(__("Comment #%d could not be checked.", 'akismet'), $comment_id));
                     }
                 }
             }
         }
     }
 }
Example #2
0
 public static function recheck_queue_portion($start = 0, $limit = 100)
 {
     global $wpdb;
     $paginate = '';
     if ($limit <= 0) {
         $limit = 100;
     }
     if ($start < 0) {
         $start = 0;
     }
     $moderation = $wpdb->get_col($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0' LIMIT %d OFFSET %d", $limit, $start));
     $result_counts = array('processed' => count($moderation), 'spam' => 0, 'ham' => 0, 'error' => 0);
     foreach ($moderation as $comment_id) {
         $api_response = Akismet::recheck_comment($comment_id, 'recheck_queue');
         if ('true' === $api_response) {
             ++$result_counts['spam'];
         } elseif ('false' === $api_response) {
             ++$result_counts['ham'];
         } else {
             ++$result_counts['error'];
         }
     }
     return $result_counts;
 }