WooCommerce, WordPress

Как запретить ввод на латинице имени автора в комментариях WordPress и отзывах WooCommerce

Зачем делать проверку на кириллицу в поле имени автора комментария записи или отзыва на товар

  • Запрет использования в имени автора латинских (английских) букв на русскоязычном сайте может помочь в борьбе со спамом и другими формами нежелательной активности.
  • В основном при рассылки спама через формы комментариев и отзывов на сайте в имени автора используют английские (латинские) буквы.
  • Проверка имени на кириллицу может помочь в предотвращении атак, связанных с уязвимостями, связанными с кодированием и декодированием текста на разных языках.

Если вы хотите защитить свой сайт от спама и несанкционированной рекламы, то проверка имени на наличие латиницы может помочь избавить отправки с сайта подозрительных комментариев или отзывов, созданных ботами или другими автоматическими системами.

Код для проверки поля «Имя» на наличие кириллицы (отсутствие латинских букв)

Чтобы запретить ввод имени не на кириллице в комментариях к записям WordPress или в отзывах к товарам WooCommerce, вам нужно добавить следующий код в файл functions.php вашей активной темы:

// Функция для проверки имени автора комментария на кириллицу / zenid.ru
function zenid_cyrillic_comment_author($comment_id) {
    // Получаем комментарий по его ID, 
    $comment = get_comment($comment_id);
    // Получаем имя автора комментария
    $comment_author = $comment->comment_author;
    // Регулярное выражения для проверки на кириллицу
    $pattern = '/^[\p{Cyrillic}\s]+$/u';

    // Проверяем, соответствует ли имя автора комментария проверки на кириллицу
    if (!preg_match($pattern, $comment_author)) {
        // Если имя автора комментария содержит латиницу, то останавливаем выполнение с сообщением об ошибке
        wp_die('Имя автора отзыва должно быть на кириллице. <a href="javascript:history.back()">Вернуться назад</a>');
    }
}

// Добавляем функцию проверки имени автора отзыва через хук 'comment_post'
// Функция сработает после создания комментария
add_action('comment_post', 'zenid_cyrillic_comment_author');
//zenid.ru

В этом коде:

  • Создается функция zenid_cyrillic_comment_author(), которая проверяет имя автора комментария на наличие символов кириллицы.
  • Функция привязывается к хуку comment_post, который срабатывает после создания комментария.
  • Если имя автора комментария не содержит символов кириллицы, функция останавливает выполнение и выводит сообщение об ошибке.

Этот код будет работать только для новых комментариев и отзывов. Существующие с именами авторов, не содержащими кириллицу, не будут затронуты.

Добавьте этот код в файл functions.php вашей активной темы и не забудьте сделать резервную копию файла перед внесением изменений.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *