Получить данные заказа в массиве, чтобы JSON кодировать его в Woocommerce - PullRequest
0 голосов
/ 25 октября 2018

У меня много информации, которая мне нужна от функции woocommerce wc_get_order, ниже приведена часть из нее.

// 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'];

Как мне поместить все это в массив, а затем JSON_ENCODE?

Нужно ли вводить каждое значение отдельно, например

$order_array = array("order id: " . $order_id . ", order currency:" . $order_currency . ", order_version: " . $order_version );

, или есть способ перебрать массив значений для ключа: значение для каждого элемента информации?

1 Ответ

0 голосов
/ 26 октября 2018

Зависит от того, хотите ли вы настроить клавиши или нет, и какой требуется вывод:

  1. JSON ENCODE: Сохранение всех данных как есть:

    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );
    
    // Get the meta data in an unprotected array
    $order_data = $order->get_data();
    
    // Encoding in json
    $json_order_data = json_encode($order_data);
    
  2. JSON ENCODE: Настройка данных , сохранение только некоторых данных и изменение ключей массива:

    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );
    
    $order_data = []; // Initializing
    
    // Set the necessary data in an array with custom keys 
    // using WC_Abstract_Order and WC_Order methods
    $order_data['order_id']       = $order->get_id();
    $order_data['parrent_id']     = $order->get_parent_id();
    $order_data['status']         = $order->get_status();
    $order_data['order_currency'] = $order->get_currency();
    $order_data['order_version']  = $order->get_version();
    $order_data['order_payment_method']       = $order->get_payment_method();
    $order_data['order_payment_method_title'] = $order->payment_method_title();
    ## And so on…
    
    // Encoding in json
    $json_order_data = json_encode($order_data);
    
  3. ФОРМАТИРОВАННАЯ СТРОКА: Настройка данных и сохранение только некоторых данных:

    // Get an instance of the WC_Order object
    $order = wc_get_order( $order_id );
    
    $order_data = []; // Initializing
    
    // Set the necessary data in an array using WC_Abstract_Order and WC_Order methods
    $order_data[] ='order_id: ' . $order->get_id();
    $order_data[] ='parrent_id: ' . $order->get_parent_id();
    $order_data[] ='status: ' . $order->get_status();
    $order_data[] ='order_currency: ' . $order->get_currency();
    $order_data[] ='order_version: ' .  $order->get_version();
    $order_data[] ='order_payment_method: ' .  $order->get_payment_method();
    $order_data[] ='order_payment_method_title: ' .  $order->payment_method_title();
    ## And so on…
    
    // Convert to coma separated string
    $str_order_data = implode( ', ' . $order_data );
    

Связанный: Как получить детали заказа WooCommerce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...