* Add blueprint package
* Add blueprint to composer
* Register blueprint cli commands
* Add feature flag
* Add changefile(s) from automation for the following project(s): woocommerce
* Update packages/php/blueprint/src/Exporters/HasAlias.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update packages/php/blueprint/src/Exporters/ExportInstallThemeSteps.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update packages/php/blueprint/src/UseWPFunctions.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Set destination correctly
* Make sure the given path is within wp content dir
* Remove debug code
* Fix typo
* Fix typo
* Fix lint errors with README
* Move READMD.md from src to the root directory and add development.md
* Add run-unit-tests.sh
* Setup test env
* Create dirs recursively
* Remove debug code
* Update packages/php/blueprint/src/Util.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update packages/php/blueprint/src/ZipExportedSchema.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Check for steps key
* Use if statement
* Add hook comment for wooblueprint_exporters and wooblueprint_importers
* Fix plugin activation condition
* Check for download_link -- it can be empty
* Check to make sure a file was written
* Plugin must be deactivated before attemping to delete it
* Lint fixes
* Lint fixes
* blueprint - add rest api (#49765)
* Add blueprint rest api endpoint
* Rename process to import
* Add changefile(s) from automation for the following project(s): woocommerce
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Init.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/RestApi.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/RestApi.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/RestApi.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/RestApi.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Remove unavailable 2nd argument from get_param -- default values are already set from the rest api def.
* blueprint - add builder page (#49774)
* Add blueprint builder page
* Change to the correct endpoint
* Add changefile(s) from automation for the following project(s): woocommerce
* Note that the builder intro page is temporary
* Remove unused code
---------
Co-authored-by: github-actions <github-actions@github.com>
* blueprint - add blueprint settings page (#49775)
* Add blueprint settings page
* Add changefile(s) from automation for the following project(s): woocommerce
---------
Co-authored-by: github-actions <github-actions@github.com>
* Fix broken test
* Lint fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update unit test env
* Added composer scripts to setup and run tests
* Moved tests to Unit dir to make space for Integration tests later
* WIP Add tests
* Use full if statement
* Use the correct step names
* Use activate_plugin and wp_get_thmes from wp functions trait
* Skip inactive plugins
* Use plural for collections
* Add a comment for StepExporter
* Remove unused construct code
* Correct function return types
* Update packages/php/blueprint/src/Importers/ImportActivateTheme.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Use full if statement
* Make sure plugin is installed
* Use functions from trait
* Remove unused functions
* Pass $force_convert correctly
* Correctly assign $this->validator
* Fix lint issues
* Rename setOptions to setSiteOptions
* Do not use die() -- throw an exception instead
* Make sure slug is a valid WP plugin slug
* Remove hardcoded string with get_step_name()
* Fix lint issues
* Update json example files
* Removed woo-specific examples -- these should be placed in the core
* Updated the built-in steps to reflect the recent changes
* Update packages/php/blueprint/src/docs/json-examples/deletePlugin.json
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/RestApi.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Rename to correct filename
* Set version number
* Use mime_content_type for checking mime type
* Catch all exceptions
* Only allow zip and json
* Remove unused function
* Remove unused functions
* Add PHPCS command and ruleset
* PHP lint fixes
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Init.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Add back removed functions
* blueprint - Add woo blueprint exporters and importers (#50057)
* Add woo blueprint exporters and importers
* Comment fix
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Exporters/ExportWCSettings.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Exporters/ExportWCSettings.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Exporters/ExportWCSettings.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/Features/Blueprint/Exporters/ExportWCSettings.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Add a test for ImportSetWCTaxRates
* Lint fixes
* Lint fixes
* Fix setWCShipping schema and data format
* Add woocommerce_default_country option
* Lint fixes
* Fix typo -- it should be decode, not encode
* Fix incorrect argument order
* Fix typo
* Export and import shipping method settings
* Lint fixes
* Lint fixes
* Type functions -- base PR has changed
---------
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Require admin for import and export
* Use mime type from $_FILES -- mime_content_type can return incorrect mime type depending on the system configuration
* Enable export button when backend errors out
* Enable export button when backend errors out
* Allow WooCommerce export
* Change copy text
* Remove redundant check
* Fix lint issues
* Fix lint issues
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update the copy for the terms and conditions on WooCommerce.
* Remove the closing round brackets
* Add changelog for: Update the copy for the terms and conditions on WooCommerce
* Update the snapshot test
* improve label for woo.com tracking setting
* update snapshot
---------
Co-authored-by: Luigi Teschio <gigitux@gmail.com>
* Fix grammar in data-sharing agreement copy
* Add changelog
* Put ,
* Add brackets
* Move learn more link inside the bracket
* Update test snapshot
* Fix grammar
* Update test snapshot
* Fix font heading font style and adjust main component max width to match design
* Remove redundant #FunWooFact
* Reset button font color to follow admin theme
* Fix Installed label vertical alignment
* Changelog
* Remove permanent borders from consent checkbox, lint fix
* Remove box shadow on checkboxes in plugins page
* Standardize checkbox styling across core profiler
* Fix heading font styling
* Lint
* More lint
* Update snapshot
* Change Skip this setup to Skip this step
* Visual changes on intro, user profile, and skip guided page
* Always check tracking agreement
* Change border to 2px
* Change Give yoru store a name font-size to 13
* Add Changelog
* Update test to reflect the text change
* Remove !important
* Update test snapshot
* Update test snapshot
* Remove test that is no longer necessary
* Add core profiler - welcome to woo page
* Add changelog
* Update checkbox styles
* Update copies
* Add test
* Add enable prop to window.wcTracks type
* Add tracks
* Add explat changelog
* Fix import
* Update default tracking value
* Update copies
* Fix test
* using invoked promise instead of useState
- take advantage of xstate's built ins for side effects instead of useEffect/hooks
- discovered that error result wasn't really handled in original useEffect
- use text labels instead of inline functions so that we can decouple the implementation from the machine model
- todo: can move the invoked function out elsewhere and also tests if needed (not necessary here because it's a simple call)
* use actions.choose instead of branching inside action
- https://stately.ai/docs/xstate/transitions-and-choices/guarded-actions#the-choose-action
- makes it so that the machine model is serializeable
- todo: in the distant future i wonder if it might be tidier to have tracks be its own actor that just receives the same events that this machine does, that way it's just standalone instead of mixing up tracks with the implementation
* use dispatch instead of useDispatch
- decouples the implementation of the handler from the react component
- makes the handler testable on its own if needed
- makes the state machine testable without relying on external dependencies
* decoupled remaining function calls
* Fix lint error
* Fix style lint
* address xstate console warnings
- .withConfig() is a function call that returns a new object every invocation so we need to wrap it in useMemo to keep it stable
* Add optInDataSharing is false test
* Fix lint
---------
Co-authored-by: rjchow <me@rjchow.com>
* add: core profiler scaffolding using xstate
* address review feedback and questions
* changed path to use setup-wizard
* default new core-profiler feature flag to false