Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install and activate a list of plugins during migrations #2745

Merged
merged 16 commits into from
Jun 13, 2024

Conversation

harriswong
Copy link
Contributor

@harriswong harriswong commented Jun 7, 2024

Description

When the Update button is clicked, it should initiate the background installer to start installing WC Shipping and then update the button state to Updating until the installation is complete.

This PR installs and activates "WooCommerce Shipping" and WooCommerce Tax" upon clicking the "Update" button. It also deactivates WCS&T afterwards.

The order is:

  1. Install WooCommerce Shipping.
  2. Install WooCommerce Tax.
  3. Activates WooCommerce Shipping.
  4. Activates WooCommerce Tax.
  5. Deactivate WCS&T

TODO

  • Upon clicking "Update", it should update a flag to indicate that the user is migrated. This will be done via another PR.
  • Error handling if install/activation fails. Where do the errors go?

Technical considerations

I contemplated using @wordpress/apiFetch or not. I tried using it at first thinking that:

  1. It fits better with the wp-data way.
  2. It handles nonces.
    Unfortunately, WCS&T does not include the @wordpress/apiFetch package. I tried installing this (first commit) and can verify that it also doesn't automatically handle nonce.

At the end, I removed the package and opted to use the native fetch instead. In this repo, we have a library that talks to the connect server. This client uses a nonce. This PR utilizes the same nonce.

Related issue(s)

N/A

Testing activation

  1. Go to woocommerce-services/classes/class-wc-connect-service-settings-store.php and set the following to true
		public function is_eligible_for_migration() {
			return true;
		}
  1. Make sure you have "WooCommerce Shipping" and "WooCommerce Tax" in your plugins folder. We can't test the "install" part because they aren't part of dotorg yet.
  2. Go to an individual order where you can see the WCS&T shipping banner.
  3. Click "Create shipping label"
    image
  4. Click "Update now"
    image
  5. You should see 3 requests go by the network tab. install, activate and a woocommerce-service
    image
  6. Confirm that you are redirected to the plugins page and confirm that WCS&T is deactivated, WooCommerce Shipping and WooCommerce tax are activated.
    image

Testing installation

To test installation, we can test it against the hello-dolly plugin.

  1. Go to http://localhost/wp-admin/plugins.php and delete your "Hello Dolly" plugin.
  2. Open client/components/migration/feature-announcement.jsx, change line 34 from const plugins = 'woocommerce-shipping,woocommerce-tax'; to const plugins = 'hello-dolly';. This will now install and activate hello dolly.
  3. Repeat step 3-7 above and confirm "Hello Dolly" is installed and activated.

Checklist

  • unit tests
  • changelog.txt entry added
  • readme.txt entry added

@harriswong
Copy link
Contributor Author

harriswong commented Jun 7, 2024

June 7 , 2024 update

This PR has a button to demo the "install and activate plugin" function. By clicking the "Activate plugin" button, it will install and activate the "hello-dolly" plugin.

image

@harriswong
Copy link
Contributor Author

June 11th update - Bind the buttons to the actual modal

Updated the draft to bind the install/activate to the "update" button.
image

@harriswong harriswong marked this pull request as ready for review June 12, 2024 22:31
@harriswong harriswong requested review from a team and samnajian and removed request for a team June 12, 2024 22:35
Copy link
Contributor

@samnajian samnajian left a comment

Choose a reason for hiding this comment

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

For some reason the endpoints are not accessible, do we need to do anything to enable them? And if so, using these endpoints are probably not the best way of implementing this feature.

lpOnQk.mp4

Besides while testing, I noticed even despite the failure I'm redirected to the plugins page, that's why I had to comment out the redirection out to be able to see what's happening, we'd probably need to do something for it, na?

  setIsUpdating(true);
  await installPluginAPICall();
  await activatePluginAPICall();
  await deactivateWCSTPluginAPICall();
  setIsUpdating(false);
  // window.location = '/wp-admin/plugins.php';

I see you've asked about error management, but we probably would better at least not direct should any of the ajax calls fail, what do you think?

Other than this, how about chaining the API calls and not do them in parallel so if any of them throws it's easier to handle it? ( This is only an idea a question, you won't need to change it as I'm not sure either ).

await activatePluginAPICall();
await deactivateWCSTPluginAPICall();
setIsUpdating(false);
window.location = '/wp-admin/plugins.php';
Copy link
Contributor

Choose a reason for hiding this comment

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

While it works, I was wondering if we ran admin_url to get this url and the localize is on PHP side and use it here would be better? Please feel free to update or leave it as is.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks, that's a good idea. Updated in d370fdf and 96fc7c0.

@harriswong
Copy link
Contributor Author

For some reason the endpoints are not accessible

🤔 404 means that the URL isn't found. Maybe it's not locating the proper relative path. I will take a look.

I noticed even despite the failure I'm redirected to the plugins page, that's why I had to comment out the redirection out to be able to see what's happening, we'd probably need to do something for it, na?

Good catch, I think it would be best to circuit break on these. If any of the call throws 4xx or 5xx, then jump to the exception/error handling that will be taken care of in https://github.com/woocommerce/shipping/issues/134.

how about chaining the API calls and not do them in parallel so if any of them throws it's easier to handle it?

