Declares $api as a public property to the WooCommerce class in order to avoid a deprecation warning that will eventually be an error in upcoming PHP versions.
* Update documentation on how to add a new field through FormFactory
* Add method to add_tab through FormFactory
* Update ProductForm definition and add Tabs
* Add changelog
* Add test to add_tab and get_tabs methods
* Add changelog for @woocommerce/data
* Add tabs to reducer actions and initial state
* Remove unused function
* Fix unit test
* Increment Tabs TypeScript definition
* Add required fields to Tab class and refactor to reduce lines of code
* Change from filter to action in doc example
* Update method documentation
* Add required fields to test
* Change productform_field test
* Fix form-factory unit test
* Update wrong comment
* Disable the new navigation.
* Add changelog
* Fix linter errors.
* Disable the new_navigation option.'
* Navigation: disable the opt-out modal.
* Disable navigation for sites that have it turned off. Revert obsolete changes.
* Navigation: Add warning before disabling the navigation
in the Feature Settings.
* Linter errors.
* Correct the logic.
* Edit the notice text.
* Fixing linting errors."
* Tests: fix the copy.
* Always show comments for product feedback form
* Add changelog entry
* Add CES changelog entry
* Fix up lint errors
* Add default for shouldShowComments in CustomerFeedbackModal
* Enable new experience for simple products
* Add changelog
* Fix `updateOptions`
* Fix redirect when new-exp is enabled
* Redirect when new-exp is enabled
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
* Migrate shipping shipping in product editor to slot fill
* Adding changelog
* Removing obsolete shipping section files, adding support to variations form
* Multichannel Marketing - Core Library (#35099)
* Create channel interface and campaign value class
* Create MarketingChannels class
* Register MarketingChannels class in DI container
* Use the new MarketingChannels class to get the installed marketing extensions' data
* Use DI container to access InstalledExtensions class
* Add InstalledExtensions to the $provides array
* Hint that campaign cost should also indicate the currency
* Initialize the channels array
* Add unit tests for MarketingCampaign
* Add unit tests for MarketingChannels
* Add Price class to represent a price with currency
* Use Price class for marketing campaign's cost
* Define a constant to indicate the MCM classes exist
This constant will be checked by third-party extensions before utilizing any of the classes/interfaces defined for this feature.
* Create MarketingSpecs class to include WC.com API calls
* Remove WC.com API calls from Marketing class
And replace them with calls from MarketingSpecs class.
* Use the const from MarketingSpecs
* Fix MarketingChannels unit tests
* Add missing settings URL to the channel data
Co-authored-by: Nima <nima.karimi@automattic.com>
* Multichannel Marketing - Changes to the marketing classes (#36012)
* Rename `get_errors_no` to `get_errors_count`
* Remove the validation for marketing channel slugs
Do not check if the marketing channel's slug exists in the list returned by WooCommerce.com Recommendation API. This allows any third-party extension to register as a marketing channel.
* Revert InstalledExtensions
The InstalledExtensions class will be used by the previous generation of the Marketing dashboard (if the user has not enabled the new "Marketing" feature); therefore, it's best to restore it to the original code.
* Fix code style
* Translate Exception message
* Remove doc references to a predetermined list of marketing channels
Co-authored-by: Nima <nima.karimi@automattic.com>
* Multichannel Marketing - API (#36222)
* Rename `get_errors_no` to `get_errors_count`
* Remove the validation for marketing channel slugs
Do not check if the marketing channel's slug exists in the list returned by WooCommerce.com Recommendation API. This essentially allows any third-party extension to register as a marketing channel.
* Revert InstalledExtensions
The InstalledExtensions class will be used by the previous generation of Marketing dashboard (if the user has not enabled the new "Marketing" feature); therefore, it's best to restore it to the original code.
* Fix code style
* Add channel property to MarketingCampaign
* Add methods to filter the recommended marketing channels and extensions
* Add `marketing/recommendations` API
* Add unit tests for `marketing/recommendations` API
* Add `marketing/channels` API
* Add unit tests for `marketing/channels` API
* Add `marketing/campaigns` API
* Add unit tests for `marketing/campaigns` API
* Translate Exception message
* Remove doc references to predetermined list of marketing channels
* Add `unregister_all` method
To allow unregistering all marketing channels.
* Unregister all channels on test tear down
* Change API access denied authorization code
* Change API access permission
* Add MarketingCampaignType class
This allows defining campaign types for each marketing channel.
* Add campaign type property to campaign class
* Add `marketing/campaign-types` API
This API returns the aggregated list of supported marketing campaign types for all registered marketing channels.
* Add unit tests for `marketing/campaign-types` API
* Remove unused jsonSerialize method
* Fix unit tests
Co-authored-by: Nima <nima.karimi@automattic.com>
* Add changelog
* Add product listing status sync failed
Co-authored-by: Nima <nima.karimi@automattic.com>
* Add permalink_template and generated_slug to posts REST API
* Changelog
* Add missing domain for translations
* Use strict comparison for in_array
* Fix code style (alignment) issue
* Update number of expected properties in products schema
* Add an admin notice about the upcoming change in PHP requirements
The minimum required PHP version will be 7.3 as of WooCommerce 7.7.
This adds a dismissable admin notice to PHP 7.2 users.
* Add changelog file
* Disable PHPCS warnings for TODO items (required by GitHub CI)
* Reformat the PHP 7.3 requirement notice to be more translators-friendly
* Add a translators note to pass linting
Co-authored-by: Corey McKrill <916023+coreymckrill@users.noreply.github.com>
* Apply filter to get additional sql to include variations with no orders
* Add join only when correct option is selected
* Some more desperate tests
* Analytics: use a sepoarate query for data without orders.
* Change 'experimental_woocommerce_analytics_variations_additional_clause' filter to apply sql clauses directly
* Cleanup
* Add changelog
* Fix PHPCS issues
* Add docblock and update the filter name
* Improve docblock of new filter
* Add Since 7.4.0 on filter
* Move union statement before order by statement
* Apply filters before running the db count statement and add sql select clause before
* Remove with sql clause since it's not compatible with MySQL 5.7
* Remove additional spaces
* Fix bug caught by unit test in which $variations_query is overwritten because the assignment was outside the 'else' statement
Co-authored-by: AnnaMag <anna.mag.kedzierska@gmail.com>
* Add initial component to auto load fills from API config
* Add changelog
* Update logic to make use of new store and re-usable components
* Add changelog
* Add loading state for product form data to add/edit product pages
use the WooCommerce error log, change the quotation style, and fix a small linting issue (whitespace)
Co-authored-by: Barry Hughes <3594411+barryhughes@users.noreply.github.com>
* Replace add new product link with new experience
* Replace add new button on Products page
* Update all edit product links to point to new experience
* Update default add_product value to null
* Add changelog entry
* Fix additional space around equals sign
* Add product tour container and modal
* Fix modal open class name
* Add product tour
* Add changelog entry
* Move product tour state logic into hook
* Fix tour selectors for pricing and actions
* Add tests around product tour container
* Add tests around useProductTour hook
* Make tour responsive
* Use tabs instead of spaces
* Fix more scss lint errors
* Remove extra whitespace
We are calling `post_updated_messages` filter when displaying order edit screen in HPOS. However, this is a post based filter, which means that functions hooked to it might be expecting the global $post object to already be set. This unfortunately may cause warnings or fatals, so we remove this filter call from HPOS page.
Prior to 7.2.0 the quantity input was hidden if input min and max were identical (either because the product was sold individually, or because of min/max products config). This change restores that behavior, but makes it possible to render the input in readonly mode if desired (via filters).
* Working prototype of product details via slotfill
* Raising default order for product slot-fills
* Move logic to details field name component
* Adding order prop to all fills.
* Adding components changelog
* Adding changelog
* Deleting obsolete product details section files
* Reducing spacing between slot filled fields
* Move attribution fetching to separate hook
* Add changelog entry
* Set all attributes on update of subset of attributes
* Move filtering logic to hook
* Remove tests that filter attribute by type inside the component
* Rename AttributeField to AttributeControl and props from attributes to value
* issue-35763/fix-php-8.2-deprecation-warnings
* Declare $mockable_functions property
* Declare $mockable_classes property
* Fix deprecated usage of ${var} in strings
* Add changelog file
* Avoid using interpolation to create SQL statement
We could ignore the PHPCS error. However, ignoring the error leaves
PHPCS unable to detect future changes that may introduce unsafe
interpolation.
I think the more verbose approach is the safest approach in this
case.
* Ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
There doesn't seem to be a way to use a variable name for the name of the table without
triggering a PHPCS error.
* Avoid interpolated passing interpolated variables to __()
* End inline comments with a full-stop
* Fixed#31760 issue
* additional space removal after &&
* Make sure tracking shortcode only tracks orders of type `WC_Order`
* Add changelog
Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
* Upgrade PHPUnit to v8, and remove usage of PHPUnit7 fork in CI
Once the minimum WordPress version supported by WooCommerce is 5.9
and the minimum PHP version supported is 7.2, we can switch to
PHPUnit 7 and the patched PHPUnit 7 with support for PHP 8 is
no longer needed.
* Resolve PHPUnit 8 deprecations in tests
* Add changelog file
* Fix code formatting
* Tweak email layout/styling. This should improve responsive properties for RTL emails particularly.
* Further improve layout consistency across a range of mobile email clients.
* Update existing code to match current coding standards.
* Further PHPCS fix.
* Update sample email to match recent changes in our default email CSS.
* Rename `get_errors_no` to `get_errors_count`
* Remove the validation for marketing channel slugs
Do not check if the marketing channel's slug exists in the list returned by WooCommerce.com Recommendation API. This essentially allows any third-party extension to register as a marketing channel.
* Revert InstalledExtensions
The InstalledExtensions class will be used by the previous generation of Marketing dashboard (if the user has not enabled the new "Marketing" feature); therefore, it's best to restore it to the original code.
* Fix code style
* Add channel property to MarketingCampaign
* Add methods to filter the recommended marketing channels and extensions
* Add `marketing/recommendations` API
* Add unit tests for `marketing/recommendations` API
* Add `marketing/channels` API
* Add unit tests for `marketing/channels` API
* Add `marketing/campaigns` API
* Add unit tests for `marketing/campaigns` API
* Translate Exception message
* Remove doc references to predetermined list of marketing channels
* Add `unregister_all` method
To allow unregistering all marketing channels.
* Unregister all channels on test tear down
* Change API access denied authorization code
* Change API access permission
* Add MarketingCampaignType class
This allows defining campaign types for each marketing channel.
* Add campaign type property to campaign class
* Add `marketing/campaign-types` API
This API returns the aggregated list of supported marketing campaign types for all registered marketing channels.
* Add unit tests for `marketing/campaign-types` API
* Remove unused jsonSerialize method
* Fix unit tests
Co-authored-by: Nima <nima.karimi@automattic.com>
* Customers REST API: return user metadata only when requester has an administrator role
* Add changelog file
Co-authored-by: Nestor Soriano <konamiman@konamiman.com>
* Add initial PHP classes for field registry with tests
* Add README
* Add changelog
* Add sorting to get fields and add test for this
* Update location to section
* Fix lint errors
* Address PR feedback and add Card and Section classes
* Fix php unit test
* Some more cleanup and consolidation of product form component logic
* Fix tests and linting
* Rename Card to Subsection and move some logic around
* Rename Form to FormFactory
* Fix lint errors
* Update spelling of Cancelled to Canceled for US English.
This only updates output display text that uses US English. All code that uses
the form Cancelled is unchanged and is perfectly fine to stay as Cancelled.
(since it is behind the scenes and would require changes in other plugins)
For languages where Cancelled is preferred such as UK English the approprate
form can be applied in the translation files.
Fixes https://github.com/woocommerce/woocommerce/issues/25847
* add changelog file
* Update plugins/woocommerce/tests/api-core-tests/tests/settings/settings-crud.test.js
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Co-authored-by: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
* Update TaskLists::add_task() to reflect changes in TaskList::add_task()
In
8ff08ea0c9 (diff-061f664bd417ad78d47c53ad5e6cc7e2eb1243af4e55b6fbf68750225acb06a3R173)
`TaskList::add_task()` was refactored to receive an instance of `Task`
instead of an `array` as its first parameter.
This commit updates `TaskLists::add_task()` (easy to miss that it is a
different method as the only difference is the plural in the class
name) to reflect the changes from the commit mentioned above. It
updates the type of the second parameter from `array` to `Task` and
renames the parameter from `$args` to `$task`.
I found this while using `TaskLists::add_task()` to add a MailPoet task
as our PHPStan checks complained that I was passing the wrong parameter
to this WooCommerce method.
* Add missing changelog file
Move HPOS-aware orders retrieval code from REST API v3 to v2.
This has two effects:
1. Make the /orders endpoint compatible with REST API v2 when HPOS
is active, additionally to v3 (v1 would require additional work).
2. Fix the /orders/<id>/refunds endpoints for v2 and v3, which was
retrieving data from the posts table even when HPOS active
The class hierarchy is: RefundsV3 extends RefundsV2 extends OrdersV2
and OrdersV3 extends OrdersV2.
Co-authored-by: barryhughes <3594411+barryhughes@users.noreply.github.com>
* Add Charge sales tax on sub section to pricing section when enable taxes is set to yes
* Add tax classes datastore
* Load tax classes in pricing section
* Set empty value when tax class is standard rate
* Add changelog files
* Add custom resolver to use slug as id for tax classes
* Add helper text and learn more link to tax class radio group