Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Template Placeholder Design for the Order Received Template #9602

Merged

Conversation

mikejolley
Copy link
Member

Implements a new design for classic templates, making them more generic, to support the order received template. The design was taken from #9292 and adapted to use existing icons.

The design change show the placeholders appear in the editor, showing a large preview of what the block may render, with a box overlaid on top explaining that the template cannot be edited. Templates that can be blockified continue to show a button to convert to blocks (but this does not apply to the order received template).

In the case of the order received template, we're using a HTML skeleton instead of an SVG/image, although both are supported.

There are a few things I didn't implement from the design:

  • "W" icon. We're not using this in other places so I used the existing branding
  • Unfocussed view. I experimented with trying to include the actual PHP template but ran into problems because the templates expect real live data. So instead of this I had to use a static skeleton template. Because of this, and that it might not match the frontend exactly, I left it blurred with the placeholder always visible.

cc @shaunandrews

Because we implemented this on top of the classic template block, existing classic template boxes inherit the new design. See screenshots below.

Fixes #9292

Screenshots

Screenshot 2023-05-25 at 15 26 54
Screenshot 2023-05-25 at 15 26 39
Screenshot 2023-05-25 at 15 26 30

Testing

Automated Tests

  • Changes in this PR are covered by Automated Tests.
    • Unit tests
    • E2E tests

User Facing Testing

  1. Go to Appearance > Editor
  2. Edit the "single product" template. Ensure it looks correct, shows the placeholder, and the convert button converts the placeholder to blocks successfully.
  3. Repeat for the product catalog template.
  4. Edit the "order received" template. Confirm it matches the appearance of the screenshots. There is no button to push in this example.
  • Do not include in the Testing Notes

WooCommerce Visibility

  • WooCommerce Core
  • Feature plugin
  • Experimental

@mikejolley mikejolley added status: needs review block: checkout Issues related to the checkout block. labels May 25, 2023
@mikejolley mikejolley self-assigned this May 25, 2023
@woocommercebot woocommercebot requested review from a team and nielslange and removed request for a team May 25, 2023 14:33
@mikejolley mikejolley requested review from wavvves and removed request for nielslange May 25, 2023 14:33
@mikejolley mikejolley changed the base branch from trunk to add/9288_cart-checkout-order-received_fse_templates May 25, 2023 14:34
@github-actions
Copy link
Contributor

github-actions bot commented May 25, 2023

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-9602.zip

Script Dependencies Report

There is no changed script dependency between this branch and trunk.

This comment was automatically generated by the ./github/compare-assets action.

TypeScript Errors Report

  • Files with errors: 478
  • Total errors: 2274

⚠️ ⚠️ This PR introduces new TS errors on 4 files:

assets/js/blocks/classic-template/constants.ts

assets/js/blocks/classic-template/index.tsx

assets/js/blocks/classic-template/test/utils.ts

assets/js/editor-components/template-notice/index.tsx

comments-aggregator

@github-actions
Copy link
Contributor

github-actions bot commented May 25, 2023

Size Change: +2.09 kB (0%)

Total Size: 1.1 MB

