1
내 등록 양식에서 국가 코드를 확인하고 싶습니다. 따라서 해당 기능을 만들고 사용자가 국가 코드를 작성할 수있는 필드를 만듭니다. 하지만 확인해 보면 항상 $javab = Null
을 반환하며 사용자는 오류로 인해 등록 할 수 없습니다!Wordpress-Validate 등록 필드
이유를 말해 줄 수 있습니까?
그리고이 문제를 해결하려면 어떻게해야합니까? 나는 기능을 전송하고 boolean
변수를 반환하여 내 필드를 확인
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
}
: 여기
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
섹션입니다.
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;
}