Commit Graph

3218 Commits

Author SHA1 Message Date
Ilyas Foo 71a039852f
Fix payment gateway suggestions display logic (#38658)
* add: updated payment gateways for 2023 Q3

* Update payment gateway suggestions display logic, better comments and variable names, added core onboarding profiler option to support offline venue, added IN to paypal visibility rule

* Lint

* Update for better WCPay logic

* Remove accidental imports

* Added return object comment

* More lint

* Changelog

---------

Co-authored-by: rjchow <me@rjchow.com>
2023-06-16 23:46:37 +08:00
Ismael Martín Alabarce 9a49ff72da
Update WCPay welcome page incentives (#38689)
* Initial refactor of components

Move out from index every UI component to make it easier to maintain.

* Initial implementation of new design

Some minor adjustments are missing, and I've added a few TODOs to complete later.

* Add changelog entry

* Finish design update

* Compress menu icon

* Add user's first name to heading copy

* Fetch and cache eligible incentive from WCPay API

Sharing its properties under `window.WcSettings.admin`

* Filter `allowed_promo_notes`

To be able to add those form WCPay API request

* Update JS side to use the new shared incentive details

* Ensure we cache requests even if there are no eligible incentives

* Fix a typo in WCPayBanner

* Move incentive preloaded data from wcSettings

to a new window variable which will be only loaded on WCPay welcome page.

* Simplify `has_wcpay` check

* Render sanitized HTML from incentive description

* Update get incentive logic to also cache non success responses

* Add incentive ID to page view track

* Add changelog entry for the onboarding package

* Update used options names

and add them to `get_default_option_permissions

* Differentiate every dismissed incentive

Reuse WCPay welcome page logic for notes display conditions

* Use tos_url instead of tos_link to match response

* Fix incentives endpoint request payload

* Back to preload incentive on admin shared settings

* Move promo notes filter to where it's used

to avoid any possible race conditions.

* Replace every occurrence of `WooCommerce Payments` with `WooPayments`

* Prevent modal large padding-bottom

* Prevent another global style override on modal

* Fix TS error coming from trunk merge

* Fix wrong style property

* Further restrict WCPay incentives to plugin not active and countries supported

* Adjust the meaning of has_wcpay

* Wait for dismiss option update before redirect

to prevent the side menu entry to be visible after redirecting back to WC admin.

* Enforce TOS asterix at the end of incentive description

* Remove underscore from priavate instance var.

* Fix ESLint error

* Fix SCSS linting issues

* Refine `has_wcpay` and `has_orders`

* Enforce consistent WooPayments branding

* Enforce stricter i18n calls with escape

* Update page title to match new branding

* docs: Enforce branding in code docs also

* Remove method that is unreliable to be used outside of onboarding

* Remove unused constant

* Missing new line

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>

---------

Co-authored-by: Vlad Olaru <vlad@pixelgrade.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2023-06-16 16:32:58 +02:00
Ilyas Foo 0a50173976
Fix infinite redirect from homescreen to core profiler (#38768)
* Fix infinite redirect using useEffect to remove unintentional rerendering

* Changelog
2023-06-16 20:28:25 +08:00
Ilyas Foo 1e72bb0401
Allow `plugins_page_skipped` parameter in Onboarding API endpoint (#38764)
* Append plugins_page_skipped parameter to onboarding API

* Changelog

* Rename property to is_plugins_page_skipped and fixed tests

* Changelog

* Fix lint
2023-06-16 18:06:58 +08:00
Moon 1a42094e5e
Fix Jetpack redirection issue when the auth endpoint returns an invalid url (#38760)
* Return full response from getJetpackAuth

* Add success and errors

* Redirect to Home in case of an error from getJetpackAuth endpoint

* Add changelog

* Use redirectToJetpackAuthPage

* Replace window.location.href with navigateTo

* Fix type issue with getJetpackAuthUrl

* Update plugins/woocommerce-admin/client/core-profiler/index.tsx

Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>

---------

Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
2023-06-16 00:56:30 -07:00
Moon 630faadb81
Update/implement connect to jetpack (#38674)
* Add install-and-activate-plugins-async action to onboarding

* Add label and learn_more_link types

* Use label and learn_more_link

* Remove unused imports

* ts fixes

* Visual changes on the plugin page

* Change CTA font size from 13px to 14px
* Change spacing between the chebox and logo to 24px
* Change heading font-weight to 500

* Fix css lint error

* Add back learn more link that was removed from rebase

* Add required packages

* Load Jetpack Config

* Add getJetpackAuthUrl to data/onboarding

* Add Connection Rest Auth -- seems like this is required for Jetpack to communicate back to the connected site

* Add jetpack-authorization-url REST API

* Redirect to Jetpack Auth page after the installatino process if jetpack was selected

* Require can_install_plugins permission for jetpack auth url endpoint

* Update packages/js/data/src/onboarding/resolvers.ts

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>

* Remove automattic/jetpack-sync and its config

* Support redirect_url and from params

* Do not redirect to Jetpack auth if it is already connected

* Add installed_ext_success=1

* Use woocommerce-core-profiler for from value

* Revert unrelated lock file changes

* Minor refactor

* Extracted out isJetpackConnected cond to a guard

* Added meta data for isJetpackConnected to prevent unwanted spinner

* Add Changelog

* Lint fix

* Move Jetpack Connection config init to class-woocommerce

* Add changelog

* Remove unnecessary require

* Note jetpack-authorization-url endpoint is experimental

* Fix broken test

* Add component to sendToJetPackAuthPage state

* Fix lint error

---------

Co-authored-by: rjchow <me@rjchow.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2023-06-15 20:28:18 -07:00
Moon d51f69d2d7
Update track name prefix for core profiler (#38710)
* Use coreprofiler_ prefix

* Add Changelog

* Track name changes

* Rename intro_optin to intro_opt_in

* Extracted out recordFailedPluginInstallations and recordSuccessfulPluginInstallation to tracks

* Fix js lint error -- remove unused import
2023-06-15 13:37:14 -07:00
RJ 723c68e240
fix: core profiler plugins list race condition (#38732) 2023-06-15 12:45:54 -07:00
Maikel David Pérez Gómez fe7933e7a9
Implement experiment within code for new users (#38700)
* Configure the expiriment to redirect variation treatment to the new product editor

* Add changelog file

* Fix experiment name

* Fix changelog description
2023-06-15 14:42:57 -04:00
Nathan Silveira bfd720c28f
Extract usePublishedProductsCount hook and use it in about-the-editor-menu-item (#38742) 2023-06-15 13:03:18 -03:00
Maikel David Pérez Gómez 2471dcba05
Replace 'use classic editor' with 'Turn off the new product editor' in options menu (#38693)
* Options menu in product editor view should show Turn off the new product editor with some subtext

* Record event product_editor_options_turn_off_editor_click when clicking Turn off the new product form menu item

* Add changelog file
2023-06-15 10:55:11 -04:00
Nathan Silveira 5f94b411f0
Product Editor Onboarding: Add About the editor... option the more menu in product block editor (#38691)
* Add 'About the Editor' menu item

* Show the guide when clicking the menu item

* Add track event when clicking about the editor

* Add changelog

* Remove from product more menu
2023-06-15 10:07:46 -03:00
Matt Sherman 9d7b68b82c
Update product editor tour design (#38726) 2023-06-15 08:23:13 -04:00
Moon e50fb51b26
Set skipped flag when guided setup is skipped (#38730)
* Set woocommerce_onboarding_profile.skipped when guided setup is skipped

* Add Changelog
2023-06-14 21:12:03 -07:00
Chris Runnells 1e19d186c2
Fix task list header overlap (#38707) 2023-06-14 11:44:30 -10:00
Matt Sherman de6f77d8be
Fix transient notices overlapping product editor footer (take 2) (#38698)
* Use WooFooterItem for Footer

* Use WooFooterItem fill for TransientNotices

* Adjust TransientNotices styling to work in footer

* Fix footer width when in setup wizard

* Change export of TransientNotices from default to named

* Add border to footer

* Changelog

* Changelog

* Mock WooFooterItem to allow unit tests to pass

* Fix lint error in test
2023-06-14 16:32:28 -04:00
Fernando Marichal 47481490d8
CES modal modifications (#38643)
* Add extraFields prop

# Conflicts:
#	packages/js/product-editor/src/components/product-mvp-ces-footer/product-mvp-ces-footer.tsx

* Add changelog

* Add changelogs

* Fix styles

# Conflicts:
#	packages/js/product-editor/src/components/product-mvp-ces-footer/style.scss

* Add extraFields validation

* Remove files

* Add styles and js

* Modify the other share feedback form

* Change modal title

* Fix feedback-bar

* Fix return

* Fix params types

* Rename `extraFields` to `getExtraFieldsToBeShown`

* Fix styles

* Fix error handling

* Fix styles

* Rename prop

* Fix error message
2023-06-14 11:25:51 -03:00
Moon 604132391a
Visual changes for Intro, guided setup, and skipped guided setup pages (#38709)
* 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
2023-06-13 22:10:43 -07:00
Moon 620ff93e5a
Additional changes for the core profiler plugins page (#38616)
* Add install-and-activate-plugins-async action to onboarding

* Add label and learn_more_link types

* Use label and learn_more_link

* Fix type

* Add changelog

* Add changelog

* Add install_priority -- this will be used in the core profiler

* Sort selected plugins by install_priority for installation

* Remove unused imports

* dev: refactor installAndActivatePlugins to xstate

* ts fixes

* Sort plugins by install_priority

* Make sure WooCommerce Shipping is always visible

* Update free extension list content

* Updated WC payment description
* Updated logo images

* Visual changes on the plugin page

* Change CTA font size from 13px to 14px
* Change spacing between the chebox and logo to 24px
* Change heading font-weight to 500

* Fix css lint error

* Fix gray-900 variable name

* Hide learn more link on mobile view

* Add back learn more link that was removed from rebase

* Send pluginsAvailable to pluginInstallermachine

* Use is_activated to determine plugin availability and install status

* Update packages/js/data/src/onboarding/types.ts

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>

* Update plugins/woocommerce/src/Internal/Admin/RemoteFreeExtensions/DefaultFreeExtensions.php

Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>

* Add back recordTracksPluginsLearnMoreLinkClicked

* Use install-and-activate-plugins-async when timer is up

* Record plugin and link with learn more linked clicked event

* Fix failign tests

* Add comment for install_priority

---------

Co-authored-by: rjchow <me@rjchow.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
2023-06-13 15:03:03 -07:00
Chris Runnells 6e39164cea Update task list CSS to prevent text from overlapping the background image 2023-06-13 12:02:43 -10:00
Nathan Silveira bc3edb0ae1
Update style of Block product editor TourKit (#38640)
* Increment style of first step of block editor tour

* Changelog
2023-06-13 16:44:01 -03:00
Nathan Silveira 0fc765beb3
Product Editor Onboarding: Add "tell me more" button to wc.com page (#38639)
* Copy Guide component from @wordpress/components and fix focus issue

* Add 'tell me more' button and behavior

* Move Guide component from components package to admin package
Implement assigning an href to the finish button, sending the current page and origin as a parameter on the onFinish callback

* Remove dependency

* Restore pnpm-lock.yaml

* Add changelog

* Add comment in Guide component

* Dismiss modal only when it's finished or X button is clicked

* Add 'rel' when opening link in a new tab
2023-06-12 14:54:29 -03:00
Matt Sherman 2039d8915e
Show feedback bar after product editor tour/guide (#38669) 2023-06-12 12:43:19 -04:00
Nathan Silveira 18f2de2bc4
Always show pricing group fields, disable if not available for a product type (#38531)
* Always show General product tab

* Add info messages for variable and grouped products

* Add logic to disable/enable fields and labels based on product type

* Tweak CSS and fix links

* Add tracks events for links

* Add filters to pricing disabled message

* Tweak logic to only enable fields on certain product types instead of disabling in the opposite ones

Add fallback message when pricing is disabled but it's not Variable or Grouped product

* Add docblocks

* Fix more lint issues

* Fix last lint issues

* Update selector in e2e test

* Refactor PHP echo

* Attach to #woocommerce-product-data instead of attaching to body
2023-06-12 12:58:26 -03:00
Maikel David Pérez Gómez 72f7e6ebbb
Publishing product in classic editor redirects back to new editor (#38551)
* Changes the feature given it's id and a toggle value as a query param

* Swap classic editor and new product block editor url when product_block_editor feature changes

* Turn off the product_block_editor feature when user choose to use the classic editor

* Add changelog files

* Fix linter errors

* Add nonce to each feature change request

* Change the hooks name for better readability

* Use get_current_screen function to better identify if the current screen is the product creation or edition

* Add wp_die if the nonce verification failed

* Change regex for explode/parse_url for better reading
2023-06-09 11:18:40 -04:00
RJ 622711c48b
dev: refactor installAndActivatePlugins to xstate (#38577)
* dev: refactor installAndActivatePlugins to xstate

* ts fixes

* fixed first plugin install progress bar reset issue

* clean up todo comments

* fixed bug where errors were not reported if past 30s timeout

* fix lint
2023-06-09 15:08:45 +08:00
Matt Sherman dadc0eb777
Show feedback footer on product editor page (#38599) 2023-06-08 20:56:07 -04:00
RJ 5c4746cefc
add: core profiler url routing (#38620)
* added url routing

* fixed tests and changelog
2023-06-08 12:52:22 +08:00
Gan Eng Chin 99dbdbe3f2
Fix WooCommerce name typo in Codisto extension description in test (#38302) 2023-06-07 23:45:52 +08:00
RJ 1b1f86066f
dev: refactor core profiler pages (#38606)
* dev: refactor core-profiler - modularise each page

- wrapped each page's pre, post, and main states into their top level states for tidiness
- tagged them with id so that we can easily jump to them when doing routing
- generalised component finder code such that it recursively traverses the state meta object until it finds a component key
- fixed css label to use top level state key

* moved initializing into introOptIn so it's not a special case by itself
2023-06-07 11:39:38 +08:00
Nathan Silveira 52fe3c4a5a
Product Editor Onboarding: Show spotlight for first time visitors (#38590)
* Add placeholder TourKit in product-page

* Create component and configure it to show to the right of wp menu

* Finish TourKit and start creating features guide

* Implement CSS changes and background color

* Create Wrapper to facilitate showing the tour and guide without relying on the options in the future

* Refactor
Add tracks events

* Add changelog

* Fix lint problems

* Fix CSS

* Refactor styles

* General refactor and extract BlockEditorGuide component

* Add changelog

* Fix lint issues
2023-06-06 12:06:26 -03:00
RJ e1bdd2f73b
dev: refactor core profiler tracks actions (#38603)
* dev: refactor core-profiler - consolidate tracks

* dev: refactor core-profiler - moved tracks out

* dev: moved tracks up one level

* dev: fixed spawn warning

- caused by this xstate bug https://github.com/statelyai/xstate/issues/1429

* dev: standardised ctx -> context
2023-06-06 15:20:34 +08:00
Chris Runnells a5bbe0ed7c
Add Core Profiler loading spinner (#38598) 2023-06-05 10:32:07 -10:00
Tomek Wytrębowicz f569f333a1
Fix Layout Controller forwarding arrays from the URL query string. (#38593)
* Revert part of "Remove `qs` dependency from `woocommerce-admin` (#35128)"

This reverts Layout- and Filter-related changes from commit 00c151f9aa, reversing
changes made to eef417fe39.

Removes the fix (keeping the test) from https://github.com/woocommerce/woocommerce/pull/38542 as it's not needed for `qs`

Fixes https://github.com/woocommerce/woocommerce/issues/38582.

* Simplify the use of query params in `ProductTour`

* Add changelog entry
2023-06-05 04:55:20 -03:00
Chris Runnells 3ae3a0df8d Lint fixes 2023-06-02 15:08:33 -10:00
Chris Runnells 3082b21b1e Added ProfileSpinner component to display when Core Profiler assets are loading 2023-06-02 14:27:17 -10:00
Adrian Duffell bb2fcce173 Update task header max width
Fixes a bug where on 2-col layouts, text was overlapping the image because the overall container size is less than 500px.

75% is the equivelent of 500px for single-col layout.
2023-06-02 21:51:32 +08:00
louwie17 7d4f65b8c7
Fix save settings error within Analytics (#38542)
* Filter out undefined query params

* Add changelog
2023-05-31 09:35:54 -03:00
Sam Seay b076a7b521
Fix linter issues and update Syncpack (#38523) 2023-05-31 11:45:10 +12:00
Ilyas Foo edf95bf3f4
Update shipping partner suggestions to use data from API (#38457)
* Added shipping partner suggestions data handling in JS

* Add woocommerce services real info

* Add dynamic layout components, remove unused JS, added images to proper asset paths

* Changelog

* Update changelog and removed unused variable

* Remove console.log

* Lint fix

* Add shipping methods module in woocommerce/data

* Update data usage

* Revert "Added shipping partner suggestions data handling in JS"

This reverts commit 6a87ef2658.

* Lint fix
2023-05-30 15:56:32 +08:00
RJ ab18828e84
add: core profiler business info page (#38412)
* add: core profiler business info page
2023-05-30 15:05:38 +08:00
Maikel David Pérez Gómez b0ac1607b9
View should scroll to the top when navigating between tabs (#38484)
Override the interface skeleton container so it can be scrollable
2023-05-29 15:28:50 -04:00
Moon 6946ef384a
Core Profiler - Add extensions page (#38405)
* Initial design impl. without the full functionality

* Delete unused icons

* Add is_installed and plugins_page_skipped

* Add plugin-card component to render an installable plugin

* Implement plugins page

* Add loaders for plugins

* Add changelog

* Remove unused type

* Add changelog

* Remove unnecessary return statement

* Add obw/core-profiler

* Replace extensions with plugins

* Temp -- use window.location.href for Woo Home redirection

* Minor: code refactor

* Refactor isntallAndActivatedPlugins

* Skip plugins page when there is no available plugin

* Apply mobile styles

* Update plugins/woocommerce-admin/client/core-profiler/components/plugin-card/plugin-card.scss

Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>

* Update plugins/woocommerce-admin/client/core-profiler/components/plugin-card/plugin-card.scss

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>

* Bold errored plugin name

* Fix checkbox alignment

* Update changelog

* Fix object type for formatToParts function

* Fix lint issues

* Fix CSS lint issues

* Fallback to en-US when locale is not available

* Fix error with siteLocale

---------

Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
2023-05-29 07:45:30 -07:00
Nathan Silveira c44ee9649f
Filter by date_paid and date_completed on list table orders (#38428)
* Filter by date_paid and date_completed on list table orders based on configuration

* Use separate query param 'order_date_type' to filter orders

* Add clarifying comment

* Add missing phpcs ignore

* Refactor to use 'm' and 'order_date_type' query parameters
2023-05-26 05:19:01 -03:00
RJ 80f6d0a6a6
add: wccom migrate link in nux (#38441)
* add: wccom migrate link in nux

* Update plugins/woocommerce-admin/client/profile-wizard/steps/business-details/flows/selective-bundle/style.scss
2023-05-25 20:25:03 +10:00
Chi-Hsuan Huang af26209886
Update "Set up additional payment options" task view & complete logic (#38273)
* Cache WooCommercePayments task is_complete() result

* Update Set up additional payment task view logic

* Add changelog

* Update additional payment task view & complete logic

* Add changelog

* Fix lint and view logic

* Fix lint

* Fix lint

* Update payment task section heading logic
2023-05-25 12:24:15 +08:00
Chi-Hsuan Huang 4547922f3f
Add core profiler user profile page (#38328) 2023-05-22 11:21:16 +08:00
Maikel David Pérez Gómez ebf0b92960
Use feature the new feature flags engine to guard the access to the new product blocks experience (#37122)
Unregister the product-block-editor feature flag from WC Admin Test Helper, and enable product block editor feature.
2023-05-19 12:53:55 -04:00
Nathan Silveira 869b897ddd
Rename tracks event `product_attributes_add` to `product_attributes_save` on the product page and update attributes (#38278)
* 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
2023-05-19 12:44:54 -03:00
louwie17 2843fbb7a8
Fix editor header hidden in Firefox (#38247)
* Update page config to add support for layout header/footer

* Fix lint error
2023-05-18 13:00:42 -03:00