Php 允许在WooCommerce中重定向未结账的来宾
在回答我前面的问题后,以下代码将用户重定向到登录页面:Php 允许在WooCommerce中重定向未结账的来宾,php,wordpress,redirect,woocommerce,checkout,Php,Wordpress,Redirect,Woocommerce,Checkout,在回答我前面的问题后,以下代码将用户重定向到登录页面: add_action( 'template_redirect', 'checkout_redirect_non_logged_to_login_access'); function checkout_redirect_non_logged_to_login_access() { if( is_checkout() && !is_user_logged_in()){ wp_redirect( get_p
add_action( 'template_redirect', 'checkout_redirect_non_logged_to_login_access');
function checkout_redirect_non_logged_to_login_access() {
if( is_checkout() && !is_user_logged_in()){
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
exit;
}
}
但我有一些允许客人结账的产品(见上面链接的问题/答案)。那么,如何修复允许guest checkout禁用代码重定向的产品代码?您可以用以下代码替换我以前的应答代码:
//检查是否需要签出注册的自定义条件函数
功能是\u签出\u注册\u必需(){
如果(!WC()->购物车->为空(){
//循环浏览购物车项目
foreach(WC()->cart->get_cart()作为$item){
//检查购物车中是否有任何项目没有“允许客人结账”选项
如果(获取帖子元($item['product\u id'],'u allow\u guest\u checkout',true)!='yes'){
返回true;//找到:强制签出用户注册并退出
}
}
}
返回false;
}
添加过滤器('woocommerce\u checkout\u registration\u required'、'change\u tax\u class\u user\u role',900);
功能更改\u税务\u类别\u用户\u角色($registration\u required){
返回是“结帐”还是“注册”是必需的();
}
那么您当前的问题代码将改为:
add_action('template_redirect'、'checkout_redirect_non_logged_to_login_access');
函数签出\u重定向\u未登录\u至\u登录\u访问(){
如果(是否签出()&&!是否已登录用户()&&是否需要签出注册()){
wp_重定向(get_permalink(get_选项('woocommerce_myaccount_page_id'));
出口
}
}
代码进入活动子主题(或活动主题)的functions.php文件。它应该会起作用。@LoicTheAztec这里有一个新问题。