Chcę przenieść przycisk zamówienia miejsca z płatności na pasek boczny na stronie kasy.
Czy ktoś może mi coś zasugerować?
Edycja : Czy to w ogóle możliwe (z podaniem odpowiedzi / podejścia) ?
Z moich badań wynika, że każda metoda płatności ma własny szablon .html, w tym własny przycisk. Ten przycisk nie jest ładowany z szablonu knockout.js. Np. Część „bezpłatnej” metody płatności:
<div class="checkout-agreements-block">
<!-- ko foreach: $parent.getRegion('before-place-order') -->
<!-- ko template: getTemplate() --><!-- /ko -->
<!--/ko-->
</div>
<div class="actions-toolbar">
<div class="primary">
<button class="action primary checkout"
type="submit"
data-bind="
click: placeOrder,
attr: {title: $t('Place Order')},
css: {disabled: !isPlaceOrderActionAllowed()}
">
<span data-bind="i18n: 'Place Order'"></span>
</button>
</div>
</div>
Chociaż metoda płatności „czekiem / przekazem pieniężnym” wygląda tak (tylko różnice, enable: (getCode() == isChecked())
ale hej, nadal istnieją różnice i nie ma „1 wszechmocnego ogólnego przycisku zamówienia”:
<div class="checkout-agreements-block">
<!-- ko foreach: $parent.getRegion('before-place-order') -->
<!-- ko template: getTemplate() --><!-- /ko -->
<!--/ko-->
</div>
<div class="actions-toolbar">
<div class="primary">
<button class="action primary checkout"
type="submit"
data-bind="
click: placeOrder,
attr: {title: $t('Place Order')},
css: {disabled: !isPlaceOrderActionAllowed()},
enable: (getCode() == isChecked())
"
disabled>
<span data-bind="i18n: 'Place Order'"></span>
</button>
</div>
</div>
Podana odpowiedź jedynie przenosi agresje, co prowadzi do czegoś takiego:
magento-2.1
onepage-checkout
knockoutjs
place-order
TUYEN TRAN THANH
źródło
źródło
Odpowiedzi:
Miałem podobny wymóg zmiany przycisku zamówienia miejsca na dole bloku podsumowania. Ponieważ do każdej metody płatności przypisany jest przycisk zamówienia. Utworzyłem niestandardowy przycisk zamówienia obok bloku podsumowania zamówienia. Klikając przycisk, uruchomiłem przycisk zamówienia miejsca wybranej metody płatności.
Krok 1:
Utwórz
checkout_index_index.xml
plik wKrok 2:
Utwórz plik
summary.html
na ścieżceKrok 3:
Utwórz plik
summary.js
na ścieżceKrok 4:
Aby ukryć domyślny przycisk zamówienia miejsca, użyj pliku CSS w następujący sposób
Załączony zrzut ekranu!
źródło
Wszystkie te odpowiedzi nie są kompletne, ponieważ brakuje pliku register.php dla modułu rejestru
To najlepsza odpowiedź, jaką znalazłem.
https://github.com/davidroberto/magento2-place_order_sidebar
Oto kompletny moduł, który wystarczy umieścić w obszarze App / code i uruchomić polecenie php bin / magento setup: upgrade
Mam nadzieję, że to pomoże!!!
źródło
najpierw musisz utworzyć plik checkout_index_index.xml w swoim motywie, a następnie wyłączyć zamówienie przed złożeniem zamówienia w wierszu 314:
z:
Następnie musisz ponownie dodać ten element na końcu zamówienia, po złożeniu zamówienia, w następujący sposób:
Następnie po złożeniu zamówienia skopiuj szablon domyślny (HTML):
źródło