Hola @silvia92,
@ignacio96 y @monica_admin tienen razón, la clase Link es bastante crítica en PrestaShop y modificar getLangLink para este propósito tiene sus complicaciones, especialmente en PrestaShop 1.7.5.1 (gracias por confirmar la versión, Silvia). La lógica de reescritura y el Dispatcher trabajan en conjunto para resolver las URLs, y un simple str_replace en el Link podría no ser suficiente o causar conflictos.
El problema fundamental es que PrestaShop, en su versión estándar, está diseñado para incluir el código ISO del idioma en la URL cuando hay más de un idioma activo, y no ofrece una opción simple en el Back Office para deshabilitarlo para el idioma por defecto. Intentar manipular la URL final con un override puede llevar a inconsistencias y problemas de SEO o enrutamiento.
Una forma simplificada, pero aún así delicada, de intentar eliminar el código ISO para el idioma por defecto dentro de un override de Link.php (solo como ejemplo de la complejidad, no como solución definitiva):
// override/classes/Link.php
class Link extends LinkCore
{
public function getLangLink($id_lang = null, Context $context = null, $id_shop = null)
{
$originalLink = parent::getLangLink($id_lang, $context, $id_shop);
if ((int)$id_lang === (int)Configuration::get('PS_DEFAULT_LANG') && Configuration::get('PS_REWRITE_SETTINGS')) {
$iso = Language::getIsoById($id_lang);
if (strpos($originalLink, '/'.$iso.'/') !== false) {
return str_replace('/'.$iso.'/', '/', $originalLink);
Este snippet intenta eliminar la parte /es/ solo si está presente y es el idioma por defecto. Sin embargo, como mencionaron los compañeros, esto solo modifica la salida de getLangLink y no la forma en que el Dispatcher interpreta la URL de entrada, lo que puede causar errores 404 o contenido duplicado.
Para una solución realmente robusta y mantenible, que gestione correctamente las redirecciones y la lógica del Dispatcher sin tener que tocar el core de PrestaShop, lo más recomendable es utilizar un módulo preparado para eliminar el código iso. Estos módulos están diseñados para manejar todos los aspectos de la reescritura de URL y la compatibilidad con el SEO, y se mantienen actualizados con las versiones de PrestaShop.