¿Cómo obtener el precio original del producto en WooCommerce?

22 mar 2016, 18:15:13
Vistas: 23.5K
Votos: 3

He creado el código para recorrer la lista de productos y mostrar el precio

  $args = array( 'post_type' => 'product', 'posts_per_page' => 100, 'product_cat' => 'hot-deals');
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); 

global $product; 

// Añadir precio original al XML
$xml .= '<Original_price>' . $product->get_display_price( $product->get_regular_price() ) . '</Original_price>';
// Añadir precio con descuento al XML
$xml .= '<Discount_price>' . $product->get_display_price() . '</Discount_price>';

echo $product->get_price_html();

endwhile;
wp_reset_query();

get_price_html() funciona perfectamente y muestra el precio de esta manera:

Desde: $ 621 $ 559

Sin embargo, me gustaría obtener el precio por separado

Puedo obtener el precio de venta con

$product->get_display_price()

El problema es que no puedo obtener el precio original,

Intenté con $product->get_regular_price(), pero no devuelve nada

Y también probé $product->get_display_price( $product->get_regular_price() ), pero devuelve el precio de venta

Entonces, ¿cómo puedo obtener el precio original? Muchas gracias.

0
Todas las respuestas a la pregunta 2
0

Estoy bastante seguro de que el problema es que WP_Query devuelve objetos de publicación, que no son idénticos a los objetos de producto de WooCommerce. Mientras intentas obtener los datos del producto accediendo al global correspondiente, eso no funcionará, especialmente porque la consulta que estás realizando no afecta a ese global. Lo que probablemente haría es, en primer lugar, realizar la consulta con el parámetro fields establecido como ids. En segundo lugar, al recorrer el array de IDs devuelto, te sugeriría obtener el objeto de producto con wc_get_product(), lo cual debería darte toda la información que necesitas.


Nota: Respondí esto para aclarar la diferencia en los objetos devueltos entre WordPress y WooCommerce. Y para dejar claro, aunque product es un CPT (Tipo de Publicación Personalizado), no necesariamente es óptimo usarlo con la consulta estándar de WP. Sin embargo, hay un fuerte argumento de que tu pregunta está fuera de tema, porque trata sobre un plugin de terceros. Por favor, revisa nuestro centro de ayuda para aprender más sobre las pautas de nuestro sitio.

22 mar 2016 19:28:06
1
-1

Para obtener el precio regular dentro del bucle puedes usar:

get_post_meta( get_the_ID(), '_regular_price', true);

Y para el precio de oferta puedes usar:

get_post_meta( get_the_ID(), '_sale_price', true);
26 oct 2017 19:42:15
Comentarios

¿Qué sucede si un plugin está enganchado en woocommerce_get_price_html?

danyo danyo
6 dic 2017 13:09:38