Intereting Posts
Добавление популярных сообщений по категориям в одном сообщении? Как передать параметр url в поисковом запросе Как получить это только маленькими буквами (в нижнем регистре)? Ограничение разрешенных элементов html / удаление вредоносных сценариев из редактора Как получить доступ к фактическому входному html формы входа Альтернатива встроенным функциям меню WordPress Как мне сортировать почтовый листинг по количеству сообщений в деньгах? Как заставить архив моей категории вести себя как страница Почему автор смог изменить настройки генералов get_user_meta возвращает старые данные Удалить ссылку с помощью текстового редактора содержимого Как я могу получить несколько значений get_post_meta эффективно? Загружать jquery только для определенных страниц в бэкэнд Преобразование даты в формат даты ISO8601 Создание плагина, уникального для того, чтобы не противоречить плагинам с тем же именем

автоматический вход после регистрации для плагина wp-members

Я попытался сделать автоматический вход в WordPress после регистрации с паролем при использовании WP-членов плагина.

У меня нет блога, поэтому я решил написать его здесь, так что это может быть полезно для кого-то. Я не очень хорошо разбираюсь в плагинах wordpress. И мне понадобилось время, чтобы найти его.

Конечно, это работает, если вы добавили настраиваемое поле (option_name = password) в настройках плагина.

В файле wp-members.register.php в функции * wpmem_registration ($ toggle) * Я заменил эту строку:

return "success"; exit(); 

с этим кодом из функции * wpmem_login () * в файле wp-members-core.php :

  /** assemble login credentials */ $creds = array(); $creds['user_login'] = $username; $creds['user_password'] = $password; $creds['remember'] = true; /** wp_signon the user and get the $user object */ $user = wp_signon( $creds, false ); /** if no error, user is a valid signon. continue */ if( ! is_wp_error( $user ) ) { /** set the auth cookie */ wp_set_auth_cookie( $user->ID, true ); /** determine where to put the user after login */ $redirect_to = $_SERVER['PHP_SELF']; if( isset( $_POST['redirect_to'] ) ) { $redirect_to = $_POST['redirect_to']; } /** apply wpmem_login_redirect filter */ $redirect_to = apply_filters( 'wpmem_login_redirect', $redirect_to ); /** and do the redirect */ wp_redirect( $redirect_to ); /** wp_redirect requires us to exit() */ exit(); } else { return "loginfailed"; } 

Это безопасно? Может ли это быть сделано лучше?

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

 add_action( 'wpmem_register_redirect', 'my_reg_redirect' ); function my_reg_redirect() { // NOTE: this is an action hook that uses wp_redirect // wp_redirect must end with exit(); wp_redirect( 'http://example.com/my-page/' ); exit(); } 

Также, взятый из этой ссылки ,

Предположим, что вы не хотите, чтобы пользователи имели мгновенный доступ к сайту после успешной регистрации , но, скорее, вы хотите вручную проверить, что у вас есть законный пользователь. В этих типах случаях WP-Members ™ позволяет вам умеренно регистрировать регистрацию, требуя, чтобы пользователь был «активирован» администратором до доступа.

По-видимому, это вариант в самом плагине для умеренных или не умеренных регистраций, последний из них автоматически зарегистрирует пользователя при успешной регистрации, а первый, если он включен, потребует, чтобы пользователь активировал свою учетную запись через e -mail или что администратор одобряет их учетную запись.