Использование strpos для проверки почтовых индексов в контактной форме 7 - PullRequest
0 голосов
/ 22 апреля 2019

Я считаю, что то, что я пытаюсь сделать, довольно просто, но я все еще немного новичок, когда дело доходит до PHP и пытается установить и запустить довольно простую проверку в контактной форме 7.

В основном у меня есть клиент, который доставляет только определенные почтовые индексы в Онтарио, Канада. Первым этапом процесса оформления заказа является форма захвата электронной почты, которая также запрашивает почтовый индекс пользователя, чтобы проверить, есть ли в области доставки.

Почтовые индексы состоят из 3 символов:

  • L6A
  • N4K
  • K1Y
  • K4C
  • K6V
  • и т.д.

Мне удалось написать простую проверку по одному из регионов (например, L6A), но я не уверен, как можно проверить введенное пользователем значение по всему списку почтовых индексов, а также, чтобы оно НЕ было с учетом регистра.

Мой код указан ниже:

function custom_text_validation_filter($result, $tag) {  
      $type = $tag['type'];  
      $name = $tag['name'];
      $needle = 'L6A';

      //here textbox type name is 'postal-code'
      if($name == 'postal-code') { 
          $value = $_POST[$name];  
          $pos = strpos($value, $needle);
          if ($pos === false){
            $result->invalidate( $tag, "Does Not Contain L6A" );
          } 
      } 
      return $result;  
}
add_filter('wpcf7_validate_text','custom_text_validation_filter', 10, 2); 
add_filter('wpcf7_validate_text*', 'custom_text_validation_filter', 10, 2); 

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

Любая помощь была бы удивительной :) 1028 *

...