Как использовать PUT для добавления пользовательской таксономии в продукт Woocommerce через REST APIPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать PUT для добавления пользовательской таксономии в продукт Woocommerce через REST API

Сообщение Anonymous »

Я немного исследовал этот вопрос, поэтому спрашиваю не случайно. Есть несколько сообщений/ответов, которые начинают адресоваться, но они устарели или не все согласны с тем, как с этим справиться.
Я хочу иметь возможность изменить Пользовательскую таксономию, которую я создал под названием «бренды продуктов» (product_brands), которые назначаются продукту woocommerce через REST API.
Я добавил бренды продуктов в API Woocommerce, используя этот код:

Код: Выделить всё

add_filter( 'woocommerce_rest_prepare_product_object', 'uplvl_rest_api_prepare_brands_tax', 10, 3 );
function uplvl_rest_api_prepare_brands_tax( $response, $object, $request ) {

$product_id = $object->get_id();

if ( empty( $response->data[ 'product_brands' ] ) ) {
$terms = [];

foreach ( wp_get_post_terms( $product_id, 'product_brands' ) as $term ) {
$terms[] = [
'id'   => $term->term_id,
'name' => $term->name,
'slug' => $term->slug,
];
}

$response->data[ 'product_brands' ] = $terms;
}

return $response;
}
Это работает (хотя в некоторых примерах, которые я видел, в аргументах использовался $product вместо $object), и я могу видеть прикрепленные бренды своих продуктов, когда делаю запрос. продукт через вызовы API с использованием этой конечной точки /wp-json/wc/v3/products/3130 (3130 — это реальный продукт).
Я хочу иметь возможность ПУТИТЕ обратно в систему, чтобы изменить или добавить бренды продуктов обратно в продукт.
Насколько я понимаю, я могу использовать woocommerce_rest_pre_insert_product_object, чтобы сделать это, но я не знаю, как это настроить:

Код: Выделить всё

function uplvl_prepare_insert_product( $product, $request ) {

if ( isset( $request['product_brands'] ) ) {
wp_set_object_terms($product['id'], $request['product_brands'], 'product_brands')
}
return $product;
}
add_filter( 'woocommerce_rest_pre_insert_product_object', 'uplvl_prepare_insert_product', 10, 2 );
Я не уверен, следовало ли мне использовать здесь wp_set_post_terms вместо wp_set_object_terms или нет.
Я видел еще один пост о добавлении новых конечных точек отдыха, но я надеюсь, что это только потому, что это были старые посты?

Подробнее здесь: https://stackoverflow.com/questions/791 ... a-rest-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»