WooCommerce - Mostrare il costo di spedizione nella pagina del prodotto
Sto sviluppando un sito eCommerce utilizzando WooCommerce per un cliente, e vorrebbero poter mostrare il costo di spedizione di un prodotto direttamente nella pagina del prodotto (perché è così che funziona nel loro vecchio sito). È possibile farlo? Ho cercato in giro e non ho trovato nulla di definitivo, e anche se esiste una domanda simile qui su StackExchange, nessuno ha risposto alla domanda.
So che esiste un plugin da 79$ per fare questo, ma c'è un modo per impostare il costo di spedizione per singolo articolo? Preferirei evitare di acquistare un plugin.

Puoi mostrare i costi di spedizione per articolo in WooCommerce 2.x.
Poiché hai impostato i prezzi come fissi e per articolo, puoi visualizzarli nella descrizione del prodotto semplicemente scrivendoli nella descrizione, oppure puoi accedere alla classe di spedizione per l'articolo (è una tassonomia) "product_shipping_class" che può essere assegnata a ogni prodotto singolarmente o tramite modifica rapida a tutti i prodotti.
Come mostrarlo in un template di prodotto? Ogni pagina prodotto è suddivisa in una directory chiamata woocommerce. Puoi copiare quella directory dalla cartella del plugin di WooCommerce direttamente nella tua cartella del tema. Una volta lì, puoi apportare qualsiasi modifica senza che futuri aggiornamenti sovrascrivano le modifiche al tuo tema. Ecco il link alle istruzioni per i file del tema woocommerce.
Quindi inizi con la pagina 'single-product.php'. Questo è il loop principale per la pagina del singolo prodotto, e poi 'content-single-product.php' che dettaglia gli hook all'interno del template del prodotto.
A seconda di dove vuoi mostrare le informazioni di spedizione, puoi ora accedere ai termini assegnati al prodotto (nel caso tu abbia tariffe diverse per prodotti diversi). Usa get_the_terms( $post->ID, 'product_shipping_class'). Per maggiori informazioni su come lavorare con questa funzione vedi questo post.
Utilizzando un po' di php per analizzare l'array, conoscerai la classe di spedizione e potrai quindi mostrare informazioni sui costi di spedizione con un calcolo basato sulla classe di spedizione restituita.
Ci sono alcuni altri modi per farlo che coinvolgono l'oggetto della classe di spedizione, ma questo dovrebbe aiutarti a iniziare.

Grazie per questo Steve, ho solo una domanda di follow-up - ho usato lo snippet/chiamata che hai messo sopra adattandolo per creare prima una variabile e poi ho fatto echo della variabile nel punto giusto del template. Però stampa solo la parola 'Array'. Il mio PHP non è il massimo, quindi non sono sicuro su come procedere da qui? In WC, ho creato una Classe di Spedizione per ogni prezzo (Consegna: £3.00, Consegna: £4.00 ecc), e ho assegnato un costo a ciascuna nella sezione Spedizione delle impostazioni.

Prova a stampare la variabile con var_dump($variable). Dovresti vedere cosa c'è nell'array. Puoi poi chiamare gli elementi specifici in base alla loro struttura nell'array.

Sì, l'articolo con cui ho testato ha una classe di spedizione chiamata Consegna: £3.00, che ho collegato alla tabella di spedizione Flat Rate, con un costo di £3.00. Ho confermato che funziona, perché quando aggiungo l'articolo al carrello, il costo di consegna mostra £3.00

Inoltre, c'è una soluzione nella classe $product. Devi assicurarti di chiamare il global $product. Puoi chiamare le classi con il codice php echo $product->get_price_html(); per vedere la classe del prodotto nelle pagine dei prodotti.

Ok, ho aggiunto <?php echo $product->get_shipping_class(); ?>
al template, e stampa lo slug della classe di spedizione! Ci siamo quasi! Come posso fare in modo che questa chiamata stampi il nome del termine invece dello slug? Grazie per l'aiuto finora :)

Vecchio post ma potrebbe essere utile per visualizzare il prezzo del costo di spedizione
<?php
$slug = $product->get_shipping_class_id();
$slugobject = get_term_by('term_taxonomy_id', $slug, 'product_shipping_class');
echo $slugobject->description;?>
Questo script funzionerà per il tipo di spedizione a tariffa fissa:
global $product; /* Rimuovi se già impostato.. */
$shipping_class = $product->get_shipping_class();
$flat_rate = new WC_Shipping_Flat_Rate;
$symbol = get_woocommerce_currency_symbol();
echo $symbol . $flat_rate->flat_rates[$shipping_class]['cost'];
