我不确定您使用的是哪个WooCommerce版本,但在最新版本(3.3.5)中,WC_Product_Attribute
没有set_taxonomy()
方法所以我把它改成:
$attribute_object->set_id( 1 ); // set the taxonomy ID
其次,这里你应该通过
array
术语ID和非
string
: (在本例中,
123
是术语的ID
Yes
“箔片”或
pa_foil
分类法)
$attribute_object->set_options( \'yes\' ); // incorrect
$attribute_object->set_options( [ 123 ] ); // correct
总之,我使用的代码如下:
// Array of $taxonomy => WC_Product_Attribute $attribute
$attributes = $product->get_attributes();
$term = get_term_by( \'name\', \'Yes\', \'pa_foil\' );
// Or use $term = get_term_by( \'slug\', \'yes\', \'pa_foil\' );
// Attribute `options` is an array of term IDs.
$options = [ $term->term_id ];
// Or set a static ID: $options = [ 123 ];
$attribute_object = new WC_Product_Attribute();
$attribute_object->set_name( \'pa_foil\' );
$attribute_object->set_options( $options );
$attribute_object->set_visible( 1 );
$attribute_object->set_variation( 0 );
$attribute_object->set_id( 1 );
$attributes[\'pa_foil\'] = $attribute_object;
$product->set_attributes( $attributes );
$product->save();