With the upgrade of the Emogrifier package we can't use the Emogrifier
class, since it was removed in v4 (we need to use at least v5 for
compatibility with PHP 8); so we now use the CssInliner class.
Note that this is a potential breaking change for consumers of the
woocommerce_emogrifier hook, which was getting an Emogrifier object
as parameter (now it gets a CssInliner object, which is partially
compatible).
Fix tests where PHPUnit 8 would throw "this method is deprecated
and will be removed in PHPUnit 9, use this other one instead"
warnings, by replacing all those with the proper ones. This will help
once we are able to use PHP 8 (once WP requirement is bumped to 5.9)
This includes:
- Changing "Requires PHP" in woocommerce.php
- Changing "require-php" and "config-platform-php" in composer.json
- Bumping pelago/emogrifier to ^6.0 in composer.json
- Bumping maxmind-db/reader to ^1.6 in composer.json
- Bumping composer/installers to ^1.9 in composer.json
(bump to 2.0 not possible due to conflict with Admin package)
- Removing jobs for 7.0/.1 unit test runs in CI
- Explicitly specifying the PHPUnit version to be 7.5,
otherwise it will install v8 which isn't compatible with
WordPress <5.9
Fixes an issue where we were conditionally mutating the meta key and value. This was originally copy/pasted from somewhere else. In this context, we don't need all of these values, so the simpler approach is good.
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
Adding a `woocommerce_generate_{$type}_html` action hook allows to generate the HTML output of a custom field type for those classes extending the `WC_Settings_API` (e.g. `WC_Email`).
Since the smoke and E2E tests don't use `nx` commands to build, we need to make sure
that the command they run builds our dependencies. In the future we should change
all of the scripts and Nx executors to make this all simpler.
This commit removes the WooCommerce Admin package from Core. The
result of this change is that the code for WooCommerce Admin will come
from the included content, rather than the previous package.
This commit moves all of the PHP code from `plugins/woocommerce-admin`
to its new home in `plugins/woocommerce`.
- `plugins/woocommerce-admin/src` -> `plugins/woocommerce/src/Admin`
- `plugins/woocommerce-admin/src-internal` -> `plugins/woocommerce/src/Internal`
- `plugins/woocommerce-admin/includes` -> `plugins/woocommerce/includes/react-admin`
With the migration of the feature plugin into the `woocommerce/woocommerce` repository, we're going to use this workflow to block content from being merged into `main`.
* Add initial E2E tests for purchase task
* Update paid theme logic to remove PHP warning and keep the correct price
* Fix php unit tests
* Address some PR feedback
* Add changelog
* Include the purchase task e2e test
* Disable test
* Delete purchase E2E test file
* Update husky from 4 to 7
* Update @types/jest from 26 to 27
* Update lint-staged from 10 to 12
* Update babel-jest from 26 to 27
* Update @typescript-eslint/eslint-plugin from 4 to 5
* Update @typescript-eslint/parser from 4 to 5
* Update chalk from 4 to 5
* Update concurrently from 5 to 7
* Update stylelint from 9 to 14 and stylelint-config-wordpress from 13 to 17
* Update @wordpress/prettier-config from 0.4 to 1.1
* Update eslint from 7 to 8, @wordpress/eslint-plugin from 8 to 10, eslint-plugin-testing-library to 5
* Fix lint errors after updating eslint-plugin-testing-library
* Fix style lint
* Rename .stylelintrc.json -> stylelint.config.js & add todo comment
Fix stylelint.config.js
* Remove @wordpress/e2e-test-utils
* Add changelogs for eslint-plugin
* Update storybook/preview.js since addDecorator has been deprecated
Remove parameters
* Import directly from @storybook/addon-docs
* Migrate some stories to use @storybook/addon-controls
Add a comment for @storybook/addon-knobs
* Update changelogs
* Update preview.js to fix lint warning
* Update pnpm-lock.yaml
* Fix eslint layout errors (https://github.com/woocommerce/woocommerce-admin/pull/8484)
* Refactor the onFilterChange method in the AdvancedFilters component to use object params
* Fix advanced-filters/stories currency undefined error
* Add changelog
* Update changelog
* Separate onboarding concerns into separate classes
* Fix up onboarding product types
* Fix up references to profile data option
* Fix up call to allowed themes
* Move onboarding features to internal namespace
* Remove old onboarding redirect
* Fix failing tests
* Add changelog entry
* Move inernal classes to the new src-internal folder
* Fix lint error
* Add deprecated class for Onboarding
* Add empty construct method
* Remove some of the unnecessary static functions and make sure OnboardingTasks still gets initialized
* Fix missed changes during rebase
* Fix tests
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
By default we will show all meta for order items to maintain backwards
compatibility. When this new parameter is set, we will filter out
variation meta just as core does on the web.
- Add returned type annotations to `packages/admin-e2e-tests/src/elements/*.ts` and `packages/admin-e2e-tests/src/*.ts`.
- Remove unused vars from `packages/admin-e2e-tests/src/*.ts`.
- Simplify `unknown` type union.
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Fix industry tab not clickable after going back
* Add changelog
* Add e2e test for testing industry tab going back
* Add changelog
* Add navigate to fix the test
* Internalize all WooCommerce Admin main API controllers
* Internalize all report and report stat controllers
* Make function public and label as internal to fix PHP unit tests
* Add changelog
* Add args_to_where_clauses() and lookup_notes() methods to Admin\Notes\DataStore.
For use by internal code to bypass woocommerce_note_where_clauses filter.
* Changelog for 8385/8387.
* Add some linter whitelist notation to preexisting warnings in class-wc-test-notes-data-store.
* Add unit tests for the differences between lookup_notes() and get_notes().
* Minor text fix in changelog for 8385/8387.
* Better explanation in pagination tests in test_lookup_notes_versus_get_notes().
* All Notes created by WC_Tests_Notes_Data_Store should have source and name values.
* Add tearDown method to WC_Tests_Notes_Data_Store to delete test-created Notes.
* Allow for easy task component switch
* Add past tense feature addition with cross out
* Add visible option for task lists and make use of new feature config
* Fix lint errors
* Fix lint errors
* Fix css lint
* Fix js unit tests
* Address PR feedback
* Add js tests for task list changes
* Add php tests for updated logic
* Add changelog
* Update copy
* Make snooze test a little more robust
* Add WC_ADMIN_IMAGES_FOLDER constant
* Use WC_ADMIN_IMAGES_FOLDER to construct image URL
* Rename WC_ADMIN_IMAGES_FOLDER to WC_ADMIN_IMAGES_FOLDER_URL
* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs
* Move wcpay-banner.png to client dir
* Move wcpay-banner.png to client dir
* Use WC_ADMIN_IMAGES_FOLDER_URL for wcAdminAssetUrl
* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs
* Use WC_ADMIN_IMAGES_FOLDER_URL to construct image URLs
* Revert to images
* Add / to the path
* Query for admin survey note_ids directly in Notes::possibly_delete_survey_notes().
* Add get_notes_with_type( $note_type ) method to Automattic\WooCommerce\Admin\Notes.
Name selected for consistency with preexisting get_notes_with_name( $name ) method.
* Use new get_notes_with_type() in Notes::possibly_delete_marketing_notes().
* Use new get_notes_with_type() in Notes::possibly_delete_survey_notes().
* Correct copy-pasta error querying for MARKETING notes instead of SURVEY notes in possibly_delete_survey_notes().
* Only delete actioned notes in possibly_delete_survey_notes(), which was the previous behavior.
* Changed get_notes_with_type() to get_note_ids_by_type() in Notes data store.
* Changelog for 7987/8206.
* Add missing method name in changelog for 7987/8206.
* Assert the pending action explicitly to fix failing test_cancel_import with latest woo
* Use function lambda
* Fix WC_Tests_API_Reports_Variations by assigning parent_id to variations
Adding a new parameter to the existing check_response method could cause
backwards incompatibility issues in inherited classes, so we deprecate
the old method and create a new one instead.
* Seperated Asset, page, and translation logic into seperate classes out of Loader.php
* Move user, and assets logic out of Loader.php
* Move Loader to Internal and move page helper functions to PageController
* Fix unit tests
* Add changelog
- Update settings UI
- Start sync via scheduled actions when sync is enabled
- Auto-switch authoritative table on sync finished if so configured
- Disable auto-switch if sync is disabled
- Show initial and current count of orders pending sync in settings UI
* Moved `WooSubscriptionsNotes`
* Moved `WooSubscriptionsNotes` deprecated
* Moved `WooCommerceSubscriptions`
* Moved `WooCommercePayments`
* Fix `WooCommerceSubscriptions`
* Fix `WooSubscriptionsNotes
* Fix `WooCommercePayments`
* Moved `WelcomeToWooCommerceForStoreUsers
* Add use `Note`
* Moved `UpdateStoreDetails`
* Moved `UnsecuredReportFiles`
* Moved `TrackingOptIn`
* Moved `TestCheckout`
* Moved `SetUpAdditionalPaymentTypes`
* Moved `SellingOnlineCourses`
* Moved `RealTimeOrderAlerts`
* Moved `PersonalizeStore`
* Moved `PerformanceOnMobile`
* Moved `PaymentsRemindMeLater`
* Moved `OrderMilestones`
* Moved `OnlineClothingStore`
* Moved `OnboardingPayments
* Moved `NewSalesRecord`
* Moved `NavigationNudge`
* Moved `NavigationNudge`
* Moved `MobileApp`
* Moved `MigrateFromShopify`
* Moved `MarketingJetpack`
* Moved `ManageStoreActivityFromHomeScreen`
* Moved `ManageOrdersOnTheGo`
* Moved `MagentoMigration`
* Moved `LaunchChecklist`
* Moved `InstallJPAndWCSPlugins`
* Moved `InsightFirstSale`
* Moved `InsightFirstProductAndPayment`
* Moved `GivingFeedbackNotes`
* Moved `FirstProduct`
* Moved `FirstDownlaodableProduct`
* Moved `EUVATNumber`
* Moved `EditProductsOnTheMove`
* Moved `DeactivatePlugin`
* Moved `CustomizingProductCatalog`
* Moved `CustomizeStoreWithBlocks`
* Moved `CouponPageMoved`
* Moved `CompleteStoreDetails`
* Moved `ChoosingTheme`
* Moved `AddingAndManangingProducts`
* Moved `AddFirstProduct`
* Removed `OnboardingTraits` trait
* Moved `EmailNotification`
* Fixed notes
* Add changelog
* Fix lint error
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Update all js packages with minor/patch version changes
* Add changelog
* Fix packages/data types errors
* Update data/CHANGELOG.md
* Fix puppeteer version
* Fix packages/data > countries error types
* Make data key optional in RestApiError
* Rename route to payment gateway suggestions
* Create separate payment gateway suggestions controller
* Move payment gateway logic into feature class
* Merge payment gateway information into single source of truth
* Filter out WCPay client-side
* Fix up frontend
* Redirect to payment settings page on install
* Add test around showing installed gateways
* Remove check for marketplace suggestions at the endpoint level
* Fix up payment gateway conflicts after rebase
* Handle PR feedback
* Optimistically dismiss the payment gateway suggestions
* Add changelog entry
* Add square_image support for new API param
* Fixed lint error
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
* Use integers for menu page priority
In wordpress >= 6.0, the seventh parameter passed to add_menu_page() should be an integer representing menu position.
* Add changelog
* Fix Analytics & WcPayWelcomePage menu positions
* Install grapheme-splitter
* Support multi-characters Unicode letters for inbox html truncator
* Fix truncateRenderableHTML length compare
* Change note to immutable
* Add changelog
* Use hasChildNodes() to check if we should call truncateElement
* Add tests for truncate()
* Redirect customers back to the payment task page after enabling an offline payment
* Add changelog
* Make hasPlugins property boolean
* Remove unnecessary type checking
* Fix the comparison logic
* Allow the support of multiple task lists with overlapping tasks
* Add filter by task ids
* Revert getTaskListById call
* Fix notices
* Move prefix event to task and task list classes instead
* Fix track events and extended task list
* Fix php unit tests
* Remove the seperate task list classes as this was unnecessary.
* Fix tests
* Remove unneeded allowed-tasks
* Change onboarding task list redux store structure
* Add extra id for handling hidden param for experimental task lists
* Fix lint errors
* Fix forgotten change
* Add changelog
* Copied .tsconfig into ./client to enable ts checking
- Made sub-repos composite typescript packages where necessary
* Prevent tsc from transpiling ./client
- we use webpack for transpiling so no need for this
* Added tsc resolution path for @automattic/explat-client
- Seems like there's a type export issue (?) with @automattic/explat-client and @automattic/explat-client-react-helpers
- adding the node_modules/@automattic/explat-client path in tsconfig seems to help TS resolve this using the source .ts files
- found answer here: https://github.com/microsoft/TypeScript/issues/42873
- should figure out what's actually wrong with the type exports and fix that there instead
* Removed mandatory checking from webpack
- removed this for now as it will block all development until all type inconsistencies are fixed
- for now, run the optional ts:check task either in console or vscode for highlighting type errors
* Added vscode tasks for typescript checking
* Patch @automattic/explat-client-react-helpers
- this changes the installed code in node_modules (post-installation) for @automattic/explat-client-react-helpers so that it exports the necessary type interfaces required by us
- attempted unsuccessfully to override type exports using declare module
- not too sure how to fix this internally by other means
- have to investigate what fixes to propose to @automattic/explat-client-react-helpers team
* changed tests in ./client to use ts-jest instead of babel-jest
- rewrote jest config to use ts-jest instead of babel-jest
- set ts errors to warnings instead so that tests don't fail on type errors
- created new tsconfig for ./packages/js-tests so that build and ts-check are separate, as js-tests need to be built for commonjs
After the WooCommerce code was moved to 'plugins/woocommerce' many of
the internal links in the README files (links to other README files
or to code files) were broken. This commit fixes that.
The update functions in wc-update-functions.php run when WooCommerce
is updated from a previous version, but not when it's newly installed.
This commit adds a couple of comments explaining that.
* Make sure the free subscriptions does not show when cbd industry is selected
* Add changelog and fix productTypes not being defined
* Fix lint issue
* Fix lint error
* Add a modal to show when unsaved changes are detected
* Add functions to track value changes from the steps
* Warn unsaved changes for the store details
* Add styles for the unsaved modal
* Warn unsaved changes for the Industry
* Warn unsaved changes for the Product Types
* Warn unsaved changes for the Business Details
* Add changelog
* Add testing instructions.
* Sort array values before comparison
* Use only the array values to compare the diff
* Catch rejected promise on continue
* Set initial value to an empty object
* Fix failing tests
* Add psr-4 for the internal classes -- this is a temp. changes. We should remove it once we completely merge to the core
* Register class aliases
* Move WcPayPromotion classes to the internal
* Ignore namespace PHP CS issue
* Make features/WcPayPromotion internal
* Added src-internal directory for Automattic\WooCommerce\Internal\Admin namespace
* Moved src/Features/WcPayPromotion to src-internal/Admin/WcPayPromotion
* Add phpcs rules for src-internal
* Remove phpcs:ignoreFile
* Update letter case to make it PSR4 compatible
* Fix letter cases
* Move the alias array into the function
* Rename WcPayPromotion to WCPayPromotion (letter case update)
* Include src-internal
* Update letter case
* Make classes internal
* Update references
* Fix WC_ADMIN_ABSPATH path
* Add psr-4 for the internal classes -- this is a temp. changes. We should remove it once we completely merge to the core
* Register class aliases
* Move WcPayPromotion classes to the internal
* Ignore namespace PHP CS issue
* Make features/WcPayPromotion internal
* Added src-internal directory for Automattic\WooCommerce\Internal\Admin namespace
* Moved src/Features/WcPayPromotion to src-internal/Admin/WcPayPromotion
* Add phpcs rules for src-internal
* Remove phpcs:ignoreFile
* Update letter case to make it PSR4 compatible
* Fix letter cases
* Move the alias array into the function
* Rename WcPayPromotion to WCPayPromotion (letter case update)
* Include src-internal
* Update letter case
* Make src/Schedulers/* internal, except the SchedulerTraits
* Add @internal comment tag
* Clean up incorrect import
* Remove unused import
* Refactor `MerchantEmailNotifications`
* Rename `NotificationEmail`
* Add changelog
* Add folder `Notes` to `Internal`
* Moved folder and the namespace was renamed
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
The table creation and filling was happening in a data migration, but
data migrations only run when WooCommerce is upgraded, not on a
clean install. Also, the option for using the lookup table
wasn't being set after a clean install (when the table has been created
and is empty since there are no products yet).
As part of the fix the table is added to the list of WooCommerce
core tables, and thus it's covered by the "Verify base database tables"
tool.
* Add psr-4 for the internal classes -- this is a temp. changes. We should remove it once we completely merge to the core
* Register class aliases
* Move WcPayPromotion classes to the internal
* Ignore namespace PHP CS issue
* Make features/WcPayPromotion internal
* Added src-internal directory for Automattic\WooCommerce\Internal\Admin namespace
* Moved src/Features/WcPayPromotion to src-internal/Admin/WcPayPromotion
* Add phpcs rules for src-internal
* Remove phpcs:ignoreFile
* Update letter case to make it PSR4 compatible
* Fix letter cases
* Move the alias array into the function
* Rename WcPayPromotion to WCPayPromotion (letter case update)
* Include src-internal
* Update letter case
* Move src/Features/RemoteFreeExtensions to src-internal/Admin/RemoteFreeExtensions (https://github.com/woocommerce/woocommerce-admin/pull/8311)
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Two new tools are added in the Status - Tools section:
- "Abort the table regeneration" - this one shows up if a regeneration
process is in progress. Running it will remove the "regeneration
in progress" option and set the "regeneration aborted" flag, it also
removes any pending regeneration step scheduled action.
- "Resume the table regeneration" - this one resumes the regeneration
process by setting the "regeneration in progress" option, removing
the "regeneration aborted" option, and scheduling a new regeneration
step action.
* Add hook reference README
* update hook reference
* better
* changelog
* add pr number
* remove example
* add desc
* add stats
* jsdoc REPORTS_FILTER
* Category configs
* configs
* data
* dashboard
* dashboard charts
* save
* save
* save
* done with filters
* Add scope to slotFill docs
* data
* add all slotfills
* data
* Fix error when scope is not present, and make use of typedef imports
* Move chart and filter jsdoc definitions to the reports index file
* Update hook reference data.json
* Make use of import for filter typedef and address some typos
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
* Add tracks events for dashboard setup widget load and click
* Add status widget tracks
* Use data attributes to track current and total steps
* Add newline at EOF
* Remove errant console logs
- Rename DBUtils to DatabaseUtils, and register it in the DI container
(instead of having it just contain static methods)
- The tool for the custom orders tables has now two shapes:
"create tables" and "delete tables" (so no regeneration, migration...)
- Not yet used constants and methods from DataSynchronizer removed
- Added missing method comments
* Fix payments extensions displayed below the offline payments options
Add spaces back
* Add changelog
* Remove the snapshot test and update payment gateway render test
* Make sorting compare function as a helper function
* Add business-details step complete track
* Add changelog
* Update tab name and treat each tab as an individual step when trickering tracks
* Add comment
* Fix linting
* Remove unnecessary css selector
* Update goToNextStep param to make it less confusing
* Update jsdoc param
* Retrieve variation name from woocommerce_order_items for deleted products
* Remove test code
* Refactor to use wc_order_product_lookup table
* Identation fix
* Remove link if the variation/product has been deleted
* Add changelog
* Remove (deleted) suffix
* Add (Deleted) suffix in frontend
* First draft of CouponPageMoved::has_(unactioned|dismissed)_note() method changes to avoid get_notes().
* Add static function get_note_by_name( $note_name ) to Automattic\WooCommerce\Admin\Notes\Notes class.
* Use Notes::get_note_by_name() in Notes::get_note_status().
* Use new Notes::get_note_by_name() in CouponPageMoved::has_unactioned_note().
* Use new Notes::get_note_by_name() in CouponPageMoved::has_dismissed_note().
* Add changelog for 7986/8202.
These are intended to improve the performance of the table querying
when there's a lot of products and attributes, see:
https://github.com/woocommerce/woocommerce/issues/31688
The indices will be created during the database migration to v6.3,
regardless of whether the lookup table already existed at that point
or not.
* Add payment_setup track for WooCommerce Payments
* Add WooCommerce Reset Plugin to E2E environment
* Add resetWoComerceState util
* Add state reset before obw test
* Refactor resetWooCommerceState
resetWooCommerceState now makes the HTTP request locally instead of from inside the browser context.
* Update reset functionality
* Add custom settings reset function for onboarding
* Update reset functionality
* Add action-scheduler run helper function
* Fix add section test
* Add plugin removal helper functions
* Fix lint errors
* Fix broken e2e tests
* Add changelog
* Remove unused imports
* Add comment for extra timeout
* Add helper function to wait until button stops moving, incase of animations
* Fix lint error
* Add variable for string used in multiple places
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Support woocommerce_explat_request_args filter to modify ExPlat request args
* Add ExPlat test
* Add ExPlat test for PHP
* Add changelog
* Add doc for the filter
* Fix syntax
* Fix country/region selection not preserved in store details task
* Update store-adress test cases
* Add changelog
* Check alphabets regx for isStateAbbreviation
* Update comments
* Use unknown type for locale
* Add Disable reason
* Override overflow rule for label in select controls in OBW store address inputs.
* Changelog for 7893/8186.
* Rather than specifically override the overflow for store addresss country/region, remove the specific rule that was causing the issue.
* Increase line-height on SelectControl label.
* Restore overflow: hidden rule for profile wizard control label.
* Update changelog for 7893/8186.
* Add package changelog entry for 7893/8186.
* Move plugin installation method to plugin helper
* Add hook to for note addition on install error to JP/WCS note
* Add install scheduler
* Add async request parameter
* Fix up scheduled action errors
* Add route to get installation status
* Add activation endpoints and helper async methods
* Fix errors in plugin activation
* Make job ID null by default
* Add async plugin tests
* Fix install activation error errant method
* Return error codes from API
* Us AS to retrieve jobs instead of transients
* Get plugin status data from AS actions
* Use job ID instead of action ID for scheduling activation
* Add generic activation and installation status endpoints
* Add changelog entry
* Hide store setup widget if user cannot manage woocommerce
* Use task list API to retrieve tasks
* Fix up URL and URL fragments from tasks
* Remove URL assertion on external API response
* Simplify task count and completed count test
* Update tests around widget visibility
* Update step number to be completed count +1
Recently a new admin notice has been added to warn users about the
upcoming PHP 7.2 requirement starting in Woo 6.5. For new installs
this was appearing together with the "recommended PHP 7.2" notice.
This commit removes the "recommended" notice if the new "required"
notice is already being displayed (unless the site is also using
an outdated WordPress version, which is also covered by the
"recommended" notice).
* Replace mysql image with mariadb
This fixes the missing architecture error raised by docker compose
* Update readme.txt
* Add changelog
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
- checkmarks in the stepper component go missing if the first checkmark is hidden
- happens because of html id collision between the checkmarks
- added some randomness to the mask ids
* Use __() to display a generic error message on sample item import rather than passing through the server message because it probably has tags.
* Add changelog for 4314/8173.
* Add support for __unstableHTML option to Snackbar.
* Use __unstableHTML option to display server-side error messages as they come in.
* Update changelog description for 4314/8173.