Skip to main content

Hooks

Esta página documenta los puntos de extensión disponibles del plugin organizados en tres grupos:
  1. Acciones disparadas con do_action — las puedes escuchar con add_action y se ejecutan en el momento que documentan.
  2. Eventos WP-Cron / Action Scheduler — tareas programadas que el plugin registra; puedes engancharte para ejecutar código en paralelo con la rutina del plugin.
  3. Acciones AJAX (wp_ajax_...) — endpoints del panel de administración; documentados solo como referencia porque sus handlers viven en includes/ajax/ajax-handlers.php.
Todas las acciones listadas aquí están verificadas contra el código fuente. Si un hook no aparece aquí, el plugin no lo dispara.

Acciones disparadas por el plugin (do_action)

thi_sync_report_saved

Se dispara inmediatamente después de que un reporte de sincronización se guarda en la base de datos.
Ubicación: includes/sync/class-thi-sync-report-store.php

tp_fs_loaded

Se dispara cuando el SDK de Freemius se inicializa. Es el punto seguro para leer la licencia del plugin desde tu propio código.
Ubicación: tokko-houzez-integration.php

Eventos WP-Cron / Action Scheduler

Estos no son do_action clásicos: son tareas programadas registradas con wp_schedule_event / wp_schedule_single_event / as_schedule_*. Puedes engancharte con add_action para correr código junto con la tarea del plugin. Usa una prioridad distinta de 10 si quieres ejecutar tu callback antes o después del callback por defecto del plugin.

thi_scheduled_sync

Sincronización automática completa programada (feature premium). La frecuencia se controla con la opción thi_sync_option.
Se dispara por: evento WP-Cron registrado cuando cambia thi_sync_option o thi_custom_interval_value. Listener del plugin: thi_premium_property_sync() en tokko-houzez-integration.php.

thi_force_background_sync

Sincronización disparada manualmente desde el botón Force Sync cuando WP-Cron local está deshabilitado — corre en segundo plano.
Ubicación de programación: includes/ajax/ajax-handlers.php.

thi_cron_sync_continue

Evento que reanuda una sincronización cuando el motor unificado la pausó por timeout, carga alta o para ceder CPU. Se reprograma a sí mismo hasta completar.
Ubicación: includes/sync/class-thi-unified-sync-engine.php, includes/sync/cron-handler.php.

thi_continue_image_sync

Evento por lotes que continúa la descarga y procesamiento de imágenes mientras queden pendientes.
Ubicación: includes/sync/sync-functions.php.

thi_retry_failed_images

Evento recurrente (cada hora) que reintenta la descarga de imágenes que fallaron previamente.
Programado vía: Action Scheduler (con fallback a WP-Cron) en thi_image_sync group.

thi_regenerate_thumbnails

Tarea de fondo (single event) que regenera miniaturas cuando se cambia la configuración correspondiente.
Ubicación: includes/ajax/ajax-handlers.php.

thi_delete_thumbnails

Tarea de fondo que elimina miniaturas generadas cuando el usuario desactiva esa función.
Ubicación: includes/ajax/ajax-handlers.php.

thi_cleanup_orphaned_files

Tarea puntual que borra archivos huérfanos de propiedades que ya no existen. Ubicación: includes/ajax/ajax-handlers.php.

thi_bulk_update_titles_batch

Evento por lotes para actualizar masivamente los títulos de propiedades al activar/desactivar “Usar dirección como título”. Ubicación: includes/sync/sync-functions.php.

thi_daily_sync_reports_cleanup

Evento diario que purga reportes de sincronización viejos. El filtro thi_sync_reports_retention_days controla cuántos días se conservan. Ubicación: includes/sync/cron-handler.php.

thi_send_periodic_report

Evento recurrente que envía el resumen periódico por email (feature premium — requiere thi_email_periodic_enabled). Ubicación: includes/notifications/notification-functions.php.

Acciones AJAX del plugin

Estas acciones se registran con wp_ajax_<action> y se invocan desde la interfaz de administración del plugin. Todos los handlers del plugin viven en includes/ajax/ajax-handlers.php o includes/ajax/system-status-handlers.php.
El plugin ya tiene su propio handler registrado para cada acción. Si agregas uno con add_action('wp_ajax_<accion>', ...), usa una prioridad distinta de 10 para no interferir.

Sincronización unificada

Sincronización puntual

Estado y diagnóstico

Dashboard & reports

Gestión de datos

Sistema & herramientas

Buenas prácticas

  • Mantén los callbacks ligeros. Los hooks de sincronización pueden ejecutarse muchas veces durante un sync.
  • Para llamadas a sistemas externos, usa wp_remote_post() con timeout pequeño o, mejor, encola con Action Scheduler.
  • Si necesitas estado entre invocaciones del mismo hook (por ejemplo thi_continue_image_sync), usa update_option(..., false) con autoload false.
  • Siempre valida capacidades (current_user_can('manage_options')) cuando te enganches a acciones AJAX.