¿Cómo mostrar precios variables por defecto en WooCommerce?

10 oct 2013, 19:19:30
Vistas: 36K
Votos: 3

Me gustaría mostrar el precio variable por defecto en la "pestaña de precio desde" en la página de producto individual, y no tener el precio "desde".

Es confuso para el comprador ver un precio "desde" y debajo un precio para cada variación, que cambia una vez que se elige una variación.

ver imagen adjunta

Así que en lugar de tener dos conjuntos de campos de precio, quiero mostrar solo uno, ya sea para un producto simple o variable.

ejemplo de visualización de precios variables en WooCommerce

2
Comentarios

¿Ya has buscado en el sitio?

kaiser kaiser
10 oct 2013 20:10:32

Respondí a una pregunta muy similar en esta respuesta aquí: https://stackoverflow.com/questions/43617537/move-woocommerce-variation-price/49414293#49414293

Lucas Bustamante Lucas Bustamante
21 mar 2018 21:08:03
Todas las respuestas a la pregunta 2
0

La función woocommerce_template_single_price() que maneja la visualización del precio "normal" es enchufable (pluggable), lo que significa que puede ser anulada colocando esto en tu archivo functions.php:

//anular la función de WooCommerce
function woocommerce_template_single_price() {
    global $product;
    if ( ! $product->is_type('variable') ) { 
        woocommerce_get_template( 'single-product/price.php' );
    }
}

Esto funciona porque en woocommerce-template.php la función se inicia de esta manera:

if ( ! function_exists( 'woocommerce_template_single_price' ) ) {
    function woocommerce_template_single_price() {
        woocommerce_get_template( 'single-product/price.php' );
    }
}

Como puedes ver, la condición dice si la función no existe, pero la función ya existe. La que colocamos en functions.php será utilizada porque se inicia antes.

Para mostrar el precio de variación cuando se carga una página de producto individual con un producto variable, debes seleccionar una variación de producto predeterminada en la página de edición del producto.

10 oct 2013 21:29:52
0

Estoy usando el tema "Porto" y también tuve este problema. Puedes resolver el problema colocando este código en tu archivo functions.php de tu tema hijo:

// Precio más barato

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 );

function wc_wc20_variation_price_format( $price, $product ) {
    // Precio Principal
    $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] );

    // Precio de Oferta
    $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 = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
    }

    return $price;
}

Entonces tu precio se mostrará como un precio único y será el precio más barato de tu producto variable. Funciona. Lo he usado.

20 feb 2016 23:55:50