在WooCommerce中程序化添加变量产品

时间:2012-12-05 作者:markware

如何使其成为可变产品并添加变体?变化是否像属性一样处理?

这段代码创建了一个产品并添加了一个属性(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”属性是一种变体。

1 个回复
最合适的回答,由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);

结束