我在函数中添加了代码.php如果用户尝试访问任何Woocommerce页面,则可以将用户重定向到“我的帐户”页面。add_action( 'template_redirect', 'wc_redirect_non_logged_to_login_access');function wc_redirect_non_logged_to_login_access() {if ( !is_user_logged_in() && ( is_woocommerce() || is_shop() || is_cart() || is_checkout() ) ) { wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id')) ); exit();}}一切正常 - 用户尝试访问商店页面,他们确实被重定向到我的帐户页面,登录后他们可以访问商店。当我迁移到WP引擎时,问题就开始了。现在,如果用户访问Shop页面,被重定向到“我的帐户”,登录并尝试访问Shop - 他仍然会被重定向到“我的帐户”。我联系了WP引擎,他们添加了下面列出的Woocommerce缓存排除项:^/cart/^/my-account/^/checkout/^/product-category/^/product/^/wc-api/^/resetpassword/productwc-api=woocommerce_cart_hashwoocommerce_items_in_cartWp_woocommerce_session_wp-resetpass-但问题仍然存在。域通过Cloudflare,所以我免除了此路径的缓存。所以我为/my-account/page - 缓存级别 - 绕过页面制定了页面规则,但问题仍然存在。以下是我的页面规则:https://ibb.co/28k84cM之后,我做了一个小实验,并添加了一个使用WP引擎托管的测试站点(https://residenceineu.wpengine.com/)。DNS不会通过Cloudflare。一切都在WP引擎上 - 托管和域。结果,问题并没有消失。因此,我认为WP引擎有故障。以下是响应式标头信息的屏幕截图:https://ibb.co/dMwQ8t5顺便说一句,当我在浏览器检查设置中禁用浏览器缓存时,问题消失了。有趣的是,当代码添加到函数中时.php如果首先我们访问“我的帐户”页面(无需单击“商店”页面),然后登录,登录后我们访问“商店”页面,我们可以访问它 - 没有重定向,一切正常。当我们第一次访问Shop页面时,问题就开始了,之后被重定向到“我的帐户”,登录后,我们尝试再次访问Shop页面。因此,总结一下 - 当我们访问“我的帐户”页面,然后转到“商店”页面时 - 没有缓存/重定向,一切正常。如果我们通过访问商店页面来执行此操作 - 重定向到我的帐户 - 登录 - 尝试访问Sho页面=再次重定向到我的帐户,即使已登录也是如此。因此,考虑到所有这些因素,如果我们在没有登录的情况下先访问Shop页面,则似乎整个重定向过程都会被缓存。我正在与WP引擎支持部门联系,但我们仍然没有解决方案。有什么想法吗?也许在迁移到WP引擎后,他们会自动在wp-config.php或.htaccess文件中重写一些东西?
添加回答
举报
0/150
提交
取消