Wordpress - 用户注册前验证数据的挂钩

时间:2014-08-26 16:17:13

标签: wordpress-plugin wordpress

我想知道是否有一个wordpress钩子来检查自定义输入字段。当我添加新用户时以及更新现有用户时。

如果任何字段无效,我不希望创建用户。

if(!is_numeric($ _ POST ['phone_number']))$ errors-> add('ERROR 0001','Invalid Cellphone Number!');

如果存在,它与Wordpress Multisite兼容吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

在wordpress中添加用户已经进行了验证,但仍然没有对名字和姓氏以及网站进行验证 这可以通过以下方式实现 试试这个验证, make plugin和添加jquery和style将仅在管理部分运行

现在在脚本文件中

<script>
    jquery(document).ready(function(){
var firstname=/^([a-zA-Z]{3,16})$/;
var lastname=/^([a-zA-Z]{3,16})$/;
var website=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

        $('.fname').on('keypress keydown keyup',function(){

            if (!$(this).val().match(firstname)) {
                $('.fname').removeClass('hidden');
             $('.fname').addClass('warn');


            }
            else{
                   $('.fname').removeClass('warn');
                $('.fname').addClass('hidden');
            }
            $('.fname').show();
        });
        $('.lname').on('keypress keydown keyup',function(){

            if (!$(this).val().match(lastname)) {
                $('.lname').removeClass('hidden');
             $('.lname').addClass('warn');


            }
            else{
                   $('.lname').removeClass('warn');
                $('.lname').addClass('hidden');
            }
            $('.lname').show();
        });
         $('.eemail').on('keypress keydown keyup',function(){

            if (!$(this).val().match(website)) {
                $('.eemail').removeClass('hidden');
             $('.eemail').addClass('warn');


            }
            else{
                   $('.eemail').removeClass('warn');
                $('.eemail').addClass('hidden');
            }
            $('.eemail').show();

            });

          $('.btn-1').click(function(){
          if ( !$('.fname').hasClass('hidden') ||  !$('.eemail').hasClass('hidden') ||  !$('.lname').hasClass('hidden')) {
           alert("Please check if any field is invalid!!");
          }
          });

}); 
</script>

in css file
<style type="text/css">
.warn {
    color: red;
    font-weight: bold;
    border: 2px solid red;
    background-color: #fcc; 
}
.hidden {
   visibility:hidden;
}
.validationError {
            border: solid 2px red;
        }
        .validationValid {
            border:  solid 2px green;
        }
    </style>

答案 1 :(得分:0)

目前,我正在为大型自定义项目开发自定义注册,登录,网络范围的用户配置文件(单博客和共享)等。在这个过程中,我有许多不眠之夜搞清楚这样的事情。最后,我最终得到了自定义服务器端验证,该验证是通过ajax调用从前端触发的。因此,验证在您键入时在前端工作,但即使用户禁用了javascript,他也会获得普通的提交和服务器端验证(这很容易)。

检查GET / POST提交数据的最佳钩子是init - 它始终运行,它会提前运行(在任何标头或输出发送之前)。对于更具体的任务,您可能需要其他挂钩,例如稍后运行 - plugins_loadedregistration_errors

在此处查看更多内容 - http://code.tutsplus.com/articles/wordpress-initialization-hooks-benefits-and-common-mistakes--wp-34427

在这里: https://wordpress.stackexchange.com/questions/117440/how-to-hook-into-user-registration-process-before-user-registers