首页  >  文章  >  后端开发  >  如何以编程方式创建具有新属性值的 WooCommerce 产品变体?

如何以编程方式创建具有新属性值的 WooCommerce 产品变体?

Linda Hamilton
Linda Hamilton原创
2024-11-11 04:47:02637浏览

How can I programmatically create WooCommerce product variations with new attribute values?

使用新属性值创建程序化 WooCommerce 产品变体

此问题解决了为现有可变产品创建产品变体的挑战WooCommerce 3 .目标是自动化此过程,同时处理尚不存在的变体的新属性值的创建。

解决方案

提供的解决方案利用自定义 PHP函数名为 create_product_variation()。该函数有两个参数:

  1. $product_id:父变量产品的帖子 ID。
  2. $variation_data:包含变体属性、SKU、价格和库存信息的数组.

该函数首先创建一个产品变体帖子对象。然后使用该对象创建一个新帖子,代表该变体。接下来,创建 WC_Product_Variation 对象的实例并用于设置变体的属性值。

该函数迭代 $variation_data 数组中提供的变体属性。对于每个属性,它检查是否存在相应的分类法。如果不存在,则使用 register_taxonomy() 函数创建分类法。

对于 $variation_data['attributes'] 中指定的每个属性值,该函数检查该术语是否已存在。如果没有,它会使用 wp_insert_term() 创建术语。然后获取术语的 slug 并用于更新变体的帖子元。

其他变体数据,例如 SKU、价格和库存数量,也使用适当的方法设置。请注意,管理库存时,set_manage_stock() 方法必须设置为 true。

最后使用 save() 方法保存变体对象。

使用示例

提供的示例演示了如何创建具有两个属性(“尺寸”和“颜色”)、唯一的 SKU、价格和库存数量:

$parent_id = 746; // Or get the variable product id dynamically

// The variation data
$variation_data =  array(
    'attributes' => array(
        'size'  => 'M',
        'color' => 'Green',
    ),
    'sku'           => '',
    'regular_price' => '22.00',
    'sale_price'    => '',
    'stock_qty'     => 10,
);

// The function to be run
create_product_variation( $parent_id, $variation_data );

执行此代码后,它将创建具有指定属性、价格和库存信息的新产品变体。

以上是如何以编程方式创建具有新属性值的 WooCommerce 产品变体?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn