我想以编程方式为Woocommerce 7.5.1变量产品添加非分类法属性和变体。
完成后,前端的结果是我可以看到产品的属性,但是当一个被选中时,指向错误的变体并且总是相同的变体。
在后端,当编辑产品时,我可以看到正确的属性和变化,但没有选择值。当我尝试为每个变化选择正确的值时,其余的变化值都错过了。我不能给它赋正确的值
当这不是通过编程方式完成时,它可以工作。我不明白发生了什么事。
这是我的一段代码,导致前面描述的:
// **** Product Object and its properties
$obProducto=new WC_Product_Variable();
$obProducto->set_sku('SOME_SKU');
$obProducto->set_name('Some Title');
$obProducto->set_short_description('Some short description');
$obProducto->set_description('Some long description');
$obProducto->set_regular_price('99,99');
$obProducto->set_sale_price('59,99');
$obProducto->set_manage_stock(true);
$obProducto->set_sold_individually(true);
$obProducto->set_backorders('no');
$obProducto->set_stock_status('instock');
$obProducto->set_stock_quantity('1500');
$obProducto->set_low_stock_amount('50');
// **** Attribute to be assigned to the product object
$attribute = new WC_Product_Attribute();
$attribute->set_id(0);
$attribute->set_name( 'ContenidoNeto' );
$attribute->set_options( array( '100ml', '200ml' ) );
$attribute->set_position( 1 );
$attribute->set_visible( 1 );
$attribute->set_variation( 1 );
$attributes[] = $attribute;
$obProducto->set_attributes( $attributes );
$obProducto->save();
// **** The two variations
$variation1 = new WC_Product_Variation();
$variation1->set_parent_id( $obProducto->get_id() );
$variation1->save();
$variation1->set_attributes( array( 'ContenidoNeto' => '100ml' ) );
$variation1->set_regular_price( 9999.99 );
$variation1->save();
$variation2 = new WC_Product_Variation();
$variation2->set_parent_id( $obProducto->get_id() );
$variation2->save();
$variation2->set_attributes( array( 'ContenidoNeto' => '200ml' ) );
$variation2->set_regular_price( 8888.88 );
$variation2->save();
浪费了那么多时间…属性名必须小写
'ContenidoNeto' //Wrong
'contenidoneto' //Right