2ответ(ов) в теме
Здравствуйте. Вот сделал такую вещь для выбора роли при регистрации. К сожалению она не работает и не могу понять почему.
Привожу весь код целиком (тот что был кастомизирован)
function rcl_insert_user($data){ if ( get_user_by('email', $data['user_email']) ) return false; if ( get_user_by('login', $data['user_login']) ) return false; if ( get_user_by('role_u', $data['user_role']) ) return false; switch($data['user_role']){ case 'customer': $role_user = 'customer'; break; case 'expert': $role_user = 'expert'; break; default: $role_user = 'customer'; break; } $userdata = array_merge($data, array( 'user_nicename' => '' ,'nickname' => $data['user_email'] ,'first_name' => $data['display_name'] ,'rich_editing' => 'true' // false - выключить визуальный редактор для пользователя. ,'role' => $role_user )); $user_id = wp_insert_user( $userdata ); if(!$user_id || is_wp_error( $user_id ) ) { return false; } $timeAction = '0000-00-00 00:00:00'; if(rcl_get_option('confirm_register_recall')){ wp_update_user( array ('ID' => $user_id, 'role' => 'customer') ) ; }else{ $timeAction = current_time('mysql'); } global $wpdb; $wpdb->insert( RCL_PREF .'user_action', array( 'user' => $user_id, 'time_action' => $timeAction )); rcl_register_mail(array( 'user_id'=>$user_id, 'user_pass'=>$userdata['user_pass'], 'user_login'=>$userdata['user_login'], 'user_email'=>$userdata['user_email'], 'user_role'=>$userdata['user_role'], )); wp_send_new_user_notifications( $user_id, 'admin' ); do_action('rcl_insert_user', $user_id, $userdata); return $user_id; }
Вот сами изменения
if ( get_user_by('role_u', $data['user_role']) ) return false; switch($data['user_role']){ case 'customer': $role_user = 'customer'; break; case 'expert': $role_user = 'expert'; break; default: $role_user = 'customer'; break; }
И дальше привожу саму форму регистрации
<?php $user_role = (isset($_REQUEST['user_role']))? $_REQUEST['user_role']: ''; ?> <form action="<?php rcl_form_action('register'); ?>" method="post" enctype="multipart/form-data"> <div class="form-block-rcl default-field"> <input required type="text" placeholder="<?php _e('Login','wp-recall'); ?>" value="<?php echo $user_login; ?>" name="user_login" id="login-user"> <i class="fa fa-user"></i> <span class="required">*</span> </div> <div class="form-block-rcl default-field"> <input required type="email" placeholder="<?php _e('E-mail','wp-recall'); ?>" value="<?php echo $user_email; ?>" name="user_email" id="email-user"> <i class="fa fa-at"></i> <span class="required">*</span> </div> <div class="form-block-rcl default-field"> <select name="user_role" id="role-user"> <option value="customer">Заказчик</option> <option value="expert">Эксперт</option> </select> <span class="required">*</span> </div> <div class="form-block-rcl form_extend"> <?php do_action( 'register_form' ); ?> </div> <div class="form-block-rcl"> <input type="submit" class="recall-button" name="submit-register" value="<?php _e('Signup','wp-recall'); // Зарегистрироваться ?>"> <?php echo wp_nonce_field('register-key-rcl','_wpnonce',true,false); ?> <input type="hidden" name="redirect_to" value="<?php rcl_referer_url('register'); ?>"> </div> </form>
Тема закрыта. Публикация новых сообщений запрещена.