2016-07-16 34 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