Obsługa szczegółów zamówienia dla klienta niezalogowanego
W tym artykule dowiesz się jak zmodyfikować szablon, aby klienci niezalogowani mogli w profilu klienta zobaczyć szczegóły zamówienia do którego posiadają link.
Szafir
W pliku customer-profile.html w pierwszym warunku dopisz and customer-profile.Order == null tak żeby warunek wyglądał w ten sposób:
0 1 2 |
{% if customer.Authenticated == false and config.DefinedPages.CustomerProfile.Id == page.PageId and customer-profile.Order == null -%} |
W pliku customer-profile/orders/order-details.html wyszukaj frazę {{ page.Url }}?{{ pageQueryName }}. Będzie to część atrybutu przypisanego do przycisku powrotu do listy zamówień. Ten przycisk trzeba uwarunkować, aby zamiast niego pojawiał się link prowadzący do strony głównej sklepu. Ostatecznie powinno to wyglądać tak jak poniższy kod:
0 1 2 3 4 5 6 7 8 |
{% if customer.Authenticated -%} <button class="load-first-lvl-lq parent-container-reload-lq" data-template="customer-profile/orders/orders.html" data-url="{{ page.Url }}?{{ pageQueryName }}={{ pageQueryNo }}{% if tab -%}&tab={{tab}}{% endif -%}"> <i class="ti-angle-left"></i> <span class="no-on-mobile-ui">{{ translations.Back }}</span> </button> {% else -%} <a href="{{ page.BaseHref }}{{ config.DefinedPages.Home }}"><i class="ti-angle-left"></i> <span class="no-on-mobile-ui">{{ translations.BackToShopping }}</span></a> {% endif -%} |
Pozostając dalej w tym samym pliku (customer-profile/orders/order-details.html) wyszukaj frazę Order/Cancel. Jest to nazwa jednej z interesujących nas akcji. Kawałek dalej znajdują się pozostałe dwie (Order/Accept i Order/RestorePayment). Pod każdą z nich wklej:
0 1 2 |
<input name="hash" type="hidden" value="{{ order.Hash }}" /> |
Nadal w tym samym pliku (customer-profile/orders/order-details.html) wyszukaj frazę copy-to-cart-lq. Jest to klasa przycisku odpowiedzialnego za kopiowanie zamówienia do koszyka. Trzeba w nim dodać atrybut data-hash=”{{ order.Hash }}” tak, aby ostatecznie przycisk wyglądał następująco:
0 1 2 3 |
<button class="copy-to-cart-lq" data-id="{{order.Id}}" data-hash="{{ order.Hash }}" data-redirect-url="{{ page.BaseHref }}{{ config.DefinedPages.Order.Url }}"> </button> |
Następnie w pliku js/init-ui2.js znajdź funkcję copyToCart i zmodyfikuj jej początek, aby wyglądała tak:
0 1 2 3 4 5 6 7 8 9 |
var id = $(e.currentTarget).data('id'); var hash = $(e.currentTarget).data('hash'); var data = { orderId: id, hash: hash, __csrf: __CSRF, __action: 'Order/Copy' }; |
W pliku customerprofile.html podmień warunek, aby wyglądał tak:
{% elseif customer.Authenticated == false and page.PageId == config.DefinedPages.CustomerProfile.Id and customerprofile.Order != null %} {% else %} {% endif %} W pliku customer/profile-orders.html wyszukaj frazę Order/RestorePayment. Jest to nazwa jednej z interesujących nas akcji. Kawałek dalej znajdują się pozostałe dwie (Order/Cancel i Order/Accept). Pod każdą z nich wklej:
Nadal w tym samym pliku (customer/profile-orders.html) wyszukaj frazę copy-to-cart. Jest to klasa przycisku odpowiedzialnego za kopiowanie zamówienia do koszyka. Trzeba go zmodyfikować tak, aby wyglądał następująco:
Następnie w pliku js/profile.js znajdź funkcję copyToCart i zmodyfikuj jej początek, aby wyglądała tak: W pliku customer-profile.html podmień warunek, aby wyglądał tak:
W pliku partials/customer/order-details.html wyszukaj frazę Order/Accept. Jest to nazwa jednej z interesujących nas akcji. Kawałek dalej znajdują się pozostałe dwie (Order/RestorePayment i Order/Cancel). Pod każdą z nich wklej:
Będąc przy akcji Order/Cancel dodaj warunek do inputa z templatką tak, aby wyglądał następująco:
Nadal będąc przy tej akcji (Order/Cancel) zmodyfikuj przycisk odpowiadający za anulowanie zamówienia tak, aby wyglądał jak tu:
Pozostając w tym samym pliku (partials/customer/order-details.html) wyszukaj frazę copy-to-cart. Jest to klasa przycisku odpowiedzialnego za kopiowanie zamówienia do koszyka. Trzeba w nim dodać atrybut data-hash=”{{ order.Hash }}” tak, aby ostatecznie przycisk wyglądał następująco: Na końcu pliku scss/main2.scss dodaj taki kod:Bursztyn lub Opal
Agat