Jak usunąć „/pl” z adresów URL w PrestaShop

Jak usunąć „/pl” z adresów URL w PrestaShop

Jeśli prowadzisz sklep w wielu językach, wszystkie adresy URL będą zawierały kod języka. Nawet gdy otworzysz stronę główną swojej witryny, otrzymasz sufiks tego języka, nawet dla języka domyślnego. Nie wygląda dobrze, ale na szczęście możesz naprawić to zachowanie.

Utwórz (lub edytuj, jeśli istnieje) plik /override/classes/Link.php Wybierz wariant optymalizacji - wszystkie url czy tylko strona główna

<?php

class Link extends LinkCore
{
    protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null)
    {
        $parent_result = parent::getLangLink($id_lang, $context, $id_shop);
     
       /*Dla wszystkich url */
        if ($parent_result) {
            if ($id_lang == Configuration::get('PS_LANG_DEFAULT')) {
                return '';
            } else {
                return $parent_result;
            }
        }

       /*Tylko dla strony głównej */
       if ($parent_result) {
            if ($id_lang == Configuration::get('PS_LANG_DEFAULT')) {
                if($_SERVER['REQUEST_URI'] == '/'){
                return '';
                }
                else{
                    return $parent_result;
                }
            } else {
                return $parent_result;
            }
        }

    }
}

Utwórz (lub edytuj, jeśli istnieje) plik /override/classes/Tools.php

<?php

class Tools extends ToolsCore
{
    public static function setCookieLanguage($cookie = null)
    {
        parent::setCookieLanguage($cookie);

        if (!$cookie) {
            $cookie = Context::getContext()->cookie;
        }

        if(!Tools::getValue('isolang') && !Tools::getValue('id_lang') && !Tools::isSubmit('id_category_layered')) {
            $cookie->id_lang = Configuration::get('PS_LANG_DEFAULT');
            Context::getContext()->language = new Language($cookie->id_lang);
        }

        /* If language file not present, you must use default language file */
        if (!$cookie->id_lang || !Validate::isUnsignedId($cookie->id_lang)) {
            $cookie->id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
            Context::getContext()->language = new Language($cookie->id_lang);
        }

        $iso = Language::getIsoById((int)$cookie->id_lang);
        @include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php');

        return $iso;
    }
}

Teraz wyczyść pamięć podręczną sklepu oraz pamiętaj o przekierowaniu adresów.

Jak przydatny był ten post?

Kliknij gwiazdkę, aby ją ocenić!

Średnia ocena 5 / 5. Liczba głosów: 12

Jak dotąd brak głosów! Oceń ten post jako pierwszy.

Więcej optymalizacji w kategorii prestashop