Начиная с Woocommerce 3, доступны новые методы CRUD .
Но вы не можете использовать метод установки в переменных , как в следующем фрагменте вашего кода:
$set_cat = $product->set_category_ids( array(17) );
$set_tag = $product->set_tag_ids( [18, 19] );
Вместо должно быть только:
$product->set_category_ids( array(17) );
$product->set_tag_ids( [18, 19] );
$product->save();
Затем сразу после того, как вы будете использовать методы получения , чтобы прочитать сохраненные данные и отобразить их:
$get_cats = $product->get_category_ids();
$get_tags = $product->get_tag_ids();
var_dump($get_cats); // NOW OK
var_dump($get_tags); // NOW OK
Для файла function.php
вы должны встроить свой код в функцию, подобную:
function my_custom_function_code(){
// Get a new empty WC_Product instance object
$product = new WC_Product;
# Setter methods (set the data)
$product->set_name("product");
$product->set_regular_price('150');
$product->set_category_ids( array(17) );
$product->set_tag_ids( [18, 19] );
# Save the data
$product->save(); // Always at the end to save the new data
# Getter methods (Read the data)
$get_cats = $product->get_category_ids();
$get_tags = $product->get_tag_ids();
# Display some raw data
var_dump($get_cats); // NOW OK
var_dump($get_tags); // NOW OK
}
Тогда вы можете использовать его где угодно (как в вашем файле index.php) просто с:
my_custom_function_code();