Hola @manueltech, entiendo perfectamente tu frustración. La limitación de una única IP en la configuración general es un punto débil conocido en PrestaShop 8.2.6 y versiones anteriores.
Para el tema de las IPs múltiples y dinámicas, dado que no quieres usar módulos, la solución más directa implica una pequeña modificación en el index.php de tu instalación. Ten en cuenta que cualquier modificación en los archivos core de PrestaShop debe hacerse con precaución y documentarse bien para futuras actualizaciones:
- Abre el archivo
index.php que se encuentra en la raíz de tu instalación de PrestaShop.
- Busca la sección donde se gestiona el modo mantenimiento. Generalmente está cerca del principio. Verás una línea que carga
config.inc.php.
- Antes de
require(dirname(__FILE__).'/config/config.inc.php'); (o similar), añade un código como este:
$allowedIps = array(
'TU_IP_OFICINA_1',
'TU_IP_OFICINA_2',
'IP_ACTUAL_DESARROLLADOR_1',
// Agrega más IPs aquí según sea necesario
);
if (file_exists(dirname(__FILE__).'/config/settings.inc.php')) {
include_once(dirname(__FILE__).'/config/settings.inc.php');
if (_PS_MAINTENANCE_MODE_ && !in_array($_SERVER['REMOTE_ADDR'], $allowedIps)) {
// Si no estás en la lista, redirige a la página de mantenimiento
Este código es un ejemplo básico. Necesitarías adaptar la lógica para que ignore la IP de PS_MAINTENANCE_IP del Back Office si ya estás usando tu lista personalizada. La idea es que si _PS_MAINTENANCE_MODE_ está activo y la IP del visitante no está en tu $allowedIps personalizada, se muestre la página de mantenimiento. Para IPs dinámicas, tendrías que actualizar IP_ACTUAL_DESARROLLADOR_1 manualmente cuando cambie, o bien configurar un script que lo haga por ti (pero eso ya es más complejo).
Para la personalización de la página de mantenimiento:
- Crea un tema hijo si aún no lo tienes. Es la mejor práctica para no perder tus cambios en las actualizaciones.
- Copia el archivo
themes/classic/templates/errors/maintenance.tpl a la misma ruta dentro de tu tema hijo (por ejemplo, themes/mi_tema_hijo/templates/errors/maintenance.tpl).
- Edita este archivo
maintenance.tpl en tu tema hijo con el HTML y Smarty que desees para tu mensaje y diseño personalizado.
- Después de cualquier cambio en las plantillas, asegúrate de recompilar la caché de Smarty en
Parámetros avanzados > Rendimiento seleccionando la opción 'Recompilar las plantillas si los ficheros han sido actualizados' o 'Forzar compilación'.