Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tokkoplugins.com/llms.txt

Use this file to discover all available pages before exploring further.

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.
do_action('thi_sync_report_saved', string $sync_id, array $report);
ParámetroDescripción
$sync_idIdentificador único del reporte guardado
$reportArray completo con contadores, errores, warnings, duración, etc.
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.
do_action('tp_fs_loaded');
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.
add_action('thi_scheduled_sync', function() {
    error_log('Sincronización programada arrancó');
}, 20);
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.
add_action('thi_force_background_sync', function() {
    set_transient('last_force_sync_started', time(), DAY_IN_SECONDS);
}, 20);
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.
add_action('thi_cron_sync_continue', function() {
    error_log('Reanudando sincronización tras pausa');
}, 20);
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.
add_action('thi_continue_image_sync', function() {
    // Registrar métrica por lote
    update_option(
        'thi_custom_image_batch_count',
        (int) get_option('thi_custom_image_batch_count', 0) + 1,
        false
    );
}, 20);
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.
add_action('thi_retry_failed_images', function() {
    error_log('Intentando recuperar imágenes fallidas');
}, 20);
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.
add_action('thi_regenerate_thumbnails', function() {
    error_log('Regenerando miniaturas');
}, 20);
Ubicación: includes/ajax/ajax-handlers.php.

thi_delete_thumbnails

Tarea de fondo que elimina miniaturas generadas cuando el usuario desactiva esa función.
add_action('thi_delete_thumbnails', function() {
    error_log('Limpiando miniaturas generadas');
}, 20);
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

Acción AJAXPropósito
thi_unified_sync_detectPaso 1: detecta cambios desde el último sync
thi_unified_sync_execute_batchPaso 2: procesa el siguiente lote
thi_unified_sync_archivePaso 3: archiva propiedades que ya no están en Tokko
thi_unified_sync_finalizePaso 4: finaliza el sync y guarda el reporte
thi_unified_sync_pause / thi_unified_sync_resume / thi_unified_sync_cancelControl del sync en progreso
thi_sync_heartbeatHeartbeat mientras el sync está activo

Sincronización puntual

Acción AJAXPropósito
thi_sync_single_propertySincroniza una propiedad específica
thi_sync_single_developmentSincroniza un emprendimiento específico
thi_sync_developments_onlySincroniza solo emprendimientos
thi_force_sync_cronjobPrograma el sync en WP-Cron manualmente
thi_force_reprocess_propertiesFuerza reprocesamiento completo
thi_sync_agentsSincroniza sólo agentes
thi_sync_development_relationshipsRelaciona emprendimientos con propiedades
thi_sync_property_images_frontendSolicita reintento de imágenes desde el frontend

Estado y diagnóstico

Acción AJAXPropósito
thi_heartbeat / thi_check_sessionPing ligero del estado de sesión
thi_check_sync_readiness / thi_check_sync_requirements / thi_check_sync_statusChequeos previos a sincronización
thi_get_health_indicatorsIndicadores de salud del servidor
thi_get_api_status_tableEstado de la conexión con Tokko
thi_test_api_connectionTest manual de la API Key
thi_get_sync_estimationEstimación de tiempo del próximo sync
thi_get_image_sync_status / thi_get_title_update_statusEstado de subprocesos
thi_get_sync_performance / thi_get_sync_timelineMétricas históricas

Dashboard & reports

Acción AJAXPropósito
thi_get_dashboard_stats / thi_get_enhanced_statsEstadísticas del dashboard
thi_get_sync_report / thi_get_sync_report_by_idLee el reporte del sync actual/histórico
thi_download_sync_report_csvDescarga reportes en CSV
thi_get_changelogEntradas del changelog
thi_properties_last_report / thi_properties_archived_countDatos del tab Properties

Gestión de datos

Acción AJAXPropósito
thi_load_properties / thi_properties_listListado con paginación
thi_properties_sync_by_id / thi_properties_sync_selectedSync selectivo desde el tab Properties
thi_properties_force_image_resync / thi_properties_diagnoseDiagnóstico y resync de una propiedad
thi_retry_property_syncReintenta el sync de una propiedad
thi_delete_all_propertiesBorra todas las propiedades
thi_cleanup_orphaned_agentsLimpia agentes huérfanos
thi_assign_agent_to_properties / thi_save_auto_assign_agentAuto-asignación de agentes
thi_save_agent_toggleActiva/desactiva sync de agentes
thi_get_agents_listLista de agentes

Sistema & herramientas

Acción AJAXPropósito
thi_export_support_metricsExporta métricas para soporte
thi_clear_error_historyLimpia el historial de errores
thi_create_timestamps_tableCrea (o re-crea) la tabla de timestamps
thi_acquire_sync_lock / thi_release_sync_lockLocks del motor de sync
thi_update_last_sync_time / thi_update_sync_stateActualización explícita de estado
thi_update_whatsapp_fieldsMigración de campos WhatsApp
thi_bulk_update_titlesDispara la actualización masiva de títulos
thi_upload_json_test_file / thi_remove_json_test_file / thi_switch_test_jsonModo test con JSON local (Dev Mode)
thi_inject_error / thi_clear_injections / thi_get_injection_statusHerramientas de debugging (Dev Mode)
thi_test_cleanup / thi_test_timestampsTests internos (Dev Mode)
thi_get_properties_for_image_sync / thi_get_developments_for_syncLista de candidatos
thi_record_developments_sync_resultRegistra el resultado del sync de devs
thi_dismiss_update_noticeDescarta el aviso de actualización

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.