This ensures that the instance of the page controller class that
is used to set up the HPOS order admin screens is accessible and has
all its properties set correctly for use with the new is_order_screen
method.
* Make `ready` call jQuery 3 valid
* Another call during setup.
* Add changelog.
* Trigger CI
---------
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Add lint-branch.sh
* Add doc block and make var name more explicit
* Add changelog file
* Update composer's lint and lint-staged scripts
It turns out that using single brackets for a test doesn't work
sometimes when the variable contains spaces or multiple items.
Double brackets handles this better, so should make the scripts more
robust.
* Use double brackets in lint-branch script
Using double brackets for a test is more robust and may be able to
handle some cases that single brackets can't, such as a variable that
contains spaces or multiple items.
Note that this also required updating the shebang at the top of the
script file from `sh` to `bash` since double brackets is a syntax
introduced in Bash.
This PR adds support to HPOS for order edit locking in the admin (similar to what posts and custom post types get by default). Specifically, the following is implemented:
* The lock is stored in order meta for interoperability with WP's implementation.
* Orders that are being edited by a user other than the current one will appear with a lock icon next to them in the list table. This lock icon/status is updated live via heartbeat with no page refresh necessary.
* When opening an order that is being edited by another user, a warning will be displayed, with the ability to take over the order:
* When someone has taken over an order you're editing, you'll get a warning about it automatically via heartbeat (no page refresh involved)
Fixes#37108
* Change attributes of tracks event product_attributes_add
* Don't send used_for_variations_count if it's not variable product type
* Explicitly add null values in product_attributes_add when the attribute is sent on the other call
* Rename product_attributes_add on the product page to product_attributes_save
Fix inverted local and global attributes count
Remove unnecessary parameters
Refactor code
* Update changelog
* Remove sample data from product templates for product task
* Add changelog
* Update product templates
* Remove unused columns from product templates and set Published to -1
This PR fixes the bug the where we were only verifying shop_order orders. This also adds the option to provide a list separated by , of order types to verify.
Fixes#38317
* Refactor Layout component to functional component
* Add class to pages based on page path
* Add styling for interface skeleton on product pages
* Add changelog entries
* Move product page styles out of product editor package and into client
* Fix linting issues
* Check for location before checking path in page tracking
* Dont add body classes when no page path exists
* Record page view without router location for embed pages
add: fetch extensions and countries from API for core profiler
- prefetch it once in the machine init so that it's instant when used later
- fetch it again in preExtensions state and store it to context
- added prefetch for getCountries as well
* Remove unused $job_id argument
* Support WP_Upgrader argument -- helps for testing
* Minor refactor to support a custom logger in install_plugins
* Support a custom logger in install_plugins
* Support swapping out WP_Upgrader impl.
* Added woocommerce_plugins_install_async_callback callback to call install_plugins with a custom logger from action scheduler
* Add a new REST endpoint for onboarding plugins
* POST /wc-admin/onboarding/plugins/install-async -- queues plugin installs to action scheudler
* GET /wc-admin/onboarding/plugins/scheduled-installs/:job_id -- returns current status of given job id
* Remove WP_Upgrader support -- not using it
* Add changelog
* Fix phpcs errors
* Call complete
* Update test to wait 1 sec before checking the action scheduler
* Remove test that requires waiting an async action
* Add test for 404 status
* Add status field
* Remove woocommerce_plugins_install_async_callback action -- no longer used
* Call run-in-background endpoint with blocking=false to simulate a background process
* Update plugins/woocommerce/src/Admin/PluginsInstallLoggers/AsynPluginsInstallLogger.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/PluginsInstallLoggers/PluginsInstallLogger.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/tests/php/src/Admin/API/OnboardingPluginsTest.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/tests/php/src/Admin/API/OnboardingPluginsTest.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/tests/php/src/Admin/API/OnboardingPluginsTest.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce/src/Admin/PluginsInstallLoggers/PluginsInstallLogger.php
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Fix incorrect logger name
* Add max_execution_time setting
* Remove test code
* Skip failing test -- hard to test as the function uses site url and test env does not actaully have a running WP
* code format
* Revert background process changes
* Add install and activate endpoint
* Update plugins/woocommerce/src/Admin/PluginsInstallLoggers/AsynPluginsInstallLogger.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Update plugins/woocommerce/src/Admin/API/OnboardingPlugins.php
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Require activate_plugins permission
* Add test to check for permissions
* Update install and activate schema
* Fix: import AsyncPluginsInstallLogger correctly
* Fix: add missing comments
---------
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
Co-authored-by: James Collins <james@om4.com.au>
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
Includes UI detailing how many webhooks are assigned to each of the users being deleted, and explaining how the re-assignment works.
* Remove block registration from within the Editor component
* Expose the initBlocks function to be used outside of the product package
* Register blocks within the ProductPage component
* Add changelog files
* Unregister blocks when product page gets unmounted
* Add core profiler - welcome to woo page
* Update checkbox styles
* Add tracks
* Update default tracking value
* Update copies
* 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)
* add: core profiler scaffolding using xstate
* Add navigation and progress-bar components
* fix css lint error
* Update plugins/woocommerce-admin/client/core-profiler/components/navigation/woologo.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce-admin/client/core-profiler/components/progress-bar/progress-bar.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce-admin/client/core-profiler/components/navigation/navigation.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Remove var from __ function
* Use woocommerce prefix for classnames
* Fix css lint error
* Fix broken tests
* Add business location page
* Remove unwanted changes from rebase
* Remove unwanted changes from rebase
* Redirect to Woo Home on exit
* Add tracks
* Fix js lint error
* Add loader page
* Support meta value from nested states
* Use navigateTo
* Add tests for getCountryStateOptions
* Use Country type from navigation package
* Rename useStages to getLoaderStageMeta
* Add changelog
* Move progress from 20 to 80
* Fix xstate warning
* Fix broken pnpm lock
* Fix eslint errors
* Update plugins/woocommerce-admin/client/core-profiler/services/country.ts
Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com>
* Update plugins/woocommerce-admin/client/core-profiler/index.tsx
Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com>
* Save country to option
* Fix jslint error
* Update plugins/woocommerce-admin/client/core-profiler/services/country.ts
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce-admin/client/core-profiler/style.scss
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Fix eslint error
* Use decodeEntities directly
* Update comment for artificial 3 seconds wait
* Disable Go to my store button when country is empty
* Style for mobile devices
* Style updates for the country dropdown
* Fix js lint error
* Update country dropdown border color
* Style the loader
* Fix css lint
---------
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Co-authored-by: rjchow <me@rjchow.com>
Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com>
* Add `aria-describedby` to select options button
* add a changelog
* update the chnagelog file
* fix type
* fix the function name
* remove `aria-describedby`s if with value
* suggestions implemented
* Minor PHPCS fixes
---------
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
We change the behavior of how we decide whether to continue or stop the migration. Earlier, when deciding, we were counting all pending orders which was slow especially on large sites, and will continue to get slower as the migration processes. However, now we will only fetch if there is any order that needs migrating to decide whether to go ahead with the migration or not, which should be much faster then calculating the total count.
* Add create-page.spec.js
Create e2e test for Critical Flow: Merchant > Pages > Can create a new page
* Add changelog entry
* Update selector for close dialog
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
* Create new attribute to calculate more accurately if activity tab has something "new"
* Fix wrong attribute name
* Revert previous change, rename functions and remove isPanelOpen clause from hasAbbreviatedNotifications logic
* Rename functions
* Updated `wp-env` To 7.0.0
* Adopted `wp-env` Changes To `update-wp-env.php`
* Updated E2E Test Bootstrapping
With the changes to `wp-env` we can update our
test bootstrapping to use the new functionality.
* Changelogs
* Restored `update-wp-env.php` Usage
There's a bit of work to do in support of this and I
don't want it to hold up the pull request!
* Fixed `wp-env` JSON Problems
It was writing an empty array in places where the
expectation was an empty object.
* Fixed Broken Echo Escape
* Fixed Init Quoting
* Update close button locator
* Reverted Quote Removal
There is an upstream bug relating to quotes that needs to be resolved!
* Reverted Quote Removal
---------
Co-authored-by: rodelgc <rodel.calasagsag@automattic.com>
* Add test for inbox_note_view event
* Add tracks test for Layout's page_view
* Add test to inbox_action_click
* Add tests to analytics_filter tracks event
* Add tracks event test to activity_panel_open
* Add tests to tracks event activity_panel_orders_orders_begin_fulfillment
* Add tracks tests to activity_panel_stock_update_stock
* Improve tests based on code review comments
* Mock recordEvent and recordPageView globally
* Add missing mock
* Improve inbox panel tests
PR 36218 implemented child order upshifting (setting their parent
order id to 0) when the parent order is deleted, but this needs to
happen only when the post type of the parent order is hierarchical,
otherwise child orders need to just be deleted. This commit fixes that.
* Add a 24px spacing between the Manage my store header and the Marketing & Merchandising heading
* Add changelog
* Update store management card style
* Update .woocommerce-store-management-links__card-body padding
* Add LayoutContextProvider to embedded body layout to fix shipping tour error
* Show an error notice and record track when failing to update shipping option
* Add changelog
* Update error message
* Remove unused import
* Add create-post.spec.js
Create e2e test for Critical Flow: Merchant > Posts > Can create a new post
* Fix e2e Merchant Create Post
* Force delete created post
* Check for Welcome modal - close if exists
* Change assertion for Published post confirmation from `check if true` to `check if visible`
* Added changelog file
* e2e-pw: Create post - replace btoa
Replace deprecated function btoa with Buffer function
* change reference of Catpure to Capture
Co-Authored-By: Vikram <93216400+vikrampm1@users.noreply.github.com>
* change reference of expicitly to explicitly
Co-Authored-By: Vikram <93216400+vikrampm1@users.noreply.github.com>
* change reference 'cutted' to 'cut'
* change reference 'determening' to 'determining'
* change reference 'retreive' to 'retrieve'
* change reference 'neccessary' to 'necessary'
* change reference 'Fitler' to 'Filter'
* change reference of "seperate" to "separate"
Co-Authored-By: Ankit K Gupta <ankit.himcs@gmail.com>
* change reference of "wether" to "whether"
Co-Authored-By: Sumit Bagthariya <67687255+qasumitbagthariya@users.noreply.github.com>
* change reference of "staus" to "status"
* change reference of "retrive" to "retrieve"
* change references of "gatways" to "gateways"
* change references of "existant" to "existent"
* change reference of "requries" to "requires"
* change reference of "configuation" to "configuration"
* change reference of "processsing" to "processing"
* change reference of "represenation" to "representation"
* change reference of "dimentions" to "dimensions"
* change references of "reigster" to "register"
* change reference of "colum" to "column"
* change reference of "transtions" to "transitions"
* change references of "intially" to "initially"
* change references of "orignal" to "original"
* change references of "deprected" to "deprecated"
* change references of "paramter" to "parameter"
* change reference of "intance" to "instance"
* change reference of "elemets" to "elements"
* change references of "funcitons" to "functions"
* change reference of "specificed" to "specified"
* change references of "atributes" to "attributes"
* change reference of "tast" to "task"
* change reference of "chaning" to "changing"
* change reference of "retreiving" to "retrieving"
* change reference of "caluclation" to "calculation"
* change references of "Invaid" to "Invalid"
* change references of "paramaters" to "parameters"
* change reference of "Additonal" to "Additional"
* change reference of "teh" to "the"
* change reference of "evalutes" to "evaluates"
* change reference of "addedd" to "added"
* change reference of "excempt" to "exempt"
* change reference of "sequencially" to "sequentially"
* change reference of "previos" to "previous"
* change reference of "elegible" to "eligible"
* change references of "Boostrap" to "Bootstrap"
* change references of "compability" to "compatibility"
* change reference of "heirarchy" to "hierarchy"
* change references of "visibilty" to "visibility"
* change reference of "comparsion" to "comparison"
* change reference of "capabilties" to "capabilities"
* change reference of "datatores" to "datastores"
* change reference of "occured" to "occurred"
* change reference of "coresponding" to "corresponding"
* change references of "thier" to "their"
* change reference of "sucessfully" to "successfully"
* change reference of "insde" to "inside"
* change reference of "nagivation" to "navigation"
* change references of "visiblity" to "visibility"
* change reference of "documentaiton" to "documentation"
* change reference of "anayltics" to "analytics"
* change reference of "intalling" to "installing"
* change reference of "mininum" to "minimum"
* change references of "intial" to "initial"
* change reference of "Feld" to "Field"
* change reference of "taks" to "task"
* change reference of "trasnfer" to "transfer"
* change reference of "respone" to "response"
* change reference of "Extenstions" to "Extensions"
* change reference of "detault" to "default"
* change reference of "simultanious" to "simultaneous"
* change reference of "overides" to "overrides"
* change references of "Indvidual" to "Individual"
* change reference of "refering" to "referring"
* change reference of "aginst" to "against"
* change reference of "execuatable" to "executable"
* change reference of "repsonse" to "response"
* change reference of "documention" to "documentation"
* change reference of "asumed" to "assumed"
* change reference of "Minium" to "Minimum"
* change reference of "unqiue" to "unique"
* change references of "existance" to "existence"
* change reference of "compatability" to "compatibility"
* change reference of "Taxnomy" to "Taxonomy"
* change reference of "quering" to "querying"
* change reference of "retrun" to "return"
* change reference of "informations" to "information"
Co-Authored-By: Viktor Szépe <viktor@szepe.net>
* Add changelog
* Add changelog
* Fix typo
---------
Co-authored-by: Vikram <93216400+vikrampm1@users.noreply.github.com>
Co-authored-by: Ankit K Gupta <ankit.himcs@gmail.com>
Co-authored-by: Sumit Bagthariya <67687255+qasumitbagthariya@users.noreply.github.com>
Co-authored-by: Viktor Szépe <viktor@szepe.net>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Makes the `wc_checkout_form` object available to Javascript event handlers during the checkout process. This makes it easier for extension (payment gateway) developers to manipulate the checkout experience. In isolation, though, nothing should change and everything should work as before.
Fixes#26827
* Fix typo
"Log out" is a verb
"logout" is a noun.
This link should be an action. So it's the verb form.
* Add changelog file
* update E2E tests for text change
* update unit test for text change
---------
Co-authored-by: Ron Rennick <ron@ronandandrea.com>
Co-authored-by: Ron Rennick <ronald.rennick@automattic.com>
* Update WCA Test Helper JS script dependencies
Add the WooCommerce Admin app script as a dependency to ensure it loads before WCA Test Helper. This enables WCA Test Helper scripts to check available features.
* Add experimental_woocommerce_wcpay_feature fill
* Add beta-tester-slotfill-examples feature
* Fix a bug
* Fix lint issues
* Add changelog
* 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 product_type_options to wcadmin_product_add_publish
* Add product_type_options to wcadmin_product_update
* Add product_type_options to other wcadmin_product_ events
* Register server-side tracking during rest requests
* Move loading of tracks related functionality to WC class
* Load tracks functions to allow tests to pass
* Move single init hook for WC Site Tracking to core class
* Update List price Pricing link on the general tab to navigate to the Pricing tab
* Add changelog files
* Simplify the event name to product_pricing_help_click
* Order is search with the phone number and linked with the user account. #36810
* updated the query and tested on local env
* fixed the phpcs issue
* added the changelog
* updated the string concatenation issue and also moved the change log file to the correct path
* removed the %i placeholder from the query and used the old way to add the table name
* add: core profiler scaffolding using xstate
* Add navigation and progress-bar components
* fix css lint error
* Update plugins/woocommerce-admin/client/core-profiler/components/navigation/woologo.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce-admin/client/core-profiler/components/progress-bar/progress-bar.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update plugins/woocommerce-admin/client/core-profiler/components/navigation/navigation.tsx
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Import HTMLAttributes
* Remove var from __ function
* Make progress bar color configurable
* Destruct props directly in the function and use const to define the comp
* Refactor fillerStyles
* Use woocommerce prefix for classnames
* Use inherit for display -- initial did not work properly
* Fix css lint error
* Remove unused WooLogo var
* Use named export
* Fix js style
* Add changelog
* Fix broken tests
---------
Co-authored-by: rjchow <me@rjchow.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>