Press "Enter" to skip to content

PrestaShop 1.7 – edytowalne dane teleadresowe w dziale kontakt

Admin 3

Ten artykuł jest kalką idetnycznego rozwiązania z wersji PrestaShop 1.6: https://pskrk.com/dodawanie-informacji-teleadresowych-w-dziale-kontakt-z-mozliwoscia-ich-edycji/

W wersji PrestaShop 1.7 mamy już do dyspozycji możliwość wypełnienia podstawowych danych teleadresowych w dziale kontakt. Automatycznie pojawi się tam telefon, email zdeklarowany w ustawieniach:

Preferencje -> Kontakt -> Sklepy -> Dane teleadresowe.

Gorzej jeśli chcemy tam pole tekstowe, które możemy edytować i osadzić tam dowolną informację w formacie jaki nam odpowiada.

W tym artykule dowiesz się jak to zrobić.

1. Utwórz stronę z treściami teleadresowymi

W dziale

Wygląd -> strony

Dodaj nową stronę i określ treść danych teleadresowych dla wszystkich języków. Zapiszą ją pod dowolną nazwą i zapisz ID tej strony

Id będzie widoczne na liście wszystkich stron.

2. Edycja plików PHP

Otwórz plik:

modules/ps_contactinfo/ps_contactinfo.php

Znajdź funkcję getWidgetVariables()

Na jej początku, np. po linijce:

$address = $this->context->shop->getAddress();

Wklej kod:

$cms = new CMS(16, intval($this->context->cookie->id_lang));

Gdzie 16 to ID dodanej strony z pkt.1

Następnie dodaj element w tablicy $contact_infos[]:

'contactdatas' => $cms->content,

Zrobisz to np. zamieniając fragment kodu:

$contact_infos = [
            'company' => Configuration::get('PS_SHOP_NAME'),

na:

$contact_infos = [
            'company' => Configuration::get('PS_SHOP_NAME'),
            'contactdatas' => $cms->content,

3. Edycja plików szablonu (.tpl)

W pliku:

themes/{SZABLON}/modules/ps_contactinfo/ps_contactinfo-rich.tpl

Pod nagłowkiem H4 wklej kod z treścią danych teleadresowych z w/w strony CMS o ID = 16:

{$contact_infos.contactdatas nofilter}

Pod tym kodem wklej początek komentarza:

{*

Następnie zamknij komentarz przed ostatnim wystąpieniem </div>, czyli zamień kod:

</div>

na:

*}
</div>

Chodzi o to, aby ukryć domyślne dane teleadresowe. Możesz też je po prostu usunąć z tego pliku jeśli nie będą w przyszłosci potrzebne.

Tak samo wykonaj modyfikacje w pliku:

themes/{SZABLON}/modules/ps_contactinfo/ps_contactinfo.tpl

Pod nagłówkiem typu:

<p class="h4 text-uppercase block-contact-title">{l s='Store information' d='Shop.Theme.Global'}</p>

Wklej

{$contact_infos.contactdatas nofilter}

Potem usuń lub zakomentuj domyślną treść:

{$contact_infos.address.formatted nofilter}
      {if $contact_infos.phone}
        <br>
        {* [1][/1] is for a HTML tag. *}
        {l s='Call us: [1]%phone%[/1]'
          sprintf=[
          '[1]' => '<span>',
          '[/1]' => '</span>',
          '%phone%' => $contact_infos.phone
          ]
          d='Shop.Theme.Global'
        }
      {/if}
      {if $contact_infos.fax}
        <br>
        {* [1][/1] is for a HTML tag. *}
        {l
          s='Fax: [1]%fax%[/1]'
          sprintf=[
            '[1]' => '<span>',
            '[/1]' => '</span>',
            '%fax%' => $contact_infos.fax
          ]
          d='Shop.Theme.Global'
        }
      {/if}
      {if $contact_infos.email}
        <br>
        {* [1][/1] is for a HTML tag. *}
        {l
          s='Email us: [1]%email%[/1]'
          sprintf=[
            '[1]' => '<a href="mailto:'|cat:$contact_infos.email|cat:'" class="dropdown">',
            '[/1]' => '</a>',
            '%email%' => $contact_infos.email
          ]
          d='Shop.Theme.Global'
        }
      {/if}

Uwaga, jeśli chcesz komentować ww. kod – usuń z niego komentarze np.

{* [1][/1] is for a HTML tag. *}

Osadzanie komentarzy wewnątrz komentarza może powodować błędy kompilacji szablonu

Po odświeżeniu cache szablonu – zmiany powinny być widoczne.

grafika: wallpaperswide.com

  1. K.P. K.P.

    Świetny wpis. Dziękuję!!!
    Można zrobić 2 różne strony, każdą z nich wykorzystać osobno – w stopce i na stronie kontaktowej. Też działa.
    Wielkie dzięki!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Brak lewej kolumny na karcie produktu w PrestAShop 1.7 -…