Filename Size Change
build/active-filters.js 7.48 kB +1 B (0%)
build/all-products.js 39.9 kB -11 B (0%)
build/all-reviews.js 7.78 kB +4 B (0%)
build/attribute-filter.js 13.1 kB -1 B (0%)
build/breadcrumbs.js 2.05 kB +2 B (0%)
build/cart.js 45.4 kB +2 B (0%)
build/checkout.js 46.7 kB +3 B (0%)
build/featured-category.js 15 kB +2 B (0%)
build/featured-product.js 15.2 kB +5 B (0%)
build/handpicked-products.js 7.96 kB +4 B (0%)
build/legacy-template.js 8.43 kB +1.85 kB (+28%) 🚨
build/mini-cart-contents.js 18 kB +4 B (0%)
build/price-filter.js 8.47 kB -4 B (0%)
build/product-add-to-cart.js 8.88 kB +2 B (0%)
build/product-best-sellers.js 8.28 kB -4 B (0%)
build/product-button--product-image--product-price--product-rating--product-sale-badge--product-sku--prod--5bce0384.js 964 B +1 B (0%)
build/product-categories.js 2.37 kB +2 B (0%)
build/product-category.js 9.29 kB +4 B (0%)
build/product-collection.js 9.82 kB -1 B (0%)
build/product-new.js 8.58 kB +1 B (0%)
build/product-on-sale.js 8.62 kB -2 B (0%)
build/product-query.js 11.7 kB +5 B (0%)
build/product-search.js 2.63 kB +2 B (0%)
build/product-tag.js 8.94 kB +5 B (0%)
build/product-template.js 3.26 kB -1 B (0%)
build/product-title.js 3.69 kB -1 B (0%)
build/product-top-rated.js 8.84 kB +4 B (0%)
build/products-by-attribute.js 9.67 kB +2 B (0%)
build/single-product.js 11.1 kB -9 B (0%)
build/stock-filter.js 7.61 kB -1 B (0%)
build/store-notices.js 1.69 kB -1 B (0%)
build/wc-blocks-editor-style-rtl.css 6.08 kB +100 B (+2%)
build/wc-blocks-editor-style.css 6.08 kB +100 B (+2%)
build/wc-blocks-vendors.js 65 kB -3 B (0%)
build/wc-blocks.js 3.73 kB +29 B (+1%)
ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 8.57 kB
build/active-filters-wrapper-frontend.js 7.62 kB
build/all-products-frontend.js 11.9 kB
build/attribute-filter-wrapper--stock-filter-wrapper-frontend.js 4.05 kB
build/attribute-filter-wrapper-frontend.js 4.29 kB
build/blocks-checkout.js 35.2 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.39 kB
build/cart-blocks/cart-cross-sells-frontend.js 253 B
build/cart-blocks/cart-cross-sells-products--product-price-frontend.js 2.94 kB
build/cart-blocks/cart-cross-sells-products-frontend.js 3.71 kB
build/cart-blocks/cart-express-payment--checkout-blocks/express-payment-frontend.js 5.17 kB
build/cart-blocks/cart-express-payment-frontend.js 720 B
build/cart-blocks/cart-items-frontend.js 301 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.5 kB
build/cart-blocks/cart-line-items-frontend.js 1.06 kB
build/cart-blocks/cart-order-summary-frontend.js 1.27 kB
build/cart-blocks/cart-totals-frontend.js 308 B
build/cart-blocks/empty-cart-frontend.js 346 B
build/cart-blocks/filled-cart-frontend.js 656 B
build/cart-blocks/order-summary-coupon-form-frontend.js 1.63 kB
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 272 B
build/cart-blocks/order-summary-heading-frontend.js 333 B
build/cart-blocks/order-summary-shipping-frontend.js 17.1 kB
build/cart-blocks/order-summary-subtotal-frontend.js 273 B
build/cart-blocks/order-summary-taxes-frontend.js 434 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.38 kB
build/cart-frontend.js 29.8 kB
build/catalog-sorting.js 1.7 kB
build/checkout-blocks/actions-frontend.js 1.85 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.7 kB
build/checkout-blocks/billing-address-frontend.js 1.18 kB
build/checkout-blocks/contact-information-frontend.js 2.04 kB
build/checkout-blocks/express-payment-frontend.js 1.14 kB
build/checkout-blocks/fields-frontend.js 332 B
build/checkout-blocks/order-note-frontend.js 1.14 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.69 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 1.79 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.29 kB
build/checkout-blocks/order-summary-fee-frontend.js 275 B
build/checkout-blocks/order-summary-frontend.js 1.28 kB
build/checkout-blocks/order-summary-shipping-frontend.js 17 kB
build/checkout-blocks/order-summary-subtotal-frontend.js 273 B
build/checkout-blocks/order-summary-taxes-frontend.js 434 B
build/checkout-blocks/payment-frontend.js 8.29 kB
build/checkout-blocks/pickup-options-frontend.js 4.84 kB
build/checkout-blocks/shipping-address-frontend.js 1.17 kB
build/checkout-blocks/shipping-method-frontend.js 2.63 kB
build/checkout-blocks/shipping-methods-frontend.js 6.4 kB
build/checkout-blocks/terms-frontend.js 1.56 kB
build/checkout-blocks/totals-frontend.js 361 B
build/checkout-frontend.js 31.9 kB
build/customer-account.js 3.18 kB
build/filter-wrapper-frontend.js 14.2 kB
build/filter-wrapper.js 2.4 kB
build/general-style-rtl.css 1.31 kB
build/general-style.css 1.31 kB
build/mini-cart-component-frontend.js 28.4 kB
build/mini-cart-contents-block/cart-button-frontend.js 1.74 kB
build/mini-cart-contents-block/checkout-button-frontend.js 1.74 kB
build/mini-cart-contents-block/empty-cart-frontend.js 360 B
build/mini-cart-contents-block/filled-cart-frontend.js 267 B
build/mini-cart-contents-block/footer-frontend.js 4.1 kB
build/mini-cart-contents-block/items-frontend.js 237 B
build/mini-cart-contents-block/products-table-frontend.js 594 B
build/mini-cart-contents-block/shopping-button-frontend.js 528 B
build/mini-cart-contents-block/title-frontend.js 1.91 kB
build/mini-cart-contents-block/title-items-counter-frontend.js 1.61 kB
build/mini-cart-contents-block/title-label-frontend.js 1.54 kB
build/mini-cart-frontend.js 2.67 kB
build/mini-cart.js 4.35 kB
build/price-filter-wrapper-frontend.js 6.75 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-image--product-price--product-rating--product-sale-bad--49d3ecb2.js 250 B
build/product-add-to-cart--product-button--product-image--product-rating--product-title.js 151 B
build/product-add-to-cart-frontend.js 6.51 kB
build/product-button-frontend.js 2.65 kB
build/product-button.js 4.01 kB
build/product-image-frontend.js 2.63 kB
build/product-image.js 4.17 kB
build/product-price-frontend.js 203 B
build/product-price.js 1.69 kB
build/product-rating-frontend.js 2.28 kB
build/product-rating.js 971 B
build/product-results-count.js 1.66 kB
build/product-sale-badge-frontend.js 1.8 kB
build/product-sale-badge.js 666 B
build/product-sku-frontend.js 1.84 kB
build/product-sku.js 536 B
build/product-stock-indicator-frontend.js 2.02 kB
build/product-stock-indicator.js 732 B
build/product-summary-frontend.js 2.19 kB
build/product-summary.js 905 B
build/product-title-frontend.js 2.22 kB
build/rating-filter-frontend.js 21.4 kB
build/rating-filter-wrapper-frontend.js 6.21 kB
build/rating-filter.js 6.89 kB
build/reviews-by-category.js 12 kB
build/reviews-by-product.js 13.2 kB
build/reviews-frontend.js 7.11 kB
build/stock-filter-wrapper-frontend.js 2.98 kB
build/vendors--attribute-filter-wrapper--cart-blocks/order-summary-coupon-form--cart-blocks/order-summary--48e1e4bb-frontend.js 6.82 kB
build/vendors--attribute-filter-wrapper--cart-blocks/order-summary-shipping--checkout-blocks/billing-addr--d9f38f9d-frontend.js 4.21 kB
build/vendors--attribute-filter-wrapper--stock-filter-wrapper-frontend.js 5.11 kB
build/vendors--cart-blocks/cart-cross-sells-products--cart-blocks/cart-line-items--cart-blocks/cart-order--3c5fe802-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.57 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js 19.4 kB
build/vendors--checkout-blocks/pickup-options--checkout-blocks/shipping-methods-frontend.js 8.25 kB
build/vendors--checkout-blocks/shipping-method-frontend.js 12.5 kB
build/vendors--price-filter-wrapper-frontend.js 2.2 kB
build/vendors--product-add-to-cart-frontend.js 7.26 kB
build/vendors--rating-filter-wrapper-frontend.js 5.1 kB
build/wc-blocks-data.js 22.5 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 933 B
build/wc-blocks-registry.js 3.15 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.75 kB
build/wc-blocks-style-rtl.css 27.9 kB
build/wc-blocks-style.css 27.8 kB
build/wc-blocks-vendors-style-rtl.css 1.96 kB
build/wc-blocks-vendors-style.css 1.96 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.6 kB
build/wc-shipping-method-pickup-location.js 30.3 kB
build/woo-directives-runtime.js 2.73 kB
build/woo-directives-vendors.js 7.91 kB

