无需重新加载页面即可在WordPress中显示注册错误

时间:2014-05-17 20:06:20

标签: javascript php jquery wordpress

我的目标是在没有页面重新加载的情况下在WordPress中显示注册错误。我目前正在将自定义函数挂钩到registration_errors。我的自定义函数检查注册表单中的错误,并在发生错误时添加错误。例如:

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

    $errors->add( 'demo_error', __('<strong>ERROR</strong>: This is a demo error. Registration halted.','mydomain') );

    return $errors;

}

add_filter('registration_errors', 'myplugin_check_fields', 10, 3);

重新加载注册页面后,我的自定义功能添加的错误会显示在屏幕上。如何在没有页面重新加载的情况下确保在屏幕上显示注册错误?

1 个答案:

答案 0 :(得分:0)

根据codex,您可以加入registration_errors

  

registration_errors过滤器挂钩用于创建自定义   用户注册验证规则。当表单发生时会触发   提交但在用户信息保存到数据库之前。

只要在表单数据中添加validate-only字段:

// this is just a general concept, not working code
function myplugin_check_fields( $errors, $sanitized_user_login, $user_email ) {
    // AJAX check
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        if isset($_POST['validate-only')) {
            echo json_encode ( $errors );
            wp_exit();
        }
    }
}

add_filter( 'registration_errors', 'myplugin_check_fields', 10, 3 );

虽然它不是那么好,因为我知道的唯一方法是停止wordpress继续输出错误形式&#34;是wp_exit(伪装成exit,只有在出现无法恢复的错误时才应

从长远来看,您可能最好先写一个自己的验证脚本来预发帖。