Этот код работает нормально, за исключением небольшой проблемы, которую я не могу решить:
$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.
... вот что происходит, когда он публикуется на удаленном сайте:
WTF действительно.
Ответ API даже показывает слова как отдельные элементы:
Моим единственным «решением» было использование str_replace()
для замены всех пробелов на
. Но это кажется мне безумным.
Какого черта происходит, и как я могу это решить?