创建按订单ID显示WooCommerce订单详情的页面

创建按订单ID显示WooCommerce订单详情的页面

WooCommerce 是使用 WordPress 构建在线商店的强大工具,可处理从产品展示到购买处理、税务管理等一切事务。

WooCommerce 的一个突出特点是它能够保存详细的订单信息。它可以细致地存储订单的方方面面,包括金额、货币、运输详情、税收等。

这些详细信息对店主和客户都很有价值。想象一下,创建一个页面,用户可以轻松查看订单详细信息,并自定义页面以显示其他信息。

本指南将引导您完成创建自定义 WooCommerce 页面的步骤,该页面可根据订单 ID 显示订单详细信息。

为什么要创建自定义订单详情页?

WooCommerce 中创建自定义订单详情页有几个优势,既能满足店主的需求,也能满足客户的需求。以下是您选择这一途径的几个令人信服的理由:

  1. 增强用户体验 – 自定义订单详情页面可让您展示最符合客户需求的订单信息。它可以让您定制页面的布局和内容,从而突出发货状态、产品详情和交货日期等重要细节,使客户更容易快速找到所需的信息。
  2. 附加功能 – 自定义订单详情页面可以让您添加 WooCommerce 默认情况下无法使用的功能。例如,您可以显示礼品信息、特殊说明或每个订单独有的个性化备注等自定义字段。
  3. 互动性 – 自定义订单详情页允许您加入互动元素,例如用于跟踪订单的进度条、相关产品链接或直接访问客户支持,从而为用户提供更丰富、更吸引人的体验。
  4. 灵活性和适应性 – 创建自定义订单详情页可让您实施特定的业务逻辑,并适应不断变化的需求。您可以根据自己商店的独特标准显示不同的信息,如客户所在位置或订购的产品类型。

如何从 $order 对象中获取订单数据

在 WooCommerce 中,$order 对象是包含特定订单所有信息的核心部分。利用该对象,您可以获取订单的各种详细信息,如订单 ID、订单日期、账单和送货信息以及购买的产品。

下面让我们详细介绍如何访问和使用 $order 对象中的这些不同数据。

1. 读取订单对象

首先,必须使用 wc_get_order 函数获取订单对象。该函数接收订单 ID 并返回相应的订单对象。

$order_id = 123; // Example order ID
$order = wc_get_order( $order_id );

2. 订单基本信息

获得 $order 对象后,就可以检索订单的基本信息。下面是一些示例:

  • Order ID — 订单的唯一标识符。
    $order_id = $order->get_id();
    echo 'Order ID: ' . $order_id;
  • Order date — 订单创建日期。
    $order_date = $order->get_date_created();
    echo 'Order date: ' . wc_format_datetime( $order_date );
  • Order total — 订单总金额。
    $order_total = $order->get_formatted_order_total();
    echo 'Order total: ' . $order_total;

3. 账单信息

账单信息包括客户在结账过程中提供的详细信息。您可以使用以下方法获取这些详细信息:

  • Billing address:
    $billing_address = $order->get_formatted_billing_address();
    echo 'Billing address: ' . $billing_address;
  • Billing email:
    $billing_email = $order->get_billing_email();
    echo 'Billing email: ' . $billing_email;
  • Billing phone:
    $billing_phone = $order->get_billing_phone();
    echo 'Billing phone: ' . $billing_phone;

4. 发货信息

发货信息包括订单发货地的详细信息。与账单信息类似,您可以使用 $order 对象访问这些详细信息:

  • Shipping address:
    $shipping_address = $order->get_formatted_shipping_address();
    echo 'Shipping address: ' . $shipping_address;

5. 订购项目

您可以检索订单中包含的项目,如果您想显示已购买的产品,这一点尤其有用。下面是获取订单项目的方法:

$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: ' . $product_name . '<br>';
echo 'Quantity: ' . $product_quantity . '<br>';
echo 'Total: ' . wc_price( $product_total ) . '<br>';
}

6. 付款和发货方式

您还可以检索有关订单所使用的付款和发货方式的信息:

  • 付款方式:
    $payment_method = $order->get_payment_method_title();
    echo 'Payment method: ' . $payment_method;
  • 运输方式:
    $shipping_methods = $order->get_shipping_methods();
    foreach ( $shipping_methods as $shipping_method ) {
    echo 'Shipping method: ' . $shipping_method->get_name();
    }

7. 订单状态

订单状态有助于实现各种功能,如跟踪订单进度:

$order_status = wc_get_order_status_name( $order->get_status() );
echo 'Order status: ' . $order_status;

创建按订单 ID 显示订单详细信息的页面

为给客户提供无缝体验,创建一个自定义页面,让他们只需输入订单 ID 就能查看订单详情,这样做很有益处。

让我们指导你创建一个页面,包括设置模板和显示订单信息。

Step 1:创建自定义页面模板

首先,在 WordPress 主题中创建一个自定义页面模板。该模板将用于显示订单详细信息。

为此,请访问项目的源代码。

在你的子主题目录下创建一个名为 page-order-details.php 的新文件。在该文件中添加以下代码:

