如果订阅者在 Woocommerce 商店页面中,则重定向订阅者
Redirect subscribers if they are in Woocommerce shop page
有很多插件可以让这成为可能,但它们不是免费的,所以我实际上是在尝试限制商店、结帐和购物车页面,只针对注册为客户的人,我测试了这段代码functions.php
文件下方:
global $current_user;
get_currentuserinfo();
if (user_can( $current_user, "subscriber" ) && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] == woocommerce_get_page_id('shop') ) {
wp_redirect( home_url( '/customer-register' ) );
die();
}
但是它不起作用,可能比我想象的更复杂,你有解决这个问题的方法吗?
您可以尝试以下自定义挂钩函数:
add_action( 'template_redirect', 'subscribers_redirection' );
function subscribers_redirection() {
if ( ( ! is_user_logged_in() || current_user_can( 'subscriber' ) )
&& ( is_shop() || is_product_category() || is_product_tag() || is_product() ) ){
wp_redirect( home_url( '/customer-register' ) );
exit();
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。
应该可以。
You don't need to restrict cart and checkout pages as if there is no products added to cart, nothing is displayed.
有很多插件可以让这成为可能,但它们不是免费的,所以我实际上是在尝试限制商店、结帐和购物车页面,只针对注册为客户的人,我测试了这段代码functions.php
文件下方:
global $current_user;
get_currentuserinfo();
if (user_can( $current_user, "subscriber" ) && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] == woocommerce_get_page_id('shop') ) {
wp_redirect( home_url( '/customer-register' ) );
die();
}
但是它不起作用,可能比我想象的更复杂,你有解决这个问题的方法吗?
您可以尝试以下自定义挂钩函数:
add_action( 'template_redirect', 'subscribers_redirection' );
function subscribers_redirection() {
if ( ( ! is_user_logged_in() || current_user_can( 'subscriber' ) )
&& ( is_shop() || is_product_category() || is_product_tag() || is_product() ) ){
wp_redirect( home_url( '/customer-register' ) );
exit();
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。
应该可以。
You don't need to restrict cart and checkout pages as if there is no products added to cart, nothing is displayed.