我在Woocommerce版本3+中创建了一个可变产品("父"产品).从Wordpress插件,我想以编程方式创建具有新属性值的产品变体("儿童"产品).
变体属性已在Woocommerce中设置.
因此,每次创建一个变体时,新属性的值也应该以编程方式创建,并在父变量产品中设置.
如何才能做到这一点?可能吗?
更新:我已经编写了更多我想要的代码行,并尝试了很多东西来解决它,使用woocommerce对象,并使用wordpress数据库在数据库中添加关于术语,termmeta,术语与post的关系的缺失数据对象 - 但没有什么能够让它发挥作用.我无法确定错误的地方 - 这就是为什么我无法提供更窄的问题 - 堆栈流更多的事情.
如何从插件中为WooCommerce创建属性?我发现只有:
wp_set_object_terms( $object_id, $terms, $taxonomy, $append);
Run Code Online (Sandbox Code Playgroud)
但这种方法需要某些产品的ID.我需要生成一些没有附加到任何产品的属性.
我想使用属性名称获取 Woocommerce 产品属性的 ID。例如pa_foobar
我知道产品属性是分类法,但 get_taxonomy() 不会返回分类法 ID。我找不到执行此操作的 Woocommerce 功能。
在 Woocommerce 中,我试图找到一种类似于WC_Product
方法的方法set_name()
,或者set_status()
例如设置产品类型,如Simple或Variation。
实际上我使用WC_Product
这样的对象:
$product = new WC_Product;
$product->set_name($data['product']['title']);
$product->set_status('pending');
$product->save();
Run Code Online (Sandbox Code Playgroud)
如果用户勾选“简单产品”或“可变产品”,如何设置产品类型?
任何帮助表示赞赏。
我正在尝试创建一个以编程方式创建可变产品的 Wordpress 插件,但问题是,我想使用之前从管理仪表板手动定义的属性。我需要将属性分配给我正在创建的产品。
这是我正在使用的代码(不是我的,我从这个答案中得到它:以编程方式创建可变产品和 WooCommerce 中的两个新属性):
function addProduct(){
//Create main product
$product = new WC_Product_Variable();
//Create the attribute object
$attribute = new WC_Product_Attribute();
//pa_size tax id
$attribute->set_id( 0 ); // -> SET to 0
//pa_size slug
$attribute->set_name( 'Couleur' ); // -> removed 'pa_' prefix
//Set terms slugs
$attribute->set_options( array(
'Noir'
) );
$attribute->set_position( 0 );
//If enabled
$attribute->set_visible( 1 );
//If we are going to use attribute in order to generate variations
$attribute->set_variation( 1 );
$product->set_attributes(array($attribute)); …
Run Code Online (Sandbox Code Playgroud) 我想用PHP代码以编程方式创建一个新的Woocommerce产品,并且已经使用Woocommerce 3 CRUD方法进行了尝试:
//Woocommerce CRUD
$objProduct = new WC_Product_Simple();
$objProduct->set_name('My Product 1'); //Set product name.
$objProduct->set_status('publish'); //Set product status.
//$objProduct->set_featured(FALSE); //Set if the product is featured. | bool
$objProduct->set_catalog_visibility('visible'); //Set catalog visibility. | string $visibility Options: 'hidden', 'visible', 'search' and 'catalog'.
$objProduct->set_description('My custom long description'); //Set product description.
//$objProduct->set_short_description('My short description'); //Set product short description.
//$objProduct->set_sku('U-123'); //Set SKU
$objProduct->set_price(5.00); //Set the product's active price.
//$objProduct->set_regular_price(5.00); //Set the product's regular price.
//$objProduct->set_sale_price(); //Set the product's sale price.
//$objProduct->set_date_on_sale_from(); //Set date on …
Run Code Online (Sandbox Code Playgroud)