WordPress.org

Make WordPress Core

Ticket #11442: 11442.5.diff

File 11442.5.diff, 8.0 KB (added by caesarsgrunt, 4 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        }