我在单个页面上有一个评论表单,该表单接受注册用户或已登录用户的评论,但是对于未登录用户,它将等待审核。因此,我想在提交评论后显示一条消息,即“您的评论正在等待审核”,以便可以通知他们。
我正在使用一个钩子向登录用户显示消息,如下所示:
add_action( 'set_comment_cookies', function( $comment, $user ) {
setcookie( 'ta_comment_wait_approval', '1' );
}, 10, 2 );
add_action( 'init', function() {
if( $_COOKIE['ta_comment_wait_approval'] === '1' ) {
setcookie( 'ta_comment_wait_approval', null, time() - 3600, '/' );
add_action( 'comment_form_before', function() {
echo "<p id='wait_approval' style='padding-top: 80px;'><strong>Your comment has been sent successfully.</strong></p>";
});
}
});
add_filter( 'comment_post_redirect', function( $location, $comment ) {
$location = get_permalink( $comment->comment_post_ID ) . '#wait_approval';
return $location;
}, 10, 2 );
我想做的是,我还想向提交评论时未获批准的用户显示消息,那么是否有钩子可以向未登录的用户显示此消息?
更新
有一个非常奇怪的事情,我在测试时注意到,当我登录chrome然后以隐身模式打开时,不会显示任何消息,但是当我从chrome中退出时,如果我提交注释,然后显示成功消息,并且还显示注释“消息正在审核”,这可能是真正的问题,有什么办法可以纠正?可能是Cookie造成了此类问题?