Skip to main content

Hooks de Acción

Los hooks de acción permiten ejecutar código personalizado en momentos específicos del ciclo de vida del plugin. Utiliza add_action() para conectarse a estos hooks.

Hooks de sincronización

thi_scheduled_sync

Se dispara durante la sincronización programada del plugin.
do_action('thi_scheduled_sync');
Parámetros: Ninguno Descripción: Se ejecuta al iniciar una sincronización programada por cron. Útil para registrar eventos, notificaciones o validaciones previas. Ubicación definida: /src/Sync/SyncManager.php

thi_continue_image_sync

Se dispara para continuar el procesamiento de imágenes en lotes.
do_action('thi_continue_image_sync', $context);
Parámetros:
  • $context (array) - Contexto de sincronización con información del lote actual
Descripción: Se dispara múltiples veces durante el procesamiento de imágenes para permitir procesos adicionales por lote. Ubicación definida: /src/Images/ImageProcessor.php

thi_bulk_update_titles_batch

Se dispara durante el procesamiento de un lote de actualización de títulos.
do_action('thi_bulk_update_titles_batch', $batch, $total_processed);
Parámetros:
  • $batch (array) - Información del lote actual
  • $total_processed (int) - Total de elementos procesados hasta ahora
Descripción: Permite monitorear o ejecutar acciones durante actualización masiva de títulos. Ubicación definida: /src/Mapping/PropertyMapper.php

thi_cron_sync_continue

Se dispara como continuación de una sincronización cron.
do_action('thi_cron_sync_continue', $sync_state);
Parámetros:
  • $sync_state (array) - Estado actual de la sincronización
Descripción: Se ejecuta cuando se reanuda una sincronización desde cron después de una pausa. Ubicación definida: /src/Sync/CronScheduler.php

Hooks de integración

tp_fs_loaded

Se dispara cuando el SDK de Freemius se ha cargado completamente.
do_action('tp_fs_loaded');
Parámetros: Ninguno Descripción: Proporciona un punto seguro para inicializar código dependiente de Freemius después de que se ha cargado el SDK. Ubicación definida: /tokko-plugins.php

houzez_after_agent_form_submission

Se dispara después del envío de un formulario de agente en Houzez (usado para CRM).
do_action('houzez_after_agent_form_submission', $form_data, $agent_id);
Parámetros:
  • $form_data (array) - Datos enviados en el formulario
  • $agent_id (int) - ID del agente
Descripción: Permite procesar datos de formularios de agentes para integraciones CRM. Ubicación definida: Hook de tema Houzez

tokko_contact_form_submission

Se dispara al enviar un formulario de contacto personalizado de Tokko.
do_action('tokko_contact_form_submission', $submission_data, $property_id);
Parámetros:
  • $submission_data (array) - Datos del formulario de contacto
  • $property_id (int) - ID de la propiedad asociada
Descripción: Se dispara cuando se envía un formulario de contacto de propiedad. Ubicación definida: /src/Forms/ContactForm.php

Hooks de AJAX

Estos hooks se disparan mediante acciones AJAX del plugin. Son útiles para extender el comportamiento de sincronización desde el panel de administración.

thi_unified_sync_detect

Inicia la detección de cambios para sincronización.
do_action('wp_ajax_thi_unified_sync_detect');
Descripción: Punto de entrada para detección de cambios en sincronización AJAX.

thi_unified_sync_execute_batch

Ejecuta un lote de sincronización.
do_action('wp_ajax_thi_unified_sync_execute_batch', $batch_data);
Descripción: Se dispara para ejecutar un lote individual durante sincronización AJAX.

thi_unified_sync_finalize

Finaliza la sincronización AJAX.
do_action('wp_ajax_thi_unified_sync_finalize');
Descripción: Se dispara al finalizar la sincronización AJAX.

thi_sync_single_property

Sincroniza una propiedad individual.
do_action('wp_ajax_thi_sync_single_property', $property_id);
Descripción: Permite sincronizar una propiedad específica bajo demanda.

thi_sync_developments_only

Sincroniza únicamente desarrollos.
do_action('wp_ajax_thi_sync_developments_only');
Descripción: Ejecuta sincronización de desarrollos únicamente.

thi_force_reprocess_properties

Fuerza reprocesamiento de todas las propiedades.
do_action('wp_ajax_thi_force_reprocess_properties');
Descripción: Borra el caché de propiedades y reinicia el procesamiento desde cero.

Mejores prácticas

Siempre valida capacidades de usuario usando current_user_can() en hooks de administración.
Usa opciones transitorias para datos temporales en hooks de sincronización para no sobrecargar la base de datos.
// Buen ejemplo
add_action('thi_scheduled_sync', function() {
    // Almacenar datos temporales
    set_transient('thi_custom_sync_log', [
        'started' => current_time('mysql'),
        'status' => 'processing'
    ], 12 * HOUR_IN_SECONDS);

    // Ejecutar lógica personalizada
    // ...
});

Performance

  • Mantén hooks ligeros; no ejecutes operaciones pesadas
  • Usa wp_remote_post() asincrónico para llamadas externas
  • Aprovecha el sistema de caché de WordPress