Описание pre_comment_on_post
— Action
Хук pre_comment_on_post позволяет выполнять действия до сохранения комментария к посту. Он срабатывает при отправке комментария и позволяет изменять данные комментария или выполнять дополнительные проверки перед его сохранением
Примеры использования
Пример блокировки комментариев от определенного email адреса:
add_action('pre_comment_on_post', function($commentdata) {
if ($commentdata['email'] === 'blocked@example.com') {
wp_die('Вы не можете оставлять комментарии.');
}
});
В этом примере, если email автора комментария совпадает с заблокированным адресом, комментарий не будет сохранен
Пример автоматической модерации комментариев с определенными словами:
add_action('pre_comment_on_post', function($commentdata) {
$restricted_words = ['плохой', 'ужасный'];
foreach ($restricted_words as $word) {
if (strpos($commentdata['comment_content'], $word) !== false) {
wp_die('Ваш комментарий содержит запрещенные слова.');
}
}
});
Здесь мы проверяем содержание комментария на наличие запрещенных слов и блокируем его
Пример добавления дополнительного поля в комментарий перед его сохранением:
add_action('pre_comment_on_post', function($commentdata) {
$commentdata['comment_content'] .= ' [Согласен]';
return $commentdata;
});
В этом примере мы добавляем текст ‘[Согласен]’ в конец комментария перед его сохранением
— Лучшие практики
– Использование
Используйте этот хук для выполнения проверок или модификаций комментариев перед их сохранением в базе данных
– Производительность
Хук может повлиять на производительность, если выполняются тяжелые операции, поэтому старайтесь избегать лишних запросов к базе данных
– Предупреждения
Следите за тем, чтобы обработка данных не нарушала пользовательский опыт, например, не блокируйте комментарии без уведомления
Альтернативы
Тип: action
Этот хук срабатывает после сохранения комментария и может использоваться для выполнения действий, таких как уведомления или дополнительные обработки
Используйте его, если вам нужно выполнить действия после того, как комментарий был успешно сохранен