maaria
Encontré muchas respuestas, pero ninguna funciona para productos variables. Me gustaría mostrar tanto el precio de venta como el precio regular para productos variables.
global $product;
if( $product->is_on_sale() ) {
$sale_price = $product->get_sale_price();
}
$regular_price = $product->get_regular_price();
Esto está funcionando, pero solo si es un producto normal. Creo que debe haber una posibilidad incluso para las variaciones del producto, pero no la encuentro.
Cualquier ayuda es apreciada
LoicTheAztec
Para precios en productos variables, necesita usar diferentes métodos específicos para WC_Product_Variable
Clase. Un producto variable está hecho de múltiples variaciones del productopor lo que los precios de un producto variable son los precios de las variaciones de su producto.
Puede obtener los precios mínimos o máximos de un producto variable como:
global $product;
// Regular price min and max
$min_regular_price = $product->get_variation_regular_price( 'min' );
$max_regular_price = $product->get_variation_regular_price( 'max' );
// Sale price min and max
$min_sale_price = $product->get_variation_sale_price( 'min' );
$max_sale_price = $product->get_variation_sale_price( 'max' );
// The active price min and max
$min_price = $product->get_variation_price( 'min' );
$max_price = $product->get_variation_price( 'max' );
Para un producto variable, el método is_on_sale()
volverá verdadero si una de sus variaciones de producto está en oferta…
También puedes usar el método get_variation_prices()
eso le dará una matriz multidimensional de todos los precios de las variaciones del producto (precios activos, regulares y de venta) establecidos en el producto variable.