Wordpress / PHP - 显示用户所选用户名的选项

时间:2017-03-23 14:35:56

标签: php sql wordpress forms validation

我有一个wordpress网站,我在其中创建了一个自定义HTML注册表单。我在函数文件中使用PHP,在我的WP用户表中创建用户,并使用表单中的信息向我们发送电子邮件。一切都很好,但我们想要一种新的方式来显示客户是否采用了用户名。我有它目前正在运行,我们正在使用存在的用户名testUser进行测试。如果我们尝试注册并点击提交,它会进入一个索引页面,表明它已经存在,然后将客户重定向回表单以修复它我们希望有一个选项,让客户在提交之前就知道这一点,但我是AJAX电话的新手,我遇到了麻烦。我希望还有另一种方式。这是当前的工作片段代码:

.

1 个答案:

答案 0 :(得分:1)

要向用户显示已经使用或可用的用户名,您需要使用用户正在键入的所需用户名进行ajax调用..执行此操作的步骤将类似于

  1. 检测用于在注册表单中输入用户名的文字字段是否有变化。
  2. 发送ajax请求以检查输入的用户名是否可用。
  3. 检查ajax电话的响应。
  4. 如果用户名可用,则向用户显示消息。
  5. 将此代码放在主题的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网址

    希望有所帮助。如果您需要更多解释,请告诉我。 :)