WordPress.org

Make WordPress Core

Ticket #11442: 11442.5.diff

File 11442.5.diff, 8.0 KB (added by caesarsgrunt, 8 years ago)
  • wp-includes/comment.php

     
    820820                return false;
    821821
    822822        if (wp_get_comment_status($comment_id) != 'trash' && wp_get_comment_status($comment_id) != 'spam' && EMPTY_TRASH_DAYS > 0)
    823                 return wp_trash_comment($comment_id);
     823                return wp_set_comment_status($comment_id, 'trash');
    824824
    825825        do_action('delete_comment', $comment_id);
    826826
     
    849849}
    850850
    851851/**
    852  * Moves a comment to the Trash
    853  *
    854  * @since 2.9.0
    855  * @uses do_action() on 'trash_comment' before trashing
    856  * @uses do_action() on 'trashed_comment' after trashing
    857  *
    858  * @param int $comment_id Comment ID.
    859  * @return mixed False on failure
    860  */
    861 function wp_trash_comment($comment_id) {
    862         if ( EMPTY_TRASH_DAYS == 0 )
    863                 return wp_delete_comment($comment_id);
    864 
    865         if ( !$comment = get_comment($comment_id) )
    866                 return false;
    867 
    868         do_action('trash_comment', $comment_id);
    869 
    870         if ( wp_set_comment_status($comment_id, 'trash') ) {
    871                 add_comment_meta($comment_id, '_wp_trash_meta_status', $comment->comment_approved);
    872                 add_comment_meta($comment_id, '_wp_trash_meta_time', time() );
    873                 do_action('trashed_comment', $comment_id);
    874                 return true;
    875         }
    876 
    877         return false;
    878 }
    879 
    880 /**
    881  * Removes a comment from the Trash
    882  *
    883  * @since 2.9.0
    884  * @uses do_action() on 'untrash_comment' before untrashing
    885  * @uses do_action() on 'untrashed_comment' after untrashing
    886  *
    887  * @param int $comment_id Comment ID.
    888  * @return mixed False on failure
    889  */
    890 function wp_untrash_comment($comment_id) {
    891         if ( ! (int)$comment_id )
    892                 return false;
    893 
    894         do_action('untrash_comment', $comment_id);
    895 
    896         $status = (string) get_comment_meta($comment_id, '_wp_trash_meta_status', true);
    897         if ( empty($status) )
    898                 $status = '0';
    899 
    900         if ( wp_set_comment_status($comment_id, $status) ) {
    901                 delete_comment_meta($comment_id, '_wp_trash_meta_time');
    902                 delete_comment_meta($comment_id, '_wp_trash_meta_status');
    903                 do_action('untrashed_comment', $comment_id);
    904                 return true;
    905         }
    906 
    907         return false;
    908 }
    909 
    910 /**
    911  * Marks a comment as Spam
    912  *
    913  * @since 2.9.0
    914  * @uses do_action() on 'spam_comment' before spamming
    915  * @uses do_action() on 'spammed_comment' after spamming
    916  *
    917  * @param int $comment_id Comment ID.
    918  * @return mixed False on failure
    919  */
    920 function wp_spam_comment($comment_id) {
    921         if ( !$comment = get_comment($comment_id) )
    922                 return false;
    923 
    924         do_action('spam_comment', $comment_id);
    925 
    926         if ( wp_set_comment_status($comment_id, 'spam') ) {
    927                 add_comment_meta($comment_id, '_wp_trash_meta_status', $comment->comment_approved);
    928                 do_action('spammed_comment', $comment_id);
    929                 return true;
    930         }
    931 
    932         return false;
    933 }
    934 
    935 /**
    936  * Removes a comment from the Spam
    937  *
    938  * @since 2.9.0
    939  * @uses do_action() on 'unspam_comment' before unspamming
    940  * @uses do_action() on 'unspammed_comment' after unspamming
    941  *
    942  * @param int $comment_id Comment ID.
    943  * @return mixed False on failure
    944  */
    945 function wp_unspam_comment($comment_id) {
    946         if ( ! (int)$comment_id )
    947                 return false;
    948 
    949         do_action('unspam_comment', $comment_id);
    950 
    951         $status = (string) get_comment_meta($comment_id, '_wp_trash_meta_status', true);
    952         if ( empty($status) )
    953                 $status = '0';
    954 
    955         if ( wp_set_comment_status($comment_id, $status) ) {
    956                 delete_comment_meta($comment_id, '_wp_trash_meta_status');
    957                 do_action('unspammed_comment', $comment_id);
    958                 return true;
    959         }
    960 
    961         return false;
    962 }
    963 
    964 /**
    965852 * The status of a comment by ID.
    966853 *
    967854 * @since 1.0.0
     
    12371124function wp_set_comment_status($comment_id, $comment_status, $wp_error = false) {
    12381125        global $wpdb;
    12391126
     1127        if ( $comment_status == 'trash' && EMPTY_TRASH_DAYS == 0 )
     1128                return wp_delete_comment($comment_id);
     1129
    12401130        $status = '0';
    12411131        switch ( $comment_status ) {
    12421132                case 'hold':
     
    12521142                        }
    12531143                        break;
    12541144                case 'spam':
    1255                         $status = 'spam';
    1256                         break;
    12571145                case 'trash':
    1258                         $status = 'trash';
     1146                        $status = $comment_status;
    12591147                        break;
     1148                case 'unspam':
     1149                case 'untrash':
     1150                        $status = (string) get_comment_meta($comment_id, '_wp_trash_meta_status', true);
     1151                        if ( empty($status) )
     1152                                $status = '0';
     1153                        break;
    12601154                default:
    12611155                        return false;
    12621156        }
    1263 
     1157       
    12641158        $comment_old = wp_clone(get_comment($comment_id));
     1159        $old_status = $comment_old->comment_approved;
     1160       
     1161        if ( !in_array( $status, array('trash','spam') ) && in_array( $old_status, array('trash','spam') ) ) {
     1162                delete_comment_meta($comment_id, '_wp_trash_meta_time');
     1163                delete_comment_meta($comment_id, '_wp_trash_meta_status');
     1164        }
    12651165
    12661166        if ( !$wpdb->update( $wpdb->comments, array('comment_approved' => $status), array('comment_ID' => $comment_id) ) ) {
    12671167                if ( $wp_error )
     
    12691169                else
    12701170                        return false;
    12711171        }
     1172       
     1173        if ( in_array( $status, array('trash','spam') ) ) {
     1174                add_comment_meta($comment_id, '_wp_trash_meta_status', $old_status);
     1175                add_comment_meta($comment_id, '_wp_trash_meta_time', time() );
     1176        }
    12721177
    12731178        clean_comment_cache($comment_id);
    12741179
  • wp-admin/edit-comments.php

     
    5353                                $unapproved++;
    5454                                break;
    5555                        case 'spam' :
    56                                 wp_spam_comment($comment_id);
     56                                wp_set_comment_status($comment_id, 'spam');
    5757                                $spammed++;
    5858                                break;
    5959                        case 'unspam' :
    60                                 wp_unspam_comment($comment_id);
     60                                wp_set_comment_status($comment_id, 'unspam');
    6161                                $unspammed++;
    6262                                break;
    6363                        case 'trash' :
    64                                 wp_trash_comment($comment_id);
     64                                wp_set_comment_status($comment_id, 'trash');
    6565                                $trashed++;
    6666                                break;
    6767                        case 'untrash' :
    68                                 wp_untrash_comment($comment_id);
     68                                wp_set_comment_status($comment_id, 'untrash');
    6969                                $untrashed++;
    7070                                break;
    7171                        case 'delete' :
  • wp-admin/admin-ajax.php

     
    214214        if ( isset($_POST['trash']) && 1 == $_POST['trash'] ) {
    215215                if ( 'trash' == $status )
    216216                        die( (string) time() );
    217                 $r = wp_trash_comment( $comment->comment_ID );
     217                $r = wp_set_comment_status( $comment->comment_ID, 'trash' );
    218218        } elseif ( isset($_POST['untrash']) && 1 == $_POST['untrash'] ) {
    219219                if ( 'trash' != $status )
    220220                        die( (string) time() );
    221                 $r = wp_untrash_comment( $comment->comment_ID );
     221                $r = wp_set_comment_status( $comment->comment_ID, 'untrash' );
    222222        } elseif ( isset($_POST['spam']) && 1 == $_POST['spam'] ) {
    223223                if ( 'spam' == $status )
    224224                        die( (string) time() );
    225                 $r = wp_spam_comment( $comment->comment_ID );
     225                $r = wp_set_comment_status( $comment->comment_ID, 'spam' );
    226226        } elseif ( isset($_POST['unspam']) && 1 == $_POST['unspam'] ) {
    227227                if ( 'spam' != $status )
    228228                        die( (string) time() );
    229                 $r = wp_unspam_comment( $comment->comment_ID );
     229                $r = wp_set_comment_status( $comment->comment_ID, 'unspam' );
    230230        } elseif ( isset($_POST['delete']) && 1 == $_POST['delete'] ) {
    231231                $r = wp_delete_comment( $comment->comment_ID );
    232232        } else {
  • wp-admin/comment.php

     
    185185                        $redir = add_query_arg( array('deleted' => '1'), $redir );
    186186                        break;
    187187                case 'trashcomment' :
    188                         wp_trash_comment($comment_id);
     188                        wp_set_comment_status( $comment_id, 'trash' );
    189189                        $redir = add_query_arg( array('trashed' => '1', 'ids' => $comment_id), $redir );
    190190                        break;
    191191                case 'untrashcomment' :
    192                         wp_untrash_comment($comment_id);
     192                        wp_set_comment_status( $comment_id, 'untrash' );
    193193                        $redir = add_query_arg( array('untrashed' => '1'), $redir );
    194194                        break;
    195195                case 'spamcomment' :
    196                         wp_spam_comment($comment_id);
     196                        wp_set_comment_status( $comment_id, 'spam' );
    197197                        $redir = add_query_arg( array('spammed' => '1', 'ids' => $comment_id), $redir );
    198198                        break;
    199199                case 'unspamcomment' :
    200                         wp_unspam_comment($comment_id);
     200                        wp_set_comment_status( $comment_id, 'unspam' );
    201201                        $redir = add_query_arg( array('unspammed' => '1'), $redir );
    202202                        break;
    203203        }