Публикация на удаленном сайте WordPress с использованием нескольких мета-ключей / мета-значений - PullRequest
0 голосов
/ 15 апреля 2020

Этот код работает нормально, за исключением небольшой проблемы, которую я не могу решить:

$order   = wc_get_order( $order_id );
$amount  = $order->get_total();
$note    = $order->get_customer_note();

$api_response = wp_remote_post( 'https://example.com/wp-json/wp/v2/posts', array(
'headers' => array(
    'Authorization' => 'Basic ' . base64_encode( 'admin:5mMcJGUGNFYq9PxU5P0ad0Np' )
),
'body' => array(
    'title'         => 'Pink Shirt',
    'status'        => 'publish',
    'post_type'     => 'clothes',
    'categories'    => 2,
    'slug'          => 'pink-shirt',
    'meta'          => array(
        'amount'    => $amount, 
        'note'      => $note, 
        'author'    => 1)
    )
));

Проблема в том, что если какая-либо из переменных содержит более одного слова ($note в данном конкретном случае ), затем meta_key и meta_value создаются в базе данных для каждого слова.

Например, примечание клиента: ...

This is a new customer.

... вот что происходит, когда он публикуется на удаленном сайте:

enter image description here

WTF действительно.

Ответ API даже показывает слова как отдельные элементы:

enter image description here

Моим единственным «решением» было использование str_replace() для замены всех пробелов на  . Но это кажется мне безумным.

Какого черта происходит, и как я могу это решить?

1 Ответ

0 голосов
/ 16 апреля 2020

Я смог решить эту проблему, просто сделав это: 'note' => array($note).

Спасибо за ваш отзыв.

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