Buenos días,
Ayer actualicé un plugin que sirve para mostrar únicamente el precio inferior de un producto variable (así no se muestra el rango de precios en la tienda). El caso es que desde esta actualización aparece la palabra "Desde" en la Tienda, adjunto imagen.
El caso es que me interesa que no aparezca esta palabra, que se quede tal como estaba, únicamente el precio.
He contactado con el soporte del plugin y me dicen que sí, que lo van a arreglar y que próximamente van a publicar la nueva actualización. Pero hasta entonces, no se podría insertar código para que provisionalmente, hasta que se publique esa nueva actualización, no aparezca la palabra "Desde"? Es algo que lleva a confusión al usuario por cómo tengo la información de los productos, etc..
Gracias,
Contenido solo visible a usuarios registrados
Hola Francisco.
Desactiva el plugin.
Veo que utilizas el plugin Code Snippets para añadir código.
.- Accede a fragmentos de código y añade uno nuevo.
.- Añade un fragmento de código nuevo y añades lo siguiente:
function we_wc_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'we_wc_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'we_wc_variation_price_format', 10, 2 );
Guardas y revisas si el precio que muestra es el mas bajo y deja de mostrar la palabra " desde: "
Un Saludo
Genial Pepe, ahora se muestra únicamente el precio, sin el "Desde". Tal como quería. Muchas gracias por tu ayuda.
Sin embargo, ahora en los productos rebajados el precio anterior no aparece tachado. Pero seguramente esto se debe al theme o el plugin woocommerce, que también se actualizaron ayer. Te adjunto una imagen por si quieres echarle un vistazo. En cualquier caso me pongo en contacto con el servicio de soporte del tema y el plugin a ver que me dicen.
Lo dicho, muchas gracias!
Fran
@pepesoler Sí, disculpa, era algo que llevaba a la confusión de los usuarios ya que se veían los dos precios. Entonces he quitado el descuento. Simplemente he puesto el precio definitivo.
Pero vaya, si volviese a poner un producto con descuento aparecería tal como figura en la foto que he adjuntado. Si necesitas verlo con el error vuelvo a poner ese mismo producto tal como la foto como ejemplo, quedo pendiente de tus comentarios.
Un saludo,
Hola Franscico Manuel,
En este caso si deseas mostrar tachado los precios en descuento de los productos variables puedes revisar si el siguiente código te permite añadir lo que necesitas.
add_filter('woocommerce_get_price_html', 'elex_display_striked_out_price_for_variable', 200, 2);
function elex_display_striked_out_price_for_variable($price='', $product)
{
if(!$product->is_on_sale()){
return $price;
}
$reg_price = '';
if($product->is_type( 'variable' ))
{
$variations = $product->get_children();
$reg_prices = array();
$sale_prices = array();
foreach ($variations as $value) {
$single_variation=new WC_Product_Variation($value);
array_push($reg_prices, $single_variation->get_regular_price());
array_push($sale_prices, $single_variation->get_price());
}
sort($reg_prices);
sort($sale_prices);
$min_price = $reg_prices[0];
$max_price = $reg_prices[count($reg_prices)-1];
if($min_price == $max_price)
{
$reg_price = wc_price($min_price);
}
else
{
$reg_price = wc_format_price_range($min_price, $max_price);
}
$min_price = $sale_prices[0];
$max_price = $sale_prices[count($sale_prices)-1];
if($min_price == $max_price)
{
$sale_price = wc_price($min_price);
}
else
{
$sale_price = wc_format_price_range($min_price, $max_price);
}
return wc_format_sale_price($reg_price, $sale_price);
}
return $price;
}
Ten en cuenta siempre realizar una copia de seguridad del sitio web antes de añadir cualquier código o hacer un cambio, de esta forma si se genera algún error puedes restaurarla.
Verifica esto y nos comentas como ha ido todo
Un Saludo
Buenos días,
Gracias Karen por tu ayuda. Una vez insertado el código el producto aparece en la Tienda (adjunto captura) con todas las variaciones activas, y el precio antiguo tachado en cada una. La idea sería que apareciese únicamente la variación de precio inferior (con los dos precios, el viejo tachado y al lado el nuevo, como antes). Por otro lado, no se si lo apreciáis, pero el "tachado" no es el habitual de "producto en oferta", la raya es más débil y de un color gris. Cuando antes era más visible y de color naranja, creo recordar.
Y en la página del producto (adjunto captura) ya no aparecen las dos variaciones ya que únicamente aparece la variación seleccionada. Eso sí, con esa raya que tacha el precio tan débil y de color gris. Seguramente la forma en la que aparece tachado el precio sea un problema derivado de la última actualización de Woocommerce o bien el theme, que han sido actualizados a la vez.
Un saludo,
Fran