WordPress에 등록한 후 코어 php로 자동 로그인하는 방법
WordPress 사이트에 등록한 지 얼마 안 된 사용자를 자동으로 로그인시키고 원하는 URL로 리디렉션하려고 며칠째 노력하고 있습니다.
기본적으로 WordPress는 사용자 이름과 비밀번호를 전송하며 사용자는 수동으로 로그인해야 합니다.이건 완전 고통이야.이걸 어떻게 극복하지?
사용자를 DB에 성공적으로 추가하는 나만의 등록 페이지(core php 페이지)가 있습니다.하지만 요점은 사용자가 다시 로그인하는 것을 피해야 한다는 것입니다.
등록이 완료되면 자동으로 등록됩니다.redirects
홈 페이지 또는 프로파일 페이지로 이동합니다.
저는 워드프레스 기능을 처음 접하는 사람입니다.적어도 (워드프레스의 핵심 기능에 대한 지식이 있는) 누군가가 방법/솔루션이라도 제안해 주시면 감사하겠습니다.
기대하는.
감사해요.
// 애드온 기능.php는 등록 후 홈페이지로 리다이렉트 후 자동 로그인하기 위해 사용됩니다.이 코드를 검증했다.
function auto_login_new_user( $user_id ) {
wp_set_current_user($user_id);
wp_set_auth_cookie($user_id);
$user = get_user_by( 'id', $user_id );
do_action( 'wp_login', $user->user_login );//`[Codex Ref.][1]
wp_redirect( home_url() ); // You can change home_url() to the specific URL,such as "wp_redirect( 'http://www.wpcoke.com' )";
exit;
}
add_action( 'user_register', 'auto_login_new_user' );
다음은 WooCommerce가 새 사용자를 생성하고 로그인하는 방법에 따라 달라집니다.
$user_pass = esc_attr( $_POST['account_password'] );
$new_user_data = array(
'user_login' => $_POST['account_username'],
'user_pass' => $user_pass,
'user_email' => $_POST['account_email'],
'role' => 'subscriber'
);
$user_id = wp_insert_user( $new_user_data );
// Set the global user object
$current_user = get_user_by( 'id', $user_id );
// set the WP login cookie
$secure_cookie = is_ssl() ? true : false;
wp_set_auth_cookie( $user_id, true, $secure_cookie );
예를 들어 용도를 수정합니다.
wp_safe_redirect( home_url( '/' ) );
exit;
코어 파일을 터치하는 대신...이거 써도 돼
$secure_cookie = is_ssl();
$secure_cookie = apply_filters('secure_signon_cookie', $secure_cookie, array());
global $auth_secure_cookie;
$auth_secure_cookie = $secure_cookie;
wp_set_auth_cookie($user_id, true, $secure_cookie);
$user_info = get_userdata($user_id);
do_action('wp_login', $user_info->user_login, $user_info);
함수wp_create_user
는 쿠키 작성 및 사용자 로그인에 사용할 수 있는 방금 작성한user_id를 반환합니다.필요에 따라서, 로그인한 유저를 프로파일 또는 홈 페이지로 리다이렉트 할 수 있습니다.
응원해 주셔서 감사합니다.나는 다음 코드로 혼자 했다.시간 내주셔서 감사합니다.지원해 주셔서 감사합니다.
<i>$getdetails= mysql_fetch_array(mysql_query("SELECT * FROM `wp_users` WHERE `ID`='$user_id'"));
$username=$getdetails['user_login'];
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ){
echo $user->get_error_message();
}else{
wp_redirect( home_url() );
}
언급URL : https://stackoverflow.com/questions/19949876/how-to-auto-login-after-registration-in-wordpress-with-core-php
'programing' 카테고리의 다른 글
Flask RESTful 교차 도메인 문제 Angular: PUT, OPTIONS 메서드 (0) | 2023.04.02 |
---|---|
Python에서 다소 잘못된 JSON을 해석하는 방법은 무엇입니까? (0) | 2023.04.02 |
오류 처리 방법 fetch()의 비동기/대기 (0) | 2023.04.02 |
Visual Composer에서 AJAX 콘텐츠 로드 사용 안 함 (0) | 2023.04.02 |
material-ui 날짜 선택기를 사용할 수 없습니다. (0) | 2023.04.02 |