Wprowadzenie kraju ostatniego zamówienia do localStorage i sprawdzenie go przy uzupełnianiu danych o płatnościach i dostawie
This commit is contained in:
16
index.xslt
16
index.xslt
@@ -379,7 +379,7 @@
|
||||
<iaixsl:attribute name="required">required</iaixsl:attribute>
|
||||
</input>
|
||||
<label for="client_street" class="f-label">
|
||||
<iai:variable vid="Adres"/>
|
||||
<iai:variable vid="Ulica i numer"/>
|
||||
</label>
|
||||
<span class="form-control-feedback"/>
|
||||
</div>
|
||||
@@ -656,7 +656,7 @@
|
||||
<iaixsl:attribute name="required">required</iaixsl:attribute>
|
||||
</input>
|
||||
<label for="delivery_street" class="f-label">
|
||||
<iai:variable vid="Adres"/>
|
||||
<iai:variable vid="Ulica i numer"/>
|
||||
</label>
|
||||
<span class="form-control-feedback"/>
|
||||
</div>
|
||||
@@ -709,9 +709,19 @@
|
||||
<iaixsl:attribute name="value"><iaixsl:value-of select="@id"/></iaixsl:attribute>
|
||||
<iaixsl:attribute name="data-vat_company"><iaixsl:value-of select="@vat_company"/></iaixsl:attribute>
|
||||
<iaixsl:attribute name="data-vat"><iaixsl:value-of select="@vat"/></iaixsl:attribute>
|
||||
<iaixsl:if test="(@id = /shop/page/client-data/delivery_data/@region) or (@id = /shop/page/options/countries/@delivery_active)">
|
||||
<!--<iaixsl:if test="(@id = /shop/page/client-data/delivery_data/@region) or (@id = /shop/page/options/countries/@delivery_active)">-->
|
||||
<!-- <iaixsl:attribute name="selected">selected</iaixsl:attribute>-->
|
||||
<!--</iaixsl:if>-->
|
||||
<iaixsl:choose>
|
||||
<iaixsl:when test="/shop/page/client-data/invoice_data/@region > 0">
|
||||
<iaixsl:if test="@id = /shop/page/client-data/invoice_data/@region">
|
||||
<iaixsl:attribute name="selected">selected</iaixsl:attribute>
|
||||
</iaixsl:if>
|
||||
</iaixsl:when>
|
||||
<iaixsl:when test="@id = /shop/page/options/countries/@delivery_active">
|
||||
<iaixsl:attribute name="selected">selected</iaixsl:attribute>
|
||||
</iaixsl:when>
|
||||
</iaixsl:choose>
|
||||
<iaixsl:value-of select="@name"/>
|
||||
</option>
|
||||
</iaixsl:for-each>
|
||||
|
||||
@@ -4,23 +4,23 @@ var stocks_list_more_txt=<iai:variable vid="więcej informacji"/>;var stocks_lis
|
||||
|
||||
// Zmienna trzymająca informacje o customowych markerach
|
||||
// [wysokosc, szerokosc] w pikselach
|
||||
const defaultIconSize = [50,45];
|
||||
const defaultMarkerSize = [50,45];
|
||||
const mapMarkerIcons = {
|
||||
inpost: L.icon({
|
||||
iconUrl: "/data/include/deliveries/markers/inpost/marker_locker.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
default: L.icon({
|
||||
iconUrl: "/gfx/standards/marker-icon.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
// default: "/gfx/standards/marker-icon.png"
|
||||
// custom : "/data/include/cms/map_marker/testMarkerIcon.svg?v=1703749620844"
|
||||
orlen: L.icon({
|
||||
iconUrl: "/data/include/deliveries/markers/paczkaOrlen/marker_orlen.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
}
|
||||
@@ -931,7 +931,7 @@ const checkedPayment = paymentValue === method.id;
|
||||
if(!pointExists) selectedShipping.checked = false;
|
||||
});
|
||||
}// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony)
|
||||
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
||||
else if(firstLoad && localStorage.getItem("prevCountry") && localStorage.getItem("prevCountry") === document.getElementById("client_region").value){
|
||||
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
||||
|
||||
// Zaznaczenie metod płatności które nie tworzą popupa
|
||||
@@ -1655,15 +1655,34 @@ document.querySelector(".order2_button_order").addEventListener("click", async (
|
||||
|
||||
// Przerwanie składania zamówienia jeśli w trakcie walidacji wystąpił błąd
|
||||
if (app_shop.vars.validation === 0) {
|
||||
// Scroll do elementów z błędem
|
||||
if(document.getElementById("order2_terms_conditions").checked && document.getElementById("order2_cancel").checked){
|
||||
const errorEl = document.querySelector(".--error.has-error");
|
||||
if(errorEl) scrollToHeight(errorEl)
|
||||
else if(!document.querySelector(`input[name="payform_id"]:checked`)) scrollToHeight(document.querySelector("#checkout_step3_1 h2"));
|
||||
else if(!document.querySelector(`input[name="shipping"]:checked`)) scrollToHeight(document.querySelector("#checkout_step2_1 h2"));
|
||||
let scrolledToElement;
|
||||
let alertMessage = "";
|
||||
|
||||
// Element sprawdzający czy regulamin jest zaznaczony
|
||||
let termsAndConditions = document.getElementById("order2_terms_conditions").checked && document.getElementById("order2_cancel").checked;
|
||||
if(!termsAndConditions) alertMessage += `${<iai:variable vid="Zatwierdź"/>} ${<iai:variable vid="Regulamin"/>}!<br/>`;
|
||||
// Błąd w formularzu
|
||||
if(errorEl){
|
||||
scrolledToElement = errorEl;
|
||||
alertMessage += `${<iai:variable vid="W formularzu wystąpiły błędy"/>}<br/>`;
|
||||
}// Sprawdź metodę płatności i dostawy(scrollowanie do formularza ważniejsze)
|
||||
if(!document.querySelector(`input[name="payform_id"]:checked`)){
|
||||
scrolledToElement = errorEl || document.querySelector("#checkout_step3_1 h2");
|
||||
alertMessage += `${<iai:variable vid="Proszę wybrać metodę płatności"/>}<br/>`;
|
||||
}
|
||||
Alertek.show_alert(`${<iai:variable vid="W formularzu wystąpiły błędy"/>}`);
|
||||
return app_shop.fn.ajaxLoadSite(0), !1;
|
||||
if(!document.querySelector(`input[name="shipping"]:checked`)){
|
||||
scrolledToElement = errorEl || document.querySelector("#checkout_step2_1 h2");
|
||||
alertMessage += `${<iai:variable vid="Proszę wybrać dostępną metodę dostawy"/>}`;
|
||||
|
||||
}
|
||||
|
||||
// Jeśli użytkownik zatwierdził regulamin, przescrolluj do elementu z błędem
|
||||
if(termsAndConditions) scrollToHeight(scrolledToElement);
|
||||
|
||||
// Pokaż error i przerwij składanie zamówienia
|
||||
Alertek.show_alert(alertMessage);
|
||||
return app_shop.fn.ajaxLoadSite(0);
|
||||
}
|
||||
|
||||
// Rejestracja użytkownika i/lub złożenie zamówienia
|
||||
@@ -1681,7 +1700,9 @@ document.querySelector(".order2_button_order").addEventListener("click", async (
|
||||
});
|
||||
// Przescrolluj do
|
||||
function scrollToHeight(scrollToEl){
|
||||
const yOffset = app_shop.vars.view === 1 ? -100 : -45;
|
||||
let yOffset = -45;
|
||||
if(app_shop.vars.view === 1) yOffset = -100;
|
||||
if(app_shop.vars.view === 2) yOffset = -75;
|
||||
const y = scrollToEl.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
||||
window.scrollTo({top: y, behavior: 'smooth'});
|
||||
}
|
||||
@@ -1839,6 +1860,8 @@ function sendOrder(data){
|
||||
},
|
||||
success: function (e) {
|
||||
if(e.location){
|
||||
// Zapisanie państwa żeby sprawdzić czy się zgadza
|
||||
const usedCountry = document.getElementById("deliver_to_billingaddr").checked ? document.getElementById("delivery_region").value : document.getElementById("client_region").value;
|
||||
// Zapisanie płatności i dostawy na następny raz
|
||||
const paymentInput = document.querySelector(`input[name="payform_id"]:checked`)
|
||||
const usedPaymentMethod = {
|
||||
@@ -1863,6 +1886,7 @@ function sendOrder(data){
|
||||
|
||||
localStorage.setItem("prevPaymentMethod", JSON.stringify(usedPaymentMethod));
|
||||
localStorage.setItem("prevDeliveryMethod", JSON.stringify(usedDeliveryMethod));
|
||||
localStorage.setItem("prevCountry", usedCountry);
|
||||
|
||||
// Przeniesienie na stonę informacji o zamóieniu
|
||||
window.location.href = e.location;
|
||||
|
||||
21
style.css
21
style.css
@@ -1,4 +1,7 @@
|
||||
.--place-order-page{
|
||||
#modal_placeholder{
|
||||
display: none;
|
||||
}
|
||||
// Blokada przesuwania się text area
|
||||
textarea{
|
||||
resize: none;
|
||||
@@ -205,7 +208,7 @@
|
||||
}
|
||||
}
|
||||
// MODAL BANKU I KARTY
|
||||
.transfer__methods .payments-container, .card__methods .payments-container{
|
||||
.osc_item-modal .payments-container{
|
||||
margin-top: 2rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3,1fr);
|
||||
@@ -518,8 +521,8 @@
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
top: 12%;
|
||||
height: 75%;
|
||||
top: 1px;
|
||||
height: 36px;
|
||||
background: #fff;
|
||||
}
|
||||
#toggle_password:hover{
|
||||
@@ -561,7 +564,7 @@
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
#modal_placeholder, .delivery__address-list-button{
|
||||
.delivery__address-list-button{
|
||||
padding: 1rem 3rem;
|
||||
display: none;
|
||||
}
|
||||
@@ -1005,6 +1008,9 @@
|
||||
.register{
|
||||
padding-top: 1.6rem;
|
||||
padding-bottom: 1.4rem;
|
||||
#toggle_password{
|
||||
height: 43px!important;
|
||||
}
|
||||
}
|
||||
.client_new_social{
|
||||
gap: 1.6rem!important;
|
||||
@@ -1044,7 +1050,7 @@
|
||||
#client_form{
|
||||
margin-bottom: 2.4rem;
|
||||
}
|
||||
.transfer__methods .payments-container, .card__methods .payments-container{
|
||||
.osc_item-modal .payments-container{
|
||||
grid-template-columns: 47% 47%;
|
||||
}
|
||||
#cop_seection2{
|
||||
@@ -1153,6 +1159,11 @@
|
||||
align-items: flex-start!important;
|
||||
}
|
||||
}
|
||||
@media(max-width: 450px){
|
||||
.osc_item-modal .payments-container{
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// LEAFLET MAP
|
||||
// Znika powtórzenie
|
||||
|
||||
@@ -7,23 +7,23 @@ var stocks_list_more_txt=<iai:variable vid="więcej informacji"/>;var stocks_lis
|
||||
|
||||
// Zmienna trzymająca informacje o customowych markerach
|
||||
// [wysokosc, szerokosc] w pikselach
|
||||
const defaultIconSize = [50,45];
|
||||
const defaultMarkerSize = [50,45];
|
||||
const mapMarkerIcons = {
|
||||
inpost: L.icon({
|
||||
iconUrl: "/data/include/deliveries/markers/inpost/marker_locker.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
default: L.icon({
|
||||
iconUrl: "/gfx/standards/marker-icon.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
// default: "/gfx/standards/marker-icon.png"
|
||||
// custom : "/data/include/cms/map_marker/testMarkerIcon.svg?v=1703749620844"
|
||||
orlen: L.icon({
|
||||
iconUrl: "/data/include/deliveries/markers/paczkaOrlen/marker_orlen.png",
|
||||
iconSize: defaultIconSize,
|
||||
iconSize: defaultMarkerSize,
|
||||
className: ""
|
||||
}),
|
||||
}
|
||||
@@ -927,7 +927,7 @@ function getNewPaymentsAndDeliveries(data = null, firstLoad = false) {
|
||||
if(!pointExists) selectedShipping.checked = false;
|
||||
});
|
||||
}// Sprawdzenie czy użytkownik ma zapisane poprzednio użyte metody w przeglądarce(tylko przy pierwszym załadowaniu strony)
|
||||
else if(localStorage.getItem("prevPaymentMethod") && localStorage.getItem("prevDeliveryMethod") && firstLoad){
|
||||
else if(firstLoad && localStorage.getItem("prevCountry") && localStorage.getItem("prevCountry") === document.getElementById("client_region").value){
|
||||
const prevPaymentMethod = JSON.parse(localStorage.getItem("prevPaymentMethod"));
|
||||
|
||||
// Zaznaczenie metod płatności które nie tworzą popupa
|
||||
@@ -1651,15 +1651,34 @@ document.querySelector(".order2_button_order").addEventListener("click", async (
|
||||
|
||||
// Przerwanie składania zamówienia jeśli w trakcie walidacji wystąpił błąd
|
||||
if (app_shop.vars.validation === 0) {
|
||||
// Scroll do elementów z błędem
|
||||
if(document.getElementById("order2_terms_conditions").checked && document.getElementById("order2_cancel").checked){
|
||||
const errorEl = document.querySelector(".--error.has-error");
|
||||
if(errorEl) scrollToHeight(errorEl)
|
||||
else if(!document.querySelector(`input[name="payform_id"]:checked`)) scrollToHeight(document.querySelector("#checkout_step3_1 h2"));
|
||||
else if(!document.querySelector(`input[name="shipping"]:checked`)) scrollToHeight(document.querySelector("#checkout_step2_1 h2"));
|
||||
let scrolledToElement;
|
||||
let alertMessage = "";
|
||||
|
||||
// Element sprawdzający czy regulamin jest zaznaczony
|
||||
let termsAndConditions = document.getElementById("order2_terms_conditions").checked && document.getElementById("order2_cancel").checked;
|
||||
if(!termsAndConditions) alertMessage += `${<iai:variable vid="Zatwierdź"/>} ${<iai:variable vid="Regulamin"/>}!<br/>`;
|
||||
// Błąd w formularzu
|
||||
if(errorEl){
|
||||
scrolledToElement = errorEl;
|
||||
alertMessage += `${<iai:variable vid="W formularzu wystąpiły błędy"/>}<br/>`;
|
||||
}// Sprawdź metodę płatności i dostawy(scrollowanie do formularza ważniejsze)
|
||||
if(!document.querySelector(`input[name="payform_id"]:checked`)){
|
||||
scrolledToElement = errorEl || document.querySelector("#checkout_step3_1 h2");
|
||||
alertMessage += `${<iai:variable vid="Proszę wybrać metodę płatności"/>}<br/>`;
|
||||
}
|
||||
Alertek.show_alert(`${<iai:variable vid="W formularzu wystąpiły błędy"/>}`);
|
||||
return app_shop.fn.ajaxLoadSite(0), !1;
|
||||
if(!document.querySelector(`input[name="shipping"]:checked`)){
|
||||
scrolledToElement = errorEl || document.querySelector("#checkout_step2_1 h2");
|
||||
alertMessage += `${<iai:variable vid="Proszę wybrać dostępną metodę dostawy"/>}`;
|
||||
|
||||
}
|
||||
|
||||
// Jeśli użytkownik zatwierdził regulamin, przescrolluj do elementu z błędem
|
||||
if(termsAndConditions) scrollToHeight(scrolledToElement);
|
||||
|
||||
// Pokaż error i przerwij składanie zamówienia
|
||||
Alertek.show_alert(alertMessage);
|
||||
return app_shop.fn.ajaxLoadSite(0);
|
||||
}
|
||||
|
||||
// Rejestracja użytkownika i/lub złożenie zamówienia
|
||||
@@ -1677,7 +1696,9 @@ document.querySelector(".order2_button_order").addEventListener("click", async (
|
||||
});
|
||||
// Przescrolluj do
|
||||
function scrollToHeight(scrollToEl){
|
||||
const yOffset = app_shop.vars.view === 1 ? -100 : -45;
|
||||
let yOffset = -45;
|
||||
if(app_shop.vars.view === 1) yOffset = -100;
|
||||
if(app_shop.vars.view === 2) yOffset = -75;
|
||||
const y = scrollToEl.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
||||
window.scrollTo({top: y, behavior: 'smooth'});
|
||||
}
|
||||
@@ -1835,6 +1856,8 @@ function sendOrder(data){
|
||||
},
|
||||
success: function (e) {
|
||||
if(e.location){
|
||||
// Zapisanie państwa żeby sprawdzić czy się zgadza
|
||||
const usedCountry = document.getElementById("deliver_to_billingaddr").checked ? document.getElementById("delivery_region").value : document.getElementById("client_region").value;
|
||||
// Zapisanie płatności i dostawy na następny raz
|
||||
const paymentInput = document.querySelector(`input[name="payform_id"]:checked`)
|
||||
const usedPaymentMethod = {
|
||||
@@ -1859,6 +1882,7 @@ function sendOrder(data){
|
||||
|
||||
localStorage.setItem("prevPaymentMethod", JSON.stringify(usedPaymentMethod));
|
||||
localStorage.setItem("prevDeliveryMethod", JSON.stringify(usedDeliveryMethod));
|
||||
localStorage.setItem("prevCountry", usedCountry);
|
||||
|
||||
// Przeniesienie na stonę informacji o zamóieniu
|
||||
window.location.href = e.location;
|
||||
|
||||
Reference in New Issue
Block a user