添加注册所需的唯一代码

时间:2013-09-02 作者:OneEightLeft

我在我的主页上有一个自定义注册表,我想添加一个字段,其中必须输入一个代码以允许人们注册。这样只有我给代码的人才能注册。

我相信这就像加上1+2=?对表单进行验证,但我甚至找不到任何相关信息。

如果有人有任何想法,请告诉我。谢谢

<form action="<?php echo site_url(\'wp-login.php?action=register\', \'login_post\') ?>" method="post"> 

            <input type="text" name="user_login" id="user_login" class="input"  onfocus="if(this.value == \'Username\'){this.value = \'\';}" type="text" onblur="if(this.value == \'\'){this.value=\'Username\';}" value="Username" />


            <input type="text" name="user_email" id="user_email" class="input"  onfocus="if(this.value == \'Email Address\'){this.value = \'\';}" type="text" onblur="if(this.value == \'\'){this.value=\'Email Address\';}" value="Email Address" />

                <?php do_action(\'register_form\'); ?>  
                <input type="submit" value="Register" id="register" />  

            <p class="statement">A password will be e-mailed to you.</p>  


            </form> 

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

在注册表上添加字段

<label for="secret_reg_code">Secret Code: </label>
<input type="text" name="secret_reg_code" id="secret_reg_code" value="" />
然后在插件文件或函数中。php添加

define(\'MY_SECRET_REG_CODE\', \'fdsfgadsfgdf\');

function check_for_reg_secret_code($errors, $sanitized_user_login, $user_email) {
  if (
    defined(\'MY_SECRET_REG_CODE\') &&
    trim($_POST[\'secret_reg_code\']) != MY_SECRET_REG_CODE
  ) {
    $errors->add(
      \'secret_code_error\',
      __(\'<strong>ERROR</strong>: Enter a valid code postal code.\', \'your_text_domain\')
    );
  }
  return $errors;
}
add_filter(\'registration_errors\', \'check_for_reg_secret_code\', 10, 3);
更“灵活”的方法是使用WP Settings Api 要创建一个选项“secret\\u reg\\u code”,用于存储密码,然后函数变为:

function check_for_reg_secret_code($errors, $sanitized_user_login, $user_email) {
  $code = get_option(\'secret_reg_code\');
  if ( $code && trim($_POST[\'secret_reg_code\']) != $code) {
    ...
这样就很容易定期更改代码。

有关更多详细信息,请参阅Codex for registration_errors filter hook

编辑以在标准注册表上添加字段,可以使用register_form 钩子:

function add_secret_code_registration_field() {
    ?>
    <p>
    <label for="secret_reg_code">Secret Code<br />
    <input type="text" name="secret_reg_code" id="secret_reg_code" class="input" value="" size="25" /></label>
    </p>
    <?php
}
add_action(\'register_form\',\'add_secret_code_registration_field\');

结束

相关推荐

Forms and WordPress Nonce

WordPress nonce快把我逼疯了!当我启动插件并删除它时,我遇到了这个问题,但现在我又回来了,仍然不知道该怎么办。我到处寻找解决办法。我的代码与其他示例相同/相似。我得到一个“未定义索引‘mrlpt\\u client\\u check’”错误。在基于用户功能检查权限时,我也会遇到与“mrlpt\\U客户端”相同的错误,但这是我创建的自定义帖子类型,所以我不确定为什么这也不起作用?这是nonce元素所在的代码。include只是在一个自定义元框中包含一个简短的表单,其中有两个输入字段,一个用于电