<?php
/**
* Template Name: Order Details
*/
get_header();
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
if ( isset( $_GET['order_id'] ) ) {
$order_id = intval( $_GET['order_id'] );
display_order_details( $order_id );
} else {
echo '<p>No order ID provided.</p>';
}
?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_footer();
// Function to display order details
function display_order_details( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order ) {
echo '<p>Invalid order ID.</p>';
return;
}
echo '<h2>Order Details</h2>';
echo '<ul>';
echo '<li>Order ID: ' . $order->get_id() . '</li>';
echo '<li>Order Date: ' . wc_format_datetime( $order->get_date_created() ) . '</li>';
echo '<li>Order Total: ' . $order->get_formatted_order_total() . '</li>';
echo '<li>Billing Address: ' . $order->get_formatted_billing_address() . '</li>';
echo '<li>Shipping Address: ' . $order->get_formatted_shipping_address() . '</li>';
echo '<li>Billing Email: ' . $order->get_billing_email() . '</li>';
echo '<li>Billing Phone: ' . $order->get_billing_phone() . '</li>';
echo '<li>Payment Method: ' . $order->get_payment_method_title() . '</li>';
echo '<li>Order Status: ' . wc_get_order_status_name( $order->get_status() ) . '</li>';
echo '</ul>';
echo '<h3>Order Items</h3>';
echo '<ul>';
$items = $order->get_items();
foreach ( $items as $item_id => $item ) {
echo '<li>';
echo 'Product Name: ' . $item->get_name() . '<br>';
echo 'Quantity: ' . $item->get_quantity() . '<br>';
echo 'Total: ' . wc_price( $item->get_total() ) . '<br>';
echo '</li>';
}
echo '</ul>';
}

让我们来分析一下这段代码,以便大家理解。

首先,你会注意到 get_header()get_footer() 函数,它们包含了WordPress页面的标准页眉和页脚,确保了网站的整体设计和布局。

我们还使用了一些基本的 HTML 标记,它们对于在网页上显示文本非常重要。下一个值得注意的重要代码是检查是否将 order_id 作为 URL 参数传递的条件。

if ( isset( $_GET['order_id'] ) ) {
$order_id = intval( $_GET['order_id'] );
display_order_details( $order_id );
} else {
echo '<p>No order ID provided.</p>';
}

它的做法是,如果存在 order_id,就使用 intval() 对输入进行消毒,然后调用 display_order_details 函数。如果没有提供 order_id,则会输出一条提示信息。

display_order_details 函数是在 get_footer() 下面声明的函数。该函数将订单 ID 作为输入,并使用 wc_get_order() 获取相应的订单对象。

如果订单 ID 无效,它将输出一条错误信息。否则,它会以无序列表的形式检索并显示各种订单详细信息,如订单 ID、日期、总额、账单地址和送货地址、电子邮件、电话、付款方式和订单状态。

此外,它还会循环显示订单项目,并在另一个无序列表中显示每个项目的产品名称、数量和总价。

Step 2:将模板添加到主题中,并在 WordPress 中创建新页面

在您的子主题目录中保存page-order-details.php文件。这样,在 WordPress 中创建新页面时就可以选择该模板。

接下来,在 WordPress 管理面板中进入页面>新页面。给页面命名,然后在右侧的 “页面属性” 部分,从模板下拉菜单中选择 “Order Details” 模板。

如果没有看到 “页面属性” 部分,可以返回到 “页面“,将鼠标悬停在每个页面上时,会看到所有页面的列表和一些选项。选择 “快速编辑”,然后就能看到 “页面属性” 部分。

发布页面,现在就可以测试自定义订单详情页面了。

要进行测试,请浏览浏览器并在 URL 上添加 ?order_id=ORDER_ID,用有效的 WooCommerce 订单 ID 替换 ORDER_ID 。例如,https://yourwebsite.com/order-details/?order_id=70

这将显示指定订单 ID 的订单详情。

从订单 ID 获取订单详细信息

从订单 ID 获取订单详细信息。

然后,您就可以在模板中随意添加样式了。

使用 WooCommerce 订单跟踪简码创建订单详情页面

您可能不知道的另一个选项是 WooCommerce 订单跟踪简码,它为用户提供了一个用户界面,用户只需输入订单号和电子邮件地址即可搜索订单详情。

WooCommerce 订单跟踪简码

来自 WooCommerce 订单跟踪简码的订单详情。

该页面显示订单号、日期、状态、项目、发货和账单地址。如果您不打算显示更详细的信息,这将非常有用。

使用 WooCommerce 订单跟踪简码创建订单跟踪页面是提升客户体验的直接方法,无需深入研究自定义编码。

请按照以下步骤操作:

  1. 登录 WordPress 仪表板。
  2. 然后,导航至 “页面“>”新页面“,创建一个新页面。
  3. 给页面一个标题,然后在页面编辑器中添加以下简码:
    [woocommerce_order_tracking]
  4. 然后,点击 “发布” 按钮,使页面生效。

就这么简单。但这样做可能无法实现你想要的灵活性。

小结

在 WooCommerce 中创建订单详情页可以方便地访问订单信息,提高透明度和客户满意度,从而增强客户体验。

评论留言