wordpress — Ошибка: идентификатор клиента недействителен — WooCommerce Rest Api

При попытке создать заказ через WooCommerce Rest Api, я получаю это сообщение об ошибке: Ошибка: идентификатор клиента недействителен.

Однако идентификатор клиента находится в запросе:

$data = '{
"order": {
"status": "processing",
"customer_id": 36,
"currency": "",
"billing_address": {
"first_name": "",
"last_name": "",
"company": "",
"address_1": "",
"address_2": "",
"city": "",
"state": "",
"postcode": "",
"country": "",
"email": "",
"phone": ""},
"shipping_address": {
"first_name": "",
"last_name": "",
"company": "",
"address_1": "",
"address_2": "",
"city": "",
"state": "",
"postcode": "",
"country": ""},
"line_items": [
{
"id": null,
"quantity": 1,
"product_id": 271,
},
{
"id": null,
"quantity": 3,
"product_id": 273,
}
],
}
}';

Полный код

    $client = new WC_API_Client( 'http://mywebsite.com', 'key', 'secret', $options );
$data = '{
"order": {
"status": "processing",
"customer_id": 36,
"currency": "",
"billing_address": {
"first_name": "",
"last_name": "",
"company": "",
"address_1": "",
"address_2": "",
"city": "",
"state": "",
"postcode": "",
"country": "",
"email": "",
"phone": ""},
"shipping_address": {
"first_name": "",
"last_name": "",
"company": "",
"address_1": "",
"address_2": "",
"city": "",
"state": "",
"postcode": "",
"country": ""},
"line_items": [
{
"id": null,
"quantity": 1,
"product_id": 271,
},
{
"id": null,
"quantity": 3,
"product_id": 273,
}
],
}
}';

$client->orders->create($data);

} catch ( WC_API_Client_Exception $e ) {

echo $e->getMessage() . PHP_EOL;
//echo $e->getCode() . PHP_EOL;

if ( $e instanceof WC_API_Client_HTTP_Exception ) {

print_r( $e->get_request() );
//print_r( $e->get_response() );
}
}

Я проверил этот пост:
https://github.com/woothemes/woocommerce/issues/8561

И я могу подтвердить, что ни один из файлов .htacess не имеет этой проблемы. Или даже выглядеть так.

1

Решение

Ответы только по ссылке не принимаются на SO :), поэтому я приведу некоторые объяснения. Вы используете неверную структуру данных, пожалуйста, смотрите мой ответ в следующей теме: Woocommerce создать заказ с текстом на иврите, используя API-интерфейс возвращает ошибку

Правильная структура данных приведена ниже для вашей справки. Возможно, отсутствуют некоторые ключи, полный список пар ключ / значение, которые вы можете передать API, см. В документации здесь: http://woothemes.github.io/woocommerce-rest-api-docs/#create-an-order

$p = $client->orders->create(
array (
'payment_details' => array(
"method_id" => "bacs",
"method_title" => "Direct Bank Transfer",
"paid" => true
),

'billing_address' => array(
"first_name" => "אֱלֹהִ֑ים",
"last_name" => "Almighty",
"address_1" => "969 Market",
"address_2" => "",
"city" => "San Francisco",
"state" => "CA",
"postcode" => "94103",
"country" => "US",
"email" => "[email protected]",
"phone" => "(555) 555-5555"),

'shipping_address' => array(
"first_name" => "אֱלֹהִ֑ים",
"last_name" => "Almighty",
"address_1" => "969 Market",
"address_2" => "",
"city" => "San Francisco",
"state" => "CA",
"postcode" => "94103",
"country" => "US"),

'line_items' => array(
array(
'product_id' => 579,
'quantity' => 2
)
),

'shippling_lines' => array(
array(
'method_id' => 'flat_rate',
'method_title' => 'Flat Rate',
'total' => 10
)
),


));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]