如何使其成为可变产品并添加变体?变化是否像属性一样处理?
这段代码创建了一个产品并添加了一个属性(XL大小),但我不能将该属性用作变体、宽度和自定义价格(等等)。
这是一个通过ajax调用的函数
function createnewproduct(){
$new_post = array(
\'post_title\' => "Custom Variable",
\'post_content\' => \'Lorem ipsum dolor sit amet...\',
\'post_status\' => \'publish\',
\'post_type\' => \'product\'
);
$skuu = randomsku(\'csm\',\'custom\',6);
$post_id = wp_insert_post($new_post);
update_post_meta($post_id, \'_sku\', $skuu );
update_post_meta( $post_id, \'_price\', "25" );
//made it variable but variations wont be added!
wp_set_object_terms ($post_id, \'variable\', \'product_type\');
wp_set_object_terms( $post_id, \'XL\', \'pa_size\' );
//everything works well but
//how do i make the "pa_size" attribure a variation?
update_post_meta( $post_id, \'_visibility\', \'search\' );
update_post_meta( $post_id, \'_stock_status\', \'instock\');
}
此函数在woocommerce中声明添加的新产品是可变产品,并添加“size”属性。问题是我们如何告诉woocommerce“size”属性是一种变体。
最合适的回答,由SO网友:markware 整理而成
找到了解决方案,使产品属性成为变体。假设我们有:
wp_set_object_terms( $post_id, \'XL\', \'pa_size\' );
上面是一个自定义属性(大小属性)。为了使其成为变体,您需要执行以下操作:
$thedata = Array(\'pa_size\'=>Array(
\'name\'=>\'pa_size\',
\'value\'=>\'\',
\'is_visible\' => \'1\',
\'is_variation\' => \'1\',
\'is_taxonomy\' => \'1\'
));
update_post_meta( $post_id,\'_product_attributes\',$thedata);