diff --git a/docs/internal-developers/testing/releases/870.md b/docs/internal-developers/testing/releases/870.md new file mode 100644 index 00000000000..4c0a1856543 --- /dev/null +++ b/docs/internal-developers/testing/releases/870.md @@ -0,0 +1,401 @@ +# Testing notes and ZIP for release 8.7.0 + +Zip file for +testing: [woocommerce-gutenberg-products-block.zip](https://github.com/woocommerce/woocommerce-blocks/files/9758323/woocommerce-gutenberg-products-block.zip) + +## Feature plugin and package inclusion in WooCommerce + +### Improve visual consistency between block links ([7340](https://github.com/woocommerce/woocommerce-blocks/pull/7340)) + +#### Screenshots + +| Before | After | +| ------ | ----- | +| CleanShot 2022-10-07 at 16 02 20@2x | CleanShot 2022-10-07 at 16 04 34@2x | + +#### User Facing Testing + +1. Create a regular page (Pages > Add New) and add the All Product block to it; +2. Add the Active Filters block; +3. Add the Filter By Attribute block; +4. Select an attribute from the Filter By Attribute block and apply it; +5. When the page reloads, check if the "Clear All" button (in the Active Filters block) and the "Reset" button (in + Filter By Attribute block) have the following properties: + +> Font size: 14px +> Font weight: normal +> Text decoration: underlined + +6. Hover the mouse over the "Clear All" button and the "Reset" button and make sure the text decoration is changed + to `none` (no underline) while the other properties remain the same: + +> Font size: 14px +> Font weight: normal +> Text decoration: none + +### Update the titles of some inner blocks of the Cart block and remove the lock of the Cross-Sells parent block ([7232](https://github.com/woocommerce/woocommerce-blocks/pull/7232)) + +#### Screenshots + + + + + + +
Before: +

