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

Update WooCommerce plugin slug for Block Templates #5519

Merged
merged 1 commit into from
Jan 7, 2022

Conversation

tjcafferkey
Copy link
Contributor

@tjcafferkey tjcafferkey commented Jan 5, 2022

Description

Use the correct WooCommerce plugin slug woocommerce/woocommerce instead of the current incorrect one woocommerce. However, we are maintaining the old slug until we deploy a migration script to update the DB entires.

Consequences of this approach

If the site has DB entries using the old slug and the new slug:
We will have to find the term_id for the old slug and update all entries using it to use the new slugs term_id.

If the site has DB entries just using the old slug:
We can simply update the old slug row in wp_terms

From:
name: WooCommerce
slug: woocommerce

To:
name:woocommerce/woocommerce
slug: woocommerce-woocommerce

Fixes #5423
Fixes #5327

Testing

How to test the changes in this Pull Request:

Note: This is mostly regression testing.

  1. Before checking out this PR, customise the Single Product template so you have a DB entry with the old slug.
  2. Checkout this PR, ensure on the Site Editor > Templates list you are still seeing the customised template in this list and it renders correctly on the frontend, and in site editor.
  3. Now customise the Product Archive template and ensure on the Site Editor > Templates list you are still seeing the customised template in this list and it renders correctly on the frontend, and in site editor.
  4. Clear the customisations of the Product Archive template to ensure this functionality also works correctly.
  5. Create a archive-product.html template in your theme and ensure this overrides the default one provided by WooCommerce. Check this also renders correctly on the frontend and within the site editor.
  6. Customise the newly created archive-product.html provided by your theme, ensure on the Site Editor > Templates list you are still seeing the customised template in this list and it renders correctly on the frontend, and in site editor.
  7. Clear the customisations of the themes archive-product.html template to ensure this works correctly.
  8. Check that we're now not receiving 404 network requests for WooCommerce templates on the Site Editor templates list page as described here WooCommerce templates: two 404 requests when loading the templates list #5327

Performance Impact

We are querying both the old and the new slugs for customised templates which have been saved in the database. This will be resolved later using a migration script described above in this PR.

@tjcafferkey tjcafferkey added type: bug The issue/PR concerns a confirmed bug. focus: FSE Work related to prepare WooCommerce for FSE. focus: template Related to API powering block template functionality in the Site Editor labels Jan 5, 2022
@tjcafferkey tjcafferkey self-assigned this Jan 5, 2022
@rubikuserbot rubikuserbot requested review from a team and gigitux and removed request for a team January 5, 2022 14:34
@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2022

Size Change: 0 B

Total Size: 819 kB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.21 kB
build/active-filters.js 7.1 kB
build/all-products-frontend.js 18.6 kB
build/all-products.js 34.4 kB
build/all-reviews.js 8.35 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.76 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.48 kB
build/atomic-block-components/add-to-cart-frontend.js 6.87 kB
build/atomic-block-components/add-to-cart.js 6.43 kB
build/atomic-block-components/button-frontend.js 1.48 kB
build/atomic-block-components/button.js 851 B
build/atomic-block-components/category-list-frontend.js 458 B
build/atomic-block-components/category-list.js 458 B
build/atomic-block-components/image-frontend.js 1.37 kB
build/atomic-block-components/image.js 1.05 kB
build/atomic-block-components/price-frontend.js 1.74 kB
build/atomic-block-components/price.js 1.7 kB
build/atomic-block-components/rating-frontend.js 553 B
build/atomic-block-components/rating.js 554 B
build/atomic-block-components/sale-badge-frontend.js 625 B
build/atomic-block-components/sale-badge.js 622 B
build/atomic-block-components/sku-frontend.js 386 B
build/atomic-block-components/sku.js 385 B
build/atomic-block-components/stock-indicator-frontend.js 585 B
build/atomic-block-components/stock-indicator.js 585 B
build/atomic-block-components/summary-frontend.js 874 B
build/atomic-block-components/summary.js 871 B
build/atomic-block-components/tag-list-frontend.js 460 B
build/atomic-block-components/tag-list.js 458 B
build/atomic-block-components/title-frontend.js 1.11 kB
build/atomic-block-components/title.js 1.1 kB
build/attribute-filter-frontend.js 16.3 kB
build/attribute-filter.js 12.6 kB
build/blocks-checkout.js 17.6 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.15 kB
build/cart-blocks/checkout-button-frontend.js 1.14 kB
build/cart-blocks/empty-cart-frontend.js 345 B
build/cart-blocks/express-payment-frontend.js 4.86 kB
build/cart-blocks/filled-cart-frontend.js 766 B
build/cart-blocks/items-frontend.js 298 B
build/cart-blocks/line-items-frontend.js 5.32 kB
build/cart-blocks/order-summary-frontend.js 8.98 kB
build/cart-blocks/totals-frontend.js 320 B
build/cart-frontend.js 45.4 kB
build/cart.js 44.3 kB
build/checkout-blocks/actions-frontend.js 1.44 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.22 kB
build/checkout-blocks/billing-address-frontend.js 884 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.15 kB
build/checkout-blocks/fields-frontend.js 343 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/order-summary-frontend.js 11.4 kB
build/checkout-blocks/payment-frontend.js 7.4 kB
build/checkout-blocks/shipping-address-frontend.js 971 B
build/checkout-blocks/shipping-methods-frontend.js 4.82 kB
build/checkout-blocks/terms-frontend.js 1.21 kB
build/checkout-blocks/totals-frontend.js 324 B
build/checkout-frontend.js 47.5 kB
build/checkout.js 47.1 kB
build/featured-category.js 8.55 kB
build/featured-product.js 9.91 kB
build/handpicked-products.js 7.33 kB
build/legacy-template.js 2.08 kB
build/mini-cart-component-frontend.js 14.2 kB
build/mini-cart-contents.js 3.6 kB
build/mini-cart-frontend.js 1.76 kB
build/mini-cart.js 6.46 kB
build/price-filter-frontend.js 12.4 kB
build/price-filter.js 8.62 kB
build/price-format.js 1.18 kB
build/product-best-sellers.js 7.51 kB
build/product-categories.js 3.47 kB
build/product-category.js 8.36 kB
build/product-new.js 7.66 kB
build/product-on-sale.js 8.05 kB
build/product-search.js 2.47 kB
build/product-tag.js 7.76 kB
build/product-top-rated.js 7.63 kB
build/products-by-attribute.js 8.48 kB
build/reviews-by-category.js 11.8 kB
build/reviews-by-product.js 12.9 kB
build/reviews-frontend.js 7.24 kB
build/single-product-frontend.js 22.1 kB
build/single-product.js 10.4 kB
build/stock-filter-frontend.js 6.81 kB
build/stock-filter.js 6.82 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 19 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 6.82 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 4.75 kB
build/wc-blocks-data.js 8.84 kB
build/wc-blocks-editor-style-rtl.css 4.46 kB
build/wc-blocks-editor-style.css 4.46 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 949 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.51 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 21.6 kB
build/wc-blocks-style.css 21.6 kB
build/wc-blocks-vendors-style-rtl.css 1.28 kB
build/wc-blocks-vendors-style.css 1.28 kB
build/wc-blocks-vendors.js 65.5 kB
build/wc-blocks.js 2.96 kB
build/wc-payment-method-bacs.js 820 B
build/wc-payment-method-cheque.js 816 B
build/wc-payment-method-cod.js 912 B
build/wc-payment-method-paypal.js 838 B
build/wc-payment-method-stripe.js 11.1 kB
build/wc-settings.js 2.61 kB

