将WooCommerce自定义产品属性转换为定义的产品属性

时间:2016-08-14 15:32:38

标签: php mysql wordpress woocommerce attributes

我正在尝试使用 WooCommerce的Layered Nav属性过滤器侧边栏小部件在WooCommerce商店中过滤约30,000种产品。这需要使用预定义的产品属性分类,而不是在每个产品的基础上使用自定义属性。

商店中的每件商品都有一个导入的自定义“品牌”属性。在导入产品之前,我在wp-admin中创建了一个名为 'Brand' pa_brand )的属性分类。但是,导入的产品尚未将品牌属性(和术语名称)添加到品牌( pa_brand )分类中。相反,所有产品都有一个名为 'Brand' 的自定义属性,该属性未与 pa_brand 分类法相关联。

是否有人知道如何将自定义产品属性转换为预定义分类中定义的属性(尚未创建条款)?

我认为我需要运行一个执行以下操作的PHP脚本,但不知道我是否错过了任何步骤:

  1. 获取数据库中所有产品的ID数组
  2. 遍历每个产品ID(foreach)
      来自每个产品ID的
    • get_attributes() - 这将返回自定义“品牌”属性(尚无pa_brand分配)
    • 检查:如果品牌术语已存在于pa_brand分类中,则不执行任何操作;如果没有,请将该术语添加到pa_brand分类法
    • 将产品分配给pa_brand分类中的术语
    • 删除旧的自定义品牌产品属性
  3. 我不确定如何最好地执行此操作,因此非常感谢任何帮助。

    PS:为了说明“自定义属性”与分类中定义的属性之间的区别,我在WooCommerce中编辑产品时添加了 2个截图。请注意,如果不是来自定义的分类,则可以更改属性的名称。

    分类中定义的属性:

    Attributes defined in taxonomy

    自定义属性:

    Custom attributes

    由于

1 个答案:

答案 0 :(得分:0)

看起来某人之前已经这样做过了 - https://gist.github.com/birgire/0ed300ae4436fcaf508c