Hai bisogno di un E-Commerce che funziona davvero?
Contattami Ora!WooCommerce: ottenere dati del prodotto dall’oggetto $product
Se stai sviluppando una personalizzazione su WooCommerce, prima o poi avrai bisogno di accedere alle informazioni del prodotto tramite PHP.
L’oggetto $product
è il cuore di WooCommerce lato backend, e sapere come estrarre ID, SKU, prezzo e altri dati è fondamentale per modifiche, query personalizzate o logiche condizionali.
In questa guida ti mostro come ottenere i principali dati del prodotto (ID, SKU, prezzo, disponibilità, categorie, attributi…) in modo sicuro e compatibile con le ultime versioni di WooCommerce.
Cos’è l’oggetto $product
in WooCommerce
In WooCommerce, ogni prodotto è rappresentato da un oggetto PHP che estende la classe WC_Product
. Questo oggetto contiene tutte le informazioni strutturate relative al prodotto, ed è il punto di accesso standard per:
- ID del prodotto
- SKU (codice articolo)
- Prezzo regolare e prezzo scontato
- Disponibilità
- Descrizione, attributi, categorie, immagini
L’oggetto $product
può essere ottenuto in vari contesti:
- Nei template WooCommerce (
single-product.php
,archive-product.php
, ecc.) - All’interno di hook personalizzati
- Tramite ID prodotto con
wc_get_product( $product_id )
Tipi di oggetti prodotto
WooCommerce ha diverse classi figlie per gestire i diversi tipi di prodotto:
WC_Product_Simple
WC_Product_Variable
WC_Product_Grouped
WC_Product_External
Tutte queste estendono WC_Product
, quindi i metodi di base sono quasi sempre gli stessi, ma con differenze nei comportamenti avanzati.
Esempio base di come ottenere un oggetto prodotto:
$product = wc_get_product( $product_id );
Una volta che hai $product
, puoi accedere ai suoi dati in modo sicuro usando i metodi predefiniti WooCommerce.
Come ottenere ID, SKU, prezzo e molto altro da $product
Una volta che hai un oggetto prodotto in WooCommerce (es. $product = wc_get_product( $product_id );
), puoi accedere facilmente a quasi tutti i dati chiave del prodotto usando i metodi getter ufficiali.
Ecco gli esempi più utili per lo sviluppo.
// Supponiamo tu abbia già un oggetto $product valido
// $product = wc_get_product( $product_id );
/* === IDENTIFICATIVI === */
$product_id = $product->get_id(); // ID del prodotto
$product_sku = $product->get_sku(); // SKU (codice prodotto)
/* === TIPO DI PRODOTTO === */
$product_type = $product->get_type(); // 'simple', 'variable', 'grouped', ecc.
/* === PREZZI === */
$prezzo_attuale = $product->get_price(); // Prezzo corrente (scontato o regolare)
$prezzo_regolare = $product->get_regular_price(); // Prezzo pieno
$prezzo_scontato = $product->get_sale_price(); // Prezzo in offerta (se presente)
/* === IMMAGINI === */
$immagine_id = $product->get_image_id(); // ID dell’immagine in evidenza
$galleria_ids = $product->get_gallery_image_ids(); // Array di ID immagini aggiuntive
/* === DESCRIZIONI === */
$titolo = $product->get_name(); // Nome del prodotto
$slug = $product->get_slug(); // Slug URL del prodotto
$short_description = $product->get_short_description(); // Descrizione breve
$full_description = $product->get_description(); // Descrizione completa
/* === MAGAZZINO === */
$gestione_stock = $product->managing_stock(); // true/false: se WooCommerce gestisce il magazzino
$quantita_stock = $product->get_stock_quantity(); // Quantità disponibile
$disponibile = $product->is_in_stock(); // true/false: è disponibile?
/* === VISIBILITÀ === */
$pubblicato = $product->get_status(); // 'publish', 'draft', ecc.
$catalogo_visibile = $product->get_catalog_visibility(); // 'visible', 'catalog', 'search', 'hidden'
/* === TASSE === */
$tassa_classe = $product->get_tax_class(); // Classe di tassazione ('', 'reduced-rate', ecc.)
$tassa_status = $product->is_taxable(); // true/false: è tassabile?
/* === LINK E URL === */
$url_prodotto = $product->get_permalink(); // URL completo del prodotto
/* === CATEGORIE E TAG === */
$categorie = get_the_terms( $product->get_id(), 'product_cat' ); // array di categorie
$tag = get_the_terms( $product->get_id(), 'product_tag' ); // array di tag
/* === ATTRIBUTI PERSONALIZZATI === */
$attributi = $product->get_attributes(); // array di attributi (es. colore, taglia)
/* === DOWNLOAD (per prodotti digitali) === */
$is_virtual = $product->is_virtual(); // true/false
$is_downloadable = $product->is_downloadable(); // true/false
$download_links = $product->get_downloads(); // array di file scaricabili
/* === ALTRO === */
$peso = $product->get_weight(); // Peso del prodotto
$dimensioni = $product->get_dimensions(); // Stringa con le dimensioni (es. "10 × 5 × 2 cm")
$classe_spedizione = $product->get_shipping_class(); // Classe di spedizione
Come ottenere $product
nei diversi contesti di WooCommerce
Nella pagina prodotto singolo (single-product.php
)
In molti temi WooCommerce, $product
è già disponibile. Ma se non lo è, puoi recuperarlo così:
global $product; // disponibile automaticamente nei template WooCommerce
// Oppure, se hai solo l'ID:
$product = wc_get_product( get_the_ID() );
Nella lista prodotti / archivi (archive-product.php
)
Dentro il loop WooCommerce, puoi fare così:
global $product;
// oppure:
$product_id = get_the_ID();
$product = wc_get_product( $product_id );
Dal carrello (WC()->cart
)
Quando analizzi i prodotti nel carrello, ad esempio per logica personalizzata:
foreach ( WC()->cart->get_cart() as $item ) {
$product = $item['data']; // oggetto WC_Product
// ora puoi usare $product->get_price(), ecc.
}
Da un ordine (es. in thankyou
o order-received
)
Quando lavori su un ordine (WC_Order
), puoi recuperare i prodotti così:
$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item ) {
$product = $item->get_product(); // oggetto WC_Product
$product_id = $product->get_id();
}
Conclusione
Ottenere dati come ID, SKU, prezzo, attributi e stock da un oggetto $product
in WooCommerce è una competenza fondamentale per chi sviluppa o personalizza ecommerce su WordPress.
Conoscere questi metodi ti permette di lavorare in modo pulito, sicuro e aggiornato, evitando hack o pratiche obsolete.
Ma quando il progetto cresce, i prodotti diventano complessi, o servono personalizzazioni avanzate… è il momento di affidarsi a uno sviluppatore WooCommerce esperto.
Hai bisogno di uno sviluppatore WooCommerce?
Mi occupo di sviluppo e ottimizzazione di ecommerce con WooCommerce:
✔️ Personalizzazioni avanzate (checkout, logiche condizionali, UX)
✔️ Snippet PHP su misura e performance ottimizzata
✔️ Supporto tecnico, debugging e manutenzione