web-dev-qa-db-fra.com

Supprimer automatiquement le commentaire si contient

Comment supprimer automatiquement un commentaire s'il contient une certaine chaîne?

j'ai essayé avec ça mais pas travaillé:

add_action( 'transition_comment_status', 'my_approve_comment_callback', 10, 3 );

function my_approve_comment_callback( $new_status, $old_status, $comment ) {
    if (strpos($comment->comment_content, 'dog') !== false) {
            wp_delete_comment( $comment->comment_ID, true );
    }       
}

J'ai aussi essayé avec:

wp_list_comments('callback=better_comment');

function better_comment($comment, $args, $depth) {
    if (strpos($comment->comment_content, 'dog') !== false) {
            wp_delete_comment( $comment->comment_ID, true );
    }   
}

Rien ne fonctionne = (

1
J. Doe Cd

Il est préférable d'utiliser l'action 'comment_post' à cette fin, elle est déclenchée lorsque le commentaire est enregistré dans la base de données:

add_action('comment_post', 'my_comment_post_callback', 10, 3);

function my_comment_post_callback($comment_id, $comment_approved, $commentdata) {
    if (strpos($commentdata['comment_content'], 'dog') !== false) {
        $post_url = get_permalink($commentdata['comment_post_ID']);
        wp_delete_comment($comment_id, true);
        wp_redirect($post_url);
        exit;
    }       
}
1
Milan Petrovic