[英]Change user role when user registers on WordPress
我正在使用WPEverest 的用戶注冊插件來構建我的注冊表單。 我的表單有一個 select 選項供用戶選擇他們的用戶角色 - 申請人或提供者。 下面是 select 輸入。
<form method='post' class='register' data-form-id="57"
data-enable-strength-password="" data-minimum-password-strength="3" data-captcha-enabled="">
..
...
<select data-rules="" data-id="role" name="role" id="role" class="select ur-frontend-field " required="required" data-label="What is Your Role?" data-allow_clear="true" data-placeholder="">
<option value="Applicant" selected='selected'>Applicant</option>
<option value="Provider" >Provider</option>
</select>
...
...
</form>
這是我在functions.php中的鈎子,但不知何故它不會將用戶保存為角色提供者,而只是作為默認角色 - 申請人。
add_action('user_register', 'update_role');
function update_role($user_id, $meta=array() ) {
if ( isset( $_POST['role'] ) ) {
$userdata = array();
$userdata['ID'] = $user_id;
$role = htmlspecialchars($_POST['role'], ENT_QUOTES, 'UTF-8');
//Only allow if user role is those we recognize
if ( $role == 'Applicant' ) {
$userdata['role'] = 'applicant';
wp_update_user($userdata);
} else if ( $role == 'Provider') {
$userdata['role'] = 'provider';
wp_update_user($userdata);
}
}
}
我測試了$_POST['role']
也沒有返回任何內容。 任何人都知道如何解決這個問題?
我想到了。 我需要如下調用插件的鈎子,而不是user_register
。 它在wp-content\plugins\user-registration\includes\frontend\class-ur-frontend-form-handler.php
下觸發
do_action( 'user_registration_after_register_user_action', self::$valid_form_data, $form_id, $user_id );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.