Контактная форма 7 Validate Minlength - PullRequest
0 голосов
/ 02 ноября 2018

Прежде всего я использую последнюю версию WordPress и CF7. Я хочу включить проверку минимальной длины для поля тел раньше. Я знаю синтаксис minlength="" может использоваться внутри CF7, но по неизвестной причине он не будет работать. Только maxlength="" в порядке.

Я уже связывался с поддержкой плагинов, но, похоже, больше не отвечал. Итак, я ищу здесь и нашел некоторый код, и я редактирую его так, чтобы поле возвращало ошибку, если пользователь ввел менее 10 символов. Я положил коды внутри functions.php

function custom_phone_validation($result,$tag){
   $type = $tag['type'];
   $name = $tag['name'];
   if($name == 'Subject'){
       $phoneNumber = isset( $_POST['phonenumber'] ) ? trim( $_POST['phonenumber'] ) : '';
       if($phoneNumber < "9"){
           $result->invalidate( $tag, "phone number is less" );
       }
   }
   return $result;
   }
   add_filter('wpcf7_validate_tel','custom_phone_validation', 10, 2);
   add_filter('wpcf7_validate_tel*', 'custom_phone_validation', 10, 2);

В результате теперь всегда отображается «номер телефона меньше», хотя я вставляю более 9 символов. Могу ли я узнать, что не так и как ее решить?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

, как я уже проверял, у вас должно быть tel поле [tel* phonenumber tel-503], где phonenumber - это имя постполя, которое вы публикуете, вторая проблема в вашем коде - $name=='Subject', так как вы проверяете tel, поэтому $name будет phonenumber. Так будет и так:

function custom_phone_validation($result,$tag){
   $type = $tag['type'];
   $name = $tag['name'];
   if($name == 'phonenumber'){
   $phoneNumber = isset( $_POST['phonenumber'] ) ? trim( $_POST['phonenumber'] ) : '';
   if(strlen($phoneNumber) < 9){
       $result->invalidate( $tag, "phone number is less" );
   }
  }
  return $result;
  }
add_filter('wpcf7_validate_tel','custom_phone_validation', 10, 2);
add_filter('wpcf7_validate_tel*', 'custom_phone_validation', 10, 2);
0 голосов
/ 02 ноября 2018

Ваш $phoneNumber является строкой. Вам нужно будет получить длину строки для сравнения с 9.

Ваш код станет:

function custom_phone_validation($result,$tag){
    $type = $tag['type'];
    $name = $tag['name'];
    if($name == 'Subject'){
        $phoneNumber = isset( $_POST['phonenumber'] ) ? trim( $_POST['phonenumber'] ) : '';
        if(strlen($phoneNumber) < 9){//<=====check here
            $result->invalidate( $tag, "phone number is less" );
        }
    }
    return $result;
}
add_filter('wpcf7_validate_tel','custom_phone_validation', 10, 2);
add_filter('wpcf7_validate_tel*', 'custom_phone_validation', 10, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...