Ottenere il prezzo di un prodotto WooCommerce tramite ID

8 mar 2018, 12:22:10
Visualizzazioni: 188K
Voti: 19

Ho creato uno shortcode per ottenere il titolo, l'immagine e il prezzo del prodotto. Sto ottenendo correttamente tutti i dati come titolo, link e immagine ma non riesco ad ottenere il prezzo. Il problema è

add_shortcode('product_data','custom_product_function');
function custom_product_function($atts)
{
    $post_id = $atts['id'];
    $title = get_the_title($post_id);
    $link = get_the_permalink($post_id);
    $price = get_the_price($post_id); // Questa funzione non è corretta
    $image = get_the_post_thumbnail($post_id, 'thumbnail');
    $data ='<div class="releated-products wow fadeInUp"><a href="'.$link.'">'.$image.'<h5>'.$title.'</h5><h6>'.$price.'</h6></a></div>';
    return $data;
}

$price = get_the_price($post_id); Immagino che questa funzione non sia corretta

Qualche idea su come ottenere il prezzo ora.

Grazie

0
Tutte le risposte alla domanda 1
4
49

Puoi creare un oggetto prodotto utilizzando la seguente funzione:

$product = wc_get_product( $post_id );

E dopo potrai accedere a tutti i dati del prodotto. Tutti i metodi disponibili possono essere trovati qui, ma quelli di cui avrai bisogno sono:

$product->get_regular_price();
$product->get_sale_price();
$product->get_price();
8 mar 2018 12:40:00
Commenti

grazie per la risposta. ho già visto quello. sto controllando di nuovo. ma per farlo devo modificare la mia funzione shortcode in modo diverso. ho ragione? c'è un modo per farlo all'interno del mio shortcode?

Accore LTD Accore LTD
8 mar 2018 12:52:30

Basta aggiungere $product = wc_get_product( $post_id ); da qualche parte sopra $price e impostare $price = $product->get_price().

Boris Kuzmanov Boris Kuzmanov
8 mar 2018 14:07:36

Questo ha fatto crashare il mio ambiente locale

Ashwani Shukla Ashwani Shukla
23 ago 2018 15:33:02

Correzione del link alla classe WC_Product e ai suoi metodi:

https://woocommerce.github.io/code-reference/classes/WC-Product.html

stemon stemon
18 feb 2022 19:51:39