2016-07-16 33 views
1

我有一个自动导入产品的WooCommerce网站,每周刷新它们。这些产品具有属性调用COLORSIZEWooCommerce自动添加父属性

然而,COLOR红色具有这些子属性(例如)

  • 绯红
  • 可乐红
  • 彪马红

通常,我必须手动添加并分配这些子部分,属性到“父RED”属性,这是很多工作。

我不知道是否有办法自动做到这一点?

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

谢谢。

回答

1

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

这里先解释WooCommerce如何属性和副属性在数据库中设置:

  1. 当你创建一个属性,它会在数据库表wp_woocommerce_attribute_taxonomies
attribute_name attribute_label attribute_id attribute_type attribute_orderby attribute_public 

color   color   1    select   menu_order   0 
  • 每个子属性变为在DB表wp_terms(因此它们是术语)。这里我有3子属性:'black''blue''green'
  • term_id  name  slug  term_group 
    
    8   Black  black  0 
    9   Blue  blue  0 
    10   Green  green  0 
    
  • 这主要属性和他的子属性之间的关系是位于数据库表wp_term_taxonomy
    现在想象你的主属性的slu is是'color'
    然后对于每个子属性term_id你将有'pa_开头的字符串蛞蝓(意思p RODUCT 一个 ttribute)+主属性蛞蝓color
    所以你会得到最后:'pa_color'
    (希望这是明确的)

    现在在此表格中您有一个'count'列,用于统计与此子类别term_id相关的产品数量。
  • 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 
    
  • 在DB表wp_term_relationships你会发现产品(object_id柱,通过例如变化使用)和子属性之间的关系(term_taxonomy_id栏)。正如可以在下面的例子中看到的,子属性被用于由2个产品(object_id):
  • object_id term_taxonomy_id  term_order 
    
    22   8      0 
    40   8      0 
    40   9      0 
    22   10      0 
    

    甲SQL溶液
    对于您是否可以改变数据库表,要更改的有用表格是wp_term_taxonomy数据库表。在wp_terms DB表

    1. 搜索所有子属性term_id
    2. 比较他们在wp_term_taxonomy数据库表中的现有term_id
    3. wp_term_taxonomy用正确的'taxonomy'蛞蝓为每一个创建所有非现有term_id

    这是可能通过PHP SQL查询(您将需要微调,以你的脚非常具体的需求)

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

    一些有用的主题,以SQL wp_term_taxonomy相关:

    +0

    感谢您的回复!将研究它 – Matthias