Zawartość artykułu
Co do test pole dostosowania produktu?
W PrestaShop można dodać dodatkowe pole tekstowe w opisie produktu. Służy ono „dostosowywaniu” produktu. Czyli np. możemy określić tekst nadruku na produkcie, tekst graweru na biżuterii itp.
Bez włączenia tej opcji karta produktu wygląda w ten sposób:
Po włączeniu:
Włącza się go w edycji konkretnego produktu w zakładce „Opcje”:
W wersji PrestaShop 1.6 jest dla tego dedykowana zakładka „Dostosowywanie” w edycji produktu
Co jeśli w polu będziemy wysyłać wrażliwe dane? Jak np. podany na screenshocie wyżej adres e-mail? Albo numer telefonu, czy też np. imię i nazwisko ? Niestety nie mamy do wyboru opcji wstawienia checkboxa (kratki do zaznaczenia) ze zgodą RODO. A w świetle ustawy konsumenckiej jest to konieczne. Aby to zrobić wystarczy kilka drobnych zmian w kodzie 🙂
Modyfikacja dla PrestaShop 1.7 (1.7.8.7)
Otwórz plik:
themes/{TWÓJ-SZABLON}/templates/catalog/_partials/product-customization.tpl
Następnie zamień kod przycisku do dostosywania z domyślnego (u Ciebie może być nieco inny):
<button class="btn btn-primary float-xs-right" type="submit" name="submitCustomizedData">{l s='Save Customization' d='Shop.Theme.Actions'}</button>
Na następujący:
<button class="btn btn-primary float-xs-right" type="submit" name="submitCustomizedData" id="saveCustomization" disabled="disabled">{l s='Save Customization' d='Shop.Theme.Actions'}</button>
Zaraz pod tym kodem wklej checkbox ze zgodą:
<div class="checkbox"> <input type="checkbox" id="rodocust" name="rodocust" value="1" onchange="checkRODOS(this.checked,'saveCustomization')" /> <label for="rodocust">{l s='Zgoda RODO'} <sup>*</sup></label> <p>Wyrażam zgodę na podanie moich danych osobowych w polu dostosowania produktu. Administratorem danych osobowych jest NAZWA FIRMY NIP {Configuration::get('PS_SHOP_DETAILS')}, z siedzibą {Configuration::get('PS_SHOP_ADDR1')} {Configuration::get('PS_SHOP_CODE')} {Configuration::get('PS_SHOP_CITY')}</p> </div>
Oczywiście Twoją zgodę – jej treść możesz opisać inaczej 🙂 Tak samo tytuł (label) checkboxa.
Dodaj w pliku:
themes/{TWÓJ-SZABLON}/assets/js/theme.js
ten kod:
function checkRODOS(thisVAR,thisEL) { if (thisVAR) { $('#'+thisEL).removeAttr('disabled') } else { $('#'+thisEL).attr('disabled','disabled') } }
Należy jeszcze przebudować cache albo wyłączyć pamięć podręczną w dziale Wydajność:
Gotowe 🙂
Finał naszych prac:
Czyli bez zaznaczenia kratki – przycisk zapisujący dostosowywanie jest nieaktywny.
Modyfikacja dla PrestaShop 1.6
Zmiany są analogiczne. Jedynie kod przycisku zmienisz w pliku:
themes/{TWÓJ-SZABLON}/product.tpl
Natomiast funkcję JavaScript doklej do pliku:
themes/{TWÓJ-SZABLON}/js/global.js
grafika: wallpaperflare.com