programing

Woocommerce/Wordpress - 사용자 로그인을 홈페이지로 리디렉션

css3 2023. 10. 27. 22:05

Woocommerce/Wordpress - 사용자 로그인을 홈페이지로 리디렉션

저는 이에 대한 답을 찾았고, 플러그인을 사용했지만 여전히 아무 것도 작동하지 않습니다.제 사이트의 사용자가 로그인/등록한 후에 홈페이지로 리디렉션되기를 바랍니다.

현재 사용자가 로그인하고 내 계정 페이지로 리디렉션됩니다.

Woocommerce는 이 코드를 제공하지만, 저에게는 작동하지 않았습니다.

/*
 * goes in theme functions.php or a custom plugin
 *
 * By default login goes to my account
 **/
add_filter('woocommerce_login_widget_redirect', 'custom_login_redirect');

function custom_login_redirect( $redirect_to ) {
     $redirect_to = 'http://anypage.com';
}

저도 피터스 리다이렉트 플러그인을 사용해 보았지만 wocommerce가 wp-login을 우회하기 때문에 작동하지 않습니다.php.

생각은?

http://wordpress.org/extend/plugins/peters-login-redirect/ 을 다운로드하여 위젯 login에서 대체할 수 있습니다.

<input type="hidden" name="redirect_to" class="redirect_to" value="<?php echo $redirect_to; ?>

와 함께

<input type="hidden" name="redirect_to" class="redirect_to" value="<?php echo site_url('/wp-content/plugins/peters-login-redirect/wplogin_redirect_control.php/'); ?>" />

이렇게 하면 피터스 로그인 리디렉션을 사용하여 우커머스 로그인 위젯을 사용하여 글로벌 및 특정 사용자를 리디렉션할 수 있습니다.

"외부 리디렉션 파일 사용"을 변경해야 합니다.Gigya와 같은 플러그인을 사용할 경우 일반 WordPress 리디렉션 프로세스를 무시하고 하나의 고정 리디렉션 URL만 허용하는 "예"로 설정합니다.그런 다음 리디렉션 URL을 "YES"로 설정에서 %s"로 설정합니다.

도움이 되길 바랍니다.

함수에 이 코드를 사용합니다.php

add_filter('woocommerce_login_redirect', 'wc_login_redirect');
function wc_login_redirect( $redirect_to ) {
     $redirect_to = 'https://www.google.co.in/';
     return $redirect_to;
}

로그인 위젯을 사용하는 경우에만 이들이 제공하는 수정사항이 수정사항은(는) 로그인 위젯을 사용하는 경우에만 적용됩니다.홈 페이지에 로그인한 후 사용자를 리디렉션하는 데 필요한 작업은 로그인 양식에 추가하는 것입니다.

<input type="hidden" name="redirect" value="<?php echo get_home_url(); ?>" />

등록 후 리디렉션할 수 있는 필터가 최근에 추가되었습니다.로그인 시 리디렉션을 수행하는 것은 Tomanow가 위에서 언급한 것처럼 간단합니다(form-login.php에 입력).여기 등록 양식에 있는 필터 링크와 이를 처리하기 위한 몇 가지 지침이 있습니다.

https://github.com/woothemes/woocommerce/commit/014e31952828377bf7a1ebf4e812a43d0bcefa67#commitcomment-3351995

함수에 이 코드를 사용합니다.php

add_action('wp_logout','go_home');
function go_home(){
  wp_redirect( home_url() );
  exit();
}

작업:

관리 > 우커머스 > 설정 > 일반으로 이동

카트, 계산대 및 계정에서 "고객 계정" 찾기

"고객이 WordPress admin에 액세스하지 못하도록" 선택 취소

변경사항 저장 및 테스트!

사용자 역할에 따라 리디렉션을 설정할 수 있습니다.아래의 해당 리디렉션 코드를 보면 엔트리 레벨 사용자 또는 기술자 또는 프로그래머를 위한 WooCommerce Login 또는 Register Redirect 플러그인을 개발했습니다.

 //Redirect users to custom URL based on their role after login

function wp_woo_custom_redirect( $redirect, $user ) {

// Get the first of all the roles assigned to the user
$role = $user->roles[0];
$dashboard = admin_url();
$myaccount = get_permalink( wc_get_page_id( 'my-account' ) );

if( $role == 'administrator' ) {

    //Redirect administrators to the dashboard
    $admin_redirect = get_option('admin_redirect');
    $redirect = $admin_redirect;
} elseif ( $role == 'shop-manager' ) {

    //Redirect shop managers to the dashboard
    $shop_manager_redirect = get_option('shop_manager_redirect');
    $redirect = $shop_manager_redirect;
} elseif ( $role == 'customer' || $role == 'subscriber' ) {

    //Redirect customers and subscribers to the "My Account" page
    $customer_redirect = get_option('customer_redirect');
    $redirect = $customer_redirect;
} else {

    //Redirect any other role to the previous visited page or, if not available, to the home
    $redirect = wp_get_referer() ? wp_get_referer() : home_url();
}
return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wp_woo_custom_redirect', 10, 2 );

또한 wp-login을 사용하는 표준 WordPress 로그인 폼 로그인의 경우에도 이 내용을 포함합니다.php:

add_filter('login_redirect', 'custom_login_redirect');

저는 이 필터와 당신이 준 필터를 동일한 필터 기능에 사용하며, 사용자가 로그인할 수 있는 두 곳(WP와 WC)을 잡습니다.

또한 명백한 문제를 방금 알아차렸습니다.필터 기능에는 다음과 같은 것이 있습니다.

$redirect_to = 'http://anypage.com';

필요한 건 이거예요

return 'http://anypage.com';

$return_url은 이전 필터에서 전달되므로 검사 후 변경 여부를 결정할 수 있습니다.

편집:

사실 이 부분을 수정해야 합니다.wocommerce_login_widget_redirect 필터가 위젯 로그인 양식에서 리디렉션 매개 변수를 설정하는 데 사용되는 것 같습니다.즉, 사용자가 로그인하지 않은 상태에서 위젯 로그인 양식이 표시된 경우에만 실행됩니다.사용자가 로그인한 후 어디로 보낼지 결정하는 데 사용할 수 없습니다.

WP login_redirect 필터는 사용자가 로그인한 에 실행되며, 로그인 양식과 함께 전송된 임의의 redirect_를 URL로 수정하여 사용자를 다른 페이지로 리디렉션할 수 있습니다.

또한 WooCommerce 로그인 위젯은 사용자가 가정하는 로그인을 처리하지 않습니다.로그인 프로세스는 wocommerce-ajax.php에서 AJAX를 통해 처리됩니다. 여기에서 리디렉션 URL이 wocommerce_login_widget_redirect 필터를 통과하지 않으므로 수정할 수 없습니다.WooCommerce와 함께 pull request로 제기할 예정입니다. 필터링이 되어야 한다고 생각하기 때문입니다.

https://github.com/woothemes/woocommerce/pull/2508

언급URL : https://stackoverflow.com/questions/11958422/woocommerce-wordpress-redirect-user-login-to-homepage