compressed-size-action

@shaunandrews
Copy link

"W" icon. We're not using this in other places so I used the existing branding

Thats fine for now, but at some point we'll need to incorporate a better representation of our branding at smaller sizes; This icon doesn't work very well at this small size.

--

So instead of this I had to use a static skeleton template. Because of this, and that it might not match the frontend exactly, I left it blurred with the placeholder always visible.

This kind of ruins the intended behavior. Having the representative view blurred makes it unrecognizable, and the always visible black border and dialog are very distracting.

Its ok if the representative view doesn't 100% match the frontend.

--

This might be a safari or sub-pixel rending thing, but the dialogs border appears to be too thick; It should be a single pixel border.

CleanShot 2023-05-25 at 15 17 22@2x

@wavvves
Copy link
Contributor

wavvves commented May 26, 2023

This might be a safari or sub-pixel rending thing, but the dialogs border appears to be too thick; It should be a single pixel border.

It was indeed a 2px border. Corrected:

image

Copy link
Contributor

@wavvves wavvves left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! @shaunandrews can we merge this?

@mikejolley
Copy link
Member Author

2023-05-30 13 44 36

@wavvves implemented fake order data. want to review?

@wavvves wavvves self-requested a review May 30, 2023 12:56
@mikejolley mikejolley merged commit 19b3ca3 into add/9288_cart-checkout-order-received_fse_templates May 30, 2023
@mikejolley mikejolley deleted the add/placeholders branch May 30, 2023 13:28
@tarunvijwani tarunvijwani added the type: enhancement The issue is a request for an enhancement. label Jun 5, 2023
mikejolley added a commit that referenced this pull request Jun 20, 2023
* Load frontend styles in editor iframe