compressed-size-action

@tjcafferkey tjcafferkey marked this pull request as ready for review January 5, 2022 17:02
@tjcafferkey tjcafferkey requested a review from Aljullu January 5, 2022 17:03
Copy link
Contributor

@Aljullu Aljullu left a comment

Choose a reason for hiding this comment

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

This is testing well and code looks good, thanks for investigating @tjcafferkey!

If the site has DB entries using the old slug and the new slug:
We will have to find the term_id for the old slug and update all entries using it to use the new slugs term_id.

If the site has DB entries just using the old slug:
We can simply update the old slug row in wp_terms

To help me understand the urgency of this: with your fix in this PR, we are reading templates from the old and the new slugs, right? If that's the case, my understanding is that the database migration is not be really urgent, correct? It would just be a clean-up so we don't need to account for the old slug in new code we write, but that's all. Am I right?

@github-actions github-actions bot added this to the 6.8.0 milestone Jan 7, 2022
@tjcafferkey tjcafferkey added the skip-changelog PRs that you don't want to appear in the changelog. label Jan 7, 2022
@tjcafferkey
Copy link
Contributor Author

tjcafferkey commented Jan 7, 2022

Am I right?

Yeah that is correct @Aljullu. It's no longer as urgent and likely won't effect that many sites assuming the feature isn't widely adopted yet.

I will merge this, and create a new issue about this migration and reference this PR and the original issue for context.

Thanks for testing!

@tjcafferkey tjcafferkey merged commit e220727 into trunk Jan 7, 2022
@tjcafferkey tjcafferkey deleted the update/block-templates-plugin-slug branch January 7, 2022 10:17
@frontdevde frontdevde restored the update/block-templates-plugin-slug branch January 17, 2022 12:50
frontdevde added a commit that referenced this pull request Jan 18, 2022
* Empty commit for release pull request

* Query legacy and correct plugin slug for WooCommerce block templates (#5519)

* Update readme.txt for 6.5.2 changelog

* Add testing notes for 6.5.2

* Update testing instructions

* Update version to 6.5.2-dev

* Update testing zip for 6.5.2

* Bumping version strings to new version.

Co-authored-by: github-actions <[email protected]>
Co-authored-by: Tom Cafferkey <[email protected]>
Co-authored-by: Michael P. Pfeiffer <[email protected]>
@dinhtungdu dinhtungdu mentioned this pull request Jan 23, 2022
5 tasks
@nielslange nielslange deleted the update/block-templates-plugin-slug branch August 18, 2023 09:02
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
focus: FSE Work related to prepare WooCommerce for FSE. focus: template Related to API powering block template functionality in the Site Editor skip-changelog PRs that you don't want to appear in the changelog. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
2 participants