WooCommerce 登录区域重定向到默认的 Wordpress 登录表单
WooCommerce login area redirect to default Wordpress login form
如果用户未登录,Woocommerce 的 "My Account" 页面会显示 register/login 表单,但我正在尝试使用默认的 Wordpress login/register 页面(wp-login.php) 代替。
如果用户未登录,我如何使“/my-account”重定向到 "wp-login.php"?
谢谢。
通常是 Woocommerce "customer" 用户角色,无法访问 wordpress 的管理员。但是您可以使用 woocommerce_before_customer_login_form
钩子中的函数 hocked 和混合条件将用户重定向到经典的 wordpress 登录区域,这样:
add_action( 'woocommerce_before_customer_login_form', 'redirect_customer_login_access');
function redirect_customer_login_access() {
// Here the conditions (woocommerce my account pages and unlogged user)
if( is_account_page() && !is_user_logged_in()){
// Define here the redirection after login (optional)
$redirection_after = site_url( '/shop/' );
// Redirecting to Wordpress login area
wp_redirect( wp_login_url( $redirection_after ) );
// always use exit after wp_redirect() function.
exit;
}
}
代码进入活动子主题的 function.php 文件(活动主题或任何插件文件)。
此代码已经过测试并且有效。
如果用户未登录,Woocommerce 的 "My Account" 页面会显示 register/login 表单,但我正在尝试使用默认的 Wordpress login/register 页面(wp-login.php) 代替。
如果用户未登录,我如何使“/my-account”重定向到 "wp-login.php"?
谢谢。
通常是 Woocommerce "customer" 用户角色,无法访问 wordpress 的管理员。但是您可以使用 woocommerce_before_customer_login_form
钩子中的函数 hocked 和混合条件将用户重定向到经典的 wordpress 登录区域,这样:
add_action( 'woocommerce_before_customer_login_form', 'redirect_customer_login_access');
function redirect_customer_login_access() {
// Here the conditions (woocommerce my account pages and unlogged user)
if( is_account_page() && !is_user_logged_in()){
// Define here the redirection after login (optional)
$redirection_after = site_url( '/shop/' );
// Redirecting to Wordpress login area
wp_redirect( wp_login_url( $redirection_after ) );
// always use exit after wp_redirect() function.
exit;
}
}
代码进入活动子主题的 function.php 文件(活动主题或任何插件文件)。
此代码已经过测试并且有效。