现在,在 woocommerce 中,短代码
[woocommerce_my_account]
显示整个“我的帐户”页面以及所有选项卡式选项。
我只想在单独的页面上显示订单详细信息(位于“订单”选项卡下)。
那么,我可以使用 woocommerce 模板
orders.php
(woocommerce/templates/myaccount/orders.php) 并在空白的新页面上使用它,还是有更好的方法?
Woocommerce 具有 woocommerce_account_orders() 函数,其中包含订单模板。您可以按照以下步骤在单独的页面上仅显示订单。
第1步:将以下代码放入主题的functions.php中(如果已创建,则放入子主题中)。
function woocommerce_orders() {
$user_id = get_current_user_id();
if ($user_id == 0) {
return do_shortcode('[woocommerce_my_account]');
}else{
ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
'current_user' => get_user_by( 'id', $user_id),
'order_count' => $order_count
) );
return ob_get_clean();
}
}
add_shortcode('woocommerce_orders', 'woocommerce_orders');
第 2 步: 将短代码 [woocommerce_orders] 放置在管理端的任何页面中并检查前端。
如果客户登录,以上代码将显示订单,否则将显示 woocommerce 的登录/注册页面。
如果您想隐藏“我的帐户”页面上的“订单”选项卡式选项,请转到管理端,然后Woocommerce>设置>帐户(选项卡),您可以在其中看到“我的帐户端点”,空“订单”字段。它将隐藏前端“我的帐户”页面中的“订单”。
编辑: 确保您检查以“客户”用户身份登录的前端,并且该客户用户至少下过一个订单,否则将显示空白页面。