Come è organizzato il database di WordPress e WooCommerce?
29 giu 2025 · 5 min di lettura

Da sviluppatore so bene quanto il database sia il cuore di un sito. Va oltre la tabella dei post: WordPress e WooCommerce hanno un ecosistema di tabelle e metadati. Qui lo percorro in cinque tappe.
1. Perché ti interessa davvero
Conoscere dove stanno i dati serve a fare query mirate, a capire un ordine duplicato, a migrare solo il necessario e a non toccare configurazioni a caso.
2. Il cuore di WordPress: le 12 tabelle
Un’installazione standard prevede 12 tabelle di base. Plugin e multisite ne aggiungono altre.
wp_posts— post, pagine, allegati, menu, revisioniwp_postmeta— metadati chiave/valore collegati ai contenutiwp_options— impostazioni del sito e dei pluginwp_usersewp_usermeta— utenti e dati collegatiwp_terms,wp_term_taxonomy,wp_term_relationships— categorie e tagwp_commentsewp_commentmeta— commentiwp_linksè deprecata;wp_termmetacompare in alcune versioni
In pratica wp_posts è il foglio centrale. I meta sono fogli aggiuntivi, in stile chiave/valore, per tutto ciò che non entra nella riga principale.
3. WooCommerce: un upgrade strutturale
WooCommerce riusa le tabelle di WordPress (post_type = product o shop_order) e ne aggiunge di proprie:
woocommerce_sessionswoocommerce_api_keyswoocommerce_order_itemsewoocommerce_order_itemmetawoocommerce_tax_ratesewoocommerce_tax_rate_locationswoocommerce_shipping_zones,woocommerce_shipping_zone_locations,woocommerce_shipping_zone_methodswoocommerce_payment_tokensewoocommerce_payment_tokenmetawoocommerce_logactionscheduler_*per le azioni pianificate
I prodotti sono post con post_type = product. Prezzo, SKU, stock e vendite stanno in wp_postmeta: _price, _regular_price, _sku, total_sales.
4. Relazioni utili sul campo
- Prodotto e variazioni. Le variazioni sono post figli (
product_variation). Prezzi, SKU e stock stanno nei postmeta. Servono per filtri e viste delle varianti. - Prodotto e attributi. Taglie, colori e brand vivono nelle tabelle delle tassonomie. È la base dei filtri in vetrina.
- Ordine e prodotti. Ogni ordine ha righe in
woocommerce_order_items. Da lì si costruiscono report per SKU o categoria. - Ordine e cliente. L’ordine può essere dell’utente registrato oppure collegato via
_billing_emaile_customer_user. - Sessione e carrello.
woocommerce_sessionsconserva il carrello anche senza login. È il punto di partenza per i carrelli abbandonati. - Coupon e ordini. I coupon sono
shop_coupone l’uso è tracciato nei meta dell’ordine. - Action Scheduler. Email, rinnovi e sync ritardati stanno in
wp_actionscheduler_*. - Utente e preferenze. Ruoli e dati custom stanno in
wp_usersewp_usermeta. - Impostazioni globali. Moneta, tasse ed email stanno in
wp_options. - Stock. Il campo
_stocksta nei metadati del prodotto o della variazione. - Pagamento e spedizione. I metodi scelti stanno in
_payment_methode_shipping_method.
5. A cosa serve saperlo
- Query più corte e performance più prevedibili
- Debug di ordini, coupon e azioni pianificate
- Migrazioni in cui copi solo prodotti e ordini
- Pulizia di contenuti orfani e di opzioni rimaste da plugin dismessi