* Show add attribute in Variations tab
* Create new ajax function to create attributes and variations at the same time
* Partial commit for review
* Rename action and reload attributes and variations screen after submitting action
* block/unblock UI when loading
* Change labels
* Remove unneeded output_variations function
* Changelog
* Extract duplicated code to html-product-attribute-inner
* Handle sniff issues
* Fix PHPCS issues
* Refactor class-wc-ajax to reuse code
* Fix phpcs issues
* Fix more sniff issues
* Handle code review suggestions
* Switch back to var
* Switch to snake case
* Use var instead of const
* Create tree-control component
* Remove items from treeItemProps
* Add tree-control expand/collapse on click the expander button or by a custom logic
* Add stories
* Add the type definitions
* Add use selection hook
* Upgrade WP components dependency to v19.8.5 to support indeterminate checkbox control
* Add selection logic to the tree control
* Create stories
* Add changelog file
* Fix linter error
* Add styles to fit the disign
* Highlight selected item when it's a single selection tree
* Rebasing from trunk
* Add comment suggestions
* Fix unit test errors due to a new version of @wordpress/compose related to the ResizeObserve feat
Fixes a bug that allowed to create a coupon with code "0" but prevented if from being actually used. With the fix a coupon with code "0" can be used as any other coupon.
Also adds two new methods to the StringUtil class: `is_null_or_empty` and `is_null_or_whitespace`.
Closes#35210.
* First pass at updating release test workflow
* Add changelog
* Set dir env variables
* Update to workflow
* Fix indent
* Fix indent
* Clean up indent
* Re-order steps
* Change order of jobs
* Added common php versions
* Update pipeline
* Update some labels
* Simplify for testing
* Update paths
* Create tmp folder
* Fix path
* Paths
* Try outputting some debugging
* Add step ID back
* Remove working directory
* Another path tweak
* Add API release tests
* Add k6 tests
* Add PHP tests
* Launch wp-env during PHP tests
* Try default values
* Tweak some settings, add WP testing
* Tweak some settings
* Re-order e2e steps
* Update step descriptions
* Reorganize tests, add plugin tests
* Enable only e2e job
* Initial set up to run against release smoke test site
* Fix syntax
* Temporarily disable update wc spec
* Temporarily disable downloading woocommerce zip
* Download release zip using tag name
* Fix wrong job name
* Fix wrong job name
* Fix dir
* Delete fetch-asset-id.js
* REfactor update-woocommerce spec
* Add error handling
* Download release zip by tag
* Refactor update woo spec to download zip by tag
* Correct job name
* fail test on invalid tag
* Enable all e2e tests
* Run api tests before e2e tests
* Fix job dependency
* Add customer credentials to api job
* Separate job for WC Update
* Combine e2e allure-results, then report
* Enable report job
* Fix context
* Change job and artifact names
* Use test s3 path
* Minor job name change
* Upload artifacts to bucket
* Correct s3 path
* Add quiet option
* Retain video on failures
* Finalize s3 path
* Try WP latest-1
* Revert to wp latest
* Refine search for woocommerce zip asset
* Get created-at
* Specify repo in gh command
* Slugify env description
* Trim space
* Sync with bucket instead of copy
* Remove invalid --recursive flag
* Re-add missing step to combine e2e results from update wc test
* Ensure artifact upload on test failure
* Enable all e2e tests on WP latest
* Retain existing data before updating WC
* Make test compatible with 'Canceled' and 'Cancelled'
* Set env_desc as env var
* Re-add deleted file
* Fix UPDATE_WC in daily smoke test workflow
* Add tracing in global setup
* Remove tracing
* Temporarily run only basic spec
* Job for WP Latest-1 & 2
* Fix "Required input 'created_at' not provided"
* Minor rename
* Remove install filter
* Install deps in get-wp-matrix
* Delete get-wp-versions.js
* Add get-wp-versions.js to e2e-pw folder
* REname file
* REfactor
* Refactor script for getting WP prev versions
* Update job dependencies
* Temporarily remove disabled jobs
* Allow e2e-wp-latest after api test failure
* Update L-1 & L-2 job deps
* Fix report-wp-latest
* Fix failing api test
* Make get-wp-versions quicker
* Publish report immediately after test
* Test reporting in e2e-update-wc
* Fix missing parameter
* Fix env_desc, re-enable other jobs
* Enable all e2e tests
* Minor job name change
* Fix flaky test
* Add php version testing
* stringify php versions
* Re-enable all e2e tests
* Up timeout to 2min
* Remove PHP 8.0
* Add missing conditionals
* Fix php version verification script
* Fix starting dir
* Fix flakiness
* Skip e2e if api failed
* Verify woocommerce.zip early
* Add token
* Delete test summary on github for the meantime
* Use default playwright config
* More meaningful variable names
* Update step titles based on review
* Use expect.poll()
* Minor spacing corrections
* Use `stable-check` endpoint, delete unnecessary loop
* Update locators to be JN-compatible
* Fix erroneous getting of release tag
* Fix conflict of "No thanks" button locator with that of WP Mail Logging's
* Update github-script action to v6
* Revert to 'Cancelled'
* Remove unnecessary step
* Provide missing env variables
---------
Co-authored-by: Jon Lane <jon.lane@automattic.com>
Co-authored-by: Jonathan Lane <lanej0@users.noreply.github.com>
* Add missing dev packages to product-editor package
* Create components folder for organization
* Move product field, section and tab slots over to product-editor package
* Move use of product slot fills to product-editor package
* Sync dependencies
* Add changelogs
* Update README's and add constant for default values
* Update README's in product-editor package
PHPUnit will evaluate all data providers before starting anyh test (to count the number of tests to be executed). Which means that any data provider inserting data into DB is going to interfere with other tests. Using closure instead helps PHP in counting the data, yet not having to actual DB calls.
* Add `RevenueReportDateTour` component
* Add changelog
* Fix styles
* Rename RevenueReportDateTour to ReportDateTour to use it in two different reports: Orders and Revenue
* Change default sort date to date_paid
# Conflicts:
# plugins/woocommerce/src/Admin/API/Reports/Orders/Stats/DataStore.php
* Update changelog
* Assign date_column_name before calling parent constructor
* Remove date_type default value from configuration and show tour only if user didn't assign a value
---------
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
Co-authored-by: Nathan Schneider <nsschneider1@gmail.com>
In our case for the Cart & Checkout feature, we don't want to show the
UI in the "Features" tab in Woo Settings. Creating a flag for this
purpose will make it easier for future features to unsubscribe from
showing a UI if required
Fixes bug introduced in PR #36087 that changes jQuery selectors for quantity input in variable products.
The previous logic is reinstated so that $qty points to the div wrapper, and $qty_input points to the input element inside.
Otherwise, as is in the current version, $qty_input is undefined and the min/max attributes are not updated.
This PR also addresses the original issue #36086 by restricting the selector of the div wrapper to only be the one containing input[name=quantity] (the .qty class filter is also kept to avoid any potential malfunctions of existing code).
* Site Health: Add WC-specific criteria for persistent object cache
WP 6.1 introduces a new test in the Site Health module for whether the
site has an external object cache, and if not, whether it would benefit
from having one. However, the criteria it uses are based largely on
posts and comments. This introduces WooCommerce-specific criteria based
on orders and products. It uses much lower numbers for the
thresholds (100 instead of 1000). These thresholds are somewhat
arbitrary, but reflect that the data objects in a WooCommerce store are
larger and more complex than in a simple blog.
* Add changelog file
* Add additional global attributes and local attributes information when saving product attributes
* Log only local attributes
Add attribute name
Fix issue with attribute_value and names selectors
* Save name and slug for global attributes and global terms
* Product editor: disable the feature in advanced Settings
until we implement the new designs.
* Maintain feature enabled for internal testing.
* Remove obsolete new lines.
* Re-enable the feature flag.
* Disable the new product experience if currently enabled.
* Add changelog
* Remove commented lines, obsolete brackets. Fix conflicts.
* Styling.
* Fix lint
---------
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Remove Klarna payments from North America and remove Amazon pay from CA
* Update payment gateway list ordering priority
* Add changelog
* Sort gateways by recommendation_priority
* Fix DefaultPaymentGateways.php
Fix lint
Fix paypal
Fix comment
* Remove unneed comment
* Change eway priority to show after square
* Include fields date_paid and date_completed to wp_wc_order_stats
TODO: add script to create new columns in the database
* Add update script and new columns in get_schema
* Add new configuration in Analytics > Settings to configure type of date used in Revenue report
* Change date_column_name to date_paid
TODO: This will be configurable in future
* Add date type config field
* Use customizable date field in DataStore
* Change label
* Fix linter errors
* Remove blank line
* Put default column name back to date_created
* Make date_paid and date_completed nullable to help with unit tests
* Remove new table creation in update function and use query method instead of get_var
* Extend stats constructor
* Improve date type configuration description
* Set date column name default to date_created to test if build passes
* Fix phpcs issue on constructor
* Remove cache bypass added by mistake
* Improve changelog
* Fill date_paid and date_completed for refunds to avoid problems whem they are being used to sort
Fix unit tests when date_paid or date_completed are being used as sort date
* Change default to date_created
* Bump update script to 7.5.0
* Add prefix and postmeta variables for script
* Add attribute creation form
* Add changelog
* Check `Used for variations` by default
* Fix lint
* Fix lint
* Fix `create-variable-product.spec` e2e tests
* Fix do not show form with local attributes
* Fix lint
* Fix tests
* Refactor e2e test fix
* Replaced `wp_kses_post` with `esc_html_e`
* Fix lint
---------
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
Rather than returning an empty string as the label for an unknown
unit of measure, this allows a merchant to use a custom unit of measure
for something and still have it appear in the UI.
While the extra context would be beneficial for translators, these
particular strings have already been translated for many lanugages
and adding the context would invalidate the translations, which could
cause a visual regression for merchants if the new strings don't get
reapproved before the next version is released.
* Update `config@3.3.7` (from `3.3.3`)
Add it to syncpack, to avoid `ReferenceError: node_env_var_name is not defined` when external extension imports and transforms the `admin-e2e-tests` directly from `node_modules`.
Include https://github.com/node-config/node-config/pull/642
* Make state optional for BG and HU.
* Add changelog.
* PHPCS spacing fix
* Hide State field for Hungary.
* Unhide the State in Hungary.
Some extensions might still use it e.g. for shipping purposes.
* Merge branch 'trunk' into fix/hu-and-bg-state-optional
This PR removes several CSS lines that were enforcing specific styles (mostly padding) to buttons. This is in order to better inherit the styles provided by the theme.
I've noticed on line 339 has an empty array ($attributes) which might be intended to use as a fallback variable for line 345. The array ($attributes) is then extended on line 342, but the variable name at this point is $attribute instead $attributes
* Move attribute data changes out of attribute control
* Move dynamic text to props
* Add onModalOpen callback
* Add onModal close prop
* Add changelog entry
* Use closeModal for edit attribute modal
* Add onEdit callback
* Extract util to get unique attribute id
* Rename editingAttribute to currentAttribute
* Rename showAttributeModal to isNewModalVisible
* Rename AddAttributeModal to NewAttributeModal
* Fix up handle add attributes
* Add onRemove callback for attibutes
* Fix up modal styling classes
* Fix up closing edit modal
* Fix up modal title for options
* Handle PR feedback
* Separate handlers for edit and new modal callbacks
* Update event names to be option/attribute specific
* Use default callback functions
* Handle PR feedback
* pin eslint in .syncpackrc
run `pnpm run sync-dependencies` to ensure pinned version is used across projects, then run `pnpm install` to update `pnpm-lock.yaml`
* add changelog files
ran `pnpm run --no-bail --filter='[HEAD^1]' changelog add --significance=patch --type=dev --entry='Update eslint to 8.32.0 across the monorepo.'`
* re-run `pnpm install` to fix what broke while merging
100 is the maximum limit allowed by the API.
We do this because the API does not return total number of rows, so we use 100 to get "all" rows, to support pagination in the UI.
There's no need to show the two products cells in Status Widget table when stock management is disabled, otherwise you'll get 2 links pointing nowhere (specific report pages are disabled and you'll get an "unauthorized" error)
* Adding contants, renaming files, wiring up shipping section with discrete slots for variants and non-variants
* Refactoring pricing section to give discrete slots for variant and non-variant forms
* Refactoring inventory fills to give discrete slots for variant and non-variant products
* Adding additional slot to pricing -> taxes -> advanced
* Renaming api fields component file
* Refactoring images, details and attributes to match others
* Ensure variant field IDs are distinct, organize all product field fill IDs
* Adding changelog
* Simplifying IDs used for slots
* Minor refactor of pricing taxes class field
* Give api fill exports their own registerPlugin scope
* Refactoring WooProductFieldItem to generate unique IDs
* Adding components changelog
* Add unique sku option to error data when setting product sku
* Add changelog entry
* Add permalink template to the sku error data
* Revert "Add permalink template to the sku error data"
This reverts commit a49ee1d878.
* Fix inappropriate deletion of order from posts with sync off
When the orders table is authoritative and sync is off, deleting
and order should not delete the order record from the posts table,
this commit fixes that.
Additionally, OrdersTableDataStore::delete will now trigger the
woocommerce_delete_order action in all cases, even when the
method is called while the posts table is authoritative.
* Add changelog file
* Fix: order items were not deleted
* Improve comment in the 'delete' method
* Use delete_items instead of a dedicated method for deleting order items
* Move clearQueue call to inside an useEffect
That call was causing a React error (Cannot update a component while rendering a different component)
* Move queueForPage declaration to before it's use
- Use `@include font-size ( 20 )` to generate relative size in rem.
- Use unitless number value for line-height; this is the preferred way according to MDN.
- `font-weight` and `letter-spacing` are not needed.
The UI looks the same before and after this change.