Woocommerce - 如何在单独的页面上显示订单详细信息(我的帐户)

问题描述 投票:0回答:1

现在,在 woocommerce 中,短代码

[woocommerce_my_account]
显示整个“我的帐户”页面以及所有选项卡式选项。

我只想在单独的页面上显示订单详细信息(位于“订单”选项卡下)。

那么,我可以使用 woocommerce 模板

orders.php
(woocommerce/templates/myaccount/orders.php) 并在空白的新页面上使用它,还是有更好的方法?

php wordpress woocommerce wordpress-theming
1个回答
12
投票

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>设置>帐户(选项卡),您可以在其中看到“我的帐户端点”,空“订单”字段。它将隐藏前端“我的帐户”页面中的“订单”。

编辑: 确保您检查以“客户”用户身份登录的前端,并且该客户用户至少下过一个订单,否则将显示空白页面。

© www.soinside.com 2019 - 2024. All rights reserved.