Intereting Posts
WordPress JSON API Расширение для создания пользователей В разделе администратора WordPress как я могу ссылаться на страницы подменю, созданные для плагина? Удалить категорию из URL У меня есть собственный блог, но теперь плагин WordPress.com устарел WordPress с поддержкой имени пользователя и файлового менеджера Получать комментарии от публикации и сортировать по значению commentmeta В чем разница между этими двумя методами написания $ вместо jQuery в WordPress Отображать только липкую запись или последнее сообщение в пользовательском цикле Как изменить формат сообщения от Aside to Image для всех сообщений? Условные теги или несколько файлов Является ли константная структура /% post_id% /% postname% быстрее или медленнее, чем просто /% postname%? Используйте override_load_textdomain для перевода кеша и повышения производительности Создание отформатированного табличного меню Как предотвратить публикацию публикации на условиях и вернуться на страницу публикации? Разрешить пользователю загружать изображение и манипулировать им во внешнем интерфейсе

Как назначить определенный атрибут вариации для продукта woocommerce?

Я создаю продукт с вариациями:

// Создает продукт

$post = array( 'post_title' => $title, 'post_content' => $description, 'post_status' => "publish", 'post_excerpt' => $excerpt, 'post_name' => $slug, //name/slug 'post_type' => "product" ); $new_post_id = wp_insert_post( $post); 

// Создает необходимые атрибуты

 $product_attributes = array(); $product_attributes['print_size'] = array( 'name' => 'print_size', 'value' => implode('|', $availableSizes), 'position' => 0, 'is_visible' => 0, 'is_variation' => 1, 'is_taxonomy' => 0 ); $product_attributes['paper_type'] = array( 'name' => 'paper_type', 'value' => implode('|', $availableMaterial), 'position' => 0, 'is_visible' => 0, 'is_variation' => 1, 'is_taxonomy' => 0 ); update_post_meta($new_post_id, '_product_attributes', $product_attributes); 

// Создает вариацию

 $my_post1 = array( 'post_title' => 'SizeType122', 'post_name' => 'post_name222', 'post_status' => 'publish', 'post_parent' => $new_post_id, 'post_type' => 'product_variation', 'guid' => home_url() . '/?product_variation=1' ); $attID1 = wp_insert_post($my_post1); update_post_meta($attID1, '_virtual', 'no'); update_post_meta($attID1, '_downloadable', 'no'); update_post_meta($attID1, '_manage_stock', 'no'); update_post_meta($attID1, '_stock_status', 'instock'); update_post_meta($attID1, '_sku', '300'); update_post_meta($attID1, '_price', '300'); 

Он создает вариацию с атрибутами, как следует, но если я проверю изменение продукта, это приносит мне что-то вроде этого:

 Array ( [0] => Array ( [variation_id] => 1542 [variation_is_visible] => 1 [variation_is_active] => 1 [is_purchasable] => 1 [display_price] => 300 [display_regular_price] => 300 [attributes] => Array ( [attribute_print_size] => [attribute_paper_type] => ) [image_src] => [image_link] => [image_title] => [image_alt] => [image_caption] => [image_srcset] => [image_sizes] => [price_html] => [availability_html] => [sku] => 300 [weight] => kg [dimensions] => [min_qty] => 1 [max_qty] => [backorders_allowed] => [is_in_stock] => 1 [is_downloadable] => [is_virtual] => [is_sold_individually] => no [variation_description] => ) 

)

Таким образом, атрибут пуст, и если я перехожу к административной стороне, я могу видеть «любой размер печати» и «любой тип бумаги» в качестве вариантов. Если я выберу конкретные атрибуты и сохраню в admin, я могу увидеть эти значения в массиве, который я поделил сверху:

  [attributes] => Array ( [attribute_print_size] => 8x10 [attribute_paper_type] => Enhanced Matte Paper ) 

Итак, как я мог сделать это программно?

Solutions Collecting From Web of "Как назначить определенный атрибут вариации для продукта woocommerce?"