【问题标题】:Woocommerce - How to show Order details (my-account) on a separate pageWoocommerce - 如何在单独的页面上显示订单详细信息(我的帐户)
【发布时间】:2018-06-21 10:05:24
【问题描述】:

现在,在 woocommerce 中,短代码 [woocommerce_my_account] 显示整个“我的帐户”页面以及所有选项卡式选项。

我只想在单独的页面上显示订单详情(位于“订单”标签下)。

那么,我可以只使用 woocommerce 模板 orders.php (woocommerce/templates/myaccount/orders.php) 并在空白的新页面上使用它,还是有更好的方法?

【问题讨论】:

    标签: php wordpress woocommerce wordpress-theming


    【解决方案1】:

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

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

    【讨论】:

    • 好吧,它不起作用,当我在将代码添加到 functions.php 后添加短代码 [woocommerce_orders] 时,它会给出一个空白页面。我也尝试更改主题,它不起作用。我尝试使用code-sn-ps插件,同样的结果,页面什么也没有显示。
    • 嗨,我已经更新了代码,我已经用我的本地设置进行了测试,它运行良好。请在您的最后检查并告诉我。
    • 嘿,是否可以将其调整为显示我的预订而不是我的订单?谢谢!
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多