创建WooCommerce订单详情页:按订单ID查看订单信息
WooCommerce 作为基于 WordPress 的强大电商解决方案,为在线商店经营者提供了从产品展示到交易处理、税务管理等一系列完善的功能支持。其核心优势之一在于能够系统化地保存详尽的订单数据,包括交易金额、货币类型、物流信息、税务明细等关键要素。这些全面的数据记录对商家和消费者都具有重要价值。例如,您可以通过定制页面设计,让用户便捷地查阅订单详情,并灵活展示其他相关信息。本指南将为您提供创建自定义 WooCommerce 订单详情页面的完整步骤,实现根据订单 ID 动态展示订单信息的功能。
### 为什么需要创建自定义订单详情页?
在 WooCommerce 平台上构建个性化订单详情页具有多重实用价值,既能优化商家运营效率,又能显著提升客户服务体验。以下是选择这一方案的主要理由:
#### 提升用户体验
自定义订单详情页允许您根据客户需求定制信息展示方式。通过灵活调整页面布局和内容,可以突出显示发货状态、产品规格、预计送达时间等关键信息,帮助客户快速获取所需数据,大幅提升操作便捷性。
#### 增强功能扩展性
相比 WooCommerce 默认功能,自定义页面可添加系统内置无法直接支持的特殊字段。例如,您可以在页面上展示礼品信息、特殊备注或针对每个订单的个性化留言,满足个性化服务需求。
#### 丰富互动体验
通过嵌入进度条、关联产品推荐链接或设置一键客服入口等互动元素,可以打造更具吸引力的订单查询体验,增强客户参与感。
#### 提供灵活的业务适配性
自定义页面支持根据企业特定标准展示差异化信息,如客户地理位置、产品类型等。这种灵活性使您的业务流程能够适应不断变化的市场需求。
### 如何从 $order 对象中提取订单数据
在 WooCommerce 中,订单数据的核心载体是 $order 对象,它包含了所有与特定订单相关的详细信息。通过合理运用该对象,您可以高效获取订单 ID、创建时间、账单/配送信息以及购买商品等关键数据。下面将详细解析如何访问和使用 $order 对象中的各类数据。
#### 获取订单对象
首先需要使用 wc_get_order 函数获取订单对象。该函数通过订单 ID 返回对应的订单实例。
“`php
$order_id = 123; // 示例订单 ID
$order = wc_get_order( $order_id );
“`
#### 订单基础信息
获取订单对象后,即可访问以下基础信息:
– 订单 ID:唯一标识符
“`php
$order_id = $order->get_id();
echo ‘订单 ID: ‘ . $order_id;
“`
– 订单创建日期
“`php
$order_date = $order->get_date_created();
echo ‘订单日期: ‘ . wc_format_datetime( $order_date );
“`
– 订单总金额
“`php
$order_total = $order->get_formatted_order_total();
echo ‘订单总金额: ‘ . $order_total;
“`
#### 账单信息
账单信息包含客户在结账时提供的个人资料:
– 账单地址
“`php
$billing_address = $order->get_formatted_billing_address();
echo ‘账单地址: ‘ . $billing_address;
“`
– 账单邮箱
“`php
$billing_email = $order->get_billing_email();
echo ‘账单邮箱: ‘ . $billing_email;
“`
– 账单电话
“`php
$billing_phone = $order->get_billing_phone();
echo ‘账单电话: ‘ . $billing_phone;
“`
#### 发货信息
发货信息与账单信息类似,但针对配送地址:
“`php
$shipping_address = $order->get_formatted_shipping_address();
echo ‘发货地址: ‘ . $shipping_address;
“`
#### 订购项目
获取订单中包含的商品列表,适用于展示购买详情:
“`php
$items = $order->get_items();
foreach ( $items as $item_id => $item ) {
$product_name = $item->get_name();
$product_quantity = $item->get_quantity();
$product_total = $item->get_total();
echo ‘商品名称: ‘ . $product_name . ”;
echo ‘数量: ‘ . $product_quantity . ”;
echo ‘小计: ‘ . wc_price( $product_total ) . ”;
}
“`
#### 付款与配送方式
可获取订单使用的支付和配送方式信息:
– 付款方式
“`php
$payment_method = $order->get_payment_method_title();
echo ‘付款方式: ‘ . $payment_method;
“`
– 配送方式
“`php
$shipping_methods = $order->get_shipping_methods();
foreach ( $shipping_methods as $shipping_method ) {
echo ‘配送方式: ‘ . $shipping_method->get_name();
}
“`
#### 订单状态
订单状态可用于追踪订单进度等功能:
“`php
$order_status = wc_get_order_status_name( $order->get_status() );
echo ‘订单状态: ‘ . $order_status;
“`
### 创建按订单 ID 显示订单详细信息的页面
为提供无缝的客户体验,建议创建一个自定义页面,允许用户通过输入订单 ID 直接查询订单详情。以下是具体实现步骤:
#### 第一步:创建自定义页面模板
在 WordPress 子主题目录下创建名为 page-order-details.php 的文件,并添加以下代码:
“`php
订单详情
<?php
if ( isset( $_GET['order_id'] ) ) {
$order_id = sanitize_text_field( $_GET['order_id'] );
// 获取订单对象
$order = wc_get_order( $order_id );
if ( $order ) {
// 显示订单基本信息
echo '
订单基本信息
‘;
echo ‘
订单 ID: ‘ . $order->get_id() . ‘
‘;
echo ‘
订单日期: ‘ . wc_format_datetime( $order->get_date_created() ) . ‘
‘;
echo ‘
订单总金额: ‘ . $order->get_formatted_order_total() . ‘
‘;
// 显示账单信息
echo ‘
账单信息
‘;
echo ‘
地址: ‘ . $order->get_formatted_billing_address() . ‘
‘;
echo ‘
邮箱: ‘ . $order->get_billing_email() . ‘
‘;
echo ‘
电话: ‘ . $order->get_billing_phone() . ‘
‘;
// 显示发货信息
echo ‘
发货信息
‘;
echo ‘
地址: ‘ . $order->get_formatted_shipping_address() . ‘
‘;
// 显示订单商品
echo ‘
订单商品
‘;
$items = $order->get_items();
if ( empty( $items ) ) {
echo ‘
此订单没有商品
‘;
} else {
echo ‘
- ‘;
- ‘;
echo ‘商品名称: ‘ . $product_name . ‘‘;
echo ‘数量: ‘ . $product_quantity . ‘‘;
echo ‘小计: ‘ . wc_price( $product_total ) . ‘‘;
echo ‘
foreach ( $items as $item ) {
$product_name = $item->get_name();
$product_quantity = $item->get_quantity();
$product_total = $item->get_total();
echo ‘
‘;
}
echo ‘
‘;
}
// 显示付款与配送方式
echo ‘
付款与配送
‘;
echo ‘
付款方式: ‘ . $order->get_payment_method_title() . ‘
‘;
$shipping_methods = $order->get_shipping_methods();
if ( ! empty( $shipping_methods ) ) {
echo ‘
配送方式: ‘;
foreach ( $shipping_methods as $shipping_method ) {
echo $shipping_method->get_name() . ‘, ‘;
}
echo ‘
‘;
}
// 显示订单状态
echo ‘
订单状态
‘;
echo ‘
当前状态: ‘ . wc_get_order_status_name( $order->get_status() ) . ‘
‘;
} else {
echo ‘
未找到订单 ID ‘ . $order_id . ‘ 的订单信息
‘;
}
} else {
echo ‘
请输入订单 ID
‘;
echo ‘
‘;
}
?>
“`
#### 第二步:应用自定义模板
1. 在 WordPress 后台创建一个新页面
2. 在页面编辑器中,选择”自定义模板”下拉菜单
3. 选择”订单详情页”模板
4. 发布页面
现在,访问该页面时输入订单 ID,即可查看对应的订单详细信息。这种自定义解决方案不仅提升了客户体验,也为商家提供了强大的数据管理能力,是优化电商运营的重要工具。