Я пытаюсь создать функцию, которая будет получать заказ по его идентификатору. Почему-то я не могу получить глобальную функцию WooCommerce get_order
работать. Я передаю действительный заказ id
к функции и пытается распечатать его, чтобы убедиться, что он работает. Функция была размещена в моем functions.php
файл.
function getWC_order_details($id){
global $woocommerce;
$order = get_order( $id );
print "<pre>";
print_r($order);
print "</pre>";
}
Я протестировал вывод других данных из функции без проблем.
Прежде всего, сделайте так:
function getWC_order_details($order_id) {
$order = new WC_Order( $order_id );
var_dump($order);
}
После этого используйте его с некоторыми woo_commerce
действие или же фильтр.
function use_after_cart_table(){
getWC_order_details(40);
}
add_action( 'woocommerce_after_cart_table', 'use_after_cart_table' );
Таким образом, после добавления любого товара в корзину, вы увидите после корзины, что есть один массив содержащий все детали.
НОТА : Вы можете использовать любое другое действие или фильтр, и вы можете найти их Вот.
Редакция:
function getWC_order_details($order_id) {
$order = new WC_Order( $order_id );
//var_dump($order);
$order_shipping_total = $order->get_shipping();
$order_shipping_method = $order->get_shipping_methods();
var_dump($order_shipping_total);//Use it for debugging purpose or to see details in that array
var_dump($order_shipping_method);//Use it for debugging purpose or to see details in that array
$_order = $order->get_items(); //to get info about product
foreach($_order as $order_product_detail){
//var_dump($order_product_detail);
echo "<b>Product ID:</b> ".$order_product_detail['product_id']."<br>";
echo "<b>Product Name:</b> ".$order_product_detail['name']."<br><br>";
}
//var_dump($_order);
}
попробуйте это. Это может быть полезно для вас.
function getWC_order_details($id)
{
$array = WC_API_Orders::get_order( $id, $fields );
print "<pre>";
print_r($order);
print "</pre>";
}
Источник:
Имя файла: woocommerce / includes / api / class-wc-api-orders.php