小编lib*_*ian的帖子

Woocommerce 如何从模板重定向挂钩中排除 myaccount 的子页面(端点)?

登录注册表单必须仅像弹出窗口一样显示,因此我进行了重定向,以避免未登录的用户使用默认的 myaccount 页面。

add_action( 'template_redirect', 'wish_custom_redirect' );
function wish_custom_redirect() {
  global $wp;
  if (!is_user_logged_in() &&  is_page('my-account') ) {
    wp_redirect( '/' );
    exit;
  }
}
Run Code Online (Sandbox Code Playgroud)

要查看其帐户页面,用户必须登录或以弹出形式注册。但有一个问题 - /my-account/lost-password/、my-account/reset-password/ 是 myaccount 的子端点。他们不必为未登录的用户进行重定向。我试着这样做


add_action( 'template_redirect', 'wish_custom_redirect' );
function wish_custom_redirect() {
  global $wp;
  if (!is_user_logged_in() &&  is_page('my-account') &&  !is_page('my-account/lost-password/')  ) {
    wp_redirect( '/' );
    exit;
  }
}
Run Code Online (Sandbox Code Playgroud)

但它仍然重定向。也许这根本就是一个糟糕的解决方案,还有更好的方法吗?或者如何正确地进行此重定向?

add_action('wp_logout','auto_redirect_after_logout');

function auto_redirect_after_logout(){

  wp_redirect( home_url() );
  exit();
}
Run Code Online (Sandbox Code Playgroud)

仅在注销时重定向有帮助,但并不能避免用户看到默认页面。他们可以注销,然后返回上一页 /myaccount,并查看默认注册表单。

php wordpress redirect woocommerce hook-woocommerce

5
推荐指数
1
解决办法
291
查看次数

标签 统计

hook-woocommerce ×1

php ×1

redirect ×1

woocommerce ×1

wordpress ×1