众所周知,WooCommerce 是最流行的电子商务解决方案平台,它已经拥有默认模板设计的每个页面的默认模板。
因此,有时我们想使用自定义模板更改模板的设计,并且在该模板中,我们需要按照自定义设计显示订单详细信息。
让我们开始吧。
获取 WooCommerce 订单详细信息
我们必须发送自定义电子邮件正文内容。因此,我们必须使用WC_Order对象来获取 WooCommerce 订单详细信息。
我们还可以使用wc_get_orders(),这是获取订单对象并获取特定参数的订单详细信息的函数。
$order_id = 145;
$order = new WC_Order( $order_id );
//$order = wc_get_order( $order_id );
$orderid = $order->get_id(); // 获取订单 ID
$parent_id = $order->get_parent_id(); // 获取父级订单 ID
$user_id = $order->get_user_id(); // 获取用户 ID
$user = $order->get_user(); // 获取 WP_User 对象
// 获取订单状态
$order_status = $order->get_status(); // 获取订单状态
// Get Order Dates
$date_created = $order->get_date_created(); // 获取创建日期
$date_modified = $order->get_date_modified(); // 获取修改日期
$date_completed = $order->get_date_completed(); // 获取订单完成日期
$date_paid = $order->get_date_paid(); // 获取订单付款日期
//获取订单账单详情
$billing_first_name = $order->get_billing_first_name();
$billing_last_name = $order->get_billing_last_name();
$billing_company = $order->get_billing_company();
$billing_address1 = $order->get_billing_address_1();
$billing_address2 = $order->get_billing_address_2();
$billing_city = $order->get_billing_city();
$billing_state = $order->get_billing_state();
$billing_postcode = $order->get_billing_postcode();
$billing_country = $order->get_billing_country();
$billing_email = $order->get_billing_email();
$billing_phone = $order->get_billing_phone();
$billing_formatted_name = $order->get_formatted_billing_full_name();
$billing_formatted_address = $order->get_formatted_billing_address();
//获取订单物流详情
$shipping_first_name = $order->get_shipping_first_name();
$shipping_last_name = $order->get_shipping_last_name();
$shipping_company = $order->get_shipping_company();
$shipping_address1 = $order->get_shipping_address_1();
$shipping_address2 = $order->get_shipping_address_2();
$shipping_city = $order->get_shipping_city();
$shipping_state = $order->get_shipping_state();
$shipping_postcode = $order->get_shipping_postcode();
$shipping_country = $order->get_shipping_country();
$shipping_formatted_name = $order->get_formatted_shipping_full_name();
$shipping_formatted_address = $order->get_formatted_shipping_address();
//获取订单付款详情
$currency = $order->get_currency(); // 获取所用的货币
$payment_title = $order->get_payment_method_title(); // 获取付款方式名称
$payment_method = $order->get_payment_method(); // 获取付款方式 ID
$fees = $order->get_fees(); // 获取订单手续费
$subtotal = $order->get_subtotal(); // 获取订单费用小计
$total_tax = $order->get_total_tax(); // 获取订单总税费
$total = $order->get_total(); // 获取订单总费用
所以,我们看看如何借助getter 方法获取 WooCoomerce 订单详细信息。您可以在此处查看更多方法。
如果您想获取和访问订单对象的受保护数据,则可以使用get_data()
功能。
这与我们在上面对$order
对象实例所做的相同。例如:$order->get_data()
它将数据作为关联数组返回,我们可以将此数组与 key=>pair 值一起使用。
让我们看看这个例子。
$order_id = 145;
$order = wc_get_order( $order_id );
$order_data = $order->get_data(); // 获取订单数据
$orderid = $order_data['id']; // 获取订单 ID
$parent_id = $order_data['parent_id']; // 获取父级订单 ID
// 获取订单状态
$order_status = $order_data['status']; // 获取订单状态
// Get Order Dates
$date_created = $order_data['date_created']; // 获取创建日期
$date_modified = $order_data['date_modified']; // 获取修改日期
$date_completed = $order_data['date_completed']; // 获取订单完成日期
$date_paid = $order_data['date_paid']; // 获取订单付款日期
//获取订单账单信息
$billing_first_name = $order_data['billing']['first_name'];
$billing_last_name = $order_data['billing']['last_name'];
$billing_company = $order_data['billing']['company'];
$billing_address1 = $order_data['billing']['address_1'];
$billing_address2 = $order_data['billing']['address_2'];
$billing_city = $order_data['billing']['city'];
$billing_state = $order_data['billing']['state'];
$billing_postcode = $order_data['billing']['postcode'];
$billing_country = $order_data['billing']['country'];
$billing_email = $order_data['billing']['email'];
$billing_phone = $order_data['billing']['phone'];
//获取订单物流信息
$shipping_first_name = $order_data['shipping']['first_name'];
$shipping_last_name = $order_data['shipping']['last_name'];
$shipping_company = $order_data['shipping']['company'];
$shipping_address1 = $order_data['shipping']['address_1'];
$shipping_address2 = $order_data['shipping']['address_2'];
$shipping_city = $order_data['shipping']['city'];
$shipping_state = $order_data['shipping']['state'];
$shipping_postcode = $order_data['shipping']['postcode'];
$shipping_country = $order_data['shipping']['country'];
//获取订单付款信息
$subtotal = $order_data['subtotal']; // 获取订单费用小计
$total_tax = $order_data['total_tax']; // 获取订单总税费
$total = $order_data['total']; // 获取订单总费用
使用 get_data()
函数,您可以使用订单数据作为数组属性来获取 WooCommerce 订单详细信息。
如果您在一个订单中有多个项目,您还可以使用函数 get_items()
循环订单项目。
请参阅简单示例以了解这一点。
foreach ( $order->get_items() as $item_id => $item ) {
$product = $item->get_product();
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$name = $item->get_name();
$quantity = $item->get_quantity();
$subtotal = $item->get_subtotal();
$total = $item->get_total();
$tax = $item->get_subtotal_tax();
$all_meta = $item->get_meta_data();
$single_meta = $item->get_meta( '_meta_key', true );
$type = $item->get_type();
// 等等...
}
在这里,我们循环订单项目并使用 getter 方法获取值,如我们在上面使用的那样。
因此,在本文中,我们使用:
WC_Order
wc_get_order()
get_data()
get_items()
我希望通过本文介绍,你可以掌握如何获取 WooCommerce 订单详细信息并使用它。
注:本文内容出自 yourblogcoach.com,由 WordPress大学 翻译整理。