* Update placeholder to include skeleton and updated icons

* Update classic template configs

* 1px border for .wp-block-woocommerce-classic-template__placeholder-copy

* Show copy on focus

* Sample data

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
mikejolley added a commit that referenced this pull request Jun 26, 2023
* Load frontend styles in editor iframe

* Update placeholder to include skeleton and updated icons

* Update classic template configs

* 1px border for .wp-block-woocommerce-classic-template__placeholder-copy

* Show copy on focus

* Sample data

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
mikejolley added a commit that referenced this pull request Jun 28, 2023
* Load frontend styles in editor iframe

* Update placeholder to include skeleton and updated icons

* Update classic template configs

* 1px border for .wp-block-woocommerce-classic-template__placeholder-copy

* Show copy on focus

* Sample data

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>
wavvves added a commit that referenced this pull request Jun 29, 2023
* WIP: dirty attempt to dry run Cart & Checkout templates

* Added Cart and Checkout to the template hierarchies

* Merge branch 'trunk' into poc/cart_and_checkout_fse_templates

* Updated cart & Checkout templates

* Order Received FSE template (#8937)

* Order Received template bootstrap

* typo

* WIP: new block

* add logic here

* Order received classic template

* reverted constants.ts

* Added the post title (buggy)

* Corrected page title

* Updated constants.ts

* Fixed template typo

* removed placeholder for order received block

* add order-received template description

* updated placeholder description

* Formatting fixes

* Template description.

* replaced hardcoded string with OrderReceivedTemplate::SLUG

---------

Co-authored-by: Luigi <gigitux@gmail.com>

* Code formatting (#8350)

* Code formatting

* page_template_hierarchy priority to 1 (#9323)

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Migrate Cart and Checkout Pages to the Template Editor when using a FSE theme (#9339)

* Introduce woocommerce_blocks_template_content hook

* Migrate cart and checkout page content to the template editor

* Add redirection from edit page to edit template

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Removed header and footer from checkout template. (#9378)

* Removed header and footer from checkout template.

* Removed header and footer from checkout template migration

* Permalink solution for the checkout endpoint/template (#9406)

* Checkout endpoint work

* Move setting field to util

* Include link to edit the template

* Remove todo

* Refactor checkout templates to share logic (#9411)

* Sync endpoints with pages (#9426)

* Switch to page syncing

* Update settings descriptions

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Migrate pages to templates once (#9488)

* Migrate content on init, once

* Skip migration if page does not exist

* Put back HTML for header and footer parts

* Fix page redirect due to wrong ID

* fix loading template part

* Removed unnecessary var

* update cart and checkout html templates

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Include a notice to redirect user to template editor (#9508)

* Template Placeholder Design for the Order Received Template (#9602)

* Load frontend styles in editor iframe

* Update placeholder to include skeleton and updated icons

* Update classic template configs

* 1px border for .wp-block-woocommerce-classic-template__placeholder-copy

* Show copy on focus

* Sample data

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Add simplified header on checkout template (#9607)

* Added simplified header on checkout template

* Moved simplified header to template part

* updated constants.ts

* added template part to checkout.html

* Add missing translation

* frontpage_template_hierarchy no longer needed

* Allow plugin based template parts (#9667)

* Merge branch 'trunk' into add/9288_cart-checkout-order-received_fse_templates

* Synced templates on blockified folder

* Add blockified order-received.html

* removed WooCommerce prefix

* Refactor/rebrand order received template to order confirmation (#9734)

* rebrand order received to order confirmation

* updated descriptions for templates

* updated descriptions for order confirmation placeholder

* Resolve merge conflict

* Resolve merge conflicts

* Resolve more merge conflicts after rebase

* Fix formatting

* Use patterns for localisation (#9883)

* e2e tests for cart and checkout templates (#9939)

* Merge branch 'trunk' into poc/cart_and_checkout_fse_templates

* Merge branch 'trunk' into add/9288_cart-checkout-order-received_fse_templates

* Resolve merge conflicts

* Add e2e for permalink settings

* Test that templates exist

* Add test to check that templates can be edited

* Add tests to confirm templates can be edited

* Ensure cart has contents before running tests on frontend views

* Commend out problem test

* Make sure search has multiple results

* Remove useThrottle - bad rebase

* Revert changes to docs after rebase

* Revert function call for noReviewsPlaceholder

* Bad rebase

* Reverts

* Remove revertTemplate

* Spacing

* Wait for networkidle after navigation

* Always wait for network

* Use button roles in site editor

* More specific button locator

* Update option comparison

* Fix template content

* Disable failing tests

* Disable failing classic template tests

* Use enterEditMode

* More enterEditMode usage

* enterEditMode

* Use test.skip

* More robust selectors

* Alt iframe selector

---------

Co-authored-by: Paulo Arromba <17236129+wavvves@users.noreply.github.com>

* Skip flakey test

---------

Co-authored-by: Luigi <gigitux@gmail.com>
Co-authored-by: Mike Jolley <mike.jolley@me.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
block: checkout Issues related to the checkout block. type: enhancement The issue is a request for an enhancement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve editor placeholder for the Order received template
4 participants