WooCommerce: ottenere dati del prodotto dall’oggetto $product
19/06/25
6 minuti

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


Hai bisogno di un E-Commerce che funziona davvero?
Contattami Ora!