Gestione delle gerarchie delle categorie in WooCommerce

La flessibilità di WordPress è data proprio dal sistema di relazioni tra post, temini e tassonomia.

Questo vale in special modo per le categorie di prodotto in un sistema e-commerce come quello implementato in WooCommerce.

Quindi i termini veri e propri che definiscono la categoria sono nella tabella wp_terms, mentre nella wp_term_taxonomy definiamo il ‘tipo’ di termine, che in questo caso e la categoria, identificata da ‘product_cat’ (o ‘category’ in base alla versione).

In questo caso mi servive impostare programmaticamente la categoria genitore quindi ho definito una funzione per individuare il termine:


def check_categorie(self,name,cnx):
cur = cnx.cursor()
query = "SELECT * FROM wpsx_terms WHERE NAME='" + name + "' LIMIT 1"
result = cur.execute(query)
for row in cur:
idcategoria = row[0]
return idcategoria

Un’altra per identificare l’id genitore:


def check_parent(self,id,cnx):
cur = cnx.cursor()
query = "SELECT term_id,parent,taxonomy FROM wpsx_term_taxonomy where taxonomy = 'product_cat' and term_id = " + str(id) + " LIMIT 1"
result = cur.execute(query)
for row in cur:
idparent = row[1]
return idparent

Ed una per aggiornarla:


def update_parent(self,id,newparent,cnx):
cur = cnx.cursor()
query = "UPDATE wpsx_term_taxonomy SET parent= "+ str(newparent) +" where taxonomy = 'product_cat' and term_id = " + str(id) + " LIMIT 1"
result = cur.execute(query)