我想在注册表中检查国家代码,所以我为它创建了一个函数,并为用户创建一个字段来编写他们的国家代码。
但当我检查时,它总是返回
$javab = Null
由于错误,用户无法注册!
你能告诉我为什么吗?
我应该怎么解决这个问题?
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;
}