Woocommerce: отправьте JSON на внешний сервер после оформления заказа - PullRequest
0 голосов
/ 06 июня 2018

Мне нужна ваша помощь с woocommerce 3.3.Мне нужно отправить JSON с данными заказа после оформления заказа в следующем формате:

json = {
    “partner”:
{
    “aid”:<APIUserID>,
    “password”:<APIUserPass>
    },
    “customer”:
    {
        “client_name”:<CustomerName>,
        “client_lastname”:<CustomerLastName>,
        “client_phone”:<7-999-9999999>,
        “client_email”:<email>,
        “promo”:< coupon_codes>
        },
    “items”:
    [
{“prod_id”:<ProductID_1>,”quantity”:<Quantity_1>},
…
{“prod_id”:<ProductID_2>,”quantity”:<Quantity_2>}
]
}

Google не помог мне.Вот и все, что у меня есть на данный момент:

<?php
function action_woocommerce_new_order( $order_id ) {

$order = wc_get_order( $order_id );
    $order->get_billing_first_name();
    $order->get_billing_last_name();
    $order->get_billing_phone();
    $order->get_billing_email();

    // I need to get products list
    // And I need to send this to another server with JSON

    };

    // add the action
    add_action( 'woocommerce_new_order', 'action_woocommerce_new_order', 10, 3 );

1 Ответ

0 голосов
/ 06 июня 2018

Чтобы получить Продукты, используйте это:

$line_items = $order->get_items();
foreach ( $line_items as $item ) {
  // product
  $product = $order->get_product_from_item( $item );

  // now you can get the data from $product array
}

Чем поместите ваши данные в массив с вашим форматом и используйте "json_decode ()"

Редактировать: поместите ваши данные вот так вмассив:

$my_array = array(
'partner' => array(
                'aid' => '123',
                'passwd' => '123',
            ),
'customer' => array(
                'client_name' => 'abs',
                'client_lastname' => '123'
            ),
 // ....and so on ....
);

, затем преобразовать массив в json:

$to_json = json_encode($my_array);

проверить результат:

<code>echo '<pre>';
var_dump($to_json);
echo '
';

должно выглядеть так:

string(97) "{
    "partner":{
        "aid":"123",
         "passwd":"123"
    },
    "customer":{
        "client_name":"abs",
        "client_lastname":"123"
    }
}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...