我正在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 –
如果你要使用上面的代碼,記得要改變/我的賬戶/到什麼都就是你的登錄頁面。 –