Contents
Introducción a los Hooks en WooCommerce
WooCommerce es la solución de comercio electrónico más popular para WordPress. Su gran flexibilidad proviene, en gran medida, de la capacidad de añadir o modificar funcionalidades mediante hooks (acciones y filtros). En este artículo extenso y detallado exploraremos cómo personalizar tu tienda WooCommerce aprovechando al máximo estos ganchos.
Conceptos Fundamentales
¿Qué son los Hooks
En WordPress y WooCommerce, un hook es un punto en el flujo de ejecución donde puedes “enganchar” tu código. Existen dos tipos básicos:
- Acciones (actions): Ejecutan código adicional en un punto específico.
- Filtros (filters): Modifican datos antes de que se muestren o se guarden.
Para profundizar, revisa la documentación oficial de WordPress: Hooks API.
Estructura básica de un Hook
// Acción
add_action(woocommerce_before_shop_loop, mi_funcion_personalizada, 10)
function mi_funcion_personalizada() {
echo ltpgt¡Bienvenido a mi tienda!lt/pgt
}
// Filtro
add_filter(woocommerce_product_single_title, cambiar_titulo_producto, 10)
function cambiar_titulo_producto(title) {
return Producto: . title
}
Listado de Hooks Comunes
| Hook | Tipo | Ubicación |
|---|---|---|
| woocommerce_before_shop_loop | Action | Antes del loop de productos |
| woocommerce_after_shop_loop | Action | Después del loop de productos |
| woocommerce_product_get_price | Filter | Al obtener el precio del producto |
| woocommerce_checkout_order_processed | Action | Tras procesar un pedido |
Personalizaciones de la Página de Producto
1. Añadir Mensajes Promocionales
Puedes insertar un banner o aviso encima del precio usando woocommerce_single_product_summary:
add_action(woocommerce_single_product_summary, mostrar_banner_promocion, 5)
function mostrar_banner_promocion() {
echo ltdiv style=background:#eee padding:10px margin-bottom:15px text-align:centergt
ltstronggt¡Oferta especial: 20% de descuento!lt/stronggt
lt/divgt
}
2. Modificar Precio Dinámicamente
Un filtro útil para ajustar precios según condiciones externas:
add_filter(woocommerce_product_get_price, ajustar_precio_por_usuario, 20, 2)
function ajustar_precio_por_usuario(price, product) {
if(current_user_can(premium_member)) {
return price 0.9 // 10% de descuento para miembros premium
}
return price
}
Personalizaciones del Checkout
1. Mostrar Nota Personalizada
Para incluir un texto informativo antes del formulario de checkout:
add_action(woocommerce_before_checkout_form, mensaje_antes_checkout, 10)
function mensaje_antes_checkout() {
echo ltdiv style=background:#f0f0f0 padding:15px margin-bottom:20pxgt
ltemgtRevisa bien tus datos de envío antes de finalizar tu compra.lt/emgt
lt/divgt
}
2. Validar Campos Personalizados
Si añades campos personalizados, valida su contenido:
add_action(woocommerce_checkout_process, validar_campo_extra)
function validar_campo_extra() {
if(empty(_POST[departamento_custom])) {
wc_add_notice(Por favor, ingresa tu departamento., error)
}
}
Personalizaciones de Correos Electrónicos
1. Añadir Texto al Pie de Email
Utiliza woocommerce_email_footer para colocar un aviso o redes sociales:
add_action(woocommerce_email_footer, agregar_pie_email)
function agregar_pie_email(email) {
echo ltp style=text-align:center color:#555 font-size:12pxgt
Síguenos en lta href=https://twitter.com/tu_tiendagtTwitterlt/agt y lta href=https://facebook.com/tu_tiendagtFacebooklt/agt.
lt/pgt
}
Trucos Avanzados
1. Hooks Condicionales según Categoría
Solo aplica tu código en productos de una categoría concreta:
add_action(woocommerce_single_product_summary, promo_cat_especial, 15)
function promo_cat_especial() {
global product
if(has_term(especial, product_cat, product->get_id())) {
echo ltdiv style=background:#dff0d8 padding:10pxgt
ltstronggtPromoción exclusiva para esta categoría!lt/stronggt
lt/divgt
}
}
2. Depuración de Hooks
Para identificar los hooks disponibles en una plantilla, emplea la función current_filter():
add_action(all, verificar_hooks)
function verificar_hooks() {
if(strpos(current_filter(), woocommerce) !== false) {
error_log(Hook detectado: . current_filter())
}
}
Revisa el archivo debug.log en wp-content tras activar WP_DEBUG_LOG en wp-config.php.
Buenas Prácticas
- Usa un plugin hijo o child theme para evitar sobreescrituras al actualizar.
- Prefiere filtros cuando necesites modificar datos existentes usa acciones para añadir contenido.
- Asigna prioridades cuidando el orden de ejecución (valor numérico).
- Documenta tu código comentando la funcionalidad y los hooks empleados.
- Comprueba compatibilidad con otros plugins que también usen hooks.
Recursos y Enlaces Útiles
copy 2024 Tu Tien da WooCommerce. Todos los derechos reservados.
|
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |
