栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何获取WooCommerce订单详细信息

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取WooCommerce订单详细信息

3.0版以上的WOOCOMMERCE订单

自Woocommerce大型主要更新3.0+以来,事情已经发生了很多变化:

  • 对于
    WC_Order
    对象,无法像以前一样直接访问属性,并且会引发一些错误。
  • 现在,对象实例需要使用new
    WC_Order
    以及
    WC_Abstract_Order
    getter和setter方法
    WC_Order
  • 此外,还有一些用于订购商品的新类:
    • WC_Order_Item
      类,
    • WC_Order_Item_Product
      class
    • _
      WC_Order_Item_Tax
      class
    • _
      WC_Order_Item_Shipping
      class
    • _
      WC_Order_Item_Coupon
      class
    • _
      WC_Order_Item_Fee
      class

因此,无法像以前那样在

foreach
循环中访问Orderitems属性,而必须使用这些特定的getter和setter方法]。

使用一些

WC_Order
WC_Abstract_Order
方法(示例):

// Get an instance of the WC_Order object (same as before)$order = wc_get_order( $order_id );$order_id  = $order->get_id(); // Get the order ID$parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…)$user_id   = $order->get_user_id(); // Get the costumer ID$user      = $order->get_user(); // Get the WP_User object$order_status  = $order->get_status(); // Get the order status $currency      = $order->get_currency(); // Get the currency used  $payment_method = $order->get_payment_method(); // Get the payment method ID$payment_title = $order->get_payment_method_title(); // Get the payment method title$date_created  = $order->get_date_created(); // Get date created (WC_DateTime object)$date_modified = $order->get_date_modified(); // Get date modified (WC_DateTime object)$billing_country = $order->get_billing_country(); // Customer billing country// ... and so on ...

获取并访问订单数据属性(在值数组中):

// Get an instance of the WC_Order object$order = wc_get_order( $order_id );$order_data = $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_postpre = $order_data['billing']['postpre'];$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_postpre = $order_data['shipping']['postpre'];$order_shipping_country = $order_data['shipping']['country'];

获取订单项并使用

WC_Order_Item_Product
WC_Order_Item
方法访问数据:

// Get an instance of the WC_Order object$order = wc_get_order($order_id);// Iterating through each WC_Order_Item_Product objectsforeach ($order->get_items() as $item_key => $item ):    ## Using WC_Order_Item methods ##    // Item ID is directly accessible from the $item_key in the foreach loop or    $item_id = $item->get_id();    ## Using WC_Order_Item_Product methods ##    $product      = $item->get_product(); // Get the WC_Product object    $product_id   = $item->get_product_id(); // the Product id    $variation_id = $item->get_variation_id(); // the Variation id    $item_type    = $item->get_type(); // Type of the order item ("line_item")    $item_name    = $item->get_name(); // Name of the product    $quantity     = $item->get_quantity();      $tax_class    = $item->get_tax_class();    $line_subtotal     = $item->get_subtotal(); // Line subtotal (non discounted)    $line_subtotal_tax = $item->get_subtotal_tax(); // Line subtotal tax (non discounted)    $line_total        = $item->get_total(); // Line total (discounted)    $line_total_tax    = $item->get_total_tax(); // Line total tax (discounted)    ## Access Order Items data properties (in an array of values) ##    $item_data    = $item->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'];    // Get data from The WC_product object using methods (examples)    $product        = $item->get_product(); // Get the WC_Product object    $product_type   = $product->get_type();    $product_sku    = $product->get_sku();    $product_price  = $product->get_price();    $stock_quantity = $product->get_stock_quantity();endforeach;

因此,使用

get_data()
method可以使我们访问受保护的数据(关联数组模式)…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号