-
Notifications
You must be signed in to change notification settings - Fork 170
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3214 from craftcms/feature/save-user-addressess-o…
…n-checkout Copy order addresses to credentialed user on order complete
- Loading branch information
Showing
22 changed files
with
696 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
{% extends 'shop/_private/layouts' %} | ||
|
||
{# @var cart \craft\commerce\elements\Order #} | ||
|
||
{% if cart is not defined %} | ||
{% set cart = craft.commerce.carts.cart %} | ||
{% endif %} | ||
|
||
{# | ||
We can skip the "options" step if the customer is a logged in user and | ||
the addresses have come from the address book | ||
#} | ||
{% if currentUser and cart.sourceBillingAddressId and cart.sourceShippingAddressId %} | ||
{% redirect 'shop/checkout/payment' %} | ||
{% endif %} | ||
|
||
{% if not cart.getCustomer() %} | ||
{% redirect 'shop/checkout/email' %} | ||
{% endif %} | ||
|
||
{% if not cart.gateway %} | ||
{% redirect 'shop/checkout/payment-method' %} | ||
{% endif %} | ||
|
||
{% block main %} | ||
<div class="md:flex md:-mx-8" > | ||
<div class="md:w-2/3 md:px-8"> | ||
|
||
<h1 class="font-bold text-xl"> | ||
{{- 'Options'|t -}} | ||
</h1> | ||
|
||
<form action="" method="post"> | ||
{{ csrfInput() }} | ||
{{ actionInput('commerce/cart/update-cart') }} | ||
{{ redirectInput(siteUrl('shop/checkout/payment')) }} | ||
{{ successMessageInput('Options saved.') }} | ||
|
||
{% set user = cart.email ? craft.users.email(cart.email).one() : null %} | ||
{% if not user or not user.getIsCredentialed() %} | ||
<div class="mt-3"> | ||
<label for="registerUserOnOrderComplete"> | ||
{{ hiddenInput('registerUserOnOrderComplete', false) }} | ||
{{ input('checkbox', 'registerUserOnOrderComplete', 1, { | ||
id: 'registerUserOnOrderComplete' | ||
}) }} | ||
{{ 'Create my account after ordering'|t }} | ||
</label> | ||
<div> | ||
{{ _self.docs('Registering a user on order complete.', 'https://craftcms.com/docs/commerce/4.x/customers.html#registration-at-checkout') }} | ||
</div> | ||
</div> | ||
{% endif %} | ||
|
||
{% set saveAddressCheckboxesShown = false %} | ||
{% if currentUser and cart.billingAddressId and not cart.sourceBillingAddressId %} | ||
{% set saveAddressCheckboxesShown = true %} | ||
<div class="mt-3"> | ||
<label for="saveBillingAddressOnOrderComplete"> | ||
{{ hiddenInput('saveBillingAddressOnOrderComplete', false) }} | ||
{{ input('checkbox', 'saveBillingAddressOnOrderComplete', 1, { | ||
id: 'saveBillingAddressOnOrderComplete', | ||
checked: cart.saveBillingAddressOnOrderComplete, | ||
}) }} | ||
{{ 'Save billing address on order complete'|t }} | ||
</label> | ||
</div> | ||
{% endif %} | ||
|
||
{% if currentUser and cart.shippingAddressId and not cart.sourceShippingAddressId %} | ||
<div class="mt-3"> | ||
{% set saveAddressCheckboxesShown = true %} | ||
<label for="saveShippingAddressOnOrderComplete"> | ||
{{ hiddenInput('saveShippingAddressOnOrderComplete', false) }} | ||
{{ input('checkbox', 'saveShippingAddressOnOrderComplete', 1, { | ||
id: 'saveShippingAddressOnOrderComplete', | ||
checked: cart.saveShippingAddressOnOrderComplete, | ||
}) }} | ||
{{ 'Save shipping address on order complete'|t }} | ||
</label> | ||
</div> | ||
{% endif %} | ||
|
||
{% if saveAddressCheckboxesShown %} | ||
<div> | ||
{{ _self.docs('Saving addresses on order complete.', '#') }} | ||
</div> | ||
{% endif %} | ||
|
||
<div class="mt-6 flex justify-end"> | ||
{{ tag('button', { | ||
type: 'submit', | ||
name: 'submit', | ||
class: 'cursor-pointer rounded px-4 py-2 inline-block bg-blue-500 hover:bg-blue-600 text-white hover:text-white', | ||
text: 'Next'|t | ||
}) }} | ||
</div> | ||
</form> | ||
</div> | ||
|
||
<div class="mt-8 md:w-1/3 md:px-8 md:mt-0"> | ||
{{ include('shop/checkout/_includes/order-summary', { | ||
showShippingAddress: true, | ||
showShippingMethod: true | ||
}) }} | ||
</div> | ||
</div> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
{% extends '[[folderName]]/_private/layouts' %} | ||
|
||
{# @var cart \craft\commerce\elements\Order #} | ||
|
||
{% if cart is not defined %} | ||
{% set cart = craft.commerce.carts.cart %} | ||
{% endif %} | ||
|
||
{# | ||
We can skip the "options" step if the customer is a logged in user and | ||
the addresses have come from the address book | ||
#} | ||
{% if currentUser and cart.sourceBillingAddressId and cart.sourceShippingAddressId %} | ||
{% redirect '[[folderName]]/checkout/payment' %} | ||
{% endif %} | ||
|
||
{% if not cart.getCustomer() %} | ||
{% redirect '[[folderName]]/checkout/email' %} | ||
{% endif %} | ||
|
||
{% if not cart.gateway %} | ||
{% redirect '[[folderName]]/checkout/payment-method' %} | ||
{% endif %} | ||
|
||
{% block main %} | ||
<div class="md:flex md:-mx-8" [[hx-disable]]> | ||
<div class="md:w-2/3 md:px-8"> | ||
|
||
<h1 class="font-bold text-xl"> | ||
{{- 'Options'|t -}} | ||
</h1> | ||
|
||
<form action="" method="post"> | ||
{{ csrfInput() }} | ||
{{ actionInput('commerce/cart/update-cart') }} | ||
{{ redirectInput(siteUrl('shop/checkout/payment')) }} | ||
{{ successMessageInput('Options saved.') }} | ||
|
||
{% set user = cart.email ? craft.users.email(cart.email).one() : null %} | ||
{% if not user or not user.getIsCredentialed() %} | ||
<div class="mt-3"> | ||
<label for="registerUserOnOrderComplete"> | ||
{{ hiddenInput('registerUserOnOrderComplete', false) }} | ||
{{ input('checkbox', 'registerUserOnOrderComplete', 1, { | ||
id: 'registerUserOnOrderComplete' | ||
}) }} | ||
{{ 'Create my account after ordering'|t }} | ||
</label> | ||
<div> | ||
{{ _self.docs('Registering a user on order complete.', 'https://craftcms.com/docs/commerce/4.x/customers.html#registration-at-checkout') }} | ||
</div> | ||
</div> | ||
{% endif %} | ||
|
||
{% set saveAddressCheckboxesShown = false %} | ||
{% if currentUser and cart.billingAddressId and not cart.sourceBillingAddressId %} | ||
{% set saveAddressCheckboxesShown = true %} | ||
<div class="mt-3"> | ||
<label for="saveBillingAddressOnOrderComplete"> | ||
{{ hiddenInput('saveBillingAddressOnOrderComplete', false) }} | ||
{{ input('checkbox', 'saveBillingAddressOnOrderComplete', 1, { | ||
id: 'saveBillingAddressOnOrderComplete', | ||
checked: cart.saveBillingAddressOnOrderComplete, | ||
}) }} | ||
{{ 'Save billing address on order complete'|t }} | ||
</label> | ||
</div> | ||
{% endif %} | ||
|
||
{% if currentUser and cart.shippingAddressId and not cart.sourceShippingAddressId %} | ||
<div class="mt-3"> | ||
{% set saveAddressCheckboxesShown = true %} | ||
<label for="saveShippingAddressOnOrderComplete"> | ||
{{ hiddenInput('saveShippingAddressOnOrderComplete', false) }} | ||
{{ input('checkbox', 'saveShippingAddressOnOrderComplete', 1, { | ||
id: 'saveShippingAddressOnOrderComplete', | ||
checked: cart.saveShippingAddressOnOrderComplete, | ||
}) }} | ||
{{ 'Save shipping address on order complete'|t }} | ||
</label> | ||
</div> | ||
{% endif %} | ||
|
||
{% if saveAddressCheckboxesShown %} | ||
<div> | ||
{{ _self.docs('Saving addresses on order complete.', '#') }} | ||
</div> | ||
{% endif %} | ||
|
||
<div class="mt-6 flex justify-end"> | ||
{{ tag('button', { | ||
type: 'submit', | ||
name: 'submit', | ||
class: '[[classes.btn.base]] [[classes.btn.mainColor]]', | ||
text: 'Next'|t | ||
}) }} | ||
</div> | ||
</form> | ||
</div> | ||
|
||
<div class="mt-8 md:w-1/3 md:px-8 md:mt-0"> | ||
{{ include('[[folderName]]/checkout/_includes/order-summary', { | ||
showShippingAddress: true, | ||
showShippingMethod: true | ||
}) }} | ||
</div> | ||
</div> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.