我正在Woocommerce网上购物,我的客户问我他不想让人们注册,他会为他的每个客户创建一个用户和密码。这样他就可以控制谁在他的商店购买。未登录用户Woocommerce,重定向
因此,我进入了Woocommerce并禁用了结账和到处注册,以及允许客人下订单的选项。一切工作正常,除了有人试图下订单,退出时,当他试图去结账页面时,它只是显示一条未格式化的消息,说“你必须登录才能下订单”。当尝试访问结帐时,有没有办法可以将未登录的客户重定向到登录页面?
我正在Woocommerce网上购物,我的客户问我他不想让人们注册,他会为他的每个客户创建一个用户和密码。这样他就可以控制谁在他的商店购买。未登录用户Woocommerce,重定向
因此,我进入了Woocommerce并禁用了结账和到处注册,以及允许客人下订单的选项。一切工作正常,除了有人试图下订单,退出时,当他试图去结账页面时,它只是显示一条未格式化的消息,说“你必须登录才能下订单”。当尝试访问结帐时,有没有办法可以将未登录的客户重定向到登录页面?
可能是这个代码可能是更紧凑,简单方便:
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文件或也以任何插件文件。
此代码已经过测试并且功能完整。
我设法做到了我的自我!但是如果有人有更清晰的代码可以这样做,我会接受建议。
我所做的就是贴在子主题的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;
}
}
感谢 亲切的问候
使用下面的代码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/');
}
}
}
你的代码和我的代码有什么区别?只是好奇 –
没什么大不了的。我只是发布我的答案,却没有意识到你已经有了一个解决方案。我猜只有它更清洁,但你的也很完美。我不知道我是否应该删除我的答案。 –
我用你的代码,它崩溃XD所以..要么我把它粘贴错了,或者你的代码是马车XD –
如果你要使用上面的代码,记得要改变/我的账户/到什么都就是你的登录页面。 –