如何限制自定义联系页面仅允许WooCommerce登录用户访问?
限制自定义联系页面仅WooCommerce登录用户访问的实现方法
是的,你可以通过自定义functions.php代码实现这个需求,这是直接且可靠的方式,具体操作如下:
- 推荐使用子主题的
functions.php文件(避免父主题更新时丢失自定义代码),也可以直接在Divi主题的「主题选项」→「自定义代码」→「PHP」栏添加代码(Divi自带自定义代码入口,无需直接编辑文件) - 复制以下代码,替换其中的页面标识为你的联系页面ID或slug:
function restrict_contact_page_to_logged_in_users() { // 替换为你的联系页面ID(比如123)或slug(比如'contact-us') $restricted_page = 'contact'; if ( is_page($restricted_page) && !is_user_logged_in() ) { // 跳转到WooCommerce登录页,登录后自动返回原页面 $login_url = wc_get_page_permalink('myaccount') . '?redirect_to=' . urlencode(get_permalink()); wp_redirect( $login_url ); exit; } } add_action('template_redirect', 'restrict_contact_page_to_logged_in_users');
关键细节说明:
- 页面标识获取:编辑你的联系页面,地址栏中
post=后面的数字就是页面ID;或者在页面编辑界面的「别名」字段获取slug(比如设置的别名是contact-us,就把代码里的'contact'改成'contact-us') - 跳转逻辑:代码会在未登录用户访问该页面时,自动跳转到WooCommerce的「我的账户」登录页面,登录完成后会直接回到联系页面,提升用户体验
- 兼容性:代码适配WooCommerce 8.1.1版本,和Divi主题无冲突,不会影响其他页面的正常访问
内容的提问来源于stack exchange,提问作者Pat
相关产品推荐
相关产品推荐

