Bonjour @emmabordeaux,
Le constat de @damienweb est juste : la configuration native via 'Paramètres de la boutique > Général > Maintenance' est conçue pour des adresses IP statiques et exactes. Pour vos développeurs avec des IPs dynamiques ou pour autoriser une plage spécifique, une petite adaptation du code est nécessaire, car le Back Office ne propose pas cette flexibilité.
Vous pouvez modifier le fichier index.php à la racine de votre installation PrestaShop. C'est là que la vérification du mode maintenance est effectuée très tôt dans le processus. Voici comment vous pourriez modifier la condition existante pour inclure une logique de plage d'IP :
Trouvez la ligne qui gère la redirection ou l'affichage de la page de maintenance, elle ressemble à ceci (autour de la ligne 30-40) :
if (_PS_MODE_MAINTENANCE_ && !defined('_PS_ADMIN_DIR_') && !in_array(Tools::getRemoteAddr(), explode(',', _PS_MAINTENANCE_IP_))) {
// ... code d'affichage de la page maintenance
}
Vous pouvez la modifier pour inclure une vérification de préfixe d'IP :
$user_ip = Tools::getRemoteAddr();
$allowed_dynamic_prefixes = ['88.123.', '91.45.']; // Remplacez par les préfixes de vos développeurs
$is_dynamic_ip_allowed = false;
foreach ($allowed_dynamic_prefixes as $prefix) {
if (strpos($user_ip, $prefix) === 0) {
$is_dynamic_ip_allowed = true;
break;
}
}
if (_PS_MODE_MAINTENANCE_ && !defined('_PS_ADMIN_DIR_') && (!in_array($user_ip, explode(',', _PS_MAINTENANCE_IP_)) && !$is_dynamic_ip_allowed)) {
Dans cet exemple, j'ai ajouté 88.123. et 91.45. comme préfixes. Si l'IP du visiteur commence par l'un de ces préfixes, il sera autorisé à voir le site même en mode maintenance. Assurez-vous de sauvegarder une copie de index.php avant toute modification et d'adapter les préfixes à vos besoins réels.