Hola.
No indicas cómo hiciste el cambio, si lo hiciste usando un código personalizado tienes que añadirle un condicional para que no se ejecute en las páginas de archivo. Te dejo la información de la documentación:
WordPress Reference > Functions > is_archive()
WordPress Codex > Conditional Tags
WooCommerce > Codex > Conditional Tags
Yo particularmente usaría el condicional is_product()
envolviendo el código para que solo se ejecute en la página de producto, de forma que en todas las demás seguiría viéndose el rango de precios.
Recuerda comentar si con esto lo solucionas y, por favor, recuerda cerrar el debate marcándolo como resuelto cuando así sea, de esta forma nos ayudas a mantener el foro al día.
Buenas Jose Luis
Muchas gracias por tu ayuda, pero no se exactamente donde meterlo. El código que he utilizado lo pongo a continuación, y el objetivo es que en producto no se vea nada pero en shop se vea lo que esta.
function wc_wc20_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( __( 'Desde %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( __( 'Desde %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', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
-
Esta respuesta fue modificada hace 3 años, 7 meses por jose64. Razón: etiquetar código
Entiendo que quieres que se muestre en la página de producto «Desde» y en las páginas de archivo (tienda, categorías, etiquetas) el rango. Este es el código:
function wc_wc20_variation_price_format( $price, $product ) {
// Comprueba que es una página de producto para ejecutar el código.
if ( is_singular( [ 'product' ] ) ) {
// Si es una página de producto modifica la visualización del precio.
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Desde %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( __( 'Desde %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
}
// Si no es una página de producto no modifica nada
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
Es el mismo código que estás usando con el condicional para que se ejecute únicamente si es la página de producto, en las demás páginas no se ejecuta, así que ves la opción por defecto.
Recuerda cerrar el debate marcándolo como resuelto si con esto lo solucionas, así nos ayudas a mantener el foro al día.
Muchísimas gracias!
No era exactamente eso pero me ha servido para ver donde poner los condicionales.