WooCommerce自动添加Parent属性

时间:2016-07-16 14:16:44

标签: php wordpress woocommerce attributes term

我有一个带有自动导入产品的WooCommerce网站,每周刷新一次。这些产品的属性称为 COLOR SIZE

但是, COLOR 红色具有这些子属性(例如)

  • 深红色
  • 可乐红
  • Puma Red

通常,我必须手动添加并将这些子属性分配给"父RED"属性,这是很多工作。

我想知道是否有办法自动执行此操作?

例如,如果属性包含单词RED,则将其分配给父属性RED。

感谢。

1 个答案:

答案 0 :(得分:2)

这可以看作一个奇怪的答案。首先,它应该可以帮助您了解WordPress / WooCommerce数据库中的情况,如果您对数据库SQL或MySQL有所了解,它可能是一种很好的选择。

首先解释如何在数据库中设置WooCommerce属性和子属性:

  1. 创建属性时,它会在数据库表 wp_woocommerce_attribute_taxonomies 上进行。
  2. attribute_name  attribute_label attribute_id    attribute_type  attribute_orderby   attribute_public
    
    color           color           1               select          menu_order          0
    
    1. 每个子属性都在数据库表格中显示 wp_terms (因此它们是条款)。这里我有3个子属性: 'black' 'blue' 'green'
    2. term_id     name        slug        term_group
      
      8           Black       black       0
      9           Blue        blue        0
      10          Green       green       0
      
      1. 此主要属性与其子属性之间的关系位于数据库表 wp_term_taxonomy 中。
        现在想象一下你的主属性的slu <<是 'color'
        然后对于每个子属性 term_id ,您将有一个以 'pa_ 开头的slug字符串(表示 p < / strong> roduct a ttribute)+主要属性s​​lug color
        所以你最终会得到: 'pa_color'
        (希望这很清楚)

        现在,在此表格中,您有一个&#39; count&#39; 列,用于计算与此子类别term_id相关的产品数量。
      2. term_taxonomy_id    term_id     taxonomy    description parent  count
        
        8                   8           pa_color                0       2
        9                   9           pa_color                0       1
        10                  10          pa_color                0       1
        
        1. 在数据库表 wp_term_relationships 中,您会发现产品之间的关系( object_id 列,例如由变体使用)和子属性( term_taxonomy_id 列)。正如您在下面的示例中看到的,子属性由2个产品(object_id)使用:
        2. object_id   term_taxonomy_id        term_order
          
          22          8                       0
          40          8                       0
          40          9                       0
          22          10                      0
          
            

          SQL解决方案
            如果您可以更改数据库表,那么要更改的有用表是 wp_term_taxonomy 数据库表。

               
              
          1. term_id 数据库表中搜索所有子属性 wp_terms
          2.   
          3. 将它们与 term_id 数据库表格中的现有 wp_term_taxonomy 进行比较
          4.   
          5. 使用正确的 term_id slug为 wp_term_taxonomy 中的所有现有 'taxonomy' 创建每一个。
          6.         

            这可以通过PHP 进行SQL查询(您需要根据您的特定需求进行微调)

          我希望这会对你有所帮助。

          一些与SQL相关的有用线程 wp_term_taxonomy