批准评论挂钩?


8

我希望在评论获得批准后向订阅者发送电子邮件。

法典中的两项行动是:

1。

add_action('comment_post', 'callback', $priority, $accepted_args);

参数为comment_IDapproval status(0或1)。

2。

add_action('edit_comment', 'callback', $priority, $accepted_args);

有论点 comment_ID

默认情况下,评论在发布时不会被批准,因此我认为批准时会对其进行编辑,但在法典中尚不清楚。批准评论时应使用哪个选项?

Answers:


14

就像帖子一样,评论可以具有一系列不同的状态,因此,它们没有为每个状态命名一个钩子,而是具有过渡钩子,该过渡钩子告诉您它以前具有的状态以及新的状态。在您的情况下,这可能会达到目的:

add_action('transition_comment_status', 'my_approve_comment_callback', 10, 3);
function my_approve_comment_callback($new_status, $old_status, $comment) {
    if($old_status != $new_status) {
        if($new_status == 'approved') {
            // Your code here
        }
    }
}

让我们知道怎么回事?


标签也不会是在法典中也找到的comment_(旧状态)_to_(新状态)吗?
AlxVallejo 2012年

2
可能也是,但这意味着您知道旧的状态。您可以批准标记为垃圾邮件的评论,也可以批准未批准的评论,因此必须使用两个钩子才能触发功能。我会说过渡,因为它使您的代码更易于维护。
Tomas Buteler 2012年

用一个简单的wp_mail();功能进行了测试,但是没有得到测试消息。它为您工作吗?我使用wp 3.5.1
Attila

@ user9909刚刚测试了它在3.5.1上的运行,并且可以正常工作。从更简单的代码(在我的情况下为error_log())开始,然后从那里进行调试?使用wp_mail()意味着可能会出错的其他地方,包括许多与WP无关的地方。
Tomas Buteler

1
利用wp_insert_comment钩子来捕获动态批准的注释。
Joseph Persie 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.