有很多插件可以实现这一点,但它们不是免费的,所以我实际上试图限制商店,结帐和购物车页面,只为注册为客户的人,我测试此代码在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();
}
但它不起作用,也许比我想象的更复杂,你有解决方案吗?
答案 0 :(得分:2)
您可以尝试以下自定义挂钩功能:
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文件。
它应该有用。
您不需要限制购物车和结帐页面,就好像没有产品添加到购物车中一样,不会显示任何内容。