更改WooCommerce 3+中现有产品的产品类型

摩拉德天使:

创建后,我需要在子主题中更改带有功能的woocommerce产品类型,我已经尝试过:

 wp_set_object_terms($product_id, 'variable', 'product_type', true);

创建后触发了我的方法,但类型仍然不变?

LoicTheAztec:

从WooCommerce 3开始,要更改现有产品的产品类型,可以使用以下方法:

/**
 * Change product type.
 *
 * @param int     $product_id       - The product id.
 * @param string  $new_product_type - The new product type
 */
 
// Get the correct product classname from the new product type
$product_classname = WC_Product_Factory::get_product_classname( $product_id, $new_product_type );

// Get the new product object from the correct classname
$new_product       = new $product_classname( $product_id );

// Save product to database and sync caches
$new_product->save();

经过测试并且在所有情况下都可以工作,因为由于wp_set_object_terms()多种原因,它不能很好地工作,请参阅此较早的相关主题新产品将保留其所有现有数据。

有用的参考:WC_Meta_Box_Product_Data save()方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Woocommerce 3中的特定产品标签更改所有产品价格

在Woocommerce 3中添加新产品类型

获取WooCommerce中的所有产品类别

在 Woocommerce 存档页面中显示所有产品类型的库存可用性

如何从当前的WooCommerce产品类别中获取所有产品?

Woocommerce中带有产品类别的产品变体WP_Query

更改Woocommerce 3中特定产品类别的“添加到购物车”文本

用Woocommerce 3中特定产品类别的产品替换加售商品

woocommerce 3中产品的数据库更改

通过WooCommerce 3中的挂钩更改产品价格

Woocommerce产品类型简码

更改WooCommerce产品类型并同时更新状态

在不丢失现有产品的情况下添加 WooCommerce 产品属性

在WooCommerce中更改自定义产品类型的订单运送地址

在Woocommerce中根据产品类别更改货币符号

更改为woocommerce中带有产品查询表格的按钮

在woocommerce产品类型中隐藏选项选择项

Woocommerce中基于产品类型的额外费用

在WooCommerce中根据产品类型隐藏付款方式

在WooCommerce中获取和使用产品类型

更改WooCommerce产品类别标题?

Woocommerce:为具有现有属性的现有产品添加变体

Woocommerce Rest API(PHP)-将现有标签添加到现有产品吗?

在Woocommerce上处理产品类型

Woocommerce后端产品编辑页面中的“向产品类型添加复选框”选项

在WooCommerce 4中以编程方式从自定义产品类型添加新产品

woocommerce所有产品尺寸的列表

从所有产品中获取 Woocommerce 中特定产品属性的术语名称数组

按产品类型查询/过滤woocommerce产品