Obtener el precio de un producto WooCommerce por ID

8 mar 2018, 12:22:10
Vistas: 188K
Votos: 19

Hice un shortcode para obtener el título, imagen y precio del producto. Estoy obteniendo correctamente el título, enlace e imagen pero no obtengo el precio. El problema está en

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); // Esta función no es correcta
    $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); Supongo que esta función no es correcta

¿Alguna idea de cómo obtener el precio ahora?

Gracias

0
Todas las respuestas a la pregunta 1
4
49

Puedes crear un objeto de producto utilizando la siguiente función:

$product = wc_get_product( $post_id );

Y después de eso podrás acceder a todos los datos del producto. Todos los métodos disponibles se pueden encontrar aquí, pero los que necesitarás son:

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

gracias por la respuesta. ya lo revisé. verificando de nuevo. pero para eso necesito cambiar mi función de shortcode de manera diferente. ¿estoy en lo correcto? ¿hay alguna manera de hacerlo dentro de mi shortcode?

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

Solo agrega $product = wc_get_product( $post_id ); en algún lugar arriba de $price y configura $price = $product->get_price().

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

Esto hizo fallar mi entorno local

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

Corrección del enlace de la clase WC_Product y sus métodos:

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

stemon stemon
18 feb 2022 19:51:39