我需要知道是否有办法删除register
WordPress登录页面上的按钮以及registration form
... 不影响核心文件。。。这样我就不会让“任何人”(或垃圾邮件发送者)来设置帐户!
但是,我仍然需要user registration
功能正常工作。
我有一个“私人”照片上传器,锁定任何没有该网站帐户的人。。。但是,新用户注册的唯一方法(我希望的唯一方法是)是向自定义用户提供登录信息,以解锁注册表。因此,仅将用户限制为“邀请”。
NOTE: 我已经在使用一个插件了,所以我不能只使用另一个插件,因为这是一种不好的做法。这一定是我可以放在函数中的东西。php文件或类似文件。
<小时>
UPDATE:
根据@Stephen Harris给出的答案,我已经考虑使用
wp_create_user
作用然而,我对如何将其添加到现有的“定制”注册表中感到有点困惑(这将与默认值完全分离
register
表格)。
这是我当前的表单代码:
<!-- Registration form -->
<h1 class="register-header">Register a new user</h1>
<?php $register = $_GET[\'register\'];
if($register == true) {
echo \'<p class="register-success">Check your email for the password! Logout and use your new username & password.</p>\';
}?>
<a class="logout" href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>
<form method="post" id="register_form" class="wp-user-form" action="echo site_url(\'wp-login.php?action=register\', \'login_post\') ?>">
<!-- Username -->
<p>
<input type="text" name="user_login" id="user_login" class="input" placeholder="unique username" />
</p>
<!-- Email to send p/w to -->
<p>
<input type="email" name="user_email" id="user_email" class="input" placeholder="email address" />
</p>
<p class="small-text">You will receive an email with a generated password<br />(which you can change in your "user settings")</p>
<?php do_action(\'register_form\'); ?>
<button name="wp-submit" id="wp-submit" class="btn">Register new user</button>
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER[\'REQUEST_URI\']; ?>?register=true" />
<input type="hidden" name="user-cookie" value="1" />
</form><!-- end registration-form -->
当打开“任何人都可以注册”时,这一切都会起作用。。。但是,当我把它“关掉”时,我该如何让它工作呢?
最合适的回答,由SO网友:Stephen Harris 整理而成
在“设置”>“常规”下有一个“成员资格”设置。通过禁用“任何人都可以注册”,将有效删除面向公众的注册页面以及“注册”按钮。
然而,API仍然可用(例如。wp_create_user()
.)
顺便提一下,你提到
注意:我已经在使用一个插件了,所以我不能只使用另一个插件,因为这是一种不好的做法
如果您的意思是,您正在创建一个用于分发的插件,并且不需要第三方依赖,那么这是可以理解的。但总的来说,使用多个插件来实现期望的结果并没有错。
SO网友:Designer 17
在做了大量的研究和大量的阅读(和重读)之后,我终于能够弄清楚如何wp_create_user
去工作吧!
下面您将看到我用来实现此目的的代码:
<!-- Registration form -->
<h1 class="register-header">Register a new user</h1>
<?php $register = $_GET[\'register\'];
if($register == true) {
echo \'<p class="register-success">Check your email for the password! Logout and use your new username & password.</p>\';
}?>
<a class="logout" href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>
<form method="post" id="register_form" class="wp-user-form" action="<?php echo $_SERVER[\'REQUEST_URI\'] ?>">
<!-- Username -->
<p>
<input type="text" name="user_login" id="user_login" class="input" placeholder="unique username" />
</p>
<!-- Email to send p/w to -->
<p>
<input type="email" name="user_email" id="user_email" class="input" placeholder="email address" />
</p>
<p class="small-text">You will receive an email with a generated password<br />(which you can change in your "user settings")</p>
<button name="wp-submit" id="wp-submit" class="btn">Register new user</button>
</form>
<?php
$username = $_POST[\'user_login\'];
$email = $_POST[\'user_email\'];
if (( $username != \'\' ) && ( $email != \'\' )){
$user_id = username_exists( $username );
$user_email = email_exists( $email );
if (( !$user_id ) && ( !$user_email )) {
// Generate the password and create the user
$password = wp_generate_password( 12, false );
$user_id = wp_create_user( $username, $password, $email );
// Update user
wp_update_user( array( \'ID\' => $user_id ));
// Set user role
$user = new WP_User( $user_id );
$user->set_role( \'subscriber\' );
// Email user their password
wp_mail( $email, \'Your new password!\', \'Here\\\'s your new password: \' . $password );
} else {
$password = __( \'User already exists.\' );
}
}?>
<!-- end registration-form -->
这处理创建一个新用户太棒了!但我必须处理错误。
如果有人对我的做法有任何建议或更正,请让我知道。。。我仍在思考这些东西是如何工作的