从WooCommerce我的账户页面移除仪表盘菜单

我们知道,仪表盘页面是WooCommerce我的账户页面的默认页面,但是这个页面很鸡肋,除了显示几个链接之外,就没有其他信息了,为了简化用户体验,我们可以把这个页面移除,用户点击「我的账户」页面时,直接显示订单列表页面,以方便用户查看自己的订单。

首先,删除仪表盘菜单

实现这一步是很容易的,我们直接使用woocommerce_account_menu_items Hook 删除这个菜单项目即可。

add_filter('woocommerce_account_menu_items', function ($menu_links) {
    unset($menu_links['dashboard']);
    return $menu_links;
});

但是,仅仅这样是不够的,如果我们在主题中使用了 wp_get_page_permalink( 'myaccount' ) 这个函数来显示我的账户链接,这个链接默认是仪表盘页面,我们需要把这个页面重定向到订单列表页面,以免用户点击我的账户链接时,出现页面不存在的情况。

重定向仪表盘页面的订单列表

实现重订单的代码如下。

add_action('template_redirect', function () {
    if (is_account_page() && empty(WC()->query->get_current_endpoint())) {
        wp_safe_redirect(wc_get_account_endpoint_url('orders'));
        exit;
    }
});
  • template_redirect 这个Hook在网站的每个页面都会被出发,需要重定向页面时,我们把功能函数挂载到这个Hook上面即可。
  • 跳转判断条件中,不只要判断是否为我的账户页面,因为这个函数在每一个账户页面上都返回 True, 我们还要判断当前端点是空的(仪表盘页面是唯一没有端点的页面),少了这个条件,这个跳转很可能就是个死循环跳转了。

Related Posts

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注