我们知道,仪表盘页面是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, 我们还要判断当前端点是空的(仪表盘页面是唯一没有端点的页面),少了这个条件,这个跳转很可能就是个死循环跳转了。