我有一个wordpress网站,我在其中创建了一个自定义HTML注册表单。我在函数文件中使用PHP,在我的WP用户表中创建用户,并使用表单中的信息向我们发送电子邮件。一切都很好,但我们想要一种新的方式来显示客户是否采用了用户名。我有它目前正在运行,我们正在使用存在的用户名testUser进行测试。如果我们尝试注册并点击提交,它会进入一个索引页面,表明它已经存在,然后将客户重定向回表单以修复它我们希望有一个选项,让客户在提交之前就知道这一点,但我是AJAX电话的新手,我遇到了麻烦。我希望还有另一种方式。这是当前的工作片段代码:
.
答案 0 :(得分:1)
要向用户显示已经使用或可用的用户名,您需要使用用户正在键入的所需用户名进行ajax调用..执行此操作的步骤将类似于
将此代码放在主题的functions.php
add_action( 'wp_ajax_verify_username', 'check_username' );
add_action( 'wp_ajax_nopriv_verify_username', 'check_username' );
function check_username(){
$username = $_POST['username'];
if( username_exists( $username ) ) {
echo $username . ' already taken.';
}else {
echo 'Hurray ' . $username . ' is available.';
}
exit;
}
add_action('wp_ajax_verify_username', 'check_username')
将添加一个钩子,用于检查是否将action
参数设置为verify_username
进行ajax调用,如果是,则由函数{处理{我们在check_username
中写下了{1}}。
functions.php
函数检查使用ajax调用发送的check_username
变量的值,并使用WP函数username
检查用户名是否已存在,然后为ajax调用打印相应的响应。 / p>
可以使用以下代码进行ajax调用:
username_exists()
将jQuery(document).ready(function(){
jQuery('#username').on('change', function(){
let user = jQuery(this).val();
jQuery.ajax({
type: 'POST',
url: '<WP_AJAX_URL_HERE>',
data: {action: 'verify_username', username: user},
success: function(data){
console.log(data);
// Write code to show the message to user here
},
error: function(err){
console.log(err);
}
});
});
});
替换为您的网站admin-ajax.php网址
希望有所帮助。如果您需要更多解释,请告诉我。 :)