Thanks. They are run with await and they shouldn't be running in parallel. The 3 calls

  await installPluginAPICall();
  await activatePluginAPICall();
  await deactivateWCSTPluginAPICall();

should be running in sequence. I think we are okay on this but please let me know otherwise.

@harriswong
Copy link
Contributor Author

Hey @samnajian, what's your WooCommerce version please?

@samnajian
Copy link
Contributor

Hey @samnajian, what's your WooCommerce version please?

It's Version 8.9.3.
My local dev was loading very slow and acting weirdly, just prior to testing this feature I nuked my WP installation and re-install everything from scratch, thought this might help, basically I tested this feature with a clean install.

@samnajian
Copy link
Contributor

Thanks. They are run with await and they shouldn't be running in parallel. The 3 calls

Ah you're right, since all 3 were failing very fast, it gave me the impression that the they are dispatched in parallel.

@samnajian
Copy link
Contributor

Good catch, I think it would be best to circuit break on these. If any of the call throws 4xx or 5xx, then jump to the exception/error handling that will be taken care of in woocommerce/shipping#134.

👍

@harriswong
Copy link
Contributor Author

Hey @samnajian, what's your WooCommerce version please?

It's Version 8.9.3. My local dev was loading very slow and acting weirdly, just prior to testing this feature I nuked my WP installation and re-install everything from scratch, thought this might help, basically I tested this feature with a clean install.

Hey @samnajian. I can't reproduce this even with a new docker container, using 8.9.3. To help me see what the issue is, do you see any errors in your error logs please?

@harriswong
Copy link
Contributor Author

Hey @samnajian, I updated the codes with the following, please take a look again.

  • The API URLs are now using relative paths. Hopefully that addresses the 404 errors you were experiencing.
  • "install, activate, deactivate" are now put into a "circuit breaker". If any 1 of these breaks, it will throw an exception. bad3bdc

Copy link
Contributor

@samnajian samnajian left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the updates.

@harriswong
Copy link
Contributor Author

:O It worked? Sweeeet!

