Подтвердить комментарий?

8

Я ищу рассылку писем подписчикам, когда комментарий будет одобрен.

Два действия в Кодексе :

1.

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

Где аргументы comment_IDи approval status(0 или 1).

2.

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

С аргументом comment_ID

По умолчанию комментарии не утверждаются, когда они публикуются, поэтому я думаю, что я буду редактировать их, когда я одобряю их, но это неясно в Кодексе. Какой вариант я должен использовать при утверждении комментария?

AlxVallejo
источник

Ответы:

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
        }
    }
}

Дайте нам знать, как оно идет?

Томас Бутелер
источник
Разве тег не будет комментировать_ (старый статус) _to_ (новый статус), также найденный в Кодексе?
AlxVallejo
2
Может быть тоже, но это подразумевает, что вы знаете старый статус. Вы можете одобрить комментарий, помеченный как спам, или утвердить неутвержденный комментарий, так что вам придется использовать два хука для запуска вашей функции. Я бы сказал, перейти с переходом, потому что это делает ваш код легче поддерживать.
Томас Бутелер
проверено с простой wp_mail();функцией, но не получило тестовое сообщение. это работает для вас? Я использую wp 3.5.1
Attila
@ user9909 только что проверил, что работает 3.5.1, и он работает. Начните с более простого кода (error_log () в моем случае) и отладки оттуда, возможно? Использование wp_mail () означает дополнительные места, где что-то может пойти не так, включая многие, которые не имеют ничего общего с WP.
Томас Бутелер
1
Используйте хук wp_insert_comment, чтобы ловить комментарии, которые автоматически утверждаются на лету.
Джозеф Перси