Поддержка Проблемы и решения WordPress 4.4 и pre_comment_on_post

  • В 4.4 изменились функции и теперь хук на pre_comment_on_post срабатывает уже после обработки $_POST, а мне требуется изменить $_POST[‘comment’] до того, как оно пойдет в обработку в wp_handle_comment_submission. Сейчас код такой:

    //проверка на спам start
    add_filter('pre_comment_on_post', 'verify_spam');
    
    function verify_spam($commentdata) {
      $spam_test_field = trim($_POST['comment']);
      if(!empty($spam_test_field)) wp_die('Спаму нет!');
      $comment_content = trim($_POST['real-comment']);
      $_POST['comment'] = $comment_content;
      return $commentdata;
    }
    //проверка на спам end

    это кастомная защита от спама, которая меня много лет устраивала и которую бы очень не хотелось бы менять. можно, конечно, прицепить проверку формы на jquery, но это уже не так универсально.

    PS гуглил, нашел http://wordpress.stackexchange.com/questions/215087/wp-4-4-1-allow-empty-comments-via-add-action-pre-comment-on-post, но ответа там нет.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    требуется изменить $_POST[‘comment’] до того, как оно пойдет в обработку в wp_handle_comment_submission

    Можно привязать проверку к более раннему действию — например, init.

    но ответа там нет

    Там в комментариях тот же самый ответ:

    Or why not just modify $_POST data earlier, e.g. on the init hook?

    о, точно. спасибо Сергей.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «WordPress 4.4 и pre_comment_on_post» закрыта для новых ответов.