web-dev-qa-db-fra.com

Vérifier si le commentaire a été soumis avec succès


Y a-t-il un moyen de vérifier que le commentaire a bien été soumis? Je souhaite afficher du texte ou masquer un formulaire de commentaire, par exemple, si le commentaire a été soumis avec succès.

1
anton

Wordpress ajoute un hashtag à l'URL si le commentaire a été soumis avec succès. Le moyen le plus simple de masquer le formulaire de commentaire ou d'afficher des informations est de vérifier si le hachage existe avec Javascript.

hash = window.location.hash;
if(hash){
    $('#commentform').hide();
}
0
anton

Vous avez cette action comment_post qui se déclenche juste après l'insertion d'un commentaire dans la base de données

0
JMau

L'exemple suivant utilise le hook comment_post pour exécuter une fonction immédiatement après la publication d'un commentaire. La fonction vérifie si le commentaire est approuvé et, le cas échéant, exécute le code spécifié.

function show_message_function( $comment_ID, $comment_approved ) {
if( 1 === $comment_approved ){
    //function logic goes here
}}add_action( 'comment_post', 'show_message_function', 10, 2 );

Notez que la ligne add_action inclut la priorité et le nombre de paramètres (, 10, 2). Si nous omettons le nombre de paramètres, nous ne pourrons accéder qu'au premier paramètre ($ comment_ID) de notre fonction. Nous ne pourrons pas accéder au second paramètre ($ comment_approved).

Pour plus de références, veuillez vérifier le lien comment_post .

0
Arpita Hunka

J'ai essayé ceci de la manière suivante, vous pouvez essayer ceci ....

mettre le code suivant dans functions.php

function hide_comment_form_function( $comment_ID, $comment_approved ){  
$commentData = get_comment( $comment_ID );
$postTitle = get_the_title($commentData->comment_post_ID);
$url = get_site_url() ."/" .$postTitle . "/?status=cmt_post";
header("Location: $url");
exit();}add_action( 'comment_post', 'hide_comment_form_function', 10, 2 );

Et le code suivant dans header.php

if(isset($_GET['status']) &&  ($_GET['status'] == "cmt_post")){
?>
<style>
#commentform, #reply-title
{
    display: none;
}
</style>
<?php}

Cela masquera le formulaire de commentaire après avoir soumis le commentaire.

0
Arpita Hunka