@harriswong harriswong merged commit c0f1144 into wcs-migration Jun 13, 2024
9 checks passed
@harriswong harriswong deleted the add/activate-woo-shipping branch June 13, 2024 23:07
Ferdev pushed a commit that referenced this pull request Jul 29, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
Ferdev pushed a commit that referenced this pull request Jul 29, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
Ferdev pushed a commit that referenced this pull request Jul 30, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
Ferdev pushed a commit that referenced this pull request Jul 30, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
Ferdev pushed a commit that referenced this pull request Jul 30, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
Ferdev added a commit that referenced this pull request Jul 31, 2024
* Tweak/issue 2750 - WordPress 6.6 and WooCommerce 9.0 Compatibility (#2754)

* Bump tested up to version

* add changelog

* update readme file

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 122c7b3.

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 642db4f.

* woorelease: Product version bump update

* Fix/issue 2712 - Make The Tariff Number Field a Required Field when the Destination is Within EU (#2764)

* add condition for EU tariff number

* add changelog

* edit the tariff number error text

* edit changelog

* woorelease: Product version bump update

* Conditionally load shipping functionality based on if WC Shipping is active (#2761)

* Rough take

* Do not change the name, this is still called WooCommerce Shipping & Tax

* Set `wc_services_will_handle_coexistence_with_woo_shipping_and_woo_tax` hook to indicate we will handle the coexistence

* Remove WC_Connect_Note_DHL_Live_Rates_Available notice todo

My concern was about the class not existing and thereby creating PHP fatal errors, but we require the file right before using it, so there's no issue even if shipping has not been generally initiated.

* Remove outdated todos

* Status page should respect shipping conditional loading (#2776)

* Conditionally hide shipping related status data

* Satisfy tests

* Introduce new "wc_services_will_disable_shipping_logic" hook (#2775)

* Reimplement logic that completely blocks WCS&T logic from initiating

* Introduce new hook for conditional loading

---------

Co-authored-by: Gerhard <potgieterg@gmail.com>

* Add changelog for WC Shipping compatibility (#2779)

* Conditionally shows legacy reports shipping tab (#2780)

* woorelease: Product version bump update

* Define Feature Announcement component and open it on click [122] (#2743)

* Define Feature Announcement component and add the content

* Open the feature announcement modal when user clicks on Create shipping label

* Make the copy translatable

* Aknowledge eligibility when opening the feature announcement modal

* Add buttons and polish styling

* Disable the modal for the time being

* Add missing text and update styling

* Remove redundant argument in selector

* Add modal left column not taking 100% of the height

* Remove useCallback from stub function

* Revert code formatting back

* Fix/adjust how feature announcement looks on smaller screens (#2746)

* Fix how Feature Announcement component looks on smaller screens

* Remove excess space in closing tag

* Install and activate a list of plugins during migrations (#2745)

* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails

* Fix fill-rule to fillRule and clip-rule to clipRule (#2748)

* Set a flag to indicate migration has started or has completed (#2747)

* Add connect/migration-flag endpoint

* Set a flag "wcshipping_migrated" to indicate it is migrated

* is_eligible_for_migration() now checks for the config as well

* Add migration done API call to the update button

* Update migration flag to migration state

* Update space to tabs

* Call API to update migration status to "started"

* Update migration state to completed in plugin deactivation hook

* Default is_eligible_for_migration to return false

* Update API constants to something like an enum instead

* PHP cs fixes

* Return 200 if option updated, 304 otherwise

* Remove redundancy in condition

* Inline code comment can not be a DocBlock

* Remove redundant class_exists() check for the enum class

* Return 500 if update_option failed

* Add admin notice on orders page for WCShipping migration (#2751)

* Use current_screen hook to trigger the add admin notice hook

* Add dimissable

* Added a button for "Upgrade now"

* Update "Confirm update" style

* Fix spaces

* Fix indentation

* Fix whitespace for linting

* Screen ID not found if using HPOS, fixed

* Update learn more link

* Add a new function is_on_order_list_page() to check order list page

* Get the migration banner info from the connect server (#2752)

* Add note to README with a fix for `npm i` getting stuck

* Retrieves the migration banner info from WooCommerce Connect Server

* Address PR comments

* Get the flag to display the migration banner from the connect server (#2755)

* Refactor code checking whether or not to display a migration banner

* Address PR comments

* Change dismiss icon and behaviour [shipping-140] (#2758)

* Add is-dismissable and button label from server

* Register separate stylesheet and add stylings for the banner and buttons

* Add functionality to dismiss and remember dismissal

* Add state machine to drive migration states (#2757)

* Add state machine to drive migration states

* Rename state to better describe its name

* Refactor the API call out so the runNext function is decouple from API status check

* Update migration state enums to include all states in the machine

* Store the state in the wcshipping_migration_state option.

This allows us to remember where we were and we can always restart the
migration based on the last known state.

* Remove comment.

* Pass the wcshipping_migration_state option into the FeatureAnnouncement react component

* Fix a bug where restarting from an error state didn't proceed to the next state

* Return 304 if state is not modified instead of throwing 4xx.

* Fix 'wcshippingMigrationState' is already declared in the upper scope error

* Refactor the state machine logic into its own module

* Use wcs-client as path and re-enable redirection

* Added comments to the migration-runner module

* Apply suggestions from code review

Lint fixes.

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Wait for the migration to finish before setting isUpdating back to false

* Return the fetch Response object instead

* Added a function to check if state exists before using it.

Throw exception otherwise.

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

---------

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Add a "deactivated" message to the plugins list entry (#2759)

* Add a "deactivated" message to the plugins list entry

* Update woocommerce-services.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Address PR comments

* Remove redundant `esc_html`

* Customize the after_plugin_row action for this plugin only

* Fix background color of deactivated message

---------

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Load the FeatureAnnouncement modal to the order listing page (#2756)

* Load a new javascript file when migration admin notice shows up

* Load redux store for admin notice

The redux store inlcudes only the label shipping's reducer and the initial states.

* semi-colon gets rendered out. Removing.

* Fix style and setup initial data from the PHP's side

* Use wcs-client alias for webpack otherwise order list page can't find it

* Add baseURL and redirect URL through the proper enqueued scripts

* Move inline styles to the migration scss

* Clicking "Confirm update" will start the migration process

* Remove phpcs:ignore because it does have a version

* Use ID as the selector for the modal update button instead.

* Fix merge conflict issues with the existing css and js overlaps

* Change testing 10s back to 3 * 24 * 60 * 60

* Fix admin notice dimissible button and cleaned up jquery

* After clicking dimiss, remove itself from the DOM until 3 days later

* Add EOL to the js file.

* Change headers to a callback to retrieve getNonce() after dependencies are loaded

* Refactor cookie function to window.wpCookies

* Add tracking data for the migration process (#2760)

* Add tracking data for the migration process

* Remove debugging output

* Add update value to tracked data

* Clicking "Maybe later" will dismiss feature announcement for 3 days (#2762)

* Clicking "Maybe later" will dismiss the modal for 3 days

* Do not display modal if it's previously dismissed

* Don't show the modal if the page isn't refreshed

* EOL in new file

* Apply suggestions from code review

Lint fixes.

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

---------

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Save transients after a migration has been completed (#2763)

* Save transients after a migration has been completed

* Use general options instead of WooCommerce Shipping & Tax's options

* Cast the migration state to int now that is saved as a global option

* Remove wcshipping_migration_state as option name

* Add missing tracking data for the migration process (#2765)

* Update tracking data when the migration is completed

* Move plugin entry deactivated message to WooCommerce Shipping

* Add missing imports for tracks in a static method

* Remove db migration and deactivation (#2767)

* Skip db and deactivating plugin and finish the migration once activation is done

* Remove woocommerce-tax from the download and activation list

* Because WCS&T is no longer deactivated, we can update the migration state when it quits

* No longer need to rely on plugin_deactivation() to update the final migration state

* Adapt the migration banner popup to reusing WCS&T (#2769)

* Change copy in migration popup

* Improve copy in migration popup

* Provide public path to js entry files (#2770)

* Display migration banner on all WC settings page [shipping-152] (#2771)

* Show upgrade banner on shipping settings page as well

* Make sure clicking the confirm upgrade button doesn't refresh the page

* Show update banner on all settings pages

---------

Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Gerhard <potgieterg@gmail.com>
Co-authored-by: Sam Najian <dev.samnajian@gmail.com>
samnajian pushed a commit that referenced this pull request Aug 7, 2024
* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails
samnajian added a commit that referenced this pull request Aug 7, 2024
* Tweak/issue 2750 - WordPress 6.6 and WooCommerce 9.0 Compatibility (#2754)

* Bump tested up to version

* add changelog

* update readme file

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 122c7b3.

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 642db4f.

* woorelease: Product version bump update

* Fix/issue 2712 - Make The Tariff Number Field a Required Field when the Destination is Within EU (#2764)

* add condition for EU tariff number

* add changelog

* edit the tariff number error text

* edit changelog

* woorelease: Product version bump update

* Conditionally load shipping functionality based on if WC Shipping is active (#2761)

* Rough take

* Do not change the name, this is still called WooCommerce Shipping & Tax

* Set `wc_services_will_handle_coexistence_with_woo_shipping_and_woo_tax` hook to indicate we will handle the coexistence

* Remove WC_Connect_Note_DHL_Live_Rates_Available notice todo

My concern was about the class not existing and thereby creating PHP fatal errors, but we require the file right before using it, so there's no issue even if shipping has not been generally initiated.

* Remove outdated todos

* Status page should respect shipping conditional loading (#2776)

* Conditionally hide shipping related status data

* Satisfy tests

* Introduce new "wc_services_will_disable_shipping_logic" hook (#2775)

* Reimplement logic that completely blocks WCS&T logic from initiating

* Introduce new hook for conditional loading

---------

Co-authored-by: Gerhard <potgieterg@gmail.com>

* Add changelog for WC Shipping compatibility (#2779)

* Conditionally shows legacy reports shipping tab (#2780)

* woorelease: Product version bump update

* Define Feature Announcement component and open it on click [122] (#2743)

* Define Feature Announcement component and add the content

* Open the feature announcement modal when user clicks on Create shipping label

* Make the copy translatable

* Aknowledge eligibility when opening the feature announcement modal

* Add buttons and polish styling

* Disable the modal for the time being

* Add missing text and update styling

* Remove redundant argument in selector

* Add modal left column not taking 100% of the height

* Remove useCallback from stub function

* Revert code formatting back

* Fix/adjust how feature announcement looks on smaller screens (#2746)

* Fix how Feature Announcement component looks on smaller screens

* Remove excess space in closing tag

* Install and activate a list of plugins during migrations (#2745)

* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails

* Fix fill-rule to fillRule and clip-rule to clipRule (#2748)

* Set a flag to indicate migration has started or has completed (#2747)

* Add connect/migration-flag endpoint

* Set a flag "wcshipping_migrated" to indicate it is migrated

* is_eligible_for_migration() now checks for the config as well

* Add migration done API call to the update button

* Update migration flag to migration state

* Update space to tabs

* Call API to update migration status to "started"

* Update migration state to completed in plugin deactivation hook

* Default is_eligible_for_migration to return false

* Update API constants to something like an enum instead

* PHP cs fixes

* Return 200 if option updated, 304 otherwise

* Remove redundancy in condition

* Inline code comment can not be a DocBlock

* Remove redundant class_exists() check for the enum class

* Return 500 if update_option failed

* Add admin notice on orders page for WCShipping migration (#2751)

* Use current_screen hook to trigger the add admin notice hook

* Add dimissable

* Added a button for "Upgrade now"

* Update "Confirm update" style

* Fix spaces

* Fix indentation

* Fix whitespace for linting

* Screen ID not found if using HPOS, fixed

* Update learn more link

* Add a new function is_on_order_list_page() to check order list page

* Get the migration banner info from the connect server (#2752)

* Add note to README with a fix for `npm i` getting stuck

* Retrieves the migration banner info from WooCommerce Connect Server

* Address PR comments

* Get the flag to display the migration banner from the connect server (#2755)

* Refactor code checking whether or not to display a migration banner

* Address PR comments

* Change dismiss icon and behaviour [shipping-140] (#2758)

* Add is-dismissable and button label from server

* Register separate stylesheet and add stylings for the banner and buttons

* Add functionality to dismiss and remember dismissal

* Add state machine to drive migration states (#2757)

* Add state machine to drive migration states

* Rename state to better describe its name

* Refactor the API call out so the runNext function is decouple from API status check

* Update migration state enums to include all states in the machine

* Store the state in the wcshipping_migration_state option.

This allows us to remember where we were and we can always restart the
migration based on the last known state.

* Remove comment.

* Pass the wcshipping_migration_state option into the FeatureAnnouncement react component

* Fix a bug where restarting from an error state didn't proceed to the next state

* Return 304 if state is not modified instead of throwing 4xx.

* Fix 'wcshippingMigrationState' is already declared in the upper scope error

* Refactor the state machine logic into its own module

* Use wcs-client as path and re-enable redirection

* Added comments to the migration-runner module

* Apply suggestions from code review

Lint fixes.

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Wait for the migration to finish before setting isUpdating back to false

* Return the fetch Response object instead

* Added a function to check if state exists before using it.

Throw exception otherwise.

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

---------

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Add a "deactivated" message to the plugins list entry (#2759)

* Add a "deactivated" message to the plugins list entry

* Update woocommerce-services.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Address PR comments

* Remove redundant `esc_html`

* Customize the after_plugin_row action for this plugin only

* Fix background color of deactivated message

---------

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Load the FeatureAnnouncement modal to the order listing page (#2756)

* Load a new javascript file when migration admin notice shows up

* Load redux store for admin notice

The redux store inlcudes only the label shipping's reducer and the initial states.

* semi-colon gets rendered out. Removing.

* Fix style and setup initial data from the PHP's side

* Use wcs-client alias for webpack otherwise order list page can't find it

* Add baseURL and redirect URL through the proper enqueued scripts

* Move inline styles to the migration scss

* Clicking "Confirm update" will start the migration process

* Remove phpcs:ignore because it does have a version

* Use ID as the selector for the modal update button instead.

* Fix merge conflict issues with the existing css and js overlaps

* Change testing 10s back to 3 * 24 * 60 * 60

* Fix admin notice dimissible button and cleaned up jquery

* After clicking dimiss, remove itself from the DOM until 3 days later

* Add EOL to the js file.

* Change headers to a callback to retrieve getNonce() after dependencies are loaded

* Refactor cookie function to window.wpCookies

* Add tracking data for the migration process (#2760)

* Add tracking data for the migration process

* Remove debugging output

* Add update value to tracked data

* Clicking "Maybe later" will dismiss feature announcement for 3 days (#2762)

* Clicking "Maybe later" will dismiss the modal for 3 days

* Do not display modal if it's previously dismissed

* Don't show the modal if the page isn't refreshed

* EOL in new file

* Apply suggestions from code review

Lint fixes.

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

---------

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Save transients after a migration has been completed (#2763)

* Save transients after a migration has been completed

* Use general options instead of WooCommerce Shipping & Tax's options

* Cast the migration state to int now that is saved as a global option

* Remove wcshipping_migration_state as option name

* Add missing tracking data for the migration process (#2765)

* Update tracking data when the migration is completed

* Move plugin entry deactivated message to WooCommerce Shipping

* Add missing imports for tracks in a static method

* Remove db migration and deactivation (#2767)

* Skip db and deactivating plugin and finish the migration once activation is done

* Remove woocommerce-tax from the download and activation list

* Because WCS&T is no longer deactivated, we can update the migration state when it quits

* No longer need to rely on plugin_deactivation() to update the final migration state

* Adapt the migration banner popup to reusing WCS&T (#2769)

* Change copy in migration popup

* Improve copy in migration popup

* Provide public path to js entry files (#2770)

* Display migration banner on all WC settings page [shipping-152] (#2771)

* Show upgrade banner on shipping settings page as well

* Make sure clicking the confirm upgrade button doesn't refresh the page

* Show update banner on all settings pages

---------

Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Gerhard <potgieterg@gmail.com>
Co-authored-by: Sam Najian <dev.samnajian@gmail.com>
kloon added a commit that referenced this pull request Aug 27, 2024
* Define Feature Announcement component and open it on click [122] (#2743)

* Define Feature Announcement component and add the content

* Open the feature announcement modal when user clicks on Create shipping label

* Make the copy translatable

* Aknowledge eligibility when opening the feature announcement modal

* Add buttons and polish styling

* Disable the modal for the time being

* Add missing text and update styling

* Remove redundant argument in selector

* Add modal left column not taking 100% of the height

* Remove useCallback from stub function

* Revert code formatting back

* Fix/adjust how feature announcement looks on smaller screens (#2746)

* Fix how Feature Announcement component looks on smaller screens

* Remove excess space in closing tag

* Install and activate a list of plugins during migrations (#2745)

* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails

* Fix fill-rule to fillRule and clip-rule to clipRule (#2748)

* Set a flag to indicate migration has started or has completed (#2747)

* Add connect/migration-flag endpoint

* Set a flag "wcshipping_migrated" to indicate it is migrated

* is_eligible_for_migration() now checks for the config as well

* Add migration done API call to the update button

* Update migration flag to migration state

* Update space to tabs

* Call API to update migration status to "started"

* Update migration state to completed in plugin deactivation hook

* Default is_eligible_for_migration to return false

* Update API constants to something like an enum instead

* PHP cs fixes

* Return 200 if option updated, 304 otherwise

* Remove redundancy in condition

* Inline code comment can not be a DocBlock

* Remove redundant class_exists() check for the enum class

* Return 500 if update_option failed

* Add admin notice on orders page for WCShipping migration (#2751)

* Use current_screen hook to trigger the add admin notice hook

* Add dimissable

* Added a button for "Upgrade now"

* Update "Confirm update" style

* Fix spaces

* Fix indentation

* Fix whitespace for linting

* Screen ID not found if using HPOS, fixed

* Update learn more link

* Add a new function is_on_order_list_page() to check order list page

* Get the migration banner info from the connect server (#2752)

* Add note to README with a fix for `npm i` getting stuck

* Retrieves the migration banner info from WooCommerce Connect Server

* Address PR comments

* Get the flag to display the migration banner from the connect server (#2755)

* Refactor code checking whether or not to display a migration banner

* Address PR comments

* Change dismiss icon and behaviour [shipping-140] (#2758)

* Add is-dismissable and button label from server

* Register separate stylesheet and add stylings for the banner and buttons

* Add functionality to dismiss and remember dismissal

* Add state machine to drive migration states (#2757)

* Add state machine to drive migration states

* Rename state to better describe its name

* Refactor the API call out so the runNext function is decouple from API status check

* Update migration state enums to include all states in the machine

* Store the state in the wcshipping_migration_state option.

This allows us to remember where we were and we can always restart the
migration based on the last known state.

* Remove comment.

* Pass the wcshipping_migration_state option into the FeatureAnnouncement react component

* Fix a bug where restarting from an error state didn't proceed to the next state

* Return 304 if state is not modified instead of throwing 4xx.

* Fix 'wcshippingMigrationState' is already declared in the upper scope error

* Refactor the state machine logic into its own module

* Use wcs-client as path and re-enable redirection

* Added comments to the migration-runner module

* Apply suggestions from code review

Lint fixes.

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Wait for the migration to finish before setting isUpdating back to false

* Return the fetch Response object instead

* Added a function to check if state exists before using it.

Throw exception otherwise.

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

---------

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Add a "deactivated" message to the plugins list entry (#2759)

* Add a "deactivated" message to the plugins list entry

* Update woocommerce-services.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Address PR comments

* Remove redundant `esc_html`

* Customize the after_plugin_row action for this plugin only

* Fix background color of deactivated message

---------

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Load the FeatureAnnouncement modal to the order listing page (#2756)

* Load a new javascript file when migration admin notice shows up

* Load redux store for admin notice

The redux store inlcudes only the label shipping's reducer and the initial states.

* semi-colon gets rendered out. Removing.

* Fix style and setup initial data from the PHP's side

* Use wcs-client alias for webpack otherwise order list page can't find it

* Add baseURL and redirect URL through the proper enqueued scripts

* Move inline styles to the migration scss

* Clicking "Confirm update" will start the migration process

* Remove phpcs:ignore because it does have a version

* Use ID as the selector for the modal update button instead.

* Fix merge conflict issues with the existing css and js overlaps

* Change testing 10s back to 3 * 24 * 60 * 60

* Fix admin notice dimissible button and cleaned up jquery

* After clicking dimiss, remove itself from the DOM until 3 days later

* Add EOL to the js file.

* Change headers to a callback to retrieve getNonce() after dependencies are loaded

* Refactor cookie function to window.wpCookies

* Add tracking data for the migration process (#2760)

* Add tracking data for the migration process

* Remove debugging output

* Add update value to tracked data

* Clicking "Maybe later" will dismiss feature announcement for 3 days (#2762)

* Clicking "Maybe later" will dismiss the modal for 3 days

* Do not display modal if it's previously dismissed

* Don't show the modal if the page isn't refreshed

* EOL in new file

* Apply suggestions from code review

Lint fixes.

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

---------

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Save transients after a migration has been completed (#2763)

* Save transients after a migration has been completed

* Use general options instead of WooCommerce Shipping & Tax's options

* Cast the migration state to int now that is saved as a global option

* Remove wcshipping_migration_state as option name

* Add missing tracking data for the migration process (#2765)

* Update tracking data when the migration is completed

* Move plugin entry deactivated message to WooCommerce Shipping

* Add missing imports for tracks in a static method

* Remove db migration and deactivation (#2767)

* Skip db and deactivating plugin and finish the migration once activation is done

* Remove woocommerce-tax from the download and activation list

* Because WCS&T is no longer deactivated, we can update the migration state when it quits

* No longer need to rely on plugin_deactivation() to update the final migration state

* Adapt the migration banner popup to reusing WCS&T (#2769)

* Change copy in migration popup

* Improve copy in migration popup

* Provide public path to js entry files (#2770)

* Display migration banner on all WC settings page [shipping-152] (#2771)

* Show upgrade banner on shipping settings page as well

* Make sure clicking the confirm upgrade button doesn't refresh the page

* Show update banner on all settings pages

* Rebase `wcs-migration` branch onto `trunk` (#2783)

* Tweak/issue 2750 - WordPress 6.6 and WooCommerce 9.0 Compatibility (#2754)

* Bump tested up to version

* add changelog

* update readme file

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 122c7b3.

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 642db4f.

* woorelease: Product version bump update

* Fix/issue 2712 - Make The Tariff Number Field a Required Field when the Destination is Within EU (#2764)

* add condition for EU tariff number

* add changelog

* edit the tariff number error text

* edit changelog

* woorelease: Product version bump update

* Conditionally load shipping functionality based on if WC Shipping is active (#2761)

* Rough take

* Do not change the name, this is still called WooCommerce Shipping & Tax

* Set `wc_services_will_handle_coexistence_with_woo_shipping_and_woo_tax` hook to indicate we will handle the coexistence

* Remove WC_Connect_Note_DHL_Live_Rates_Available notice todo

My concern was about the class not existing and thereby creating PHP fatal errors, but we require the file right before using it, so there's no issue even if shipping has not been generally initiated.

* Remove outdated todos

* Status page should respect shipping conditional loading (#2776)

* Conditionally hide shipping related status data

* Satisfy tests

* Introduce new "wc_services_will_disable_shipping_logic" hook (#2775)

* Reimplement logic that completely blocks WCS&T logic from initiating

* Introduce new hook for conditional loading

---------

Co-authored-by: Gerhard <potgieterg@gmail.com>

* Add changelog for WC Shipping compatibility (#2779)

* Conditionally shows legacy reports shipping tab (#2780)

* woorelease: Product version bump update

* Define Feature Announcement component and open it on click [122] (#2743)

* Define Feature Announcement component and add the content

* Open the feature announcement modal when user clicks on Create shipping label

* Make the copy translatable

* Aknowledge eligibility when opening the feature announcement modal

* Add buttons and polish styling

* Disable the modal for the time being

* Add missing text and update styling

* Remove redundant argument in selector

* Add modal left column not taking 100% of the height

* Remove useCallback from stub function

* Revert code formatting back

* Fix/adjust how feature announcement looks on smaller screens (#2746)

* Fix how Feature Announcement component looks on smaller screens

* Remove excess space in closing tag

* Install and activate a list of plugins during migrations (#2745)

* Add @wordpress/api-fetch package

* Created a place holder button to test plugin activation

* Update shrinkwrap since we installed api-fetch

* Use hello-dolly to test install and activate

* Use native fetch instead of apiFetch

* Remove apiFetch package

* Fix < /p> to </p>

* Bind activation and installation to the update button

* Deactivate WCS&T after installing Woo Shipping and Woo Tax

* Disable is_eligible_for_migration

Don't enable migration yet.

* Redirect to plugins after installation

* Fix deactivateWCSTPluginAPICall to return promise

* Use relative path for the actions in feature-announcement

* Add adminPluginPath in the js global config.

* Execute each task in steps and throw exception if any fails

* Fix fill-rule to fillRule and clip-rule to clipRule (#2748)

* Set a flag to indicate migration has started or has completed (#2747)

* Add connect/migration-flag endpoint

* Set a flag "wcshipping_migrated" to indicate it is migrated

* is_eligible_for_migration() now checks for the config as well

* Add migration done API call to the update button

* Update migration flag to migration state

* Update space to tabs

* Call API to update migration status to "started"

* Update migration state to completed in plugin deactivation hook

* Default is_eligible_for_migration to return false

* Update API constants to something like an enum instead

* PHP cs fixes

* Return 200 if option updated, 304 otherwise

* Remove redundancy in condition

* Inline code comment can not be a DocBlock

* Remove redundant class_exists() check for the enum class

* Return 500 if update_option failed

* Add admin notice on orders page for WCShipping migration (#2751)

* Use current_screen hook to trigger the add admin notice hook

* Add dimissable

* Added a button for "Upgrade now"

* Update "Confirm update" style

* Fix spaces

* Fix indentation

* Fix whitespace for linting

* Screen ID not found if using HPOS, fixed

* Update learn more link

* Add a new function is_on_order_list_page() to check order list page

* Get the migration banner info from the connect server (#2752)

* Add note to README with a fix for `npm i` getting stuck

* Retrieves the migration banner info from WooCommerce Connect Server

* Address PR comments

* Get the flag to display the migration banner from the connect server (#2755)

* Refactor code checking whether or not to display a migration banner

* Address PR comments

* Change dismiss icon and behaviour [shipping-140] (#2758)

* Add is-dismissable and button label from server

* Register separate stylesheet and add stylings for the banner and buttons

* Add functionality to dismiss and remember dismissal

* Add state machine to drive migration states (#2757)

* Add state machine to drive migration states

* Rename state to better describe its name

* Refactor the API call out so the runNext function is decouple from API status check

* Update migration state enums to include all states in the machine

* Store the state in the wcshipping_migration_state option.

This allows us to remember where we were and we can always restart the
migration based on the last known state.

* Remove comment.

* Pass the wcshipping_migration_state option into the FeatureAnnouncement react component

* Fix a bug where restarting from an error state didn't proceed to the next state

* Return 304 if state is not modified instead of throwing 4xx.

* Fix 'wcshippingMigrationState' is already declared in the upper scope error

* Refactor the state machine logic into its own module

* Use wcs-client as path and re-enable redirection

* Added comments to the migration-runner module

* Apply suggestions from code review

Lint fixes.

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Wait for the migration to finish before setting isUpdating back to false

* Return the fetch Response object instead

* Added a function to check if state exists before using it.

Throw exception otherwise.

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

* Update client/components/migration/migration-runner.js

---------

Co-authored-by: Fernando Espinosa <Ferdev@users.noreply.github.com>

* Add a "deactivated" message to the plugins list entry (#2759)

* Add a "deactivated" message to the plugins list entry

* Update woocommerce-services.php

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Address PR comments

* Remove redundant `esc_html`

* Customize the after_plugin_row action for this plugin only

* Fix background color of deactivated message

---------

Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>

* Load the FeatureAnnouncement modal to the order listing page (#2756)

* Load a new javascript file when migration admin notice shows up

* Load redux store for admin notice

The redux store inlcudes only the label shipping's reducer and the initial states.

* semi-colon gets rendered out. Removing.

* Fix style and setup initial data from the PHP's side

* Use wcs-client alias for webpack otherwise order list page can't find it

* Add baseURL and redirect URL through the proper enqueued scripts

* Move inline styles to the migration scss

* Clicking "Confirm update" will start the migration process

* Remove phpcs:ignore because it does have a version

* Use ID as the selector for the modal update button instead.

* Fix merge conflict issues with the existing css and js overlaps

* Change testing 10s back to 3 * 24 * 60 * 60

* Fix admin notice dimissible button and cleaned up jquery

* After clicking dimiss, remove itself from the DOM until 3 days later

* Add EOL to the js file.

* Change headers to a callback to retrieve getNonce() after dependencies are loaded

* Refactor cookie function to window.wpCookies

* Add tracking data for the migration process (#2760)

* Add tracking data for the migration process

* Remove debugging output

* Add update value to tracked data

* Clicking "Maybe later" will dismiss feature announcement for 3 days (#2762)

* Clicking "Maybe later" will dismiss the modal for 3 days

* Do not display modal if it's previously dismissed

* Don't show the modal if the page isn't refreshed

* EOL in new file

* Apply suggestions from code review

Lint fixes.

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

---------

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Save transients after a migration has been completed (#2763)

* Save transients after a migration has been completed

* Use general options instead of WooCommerce Shipping & Tax's options

* Cast the migration state to int now that is saved as a global option

* Remove wcshipping_migration_state as option name

* Add missing tracking data for the migration process (#2765)

* Update tracking data when the migration is completed

* Move plugin entry deactivated message to WooCommerce Shipping

* Add missing imports for tracks in a static method

* Remove db migration and deactivation (#2767)

* Skip db and deactivating plugin and finish the migration once activation is done

* Remove woocommerce-tax from the download and activation list

* Because WCS&T is no longer deactivated, we can update the migration state when it quits

* No longer need to rely on plugin_deactivation() to update the final migration state

* Adapt the migration banner popup to reusing WCS&T (#2769)

* Change copy in migration popup

* Improve copy in migration popup

* Provide public path to js entry files (#2770)

* Display migration banner on all WC settings page [shipping-152] (#2771)

* Show upgrade banner on shipping settings page as well

* Make sure clicking the confirm upgrade button doesn't refresh the page

* Show update banner on all settings pages

---------

Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Gerhard <potgieterg@gmail.com>
Co-authored-by: Sam Najian <dev.samnajian@gmail.com>

* Fix error launching the migration popup (#2784)

* Upgrade jetpack packages to version compatible with WCShipping (#2785)

* Use latest WP version for e2e tests

* Merge `trunk` into `wcs-migration` (#2795)

* Tweak/issue 2750 - WordPress 6.6 and WooCommerce 9.0 Compatibility (#2754)

* Bump tested up to version

* add changelog

* update readme file

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 122c7b3.

* woorelease: Product version bump update

* Revert "woorelease: Product version bump update"

This reverts commit 642db4f.

* woorelease: Product version bump update

* Fix/issue 2712 - Make The Tariff Number Field a Required Field when the Destination is Within EU (#2764)

* add condition for EU tariff number

* add changelog

* edit the tariff number error text

* edit changelog

* woorelease: Product version bump update

* Conditionally load shipping functionality based on if WC Shipping is active (#2761)

* Rough take

* Do not change the name, this is still called WooCommerce Shipping & Tax

* Set `wc_services_will_handle_coexistence_with_woo_shipping_and_woo_tax` hook to indicate we will handle the coexistence

* Remove WC_Connect_Note_DHL_Live_Rates_Available notice todo

My concern was about the class not existing and thereby creating PHP fatal errors, but we require the file right before using it, so there's no issue even if shipping has not been generally initiated.

* Remove outdated todos

* Status page should respect shipping conditional loading (#2776)

* Conditionally hide shipping related status data

* Satisfy tests

* Introduce new "wc_services_will_disable_shipping_logic" hook (#2775)

* Reimplement logic that completely blocks WCS&T logic from initiating

* Introduce new hook for conditional loading

---------

Co-authored-by: Gerhard <potgieterg@gmail.com>

* Add changelog for WC Shipping compatibility (#2779)

* Conditionally shows legacy reports shipping tab (#2780)

* woorelease: Product version bump update

* Update readme.txt to indicate that a new Woo Shipping plugin is available for download. (#2789)

* Update changelog

* Remove changelog and updated copy

* Make sure docker-compose command exists (#2793)

---------

Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Gerhard <potgieterg@gmail.com>
Co-authored-by: Sam Najian <dev.samnajian@gmail.com>

* Add a new widget in settings to start the migration (#2796)

* Add a new widget in settings to start the migration

* Add tracks event for migration settings widget

* Update changelog and readme

* Update changelog.txt copy

Update the copy to "A new migration experience from this plugin to the newly released WooCommerce Shipping plugin."

Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>

* Update feature announcement copy

* Do not test on SKU, woocommerce/woocommerce#47476 changed sku behaviour in tests

* Update version for migration work

---------

Co-authored-by: Sam Najian <dev.samnajian@gmail.com>
Co-authored-by: Harris Wong <harris.wong@automattic.com>
Co-authored-by: Gerhard Potgieter <potgieterg@gmail.com>
Co-authored-by: André Kallehauge <3846700+kallehauge@users.noreply.github.com>
Co-authored-by: Luthfi Bintoro <iyut85@yahoo.com>
Co-authored-by: Sam Najian <sam.najian@automattic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants