Avisos
Vaciar todo

No se muestra el precio en un producto variable  

 
Leonardo
 Leonardo
Usuario experto

Buenos días, estoy teniendo un grave problema con los productos de un cliente, en la imagen que acabo de compartir podrán ver el precio superior y el inferior cuando se selecciona la variación de un producto, el gran problema es que en la parte superior no se actualiza el precio cuando se selecciona un producto (queda en $900 que es el mínimo costo de un producto), podrán ver que en el precio inferior se muestra $1500 (el valor real del producto seleccionado) pero arriba no y esto hace que los clientes se confundan. Me gustaría saber cómo eliminar el precio inferior y que al seleccionar cualquier variación del producto, el precio se actualice en la parte superior (1er rectángulo rojo superior de la imagen). Gracias.

 

Enlace del producto de referencia:  https://www.humita.com.mx/producto/peach/

Firefox Screenshot 2022 10 14T05 35 12.258Z

Contenido solo visible a usuarios registrados

Citar
Respondido : 14/10/2022 6:44 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Leonardo.

El rango de precios mostrara el precios mas bajo y el mas alto, por defecto esos precios no cambian pero bueno vamos aprobar algo a ver si podemos hacer que se modifique:

.- Elimina el código que pusimos en la consulta que hiciste para añadir el texto:

-> https://www.webempresa.com/foro/administracion-wordpress/no-puedo-cambiar-un-texto-con-loco-translate

 

.- Añade lo siguiente al final del archivo functions.php


add_action( 'woocommerce_variable_add_to_cart', 'we_actualizar_precio_con_variación_precio' );

function we_actualizar_precio_con_variación_precio() {
global $product;
$price = $product->get_price_html();
wc_enqueue_js( "
$(document).on('found_variation', 'form.cart', function( event, variation ) {
if(variation.price_html) $('.summary > p.price').html(variation.price_html);
$('.woocommerce-variation-price').hide();
});
$(document).on('hide_variation', 'form.cart', function( event, variation ) {
$('.summary > p.price').html('" . $price . "');
});
" );
}

 

Un Saludo

ResponderCitar
Respondido : 14/10/2022 10:01 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Leonardo
 Leonardo
Usuario experto

He realizado los pasos que me ha compartido y colocado el código en la siguiente dirección: /home/humitaco/public_html/wp-content/themes/Divi/functions.php pero sólo se oculta el precio inferior, sin embargo, el precio superior no muestra el precio actualizado (los $1500) al seleccionar CAJAS: 1 y PUFFS: 1500, envío capture para que puedan verlo.

Firefox Screenshot 2022 10 14T11 07 41.969Z

 

ResponderCitar
Respondido : 14/10/2022 12:12 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Leonardo, 

En este caso prueba eliminar el código anterior y añade los siguientes, si utilizar un plugin como code snippets puede añadir diferentes fragmentos de código y no directamente en el archivo function.php 

En el primero fragmento de código añade este

//Ocultar rando de precios en productos variales
add_filter( 'woocommerce_variable_sale_price_html',
'lw_variable_product_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html',
'lw_variable_product_price', 10, 2 );

function lw_variable_product_price( $v_price, $v_product ) {

// Product Price
$prod_prices = array( $v_product->get_variation_price( 'min', true ),
$v_product->get_variation_price( 'max', true ) );
$prod_price = $prod_prices[0]!==$prod_prices[1] ? sprintf(__('From: %1$s', 'woocommerce'),
wc_price( $prod_prices[0] ) ) : wc_price( $prod_prices[0] );

// Regular Price
$regular_prices = array( $v_product->get_variation_regular_price( 'min', true ),
$v_product->get_variation_regular_price( 'max', true ) );
sort( $regular_prices );
$regular_price = $regular_prices[0]!==$regular_prices[1] ? sprintf(__('From: %1$s','woocommerce')
, wc_price( $regular_prices[0] ) ) : wc_price( $regular_prices[0] );

if ( $prod_price !== $regular_price ) {
$prod_price = '<del>'.$regular_price.$v_product->get_price_suffix() . '</del> <ins>' .
$prod_price . $v_product->get_price_suffix() . '</ins>';
}
return $prod_price;
}

Luego añade otro fragmento de código e incorporar este:

add_action( 'wp_footer', 'dcms_add_script_footer' );

function dcms_add_script_footer() {
if ( ! is_product() ) return;
?>
<script>
jQuery(function ($) {

$('.variations_form').on('woocommerce_variation_has_changed', function () {
const container_price_top = 'p.price';
const container_price_bottom = '.woocommerce-variation-price';

$(container_price_top).empty();

setTimeout(function(){
if ( $(container_price_bottom).is(":visible") ){
const content = $(container_price_bottom).html();
$(container_price_top).html(content);
$(container_price_bottom).hide();
}
}, 500);
});

});
</script>
<?php
}

Guarda los cambios y revisa si con ello te muestra los precios como deseas. 

Un Saludo 

ResponderCitar
Respondido : 14/10/2022 12:50 pm

Cursos Gratuitos WordPress