wocommerce에 등록하고 로그인 페이지로 리디렉션할 때 자동 로그인을 방지하시겠습니까?
저는 woo commerce word press로 웹사이트를 설계하고 있습니다. 이 솔루션을 참조하여 로그인 및 등록 페이지를 분리했습니다.
로그인하지 않고 성공적으로 등록한 후 등록 페이지를 로그인 페이지로 리디렉션하려면 어떻게 해야 합니까?사용자는 이메일로 전송된 사용자 이름과 암호로 로그인해야 합니다.
로그인 페이지는
www.example.com/my-account/
그리고 등록페이지는
www.example.com/my-account/ ?action=register
많은 검색 끝에 해결책을 찾았습니다.
2단계: 테마 함수 파일에 이 코드를 추가합니다.
/* Stop auto login */
function user_autologout(){
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$approved_status = get_user_meta($user_id, 'wp-approve-user', true);
//if the user hasn't been approved yet by WP Approve User plugin, destroy the cookie to kill the session and log them out
if ( $approved_status == 1 ){
return $redirect_url;
}
else{
wp_logout();
return get_permalink(woocommerce_get_page_id('myaccount')) . "?approved=false";
}
}
}
add_action('woocommerce_registration_redirect', 'user_autologout', 2);
function registration_message(){
$not_approved_message = '<p class="registration">Send in your registration application today!<br /> NOTE: Your account will be held for moderation and you will be unable to login until it is approved.</p>';
if( isset($_REQUEST['approved']) ){
$approved = $_REQUEST['approved'];
if ($approved == 'false') echo '<p class="registration successful">Registration successful! You will be notified upon approval of your account.</p>';
else echo $not_approved_message;
}
else echo $not_approved_message;
}
add_action('woocommerce_before_customer_login_form', 'registration_message', 2);
아래 코드 라인은 다음 위치에 있습니다.woocommerce/includes/class-wc-form-handler.php
905호선.
wp_redirect( apply_filters( 'woocommerce_registration_redirect', $redirect ) );
@user3518270에서 제시한 답변을 수정합니다.
아래 라인은 wocommerce에서 사용하는 필터이므로 작동하지 않습니다. 따라서 add_action() 대신 add_filter()를 사용해야 합니다.
add_action('woocommerce_registration_redirect', 'user_autologout', 2);
/* Stop auto login */
function user_autologout(){
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$approved_status = get_user_meta($user_id, 'wp-approve-user', true);
//if the user hasn't been approved yet by WP Approve User plugin, destroy the cookie to kill the session and log them out
if ( $approved_status == 1 ){
return $redirect_url;
}
else{
wp_logout();
return get_permalink(woocommerce_get_page_id('myaccount')) . "?approved=false";
}
}
}
add_filter('woocommerce_registration_redirect', 'user_autologout', 2);
function registration_message(){
$not_approved_message = '<p class="registration">Send in your registration application today!<br /> NOTE: Your account will be held for moderation and you will be unable to login until it is approved.</p>';
if( isset($_REQUEST['approved']) ){
$approved = $_REQUEST['approved'];
if ($approved == 'false') echo '<p class="registration successful">Registration successful! You will be notified upon approval of your account.</p>';
else echo $not_approved_message;
}
else echo $not_approved_message;
}
add_action('woocommerce_before_customer_login_form', 'registration_message', 2);
사용할 수 있습니다.woocommerce
필터를 사용하여 인증을 방지합니다.
이 토막글을 함수에 추가합니다.하위 테마의 php 파일:
add_filter( 'woocommerce_registration_auth_new_customer', '__return_false' );
쿠키를 이용해서 할 수도 있고,
기능.기능
setcookie('afterRegister', null, -1, '/');
function user_autologout(){
if ( is_user_logged_in() ) {
wp_logout();
setcookie("afterRegister", "afterRegister", time() + (86400 * 30), "/");
return get_permalink(woocommerce_get_page_id('myaccount'));
}
}
add_filter('woocommerce_registration_redirect', 'user_autologout', 2);
페이지 마이 어카운트php
<?php if(isset($_COOKIE["afterRegister"]) && !empty($_COOKIE["afterRegister"]) ) {?>
<div class="woocommerce-message" role="alert">
Your account has been created successfully, Please login using the auto generated password we've sent on your email address</div>
<?php }
언급URL : https://stackoverflow.com/questions/24379214/prevent-automatic-login-when-register-in-woocommerce-and-redirect-to-login-page
'programing' 카테고리의 다른 글
malloc()는 brk() 또는 mmap()을 사용합니까? (0) | 2023.09.14 |
---|---|
문자열 변수에 추가 (0) | 2023.09.14 |
핀터레스트 '핀잇' 워드프레스 블로그 텍스트 전용 숏코드 링크 (0) | 2023.09.14 |
컴파일 시간 동안 공유 라이브러리가 필요한 이유는 무엇입니까? (0) | 2023.09.14 |
"필수" jQuery 플러그인은 무엇입니까? (0) | 2023.09.14 |