用于wordpress中不同类型用户的多个用户注册表单

时间:2014-02-09 05:10:16

标签: php wordpress wordpress-plugin

我们正在使用WordPress开发一个杂志网站。所以我必须生成不同类型的用户角色..用户,作者,编辑等。为了他们注册我想生成不同类型的用户注册表单。

如果有任何插件可以满足我的要求,请建议我。

先谢谢

2 个答案:

答案 0 :(得分:0)

使用Profile Builder插件中的Multiple Registration Forms模块可以轻松实现这一点。

它是基于短代码的,允许您为不同的用户角色设置具有不同配置文件字段的多个注册表单。

以下是有关如何set up multiple registration forms的分步教程。

要创建不同的用户角色,您可以使用免费的会员插件,例如Members。这两个推荐的插件已经过测试,可以很好地协同工作。

答案 1 :(得分:0)

我遇到过同样的问题,我有2个角色类型,它们具有不同的注册表单字段。.这就是我的实现方式,希望对您有所帮助:

首先创建2个注册WordPress页面,然后为每个页面创建2个不同的模板。

对于模板内容,请根据需要的示例为每个模板添加表单内容:

<form action="" method="post">

      <div class="form-group">
        <div class="input-group">
          <span class="input-group-addon"><i class="ti-user"></i></span>
          <input type="text" class="form-control" name="username" placeholder="User name" required>
        </div>
      </div>


      <div class="form-group">
        <div class="input-group">
          <span class="input-group-addon"><i class="ti-email"></i></span>
          <input type="text" name="email" class="form-control" placeholder="Your email address" required>
        </div>
      </div>


      <div class="form-group">
        <div class="input-group">
          <span class="input-group-addon"><i class="ti-unlock"></i></span>
          <input type="password" name="password"class="form-control" placeholder="Choose a password" required>
        </div>
      </div>

      <button class="btn btn-primary btn-block" type="submit" name="employeeregister">Sign up</button>

    </form>

类似地,我们可以创建其他模板,然后在function.php中添加以下代码:

<?php 
/** Validation Check*/

function registration_validation( $username, $password, $email)  {
global $reg_errors;
$reg_errors = new WP_Error;
if ( empty( $username ) || empty( $password ) || empty( $email ) ) {
    $reg_errors->add('field', 'Required form field is missing');
} else {
if ( 4 > strlen( $username ) ) {
$reg_errors->add( 'username_length', 'Username too short. At least 4 characters is required' );
}
if ( username_exists( $username ) ){
$reg_errors->add('user_name', 'Sorry, that username already exists!');
}
if ( 5 > strlen( $password ) ) {
    $reg_errors->add( 'password', 'Password length must be greater than 5' );
}
if ( !is_email( $email ) ) {
$reg_errors->add( 'email_invalid', 'Email is not valid' );
}
if ( email_exists( $email ) ) {
$reg_errors->add( 'email', 'Email Already in use' );
}
}}
/** Registration in WP*/
function registration($username, $password, $email, $roletype) {
    $userdata = array(
    'user_login'    =>   $username,
    'user_email'    =>   $email,
    'user_pass'     =>   $password,
    'role'          =>  $roletype,
    );
    $user = wp_insert_user( $userdata );
    echo 'Registration complete.';
}
?>

这里我们添加了两个功能,一个是验证提交的表单,另一个是在WordPress数据库中插入用户。

最后,我们将从模板页面调用上述函数并插入用户。

<?php if (isset($_POST['employeeregister'])) { 
    $getusername   =   sanitize_user( $_POST['username'] );
    $getpassword  =   esc_attr( $_POST['password'] );
    $getemail      =  $_POST['email'];
    $gettype = 'employee';

   registration_validation($getusername,$getpassword,$getemail);

   if( is_wp_error( $reg_errors ) && ! empty( $reg_errors->errors ) ) {?>
    <ul class="woocommerce-error" role="alert">
        <?php
        foreach ( $reg_errors->get_error_messages() as $error ) {
            echo '<li>';
            echo '<strong>ERROR</strong>: ';
            echo $error . '<br/>';
            echo '</li>';

        }?>
    </ul>
<?php } 
if ( 1 > count( $reg_errors->get_error_messages() ) ) {
registration($getusername,$getpassword,$getemail,$gettype);
}} ?>

现在只需按照创建的页面链接角色注册。

谢谢