+ +![adjust-titles-of-cart-inner-blocks-before](https://user-images.githubusercontent.com/3323310/192443836-aff1f06e-0847-4bf0-bf64-2d7011c19931.jpg) +
After: +

+ +![adjust-titles-of-cart-inner-blocks-after](https://user-images.githubusercontent.com/3323310/192443832-55b72f49-e7ec-44ec-94ee-7e1a38525b09.jpg) +
+ +### Testing + +#### User Facing Testing + +1. Create a test page. +2. Add the Cart block. +3. [Open the List View](https://wordpress.com/go/tutorials/how-to-use-the-list-view-in-the-wordpress-block-editor/). +4. Verify that the following titles are visible: + - Cart Cross-Sells + - Cart Items + - Cart Cross-Sells Products + - Proceed to Checkout +5. Verify that the Cross-Sells parent block does not show a lock. + +### Add filter for place order button label ([7154](https://github.com/woocommerce/woocommerce-blocks/pull/7154)) + +#### User Facing Testing + +##### Verify that label filter works + + + + + + +
+ +1. Create a test page and add the Checkout block to it. +2. Install and activate the [Simple Custom CSS and JS](https://wordpress.org/plugins/custom-css-js/) plugin. +3. Head over to `/wp-admin/edit.php?post_type=custom-css-js` and add the following JS code snippet: + +```js +const label = () => 'Pay now'; +const {__experimentalRegisterCheckoutFilters} = window.wc.blocksCheckout; +__experimentalRegisterCheckoutFilters('custom-place-order-button-label', { + placeOrderButtonLabel: label, +}); +``` + +4. Head over to the frontend, add a product to the cart and open the page with the Checkout block. +5. Verify that the button label says `Pay now`. + + + +Screenshot 2022-09-16 at 10 58 50 +
+ +##### Verify that payment method label still works + + + + + + +
+ +1. Make sure that the code snippet from the previous test is deactivated. +2. Install and activate the [Code Snippets](https://wordpress.org/plugins/code-snippets/) plugin. +3. Head over to `/wp-admin/admin.php?page=snippets` and add the following PHP code snippet: + +```php +add_filter( 'woocommerce_should_load_paypal_standard', '__return_true' ); +``` + +4. Head over to `/wp-admin/admin.php?page=wc-settings&tab=checkout§ion=paypal` and select the + options `Enable PayPal Standard` and ` Enable PayPal sandbox`. +5. Head over to the frontend, add a product to the cart and open the page with the Checkout block. +6. Select the payment method `PayPal`. +7. Verify that the button label says `Proceed to PayPal`. + + + +Screenshot 2022-09-16 at 11 01 29 +
+ +##### Verify that default label still works + + + + + + +
+ +1. Make sure that the code snippet from the first test is still deactivated. +2. Head over to the frontend, add a product to the cart and open the page with the Checkout block. +3. Select a payment method apart from `PayPal`, e.g. `Credit Card (Stripe)`. +4. Verify that the button label says `Place Order`. + + + +Screenshot 2022-09-16 at 11 07 51 +
+ +#### Verify that i18n of the default label still works + + + + + + +
+ +1. Make sure that the code snippet from the first test is still deactivated. +2. Head over to `/wp-admin/options-general.php` and select `German` as the `Site Language`. +3. Head over to `/wp-admin/update-core.php?force-check=1` and fetch translations. +4. Head over to the frontend, add a product to the cart and open the page with the Checkout block. +5. Select a payment method apart from `PayPal`, e.g. `Credit Card (Stripe)`. +6. Verify that the button label says `Kostenpflichtig bestellen`. + + + +Screenshot 2022-09-16 at 11 17 21 + +
+ +### Exposed data related to the checkout through wordpress/data stores ([6612](https://github.com/woocommerce/woocommerce-blocks/pull/6612)) + +#### User Facing Testing + +The full instructions for testing this PR can be +found [here](https://github.com/woocommerce/woocommerce-blocks/blob/trunk/docs/internal-developers/testing/cart-checkout/data-stores.md) +. At a minimum, we will need to smoke test by trying the +different [stripe failure](https://github.com/woocommerce/woocommerce-blocks/blob/trunk/docs/internal-developers/testing/cart-checkout/data-stores.md#stripe-failures) +modes + +### Add simple, large & two menus footer patterns. ([7306](https://github.com/woocommerce/woocommerce-blocks/pull/7306)) + +#### User Facing Testing + +1. In a new page or a template, go to the patterns tab and make sure all 6 patterns appear under the WooCommerce + category dropdown. +2. Insert each one of the footer patterns, save and make sure they all look as expected on the GH discussions. + +### Add minimal, large, and essential header patterns ([7292](https://github.com/woocommerce/woocommerce-blocks/pull/7292)) + +#### User Facing Testing + +1. In a new page or a template, go to the patterns tab and make sure all 6 patterns appear under the WooCommerce + category dropdown. +2. Insert each one of the header patterns, save and make sure they all look as expected on the GH discussions. + +### Add `showRemoveItemLink` as a new checkout filter to allow extensions to toggle the visibility of the `Remove item` button under each cart line item. ([7242](https://github.com/woocommerce/woocommerce-blocks/pull/7242)) + +#### User Facing Testing + +1. Install [this test plugin](https://github.com/woocommerce/woocommerce-blocks/files/9665640/some-extension-name.zip) + to your site and activate it. It contains a filter to prevent the `Remove item` button showing up for a product + called `Beanie` +2. Add a product named Beanie to your cart. +3. Go to the Cart block. +4. Ensure you cannot see a button to remove it from your cart. +5. View the `docs/third-party-developers/extensibility/checkout-block/available-filters.md` file and ensure it is good, + and the new text we added to describe the filter makes sense. + +### Add support for a GT tracking ID for Google Analytics ([7213](https://github.com/woocommerce/woocommerce-blocks/pull/7213)) + +#### User Facing Testing + +1. Install + the [Google Analytics Integration Extension](https://github.com/woocommerce/woocommerce-google-analytics-integration) +2. Set up the extension with a GT-X type ID from your Google Analytics account. Google Analytics account is required to + test this. This can be retrieved by going to the [analytics dashboard](https://analytics.google.com/) and going to a + data stream > Configure Tag Settings, see full + instructions [here](https://support.google.com/tagmanager/answer/12002338#zippy=%2Cset-up-your-google-tag-from-google-analytics-instructions) + ![image](https://user-images.githubusercontent.com/11388669/191953041-8593adb6-5dec-403c-9e73-45f6337ddb4b.png) +3. Install [Google Analytics Debugger](https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=en) browser extension. It needs to be installed, but do not click it (debug mode should be off). + +4. Go to the store and trigger some events using the All Products Block and Cart block. For example an add to cart + event. +5. Google Analytics Debugger should indicate that an event was fired. +6. Instead of the Google Analytics Debugger we can also check the Browser Dev Tools > Network and confirm we see + requests being sent to a URL similar to: `https://region1.google-analytics.com/g/collect` (region could vary) + +### Separate filter titles and filter controls by converting filter blocks to use Inner Blocks ([6978](https://github.com/woocommerce/woocommerce-blocks/pull/6978)) + +#### User Facing Testing + +##### Insert new blocks + +1. Check out this PR, built. +2. Add a new page, add All Products, Active Filters, Filter by Price, Filter by Attribute, and Filter by Stock blocks to + the page. +3. Check the newly inserted filter blocks, for each block, a wrapper block containing the heading and filter control + blocks were inserted. +4. Try changing block settings and style, and see if they're updated on the front end. +5. See filter blocks work as expected. + +##### Upgrade existing blocks + +1. Check out `trunk`. +2. Add a new page, add All Products, Active Filters, Filter by Price, Filter by Attribute, and Filter by Stock blocks to + the page. +3. Try changing block settings and style. +4. Check out this PR and build. +5. Edit the page created in step 2nd above. +6. See the upgrade notices for filter blocks as shown + in [this comment](https://github.com/woocommerce/woocommerce-blocks/pull/6978#issuecomment-1252087654). +7. Click the upgrade button, see: + +- The block is replaced by a filter wrapper block contain the heading and the filter block control blocks. +- The modified title remains. + +8. Save the page, see all filter blocks continue functioning as expected on the front end. + +### StoreApi requests will return a `Cart-Token` header that can be used to retrieve the cart from the corresponding session via **GET** `/wc/store/v1/cart`. ([5953](https://github.com/woocommerce/woocommerce-blocks/pull/5953)) + +#### User Facing Testing + +1. Using a REST API client +2. Disabling basic auth +3. Adding something to the cart via POST `/wc/store/v1/cart/add-item`. Note down the value of the `Cart-Token` header. +4. Deleting or disabling cookies before requesting GET `/wc/store/v1/cart` +5. No items +6. Repeat this request with a header called `Cart-Token` and the value you noted earlier. +7. Cart response has items! + +### Fixed HTML rendering in description of active payment integrations ([7313](https://github.com/woocommerce/woocommerce-blocks/pull/7313)) + +#### Screenshots + + + + + + +
Before: +

+ +![7312-before](https://user-images.githubusercontent.com/3323310/194226310-aef0c678-309d-40dd-bfb7-8a39dff5448e.png) +
After: +

+ +![7312-after](https://user-images.githubusercontent.com/3323310/194226296-aadc639f-a01c-417c-92c9-214c014b5ae2.png) +
+ +#### User Facing Testing + +1. Install the [WooCommerce Stripe Payment Gateway](https://wordpress.org/plugins/woocommerce-gateway-stripe/). +2. Head over to `/wp-admin/admin.php?page=wc-settings&tab=checkout`. +3. Activate various Stripe payment methods, e.g. Stripe SEPA Direct Debit. +4. Head over to the Checkout block in the editor. +5. Click on the Payments Options inner block. +6. Verify that all descriptions of active payment integrations render HTML. + +### Hide the shipping address form from the Checkout when the "Force shipping to the customer billing address" is enabled ([7268](https://github.com/woocommerce/woocommerce-blocks/pull/7268)) + +| Before | After | +| ------ | ----- | +|![image](https://user-images.githubusercontent.com/11503784/194019850-885528a2-aea6-40c9-bfdc-3f724ad5be80.png)|![image](https://user-images.githubusercontent.com/11503784/194019899-38245040-ca69-4c6e-afd6-671c0cb2595f.png)| + +#### User Facing Testing + +1. Go to `wp-admin/admin.php?page=wc-settings&tab=shipping§ion=options` page. +2. Enable the `Force shipping to the customer billing address` option and save the changes. +3. Go Checkout block, and confirm shipping address form is not visible. +4. Change the billing address, confirm the shipping address in the order summary gets changed and shipping methods are + updated. + +### Fixed an error where adding new pages would cause an infinite loop and large amounts of memory use in redux ([7256](https://github.com/woocommerce/woocommerce-blocks/pull/7256)) + +#### User Facing Testing + +1. Open the editor on any page/create a new page. +2. View the console and ensure no errors about `RangeError: Maximum call stack size exceeded` or similar appear. +3. Add the Checkout Block, ensure the editor works and the block is displayed correctly +4. Make a new page and add the Cart block, ensure the editor works and the block is displayed correctly. +5. Do a test order using the Cart and Checkout blocks. + +### Ensure error messages containing HTML are shown correctly in the Cart and Checkout blocks ([7231](https://github.com/woocommerce/woocommerce-blocks/pull/7231)) + +| Before | After | +| ------ | ----- | +|Screen Shot 2022-09-26 at 12 17 39 PM|Screen Shot 2022-09-26 at 12 34 36 PM| + +#### User Facing Testing + +1. Check out branch 1287-gh-Automattic/woopay + 2Update the code: + In src/Checkout/PaymentsHandler.php, comment or remove the if around the exception: + +```php + // if ( empty( $customer_id ) ) { + $session_data = WooPaySession::UNSANITIZED_get_data(); + $blog_checkout_url = esc_url( add_query_arg( 'skip_platform_checkout', 'true', $session_data['store_data'] + ['blog_checkout_url'] ) ); + /* translators: %1$s opening anchor tag with url, %2$s closing anchor tag */ + $error_message = __( 'we were unable to process your payment. Please %1$s go back to the merchant store %2$s and + log into WooPay again.', 'woopay' ); + $open_tag = ''; + $close_tag = ''; + throw new InvalidSessionException( + sprintf( $error_message, $open_tag, $close_tag ), + ); +// } +``` + +3. Get a valid checkout_session by checking out with a valid email and filling in the OTP code. +4. Place an order and see the error message + +### Prevent locked inner blocks from sometimes displaying twice ([6676](https://github.com/woocommerce/woocommerce-blocks/pull/6676)) + +| Before | After | +| ------ | ----- | +| image | image | + +#### User Facing Testing + +1. Install the [newsletter-test](https://github.com/woocommerce/newsletter-test) plugin to your site +2. Go to the Checkout block in your editor +3. Observe the `I want to receive updates about products and promotions.` checkbox in the customer information block. Ensure it only displays once. +4. Save the page and ensure the newsletter signup block is still only shown once. +5. Visit the block on the front-end and ensure the newsletter signup block only shows once. + +### Improve visual consistency between block links. ([7357](https://github.com/woocommerce/woocommerce-blocks/pull/7357)) + +| Before | After | +| ------ | ----- | +| CleanShot 2022-10-07 at 16 02 20@2x | CleanShot 2022-10-07 at 16 04 34@2x | + +#### User Facing Testing + +1. Create a regular page (Pages > Add New) and add the All Product block to it; +2. Add the Active Filters block; +3. Add the Filter By Attribute block; +4. Select an attribute from the Filter By Attribute block and apply it; +5. When the page reloads, check if the "Clear All" button (in the Active Filters block) and the "Reset" button (in Filter By Attribute block) have the following properties: + +> Font size: 14px +> Font weight: normal +> Text decoration: underlined + +6. Hover the mouse over the "Clear All" button and the "Reset" button and make sure the text decoration is changed to `none` (no underline) while the other properties remain the same: + +> Font size: 14px +> Font weight: normal +> Text decoration: none + +### Fix a problem that causes an infinite loop when inserting Cart block in wordpress.com ([7367](https://github.com/woocommerce/woocommerce-blocks/pull/7367)) + +#### User Facing Testing + +1. Get a zip of this plugin (from below) and upload it to a wordpress.com website. +2. Go to the editor and try to insert Cart, it should work. +3. Make sure no block is missing. + +image diff --git a/docs/internal-developers/testing/releases/README.md b/docs/internal-developers/testing/releases/README.md index 8c1592785f3..d860faebed1 100644 --- a/docs/internal-developers/testing/releases/README.md +++ b/docs/internal-developers/testing/releases/README.md @@ -84,12 +84,14 @@ Every release includes specific testing instructions for new features and bug fi - [8.0.0](./800.md) - [8.1.0](./810.md) - [8.2.0](./820.md) -- [8.2.1](./821.md) + - [8.2.1](./821.md) - [8.3.0](./830.md) -- [8.3.1](./831.md) + - [8.3.1](./831.md) - [8.4.0](./840.md) - [8.5.0](./850.md) - [8.5.1](./851.md) +- [8.6.0](./860.md) +- [8.7.0](./870.md) diff --git a/package.json b/package.json index 7050d6cf91f..995d63bd627 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@woocommerce/block-library", "title": "WooCommerce Blocks", "author": "Automattic", - "version": "8.7.0-dev", + "version": "8.7.0", "description": "WooCommerce blocks for the Gutenberg editor.", "homepage": "https://github.com/woocommerce/woocommerce-gutenberg-products-block/", "keywords": [ diff --git a/readme.txt b/readme.txt index 55ae51b741a..e93c746bcf5 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: gutenberg, woocommerce, woo commerce, products, blocks, woocommerce blocks Requires at least: 6.0 Tested up to: 6.0 Requires PHP: 7.0 -Stable tag: 8.7.0-dev +Stable tag: 8.7.0 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.html @@ -80,6 +80,32 @@ Release and roadmap notes available on the [WooCommerce Developers Blog](https:/ == Changelog == += 8.7.0 - 2022-10-10 = + +#### Enhancements + +- Improve visual consistency between block links. ([7340](https://github.com/woocommerce/woocommerce-blocks/pull/7340)) +- Update the titles of some inner blocks of the Cart block and remove the lock of the Cross-Sells parent block. ([7232](https://github.com/woocommerce/woocommerce-blocks/pull/7232)) +- Add filter for place order button label. ([7154](https://github.com/woocommerce/woocommerce-blocks/pull/7154)) +- Exposed data related to the checkout through wordpress/data stores. ([6612](https://github.com/woocommerce/woocommerce-blocks/pull/6612)) +- Add simple, large & two menus footer patterns. ([7306](https://github.com/woocommerce/woocommerce-blocks/pull/7306)) +- Add minimal, large, and essential header patterns. ([7292](https://github.com/woocommerce/woocommerce-blocks/pull/7292)) +- Add `showRemoveItemLink` as a new checkout filter to allow extensions to toggle the visibility of the `Remove item` button under each cart line item. ([7242](https://github.com/woocommerce/woocommerce-blocks/pull/7242)) +- Add support for a GT tracking ID for Google Analytics. ([7213](https://github.com/woocommerce/woocommerce-blocks/pull/7213)) +- Separate filter titles and filter controls by converting filter blocks to use Inner Blocks. ([6978](https://github.com/woocommerce/woocommerce-blocks/pull/6978)) +- StoreApi requests will return a `Cart-Token` header that can be used to retrieve the cart from the corresponding session via **GET** `/wc/store/v1/cart`. ([5953](https://github.com/woocommerce/woocommerce-blocks/pull/5953)) + +#### Bug Fixes + +- Fixed HTML rendering in description of active payment integrations. ([7313](https://github.com/woocommerce/woocommerce-blocks/pull/7313)) +- Hide the shipping address form from the Checkout when the "Force shipping to the customer billing address" is enabled. ([7268](https://github.com/woocommerce/woocommerce-blocks/pull/7268)) +- Fixed an error where adding new pages would cause an infinite loop and large amounts of memory use in redux. ([7256](https://github.com/woocommerce/woocommerce-blocks/pull/7256)) +- Ensure error messages containing HTML are shown correctly in the Cart and Checkout blocks. ([7231](https://github.com/woocommerce/woocommerce-blocks/pull/7231)) +- Prevent locked inner blocks from sometimes displaying twice. ([6676](https://github.com/woocommerce/woocommerce-blocks/pull/6676)) +- Improve visual consistency between block links. ([7357](https://github.com/woocommerce/woocommerce-blocks/pull/7357)) +- StoreApi `/checkout` endpoint now returns HTTP 402 instead of HTTP 400 when payment fails. ([7273](https://github.com/woocommerce/woocommerce-blocks/pull/7273)) +- Fix a problem that causes an infinite loop when inserting Cart block in wordpress.com. ([7367](https://github.com/woocommerce/woocommerce-blocks/pull/7367)) + = 8.6.0 - 2022-09-26 = #### Enhancements diff --git a/src/Package.php b/src/Package.php index 255fc89f887..82213d8dba9 100644 --- a/src/Package.php +++ b/src/Package.php @@ -109,7 +109,7 @@ public static function container( $reset = false ) { NewPackage::class, function ( $container ) { // leave for automated version bumping. - $version = '8.7.0-dev'; + $version = '8.7.0'; return new NewPackage( $version, dirname( __DIR__ ), diff --git a/woocommerce-gutenberg-products-block.php b/woocommerce-gutenberg-products-block.php index 767b275a943..465d22c8cac 100644 --- a/woocommerce-gutenberg-products-block.php +++ b/woocommerce-gutenberg-products-block.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce Blocks * Plugin URI: https://github.com/woocommerce/woocommerce-gutenberg-products-block * Description: WooCommerce blocks for the Gutenberg editor. - * Version: 8.7.0-dev + * Version: 8.7.0 * Author: Automattic * Author URI: https://woocommerce.com * Text Domain: woo-gutenberg-products-block @@ -15,7 +15,7 @@ * @package WooCommerce\Blocks * @internal This file is only used when running as a feature plugin. */ - + defined( 'ABSPATH' ) || exit; $minimum_wp_version = '6.0'; @@ -24,11 +24,14 @@ define( 'WC_BLOCKS_IS_FEATURE_PLUGIN', true ); } -// Declare comaptibility with custom order tables for WooCommerce +// Declare compatibility with custom order tables for WooCommerce. if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) { - add_action('before_woocommerce_init', function() { - \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility('custom_order_tables', __FILE__, true); - }); + add_action( + 'before_woocommerce_init', + function () { + \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); + } + ); } /**