我在Woocommerce网上开店,我的客户问我,他不想让人们注册,他会为每个客户创建一个用户和密码。这样他就可以控制谁在他的商店购买。
所以我进入Woocommerce并在结账时和所有地方禁用注册,以及允许客人下订单的选项。一切正常,只有当有人试图下订单时,退出时,当他试图进入结账页面时,它只会显示一条未格式化的消息,说明"您必须登录才能下订单" ;。在尝试访问结帐时,有没有办法可以将未登录的客户重定向到登录页面?
答案 0 :(得分:2)
可能这段代码可以更紧凑,简单和方便:
add_action('template_redirect','check_if_logged_in');
function check_if_logged_in() {
if(!is_user_logged_in() && is_checkout())
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
}
此代码位于活动子主题(或主题)的function.php文件中或任何插件文件中。
此代码经过测试且功能齐全。
答案 1 :(得分:1)
在functions.php中使用以下代码
add_action( 'template_redirect', 'redirect_user_to_login_page' );
function redirect_user_to_login_page(){
// Make sure your checkout page slug is correct
if( is_page('checkout') ) {
if( !is_user_logged_in() ) {
// Make sure your login page slug is correct in below line
wp_redirect('/my-account/');
}
}
}
答案 2 :(得分:0)
我设法自己做!但是,如果某人有更清晰的代码,我仍然愿意接受建议。
我所做的是将以下代码粘贴到子主题的functions.php文件中:
add_action('template_redirect','check_if_logged_in');
function check_if_logged_in()
{
if(!is_user_logged_in() && is_checkout())
{
$url = add_query_arg(
'redirect_to',
get_permalink($pagid),
site_url('/my-account/')
);
wp_redirect($url);
exit;
}
}
由于 亲切的问候