Eliminar el aviso "Add chatbot snippet to continue" de Collect.chat

Foro sobre el CMS WordPress
Guillermo
Site Admin
Mensajes: 408
Registrado: 13 May 2023, 00:32
Ubicación: Valencia - España
Contactar:

Eliminar el aviso "Add chatbot snippet to continue" de Collect.chat

Mensaje por Guillermo »

Cómo silenciar el aviso de error del plugin Collect.chat en una intranet privada, sin desactivar el plugin ni abrir la red al exterior.

El problema

El plugin Collect.chat – Chatbot (v2.5.1) muestra en el panel de administración este aviso:
Add chatbot snippet to continue
Oops! It appears that your Collect.chat chatbot is not configured correctly.
El chatbot está correctamente instalado y configurado. El sitio en cuestión es una intranet privada, bloqueada a usuarios externos y a motores de búsqueda.

Diagnóstico

Revisando el código del plugin (collect.php), el aviso se genera en la función collectchat_settings_message(), enganchada al hook admin_notices:

Código: Seleccionar todo

add_action('admin_notices', array($this, 'collectchat_settings_message'));
Esa función comprueba únicamente si existe un script guardado en la opción collectchat-plugin-settings o un snippet en algún metadato de entrada/página. Es decir, la condición que dispara el aviso solo depende de datos locales de la base de datos de WordPress, no hace ninguna llamada de red ni comprobación externa dentro de este archivo.

Aun así, el snippet del chatbot está correctamente guardado, así que el aviso es un falso positivo: probablemente ligado a cómo el plugin o su panel de control en la nube interpretan la actividad del sitio, algo que en una intranet bloqueada al exterior nunca podrá completarse con normalidad. Sea cual sea la causa exacta en el lado de Collect.chat, la solución práctica es la misma: el sitio funciona bien, así que lo correcto es ocultar el aviso, no perseguir una "configuración" que no hace falta.

Opciones evaluadas
  • Comentar el bloque HTML en collect.php — no persiste tras actualizar el plugin, complejidad muy baja
  • Snippet PHP con remove_action (recomendada) — persiste tras actualizar el plugin, complejidad baja
Opción A — Editar directamente el plugin

En collect.php, dentro de collectchat_settings_message(), se puede comentar el bloque que imprime el <div class="notice notice-error">. Es un cambio seguro: esa función no interviene en absoluto en wp_head(), que es la que realmente inserta el widget del chatbot en el frontend. Ambas funciones solo comparten la lectura de la misma opción guardada, pero no dependen la una de la otra.

El inconveniente es que collect.php es un archivo del propio plugin: la próxima actualización lo sobrescribirá y el aviso volverá a aparecer.

Opción B — Snippet independiente (recomendada)

El plugin registra el callback del aviso como método de un objeto:

Código: Seleccionar todo

add_action('admin_notices', array($this, 'collectchat_settings_message'));
...
$scripts = new ScriptLoader();
Como $scripts se crea fuera de cualquier función, PHP lo trata como variable global de forma automática, aunque el plugin no la declare como tal. Eso permite desenganchar el aviso desde fuera del plugin, con un snippet gestionado en Woody Code Snippets:

Código: Seleccionar todo

add_action('admin_notices', function () {
    global $scripts;
    if (isset($scripts) && $scripts instanceof ScriptLoader) {
        remove_action('admin_notices', array($scripts, 'collectchat_settings_message'), 10);
    }
}, 1);
La prioridad 1 en el add_action exterior es la clave: garantiza que este código se ejecute antes que el aviso original, que está registrado con la prioridad por defecto (10).
Configuración en Woody Code Snippets escribió:
  • Where to execute the code: Run everywhere. El snippet engancha lógica al hook admin_notices en cada carga del panel de administración, no es contenido para insertar vía shortcode en una entrada o página concreta.
  • Description: una nota breve, por ejemplo: "Oculta el aviso de configuración de Collect.chat — falso positivo, el chatbot funciona correctamente en la intranet".
  • Available attributes: se deja vacío; solo aplica a snippets insertados como shortcode con parámetros variables.
Verificación
  • El aviso de error de Collect.chat desaparece del panel de administración.
  • El resto de avisos del plugin (por ejemplo, la petición de valoración a los 7 días de uso) se mantienen intactos, ya que el remove_action apunta específicamente al método collectchat_settings_message.
  • El widget del chatbot sigue cargándose con normalidad en el frontend de la intranet, sin cambios.
Responder