Intereting Posts
Пользовательские таблицы wpdb без плагина Как написать тег «alt» в изображении для кода WordPress? Как «Global Ignore» / «Hell Ban» кого-то, ограничивать доступность только для автора? Страница архива таксономии расширяется с детскими страницами Получение wp_footer () для работы без wp_head () child_of не работает в wp_dropdown_categories Bootstrap и Custom CSS в пользовательском плагине заменяются темой Загрузка загружаемой папки, структура библиотеки db-библиотеки menu_class появляется на DIV вместо UL Вытягивание в связанных сообщениях на основе массива Post Type Сотрудничайте на локальном сайте WordPress, обменивайтесь файлами через Dropbox? Отправить электронное письмо с активацией пользователя при программном создании пользователя Как изменить <html lang = "bg-BG", но только для одной страницы Как выводить только содержимое сообщения Домен Multisite non www дает ошибку регистрации, но должен быть перенаправлен на www.domain.com

отдельная регистрация wordpress для разных ролей

Когда пользователь нажимает ссылку для регистрации, он должен назначать им другую роль, а не роль по умолчанию. Я пробовал эту ссылку, но она, похоже, не работает. Я поместил его в functions.php.

Отдельная регистрация и логин для разных ролей

Мне не нужен плагин только для PHP-кода.

Например, если пользователь нажмет на эту ссылку, он должен автоматически предоставить им роль продавца http://example.com/wp-login.php?action=register&role=seller Если пользователь нажмет на эту ссылку http://example.com /wp-login.php?action=register, он должен дать им роль по умолчанию.

благодаря

Хорошо, сначала вы примените hook-файл register_form к стандартной регистрационной форме WP, поэтому имейте это в виду, если вы этого не используете.

Во-вторых, add_action вызывает неизвестную функцию. Поэтому, скорее всего, именно поэтому он не работает.

Итак, вот исправленный код. С дополнительной проверкой с сообщениями об ошибках.

 //create a hidden field for role add_action('register_form','wpse_add_hidden_role_field'); function wpse_add_hidden_role_field(){ if ( isset( $_GET[ 'role' ] ) ){ echo '<input id="user_role" type="hidden" tabindex="20" size="25" value="' . $_GET[ 'role' ] . '" name="role"/>'; } } //validate we have permitted roles if not, don't allow subscription add_filter( 'registration_errors', 'wpse_role_check' ); function wpse_role_check( $errors ){ if( isset( $_POST[ 'role' ] ) ) { //only allow registration if roles are in this array. $permitted_roles = array( 'buyer', 'seller', ); if( ! in_array( $_POST[ 'role' ], $permitted_roles ) ){ $errors->add( 'role_not_allowed', __( '<strong>ERROR</strong>: This registration is not allowed.', 'my_textdomain' ) ); } } // Else disallow public registration (ie no role query string found ) // If you don't take this into account, anyone can register as subscribers else { $errors->add( 'public_not_allowed', __( '<strong>ERROR</strong>: Public registration is not allowed.', 'my_textdomain' ) ); } return $errors; } //update user profile that have passed registration validation add_action('user_register', 'wpse_update_role'); function wpse_update_role( $user_id ) { if ( isset( $_POST[ 'role' ] ) ){ $userdata = array(); $userdata[ 'ID' ] = $user_id; $userdata[ 'role' ] = $_POST[ 'role' ]; wp_update_user( $userdata ); } }