这个问题已经在这里有了答案:
如何获得WooCommerce订单详细信息(4个答案)
2年前关闭。
我正在使用woo-commerce并尝试从数据库中获取所有订单详细信息。我是新手, 无法实现它。我已经创建了order_details.php模板, 可以在其中获取所有订单数据。
谁能帮我吗?
#1【如何在wordpress/woocommerce中获取所有订单详细信息( [重复])】自Woocommerce大型主要更新3.0+以来, 事情已经发生了很多变化:
WC_Order属性不能像以前一样直接访问, 并且会引发一些错误。
现在需要新的WC_Order和WC_Abstract_Order getter和setter方法。
订单项有一些新类:
- WC_Order_Item类。
- WC_Order_Item_Product类。
// Get an instance of the WC_Order object (same as before)
$order = wc_get_order( $order_id );
// Get the order ID
$order_id = $order->
get_id();
// Get the custumer ID
$order_id = $order->
get_user_id();
获取并访问订单数据属性(在值数组中):
$order = wc_get_order( $order_id );
$order_data = http://www.srcmini.com/$order->
get_data();
// The Order data$order_id = $order_data['id'];
$order_parent_id = $order_data['parent_id'];
$order_status = $order_data['status'];
$order_currency = $order_data['currency'];
$order_version = $order_data['version'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method_title = $order_data['payment_method_title'];
$order_payment_method = $order_data['payment_method'];
$order_payment_method = $order_data['payment_method'];
## Creation and modified WC_DateTime Object date string ##// Using a formated date ( with php date() function as method)
$order_date_created = $order_data['date_created']->
date('Y-m-d H:i:s');
$order_date_modified = $order_data['date_modified']->
date('Y-m-d H:i:s');
// Using a timestamp ( with php getTimestamp() function as method)
$order_timestamp_created = $order_data['date_created']->
getTimestamp();
$order_timestamp_modified = $order_data['date_modified']->
getTimestamp();
$order_discount_total = $order_data['discount_total'];
$order_discount_tax = $order_data['discount_tax'];
$order_shipping_total = $order_data['shipping_total'];
$order_shipping_tax = $order_data['shipping_tax'];
$order_total = $order_data['cart_tax'];
$order_total_tax = $order_data['total_tax'];
$order_customer_id = $order_data['customer_id'];
// ... and so on## BILLING INFORMATION:$order_billing_first_name = $order_data['billing']['first_name'];
$order_billing_last_name = $order_data['billing']['last_name'];
$order_billing_company = $order_data['billing']['company'];
$order_billing_address_1 = $order_data['billing']['address_1'];
$order_billing_address_2 = $order_data['billing']['address_2'];
$order_billing_city = $order_data['billing']['city'];
$order_billing_state = $order_data['billing']['state'];
$order_billing_postcode = $order_data['billing']['postcode'];
$order_billing_country = $order_data['billing']['country'];
$order_billing_email = $order_data['billing']['email'];
$order_billing_phone = $order_data['billing']['phone'];
## SHIPPING INFORMATION:$order_shipping_first_name = $order_data['shipping']['first_name'];
$order_shipping_last_name = $order_data['shipping']['last_name'];
$order_shipping_company = $order_data['shipping']['company'];
$order_shipping_address_1 = $order_data['shipping']['address_1'];
$order_shipping_address_2 = $order_data['shipping']['address_2'];
$order_shipping_city = $order_data['shipping']['city'];
$order_shipping_state = $order_data['shipping']['state'];
$order_shipping_postcode = $order_data['shipping']['postcode'];
$order_shipping_country = $order_data['shipping']['country'];
获取订单项并使用WC_Order_Item_Product和WC_Order_Item方法访问数据:
$order = wc_get_order($order_id);
// Iterating through each WC_Order_Item_Product objects
foreach ($order->
get_items() as $item_key =>
$item_values):## Using WC_Order_Item methods ##// Item ID is directly accessible from the $item_key in the foreach loop or
$item_id = $item_values->
get_id();
## Using WC_Order_Item_Product methods ##$item_name = $item_values->
get_name();
// Name of the product
$item_type = $item_values->
get_type();
// Type of the order item ("line_item")$product_id = $item_values->
get_product_id();
// the Product id
$wc_product = $item_values->
get_product();
// the WC_Product object
## Access Order Items data properties (in an array of values) ##
$item_data = http://www.srcmini.com/$item_values->
get_data();
$product_name = $item_data['name'];
$product_id = $item_data['product_id'];
$variation_id = $item_data['variation_id'];
$quantity = $item_data['quantity'];
$tax_class = $item_data['tax_class'];
$line_subtotal = $item_data['subtotal'];
$line_subtotal_tax = $item_data['subtotal_tax'];
$line_total = $item_data['total'];
$line_total_tax = $item_data['total_tax'];
endforeach;
#2尝试此代码。
$args = array(
'post_type' =>
'shop_order', 'posts_per_page' =>
'-1'
);
$my_query = new WP_Query($args);
$orders = $my_query->
posts;
echo "<
/pre>
";
print_r($orders);
echo "<
pre>
";
自定义与你同等的装备。
#3$ my_course_query =新的WP_Query(array(‘ post_type’ => ’ shop_order’ , ‘ post_status’ => ’ wc-completed’ ));
将状态更改为woocoomcece状态
#4你可以使用以下代码
require(dirname(__FILE__) . '/wp-load.php');
global $wpdb;
$orders = get_posts( array(
'post_type'=>
'shop_order', 'posts_per_page' =>
'-1'
) );
你需要包括wp-load.php文件
require(dirname(__FILE__) . '/wp-load.php');
并将全局变量添加为全局$ wpdb; 在此代码之前。
推荐阅读
- 如何在WordPress中使用帖子ID获取帖子缩略图()
- 如何在”感谢页面”和客户电子邮件中将”帐单地址标签”编辑为”送货地址”()
- 如何从一页中排除CSS(或如何重置一页边距)
- 如何显示WordPress中每个类别的帖子数()
- 如何在WordPress中以网格布局显示带有图像的帖子类别()
- 如何在wp中的高级自定义字段上的所有页面中显示图像()
- #yyds干货盘点#大数据基础HDFS练习
- Vue.js 应用性能优化给你专业分析+解决方案#yyds干货盘点#
- #yyds干货盘点# springboot整合JPA访问Mysql