Si tienes una tienda en WooCommerce con Divi y necesitas mostrar información específica sobre el IVA en función de la categoría del producto, este artículo te explicará paso a paso cómo hacerlo con código personalizado y shortcodes.
✨ Introducción
Algunos productos pueden tener diferentes condiciones de IVA según su categoría, por ejemplo:
- Productos «Nuevos» incluyen el IVA.
- Productos de «Alquiler» incluyen el IVA.
- Productos de «Recambios» tienen el IVA aparte.
- Productos de «Ocasión» muestran el precio sin IVA pero indicando que se debe sumar.
Dado que Divi modifica la estructura de WooCommerce, algunas funciones estándar no funcionan correctamente. Por eso, vamos a utilizar shortcodes que se pueden insertar fácilmente en el constructor de Divi.
✅ Paso 1: Identificar las Categorías y sus IDs
Antes de escribir el código, necesitas conocer el ID de cada categoría en WooCommerce. Sigue estos pasos:
- Ir a WooCommerce > Productos > Categorías.
- Encuentra la categoría que deseas modificar (por ejemplo, «Recambios»).
- Pasa el cursor sobre el nombre de la categoría y en la barra de estado del navegador verás una URL similar a esta:
- https://tuweb.com/wp-admin/term.php?taxonomy=product_cat&tag_ID=85
- El número después de tag_ID= es el ID de la categoría. En este caso, 85.
Ejemplo de IDs para este caso:
- Recambios (ID 85) – IVA Aparte.
- Nuevo (ID 80) – IVA Incluido.
- Alquiler (ID 81) – IVA Incluido.
- Ocasión (ID 79) – Precio + IVA.
✅ Paso 2: Agregar el Código en functions.php
Ahora que ya tenemos los IDs, debemos modificar el archivo functions.php dentro del tema hijo. Si aún no tienes un tema hijo, es recomendable crearlo para evitar perder cambios con actualizaciones del tema.
Copia y pega el siguiente código en functions.php de tu tema hijo.
- Introducción
WooCommerce permite a los clientes ingresar códigos de descuento manualmente, pero en algunos casos es conveniente que el descuento se aplique automáticamente cuando ciertos productos estén en el carrito. Esto puede ser útil para promociones específicas o descuentos exclusivos en ciertos productos.
En este tutorial, aprenderás a:
- Aplicar un cupón automáticamente si un cliente agrega ciertos productos al carrito.
- Mostrar un mensaje cuando el cupón se aplique.
- Eliminar el cupón si los productos elegibles son eliminados del carrito.
// Función para productos en la categoría «Recambios» (ID 85) – IVA Aparte
function mostrar_texto_iva_recambios() {
if (!is_product()) return »; // Solo en la página de producto
global $product;
if (!$product) return »;
// Obtener las categorías del producto
$categorias = wp_get_post_terms($product->get_id(), ‘product_cat’, array(‘fields’ => ‘ids’));
// Verificar si el producto pertenece a la categoría «Recambios»
if (in_array(85, $categorias)) {
return ‘<p style=»color: blue; font-weight: bold; font-size: 16px;»>🔹 IVA Aparte</p>’;
}
return »;
}
add_shortcode(‘iva_aparte’, ‘mostrar_texto_iva_recambios’);
// Función para productos en «Nuevo» (ID 80) y «Alquiler» (ID 81) – IVA Incluido
function mostrar_texto_iva_incluido() {
if (!is_product()) return »;
global $product;
if (!$product) return »;
// Obtener las categorías del producto
$categorias = wp_get_post_terms($product->get_id(), ‘product_cat’, array(‘fields’ => ‘ids’));
// Verificar si pertenece a «Nuevo» o «Alquiler»
if (in_array(80, $categorias) || in_array(81, $categorias)) {
return ‘<p style=»color: green; font-weight: bold; font-size: 16px;»>✅ IVA Incluido</p>’;
}
return »;
}
add_shortcode(‘iva_incluido’, ‘mostrar_texto_iva_incluido’);
// Función para productos en «Ocasión» (ID 79) – Precio + IVA
function mostrar_texto_precio_mas_iva() {
if (!is_product()) return »;
global $product;
if (!$product) return »;
// Obtener las categorías del producto
$categorias = wp_get_post_terms($product->get_id(), ‘product_cat’, array(‘fields’ => ‘ids’));
// Verificar si pertenece a «Ocasión»
if (in_array(79, $categorias)) {
return ‘<p style=»color: orange; font-weight: bold; font-size: 16px;»>⚠️ Precio + IVA</p>’;
}
return »;
}
add_shortcode(‘precio_mas_iva’, ‘mostrar_texto_precio_mas_iva’);
🏗 Paso 3: Usar los Shortcodes en Divi
Ahora que tenemos el código, necesitamos insertarlo en la página de producto. Como Divi sobrescribe algunas funciones de WooCommerce, la mejor forma de asegurarnos de que funcione correctamente es mediante shortcodes.
📌 ¿Cómo Insertar los Shortcodes en Divi?
En la ficha de producto de WooCommerce dentro del constructor Divi:
- Abre el Constructor Visual en la plantilla del producto.
- Añade un Módulo de código donde quieres que aparezca la información del IVA. (NOTA: lo puedes añadir en un módulo de texto, pero te recomiendo de que añadas en el módulo de código los Shortcodes que tengas, si lo haces en módulo de texto te dejará la separación entre ellos, en cambio en un módulo de código mantendrá el margen que le hayas dado y no verás una separación. Te animo a que lo pruebes en ambos)
- Inserta el shortcode correspondiente en el campo de texto del módulo.
- Para productos en Recambios (ID 85) – IVA Aparte:
- [iva_aparte]
- Para productos Nuevos (ID 80) y Alquiler (ID 81) – IVA Incluido:
- [iva_incluido]
- Para productos Ocasión (ID 79) – Precio + IVA:
- [precio_mas_iva]
Puedes colocar cada shortcode en la posición que prefieras dentro de la ficha del producto.
📈 Conclusión
Este método nos permite personalizar la visualización del IVA en WooCommerce con Divi sin modificar los archivos principales del tema, asegurando compatibilidad con futuras actualizaciones.
Si necesitas personalizar aún más el diseño o agregar funcionalidades extra, puedes modificar los estilos CSS en el código o ajustar la posición de los shortcodes en Divi.
🚀 ¿Te ha funcionado este método? ¡Déjamelo saber en los comentarios y seguimos mejorándolo! 🎉