2016-09-28 3 views
1

Я хочу проверить национальный код в своей регистрационной форме, поэтому я создаю для него функцию и создаю поле для пользователя, чтобы написать свой национальный код. Но когда я проверяю его, он ВСЕГДА возвращает $javab = Null, и пользователь не может зарегистрироваться из-за ошибки!Wordpress-Подтвердить поля для регистрации

Можете ли вы сказать мне, почему?
И что делать, чтобы решить эту проблему?

function checkNationalCode($code = '') { 
    $code = (string) preg_replace('/[^0-9]/', '', $code); 
    if(strlen($code) > 10 or strlen($code) < 8) 
     return false; 

    if(strlen($code)==8) 
     $code = "00".$code; 

    if(strlen($code)==9) 
     $code = "0".$code; 

    $list_code = str_split($code); 
    $last = (int) $list_code[9]; 
    unset($list_code[9]); 
    $i = 10; 
    $sum = 0; 

    foreach($list_code as $key => $_) 
     $sum += intval($_) * $i--; 

    $mod = (int) $sum % 11; 

    if($mod >= 2) 
     $mod = 11 - $mod; 

    return true; 
} 

И вот мой add_action раздел Для создания формы:

add_action('register_form', 'myplugin_register_form'); 
function myplugin_register_form() { 

    $code_melli = (! empty($_POST['code_melli'])) ? trim($_POST['code_melli']) : ''; 
    $code = (! empty($_POST['code_melli'])) ? trim($_POST['code_melli']) : ''; 

     ?> 
     <p> 
      <label for="code_melli"><?php _e('کد ملی :', 'mydomain') ?><br /> 
       <input type="text" name="code_melli" id="code_melli" class="input" value="<?php echo esc_attr(wp_unslash($code_melli)); ?>" size="25" /></label> 
     </p> 
     <?php 
} 

проверить свои поля, отправив ему функционировать и возвращает boolean переменных.

function myplugin_check_fields($errors, $sanitized_user_login, $user_email) { 

    $javab = checkNationalCode($code); 

    if ($javab == 0) { 
     $errors->add('code_melli_error', __("<strong>خطا </strong>: کد ملی شما اشتباه میباشد! ", 'mydomain')); 
    } 
    return $errors; 
} 

ответ

0

Решенный! По Изменение

$javab = checkNationalCode($code);

To:

$javab = checkNationalCode($_POST['code_melli']);

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