2015-11-09 3 views
2

У меня есть эта контактная форму на php с такими функциями: имя (обязательно), адрес электронной почты (обязательно), телефон (не обязательно) и сообщение (обязательно).Контактный формуляр не соответствует условиям

Оригинальный код:

<?php 
//contact form 
function cs_theme_contact_form_shortcode($atts) 
{ 
    extract(shortcode_atts(array(
     "id" => "contact_form", 
     "top_margin" => "none", 
     "el_class" => "" 
    ), $atts)); 

    $output = ""; 
    $output .= '<form class="contact-form ' . ($top_margin!="none" ? esc_attr($top_margin) : '') . ($el_class!="" ? ' ' . esc_attr($el_class) : '') . '" id="' . esc_attr($id) . '" method="post" action="#"> 
     <div class="vc_row wpb_row vc_inner"> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
       <div class="block"> 
        <input class="text_input" name="name" type="text" value="' . esc_html__("Your Name *", 'carservice') . '" placeholder="' . esc_html__("Your Name *", 'carservice') . '"> 
       </div> 
       <div class="block"> 
        <input class="text_input" name="email" type="text" value="' . esc_html__("Your Email *", 'carservice') . '" placeholder="' . esc_html__("Your Email *", 'carservice') . '"> 
       </div> 
       <div class="block"> 
        <input class="text_input" name="phone" type="text" value="' . esc_html__("Your Phone", 'carservice') . '" placeholder="' . esc_html__("Your Phone", 'carservice') . '"> 
       </div> 
      </fieldset> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
       <div class="block"> 
        <textarea class="margin_top_10" name="message" placeholder="' . esc_html__("Message *", 'carservice') . '">' . __("Message *", 'carservice') . '</textarea> 
       </div> 
      </fieldset> 
     </div> 
     <div class="vc_row wpb_row vc_inner margin-top-30"> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
       <p>' . __("We will contact you within one business day.", 'carservice') . '</p> 
      </fieldset> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container align-right"> 
       <input type="hidden" name="action" value="theme_contact_form"> 
       <input type="hidden" name="id" value="' . esc_attr($id) . '"> 
       <div class="vc_row wpb_row vc_inner margin-top-20 padding-bottom-20"> 
        <a class="more submit-contact-form" href="#" title="' . esc_html__("SEND MESSAGE", 'carservice') . '"><span>' . __("SEND MESSAGE", 'carservice') . '</span></a> 
       </div> 
      </fieldset> 
     </div> 
    </form>'; 
    return $output; 
} 
add_shortcode("cs_contact_form", "cs_theme_contact_form_shortcode"); 

//visual composer 
function cs_theme_contact_form_vc_init() 
{ 
    vc_map(array(
     "name" => __("Contact form", 'carservice'), 
     "base" => "cs_contact_form", 
     "class" => "", 
     "controls" => "full", 
     "show_settings_on_create" => true, 
     "icon" => "icon-wpb-layer-contact-form", 
     "category" => __('Carservice', 'carservice'), 
     "params" => array(
      array(
       "type" => "textfield", 
       "class" => "", 
       "heading" => __("Id", 'carservice'), 
       "param_name" => "id", 
       "value" => "contact_form", 
       "description" => __("Please provide unique id for each contact form on the same page/post", 'carservice') 
      ), 
      array(
       "type" => "dropdown", 
       "class" => "", 
       "heading" => __("Top margin", 'carservice'), 
       "param_name" => "top_margin", 
       "value" => array(__("None", 'carservice') => "none", __("Page (small)", 'carservice') => "page-margin-top", __("Section (large)", 'carservice') => "page-margin-top-section") 
      ), 
      array(
       'type' => 'textfield', 
       'heading' => __('Extra class name', 'js_composer'), 
       'param_name' => 'el_class', 
       'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'js_composer') 
      ) 
     ) 
    )); 
} 
add_action("init", "cs_theme_contact_form_vc_init"); 

