user
  • 0
Гуру

Проверка поля почтового индекса формы с помощью регулярных выражений для определения поведения страницы WordPress

  • 0

Я хочу использовать регулярное выражение (регулярное выражение) для проверки значения поля почтового индекса формы на странице WordPress, а затем на основе этих результатов:

  • Выборочно назначайте/отображайте ценовые поля на той же странице.

    или

  • Выборочное перенаправление пользователя на страницу с ценой, зависящей от результата.

Вот регулярное выражение и скелет псевдокода js.

var  zip5 = event.value.toString();

var myRegExp = /^92(2|3|5)/;

if ( zip5.length === 5 && myRegExp.test(zip5))
{
    // Code to assign/display price set #1 on same page...or
    // Code to move to WordPress Page with Price Set #1
}
else
{
    // Code to assign/display price set #2 on same page...or
    // Code to move to WordPress Page with Price Set #2
}
Share
  1. Я думаю, вы более или менее получили то, что вам нужно. У вас есть текстовое поле в форме HTML. Эта форма должна находиться в файле шаблона где-то в теме WordPress. Этот файл шаблона генерирует некешированные страницы.

    Внутри шаблона PHP для указанного файла шаблона проверьте объект $_POST (или $_REQUEST ) для идентификатора поля формы, который вы установили в HTML. Затем выполните свою логику шаблонов в виде логического блока if..else, который вы описали в псевдокоде выше.

    if( isset( $_POST['form_field_id'] ) && validation_function( $_POST['form_field_id'] ) ) {
      //stuff to display to validated zipcodes   
    } else {
      //stuff to display to non-validated zipcodes
    }
    

    Ваша функция проверки, вероятно, может быть где угодно, но, вероятно, наиболее доступна через functions.php:

    function validation_function($text_to_validate) {
       $validation_result = [preg_match][2]("/^92(2|3|5)/",$text_to_validate);
       if( count( $validation_result ) > 1 ) {
          return true;
       } else {
          return false;
       }
    }
    
    • 0
  2. Есть проблема с вашим регулярным выражением — оно будет соответствовать строке «92», затем 2, 3 или 5, но последние два символа могут быть любыми, включая буквы. Вы не указываете цифры для регулярного выражения. Вы, вероятно, хотите что-то вроде

    var myRegExp = /^92(2|3|5)\d+$/;
    

    Кроме того, вам нужно принять решение о том, хотите ли вы сделать это в PHP или в Javascript — вы не можете сделать и то, и другое, если только вы не используете вызов AJAX для получения цены. (В любом случае нет причин делать это дважды.) Сценарий @editor выглядит правильно (за исключением того, что регулярное выражение не проверяет цифры) для решения PHP, но, судя по вашему описанию, похоже, что вы ищете решение Javascript.

    Если вы выберете цены на Javascript и на самом деле получите цены в исходном коде, вы можете столкнуться с тем, что некоторые разозленные люди задаются вопросом, почему они платят больше за один и тот же товар, чем кто-то из другого почтового индекса.

    • 0

Оставить ответ

You must login to add an answer.