是的,所以我花了一段时间来弄清楚自己,但我终于设法通过编写以下函数来做到这一点:
// @param int $post_id - The id of the post that you are setting the attributes for
// @param array[] $attributes - This needs to be an array containing ALL your attributes so it can insert them in one go
function wcproduct_set_attributes($post_id,$attributes) {
$i = 0;
// Loop through the attributes array
foreach ($attributes as $name => $value) {
$product_attributes[$i] = array (
'name' => htmlspecialchars( stripslashes( $name ) ),// set attribute name
'value' => $value,// set attribute value
'position' => 1,'is_visible' => 1,'is_variation' => 1,'is_taxonomy' => 0
);
$i++;
}
// Now update the post with its new attributes
update_post_Meta($post_id,$product_attributes);
}
// Example on using this function
// The attribute parameter that you pass along must contain all attributes for your product in one go
// so that the wcproduct_set_attributes function can insert them into the correct Meta field.
$my_product_attributes = array('hdd_size' => $product->hdd_size,'ram_size' => $product->ram_size);
// After inserting post
wcproduct_set_attributes($post_id,$my_product_attributes);
// Woohay done!
我希望这个功能可以帮助其他人,如果他们需要在WooCommerce中以编程方式导入多个属性!