//contact form submit 
function cs_theme_contact_form() 
{ 
    ob_start(); 
    global $theme_options; 

    $result = array(); 
    $result["isOk"] = true; 
    if($_POST["name"]!="" && $_POST["name"]!=__("Your Name *", 'carservice') && $_POST["email"]!="" && $_POST["email"]!=__("Your Email *", 'carservice') && preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"]) && $_POST["message"]!="" && $_POST["message"]!=__("Message *", 'carservice')) 
    { 
     $values = array(
      "name" => $_POST["name"], 
      "phone" => ($_POST["phone"]!=__("Your Phone", 'carservice') ? $_POST["phone"] : ""), 
      "email" => $_POST["email"], 
      "message" => $_POST["message"] 
     ); 
     if((bool)ini_get("magic_quotes_gpc")) 
      $values = array_map("stripslashes", $values); 
     $values = array_map("htmlspecialchars", $values); 

     $headers[] = 'From: ' . $values["name"] . ' <' . $values["email"] . '>' . "\r\n"; 
     $headers[] = 'Content-type: text/html'; 
     $subject = $theme_options["cf_email_subject"]; 
     $subject = str_replace("[name]", $values["name"], $subject); 
     $subject = str_replace("[email]", $values["email"], $subject); 
     $subject = str_replace("[phone]", $values["phone"], $subject); 
     $subject = str_replace("[message]", $values["message"], $subject); 
     $body = $theme_options["cf_template"]; 
     $body = str_replace("[name]", $values["name"], $body); 
     $body = str_replace("[email]", $values["email"], $body); 
     $body = str_replace("[phone]", $values["phone"], $body); 
     $body = str_replace("[message]", $values["message"], $body); 
     $body = str_replace("[form_data]", "", $body); 

     if(wp_mail($theme_options["cf_admin_name"] . ' <' . $theme_options["cf_admin_email"] . '>', $subject, $body, $headers)) 
      $result["submit_message"] = __("Thank you for contacting us", 'carservice'); 
     else 
     { 
      $result["isOk"] = false; 
      $result["error_message"] = $GLOBALS['phpmailer']->ErrorInfo; 
      $result["submit_message"] = __("Sorry, we can't send this message", 'carservice'); 
     } 
    } 
    else 
    { 
     $result["isOk"] = false; 
     if($_POST["name"]=="" || $_POST["name"]==__("Your Name *", 'carservice')) 
      $result["error_name"] = __("Please enter your name.", 'carservice'); 
     if($_POST["email"]=="" || $_POST["email"]==__("Your Email *", 'carservice') || !preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"])) 
      $result["error_email"] = __("Please enter valid e-mail.", 'carservice'); 
     if($_POST["message"]=="" || $_POST["message"]==__("Message *", 'carservice')) 
      $result["error_message"] = __("Please enter your message.", 'carservice'); 
    } 
    $system_message = ob_get_clean(); 
    $result["system_message"] = $system_message; 
    echo @json_encode($result); 
    exit(); 
} 
add_action("wp_ajax_theme_contact_form", "cs_theme_contact_form"); 
add_action("wp_ajax_nopriv_theme_contact_form", "cs_theme_contact_form"); 
?> 

Так я хочу, чтобы внести некоторые изменения и добавить больше функций, как это: имя (обязательно), адрес электронной почты (обязательно), телефон (обязательно), адрес (обязательно) и сообщения (не требуется).

тогда я изменил код так:

<?php 
//contact form 
function cs_theme_contact_form_shortcode($atts) 
{ 
    extract(shortcode_atts(array(
     "id" => "contact_form", 
     "top_margin" => "none", 
     "el_class" => "" 
    ), $atts)); 

    $output = ""; 
    $output .= '<form class="contact-form ' . ($top_margin!="none" ? esc_attr($top_margin) : '') . ($el_class!="" ? ' ' . esc_attr($el_class) : '') . '" id="' . esc_attr($id) . '" method="post" action="#"> 
     <div class="vc_row wpb_row vc_inner"> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <div class="block"> 
       <input class="text_input" name="name" type="text" value="' . esc_html__("Nombre Completo *", 'carservice') . '" placeholder="' . esc_html__("Nombre Completo *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="email" type="text" value="' . esc_html__("Correo Electronico *", 'carservice') . '" placeholder="' . esc_html__("Correo Electronico *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="phone" type="text" value="' . esc_html__("Número de Celular *", 'carservice') . '" placeholder="' . esc_html__("Número de Celular *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="address" type="text" value="' . esc_html__("Dirección *", 'carservice') . '" placeholder="' . esc_html__("Dirección *", 'carservice') . '"> 
      </div> 
     </fieldset> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <div class="block"> 
       <textarea class="margin_top_10" name="message" placeholder="' . esc_html__("Mensaje", 'carservice') . '">' . __("Mensaje", 'carservice') . '</textarea> 
      </div> 
     </fieldset> 
    </div> 
    <div class="vc_row wpb_row vc_inner margin-top-30"> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <p>' . __("Contactaremos contigo lo más pronto posible.", 'carservice') . '</p> 
     </fieldset> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container align-right"> 
      <input type="hidden" name="action" value="theme_contact_form"> 
      <input type="hidden" name="id" value="' . esc_attr($id) . '"> 
      <div class="vc_row wpb_row vc_inner margin-top-20 padding-bottom-20"> 
       <a class="more submit-contact-form" href="#" title="' . esc_html__("ENVIAR", 'carservice') . '"><span>' . __("ENVIAR", 'carservice') . '</span></a> 
      </div> 
      </fieldset> 
     </div> 
    </form>'; 
    return $output; 
} 
add_shortcode("cs_contact_form", "cs_theme_contact_form_shortcode"); 

//visual composer 
function cs_theme_contact_form_vc_init() 
{ 
    vc_map(array(
     "name" => __("Contact form", 'carservice'), 
     "base" => "cs_contact_form", 
     "class" => "", 
     "controls" => "full", 
     "show_settings_on_create" => true, 
     "icon" => "icon-wpb-layer-contact-form", 
     "category" => __('Carservice', 'carservice'), 
     "params" => array(
      array(
       "type" => "textfield", 
       "class" => "", 
       "heading" => __("Id", 'carservice'), 
       "param_name" => "id", 
       "value" => "contact_form", 
       "description" => __("Please provide unique id for each contact form on the same page/post", 'carservice') 
      ), 
      array(
       "type" => "dropdown", 
       "class" => "", 
       "heading" => __("Top margin", 'carservice'), 
       "param_name" => "top_margin", 
       "value" => array(__("None", 'carservice') => "none", __("Page (small)", 'carservice') => "page-margin-top", __("Section (large)", 'carservice') => "page-margin-top-section") 
      ), 
      array(
       'type' => 'textfield', 
       'heading' => __('Extra class name', 'js_composer'), 
       'param_name' => 'el_class', 
       'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'js_composer') 
      ) 
     ) 
    )); 
} 
add_action("init", "cs_theme_contact_form_vc_init"); 

//contact form submit 
function cs_theme_contact_form() 
{ 
    ob_start(); 
    global $theme_options; 

    $result = array(); 
    $result["isOk"] = true; 
    if($_POST["name"]!="" && $_POST["name"]!=__("Nombre Completo *", 'carservice') && $_POST["email"]!="" && $_POST["email"]!=__("Correo Electronico *", 'carservice') && preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"]) && $_POST["phone"]!="" && $_POST["phone"]!=__("Número de Celular", 'carservice') && preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{3}$/", $_POST["phone"]) && $_POST["address"]!="" && $_POST["address"]!=__("Dirección *", 'carservice')) 
    { 
     $values = array(
      "name" => $_POST["name"], 
      "phone" => $_POST["phone"], 
      "email" => $_POST["email"], 
      "address" => $_POST["address"], 
      "message" => ($_POST["message"]!=__("Mensaje", 'carservice') ? $_POST["message"] : "") 
     ); 
     if((bool)ini_get("magic_quotes_gpc")) 
      $values = array_map("stripslashes", $values); 
     $values = array_map("htmlspecialchars", $values); 

     $headers[] = 'From: ' . $values["name"] . ' <' . $values["email"] . '>' . "\r\n"; 
     $headers[] = 'Content-type: text/html'; 
     $subject = str_replace("[name]", $values["name"], $subject); 
     $subject = str_replace("[email]", $values["email"], $subject); 
     $subject = str_replace("[phone]", $values["phone"], $subject); 
     $subject = str_replace("[address]", $values["address"], $subject); 
     $subject = str_replace("[message]", $values["message"], $subject); 
     $body = $theme_options["cf_template"]; 
     $body = str_replace("[name]", $values["name"], $body); 
     $body = str_replace("[email]", $values["email"], $body); 
     $body = str_replace("[phone]", $values["phone"], $body); 
     $body = str_replace("[address]", $values["address"], $body); 
     $body = str_replace("[message]", $values["message"], $body); 
     $body = str_replace("[form_data]", "", $body); 

     if(wp_mail($theme_options["cf_admin_name"] . ' <' . $theme_options["cf_admin_email"] . '>', $subject, $body, $headers)) 
      $result["submit_message"] = __("Gracias por preferirnos. :)", 'carservice'); 
     else 
     { 
      $result["isOk"] = false; 
      $result["error_message"] = $GLOBALS['phpmailer']->ErrorInfo; 
      $result["submit_message"] = __("Lo siento, no podemos enviar el mensaje por el momento. :()", 'carservice'); 
     } 
    } 
    else 
    { 
     $result["isOk"] = false; 
     if($_POST["name"]=="" || $_POST["name"]==__("Nombre Completo *", 'carservice')) 
      $result["error_name"] = __("Por favor ingrese su nombre completo.", 'carservice'); 
     if($_POST["email"]=="" || $_POST["email"]==__("Correo Electronico *", 'carservice') || !preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"])) 
      $result["error_email"] = __("Por favor ingresa un correo electronico válido.", 'carservice'); 
     if($_POST["phone"]=="" || $_POST["phone"]==__("Número de Celular *", 'carservice') || !preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{3}$/", $_POST["phone"])) 
      $result["error_phone"] = __("Por favor ingresa un número de celular válido.", 'carservice'); 
     if($_POST["address"]=="" || $_POST["address"]==__("Dirección *", 'carservice')) 
      $result["error_address"] = __("Por favor tu dirección.", 'carservice'); 
    } 
    $system_message = ob_get_clean(); 
    $result["system_message"] = $system_message; 
    echo @json_encode($result); 
    exit(); 
} 
add_action("wp_ajax_theme_contact_form", "cs_theme_contact_form"); 
add_action("wp_ajax_nopriv_theme_contact_form", "cs_theme_contact_form"); 
?> 

Дело им пытаются сделать, это добавить некоторые ограничения, как это: Имя должно быть заполнено, если нет, то появится какое-то сообщение говоря: «Пожалуйста, напишите свое имя «; то же самое с электронной почтой (оба работают в исходной форме контакта и в модифицированном коде). Я попробовал то же самое с телефоном (телефон должен содержать только цифры, если нет, то появится сообщение «напишите допустимый номер», но когда я тестирую и пишу «98231176a», сообщение не появляется, и та же ошибка возникает с адресом и, очевидно, вся информация не передается электронной почты администратора, то потому что телефон не является действительным у меня мало знаний PHP, если кто-то может помочь мне, пожалуйста, спасибо

+0

Почему вы смешивания HTML с функцией декларации? Это должно быть в представлении. – Fuser97381

+0

Извините im new в этой вещи. Весь этот код и другие пришли с темой, которую я покупаю –

+0

@March_one проверить мой ответ, это может помочь –

ответ

1

Replace:..

&& preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{3}$/", $_POST["phone"]) 

с:

&& is_numeric($_POST['phone']); 

, а также:

|| !preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{3}$/", $_POST["phone"]) 

с:

|| !is_numeric($_POST['phone']); 

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

function validatePhone($string) { 
    $numbersOnly = ereg_replace("[^0-9]", "", $string); 
    $numberOfDigits = strlen($numbersOnly); 
    if ($numberOfDigits == 7 or $numberOfDigits == 10) { 
     return true; 
    } else { 
     return false; 
    } 
} 

использовать его как это:

validatePhone($_POST['phone']) 

это решит проблему номер телефона и сделать его важным, чтобы быть числовыми и не содержат каких-либо алфавиты

полный код:

<?php 
//contact form 
function cs_theme_contact_form_shortcode($atts) 
{ 
    extract(shortcode_atts(array(
     "id" => "contact_form", 
     "top_margin" => "none", 
     "el_class" => "" 
    ), $atts)); 

    $output = ""; 
    $output .= '<form class="contact-form ' . ($top_margin!="none" ? esc_attr($top_margin) : '') . ($el_class!="" ? ' ' . esc_attr($el_class) : '') . '" id="' . esc_attr($id) . '" method="post" action="#"> 
     <div class="vc_row wpb_row vc_inner"> 
      <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <div class="block"> 
       <input class="text_input" name="name" type="text" value="' . esc_html__("Nombre Completo *", 'carservice') . '" placeholder="' . esc_html__("Nombre Completo *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="email" type="text" value="' . esc_html__("Correo Electronico *", 'carservice') . '" placeholder="' . esc_html__("Correo Electronico *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="phone" type="text" value="' . esc_html__("Número de Celular *", 'carservice') . '" placeholder="' . esc_html__("Número de Celular *", 'carservice') . '"> 
      </div> 
      <div class="block"> 
       <input class="text_input" name="address" type="text" value="' . esc_html__("Dirección *", 'carservice') . '" placeholder="' . esc_html__("Dirección *", 'carservice') . '"> 
      </div> 
     </fieldset> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <div class="block"> 
       <textarea class="margin_top_10" name="message" placeholder="' . esc_html__("Mensaje", 'carservice') . '">' . __("Mensaje", 'carservice') . '</textarea> 
      </div> 
     </fieldset> 
    </div> 
    <div class="vc_row wpb_row vc_inner margin-top-30"> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container"> 
      <p>' . __("Contactaremos contigo lo más pronto posible.", 'carservice') . '</p> 
     </fieldset> 
     <fieldset class="vc_col-sm-6 wpb_column vc_column_container align-right"> 
      <input type="hidden" name="action" value="theme_contact_form"> 
      <input type="hidden" name="id" value="' . esc_attr($id) . '"> 
      <div class="vc_row wpb_row vc_inner margin-top-20 padding-bottom-20"> 
       <a class="more submit-contact-form" href="#" title="' . esc_html__("ENVIAR", 'carservice') . '"><span>' . __("ENVIAR", 'carservice') . '</span></a> 
      </div> 
      </fieldset> 
     </div> 
    </form>'; 
    return $output; 
} 
add_shortcode("cs_contact_form", "cs_theme_contact_form_shortcode"); 

//visual composer 
function cs_theme_contact_form_vc_init() 
{ 
    vc_map(array(
     "name" => __("Contact form", 'carservice'), 
     "base" => "cs_contact_form", 
     "class" => "", 
     "controls" => "full", 
     "show_settings_on_create" => true, 
     "icon" => "icon-wpb-layer-contact-form", 
     "category" => __('Carservice', 'carservice'), 
     "params" => array(
      array(
       "type" => "textfield", 
       "class" => "", 
       "heading" => __("Id", 'carservice'), 
       "param_name" => "id", 
       "value" => "contact_form", 
       "description" => __("Please provide unique id for each contact form on the same page/post", 'carservice') 
      ), 
      array(
       "type" => "dropdown", 
       "class" => "", 
       "heading" => __("Top margin", 'carservice'), 
       "param_name" => "top_margin", 
       "value" => array(__("None", 'carservice') => "none", __("Page (small)", 'carservice') => "page-margin-top", __("Section (large)", 'carservice') => "page-margin-top-section") 
      ), 
      array(
       'type' => 'textfield', 
       'heading' => __('Extra class name', 'js_composer'), 
       'param_name' => 'el_class', 
       'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'js_composer') 
      ) 
     ) 
    )); 
} 
add_action("init", "cs_theme_contact_form_vc_init"); 

//contact form submit 
function cs_theme_contact_form() 
{ 
    ob_start(); 
    global $theme_options; 

    $result = array(); 
    $result["isOk"] = true; 
    if($_POST["name"]!="" && $_POST["name"]!=__("Nombre Completo *", 'carservice') && $_POST["email"]!="" && $_POST["email"]!=__("Correo Electronico *", 'carservice') && preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"]) && $_POST["phone"]!="" && $_POST["phone"]!=__("Número de Celular", 'carservice') && is_numeric($_POST['phone']) && $_POST["address"]!="" && $_POST["address"]!=__("Dirección *", 'carservice')) 
    { 
     $values = array(
      "name" => $_POST["name"], 
      "phone" => $_POST["phone"], 
      "email" => $_POST["email"], 
      "address" => $_POST["address"], 
      "message" => ($_POST["message"]!=__("Mensaje", 'carservice') ? $_POST["message"] : "") 
     ); 
     if((bool)ini_get("magic_quotes_gpc")) 
      $values = array_map("stripslashes", $values); 
     $values = array_map("htmlspecialchars", $values); 

     $headers[] = 'From: ' . $values["name"] . ' <' . $values["email"] . '>' . "\r\n"; 
     $headers[] = 'Content-type: text/html'; 
     $subject = str_replace("[name]", $values["name"], $subject); 
     $subject = str_replace("[email]", $values["email"], $subject); 
     $subject = str_replace("[phone]", $values["phone"], $subject); 
     $subject = str_replace("[address]", $values["address"], $subject); 
     $subject = str_replace("[message]", $values["message"], $subject); 
     $body = $theme_options["cf_template"]; 
     $body = str_replace("[name]", $values["name"], $body); 
     $body = str_replace("[email]", $values["email"], $body); 
     $body = str_replace("[phone]", $values["phone"], $body); 
     $body = str_replace("[address]", $values["address"], $body); 
     $body = str_replace("[message]", $values["message"], $body); 
     $body = str_replace("[form_data]", "", $body); 

     if(wp_mail($theme_options["cf_admin_name"] . ' <' . $theme_options["cf_admin_email"] . '>', $subject, $body, $headers)) 
      $result["submit_message"] = __("Gracias por preferirnos. :)", 'carservice'); 
     else 
     { 
      $result["isOk"] = false; 
      $result["error_message"] = $GLOBALS['phpmailer']->ErrorInfo; 
      $result["submit_message"] = __("Lo siento, no podemos enviar el mensaje por el momento. :()", 'carservice'); 
     } 
    } 
    else 
    { 
     $result["isOk"] = false; 
     if($_POST["name"]=="" || $_POST["name"]==__("Nombre Completo *", 'carservice')) 
      $result["error_name"] = __("Por favor ingrese su nombre completo.", 'carservice'); 
     if($_POST["email"]=="" || $_POST["email"]==__("Correo Electronico *", 'carservice') || !preg_match("#^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4})$#", $_POST["email"])) 
      $result["error_email"] = __("Por favor ingresa un correo electronico válido.", 'carservice'); 
     if($_POST["phone"]=="" || $_POST["phone"]==__("Número de Celular *", 'carservice') || !is_numeric($_POST['phone'])) 
      $result["error_phone"] = __("Por favor ingresa un número de celular válido.", 'carservice'); 
     if($_POST["address"]=="" || $_POST["address"]==__("Dirección *", 'carservice')) 
      $result["error_address"] = __("Por favor tu dirección.", 'carservice'); 
    } 
    $system_message = ob_get_clean(); 
    $result["system_message"] = $system_message; 
    echo @json_encode($result); 
    exit(); 
} 
add_action("wp_ajax_theme_contact_form", "cs_theme_contact_form"); 
add_action("wp_ajax_nopriv_theme_contact_form", "cs_theme_contact_form"); 
?> 
+0

Затем я заменяю код, который вы мне дали, также поместил функцию внутри functions.php, но в тесте, когда я пишу, например, 12312312a не появится сообщение об ошибке («напишите допустимый номер»), и когда я передаю указатель мыши на коробке телефона, указатель загружается. Я не знаю, где поставить «validatePhone ($ _ POST ['phone'])». вы можете протестировать контактную форму здесь: [контактная форма] (http://aerocarwash.com/cita/) спасибо –

+0

@March_one проверить правильность ответа, я внесла изменения в вашу копию кода и попытаюсь это сделать :) –

+0

спасибо для ответа. страница по-прежнему имеет одинаковую ошибку (не появляется сообщение об ошибке («напишите допустимый номер»)).когда я оставил пустым, все поля отображаются только в виде сообщения и имени, а не по телефону и адресу. heres a! [pic] (http://i1236.photobucket.com/albums/ff447/maxentiusII/Aero%20Car%20Wash%20and%20Detailing/error.png). Также, когда я отправляю нормальное сообщение, я просто получаю обычные функции (имя, адрес электронной почты, телефон и сообщение) здесь! [Pic] (http://i1236.photobucket.com/albums/ff447/maxentiusII/Aero%20Car%20Wash % 20and% 20Detailing/error3.png). благодаря –

Смежные вопросы