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>
Тема закрыта. Публикация новых сообщений запрещена.