Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 允许在WooCommerce中重定向未结账的来宾_Php_Wordpress_Redirect_Woocommerce_Checkout - Fatal编程技术网

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这里有一个新问题。