Hola,
Estoy desarrollando un ecommerce con Woocommerce y en los productos variables me gustaría añadir, delante del precio final seleccionado, un texto como "Tu selección". He buscado bastante información pero no encuentro la forma, en productos sencillos sí modificando el price.php. Adjunto imagen.
URL del sitio: Contenido solo visible a usuarios registrados
Hola Alan.
Veo que ya lo añadiste:
Genial !!!! me alegra que lo solucionaras 😉
Existe una función que permite añadir texto al lado del precio, digamos por ejemplo que quieres añadir un texto " Iva incluido "
.- añadirnos el siguiente código al archivo fuctions.php
function custom_price_message( $price ) {
global $post;
$product_id = $post->ID;
$textafter = ' (IVA incluido)'; //texto que vamos agregar
return $price . '' . $textafter . ''; //class textafter para el CSS
}
add_filter( 'woocommerce_get_price_html', 'custom_price_message' );
En este caso añadimos el texto " IVA incluido " que puedes modificar y añadir el que tu quieras.
Un saludo
Hola Pepe,
Sí, justo accedí a wp-content/plugins/woocommerce/templates/single-product/add-to-cart/variable.php y ahí añadí el texto, pero tengo dos cuestiones:
1. ¿Cómo puedo dejar este cambio fijo y que no afecte a posible update de Woocommerce? ¿En functions.php habría alguna manera?
2. Me gustaría poner el texto que he colocado y el precio debajo del último atributo, como marco en rojo en la imagen.
Muchas gracias!
Hola Alan.
Wordpress distribuye las posiciones de los bloques en un orden, para que te hagas la idea, las posiciones de la pagina de productos estaría en este orden:
woocommerce_template_single_title - 5
woocommerce_template_single_price - 10
woocommerce_template_single_excerpt - 20
woocommerce_template_single_add_to_cart - 30
woocommerce_template_single_meta - 40
woocommerce_template_single_sharing - 50
El valor final es el que determina la posición dentro de la pagina, es decir el número que aparece a la derecha de cada uno indica la prioridad del mismo. Por lo tanto los de un número inferior están más arriba es decir, que tienen más prioridad.
Si te fijas en la lista anterior, el precio tiene un número menor que el correspondiente a “Añadir al carrito“.
woocommerce_template_single_price - 10
woocommerce_template_single_add_to_cart - 30
Si lo que buscamos es que el precio aparezca después del botón de añadir al carrito deberíamos asignarle al primero, un número superior a 30, para eso podemos añadir un snippet en el archivo fuctions.php que cambie la posición:
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 35 );
¿ que hemos realizado?
Lo primero fue eliminar el precio de su posición original con remove_action( y después lo volvemos añadir en la posición 35 con add_action
¿Cómo puedo dejar este cambio fijo y que no afecte a posible update de Woocommerce?
Copia la carpeta templates que tienes dentro de plugins/woocommerce a la carpeta woocommerce que tienes dentro de wp-content/themes/tu_plantilla
Un saludo
Gracias Pepe,
En cuanto a lo de la posición del precio final, lo que necesito es moverlo de sitio dentro de su elemento, es decir, este se encuentra dentro de "woocommerce_template_single_add_to_cart" si no me equivoco.
Por mi template, que es Flatsome, puedo crear templates de producto moviendo mediante editor drag and drop sin ningún problema, y donde sale ahora mismo el precio final con el texto "tu selección" están de "woocommerce_template_single_add_to_cart" y no es parte del "woocommerce_template_single_price".
Espero me haya expresado bien.
Mil gracias Pepe.
Hola
Lo estándard es que se haga como te comentó Pepe, pero esto depende de si tu theme respeta estas posiciones.
Envíanos una captura de pantalla para ver lo que comentas que te ofrece tu theme con respecto a las posiciones de Woocommerce
Saludos.
Hola Jhon,
Hemos encontrado un modelo de maquetación que a priori nos encaja, por lo que en principio no necesitamos hacer el cambio solicitado.
Muchas gracias por vuestra ayuda, si finalmente lo necesitamos os avisaré.
UN saludo.
Hola Alan.
Genial !!! me alegra que al final lo solucionaras.
Cerramos el tema.
Un saludo