在 Woocommerce 电子邮件中获取一些订单和订单商品数据 [英] Get some order and order items data in Woocommerce emails
问题描述
我目前正在自定义客户在我的网站上购买后收到的电子邮件(客户处理订单、客户完成订单等).我已将电子邮件文件夹从 Woocommerce 复制到我的子主题.
I am currently customising the emails that customers receive after a purchase on my website (customer-processing-order, customer-completed-order etc etc). I have copied the email folder from Woocommerce to my child theme.
我正在做的是使用我自己的模板,然后使用 Woocommerce Classes/API's/Functions 来引入客户订单的相关详细信息.
What I am using a doing is using my own template and then using Woocommerce Classes/API's/Functions to bring in the relevent details of the customers order.
到目前为止,我已成功添加以下信息:
So far I have managed to add in information for:
- 客户姓名
- 客户订单号
- 订购日期
- 送货/账单地址
- 产品项目名称
- 产品项目数量
我主要通过使用变量函数/类 $order (I.E id; ?>, billing_first_name; ?>) 来完成此操作
I have done this mostly by using the variable function/class $order (I.E id; ?>, billing_first_name; ?>)
我的问题是我在尝试显示产品/商品(单个)价格方面没有成功.我已经查看并搜索了所有方法来做到这一点,但到目前为止我尝试过的一切都失败了.
My problem is I am having no success in trying to get the product / item (individual) price to show. I have looked and searched for all the ways to do this but EVERYTHING I have tried has so far failed.
我也无法打印小计、运输、付款方式和总计(总成本).也许我的做法不对?
I am also having trouble with printing the Sub Total, Shipping, Payment Method and the Total (Overall Cost). Maybe I am going about it in the wrong way?
这些是我用来尝试指导我的链接
These are links I have used to try and guide me
https://businessbloomer.com/woocommerce-easy-get-product-info-title-sku-desc-product-object/
任何帮助都会很棒.这是我的代码...
Any help would be fantastic. Here is my Code ...
<?php
foreach ($order->get_items() as $item_id => $item_data) {
$product = $item_data->get_product();
//PRODUCT NAME
$product_name = $product->get_name();
echo $product_name// THIS WORKS AND PRINTS CORRECTLY
//PRODUCT QUANTITY
$get_quantity = WC_Order_Item::get_quantity();
echo $get_quantity // THIS WORKS AND PRINTS CORRECTLY
//PRODUCT PRICE
$get_price = new WC_Order_Item_Fee::get_amount( $context );
echo $get_price // THIS DOES NOT WORK
// TRYING BELOW ALSO DOES NOT WORK ...
$getproduct = wc_get_product( $item['product_id'] );
$price = $getproduct->get_price();
//HOW WOULD I GET :
/** SUBTOTAL , SHIPPING , PAYMENT METHOD AND TOTAL **/
?>
推荐答案
您的代码中存在一些错误...
There are some errors in your code…
1) 对于订单商品数据:
// Loop though order line items
foreach ($order->get_items() as $item_id => $item ) {
// PRODUCT NAME
$product_name = $item->get_name();
echo $product_name
// PRODUCT QUANTITY
$quantity = $item->get_quantity();
echo $quantity;
// Get the WC_Product Object instance
$product = $item->get_product();
// PRODUCT PRICE
$product_price = $product->get_price();
echo $product_price;
// LINE ITEM SUBTOTAL (Non discounted)
$item_subtotal = $item->get_subtotal();
echo $item_subtotal;
// LINE ITEM SUBTOTAL TAX (Non discounted)
$item_subtotal_tax = $item->get_subtotal_tax();
echo $item_subtotal_tax;
// LINE ITEM TOTAL (discounted)
$item_total = $item->get_total();
echo $item_total;
// LINE ITEM TOTAL TAX (discounted)
$item_total_tax = $item->get_total_tax();
echo $item_total_tax;
endforeach;
参考:在 Woocommerce 3 中获取订单商品和 WC_Order_Item_Product
2) 对于订单数据:
// PAYMENT METHOD:
$payment_method = $order->get_payment_method(); // The payment method slug
$payment_method_title = $order->get_payment_method(); // The payment method title
// SHIPPING METHOD:
$shipping_method = $order->get_shipping_method(); // The shipping method slug
// SHIPPING TOTALS:
$shipping_total = $order->get_shipping_total(); // The shipping total
$shipping_total_tax = $order->get_shipping_tax(); // The shipping total tax
// DISCOUNT TOTAL
$shipping_total = $order->get_total_discount(); // The discount total
// ORDER TOTALS
$total = $order->get_total(); // The order total
$total_tax = $order->get_total_tax(); // The order tax total
这篇关于在 Woocommerce 电子邮件中获取一些订单和订单商品数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!