Commit Graph

954 Commits

Author SHA1 Message Date
Néstor Soriano e9d692f455 Apply suggestions from code review
Mostly adding "since 4.4.0" annotations and updating
db update functions from 4.2 to 4.4.

Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-07-28 09:01:55 +02:00
Nestor Soriano 9c6c0d73d8 Record attribute terms for product variations in wp_term_relationships.
Product attributes are currently recorded as terms in
wp_term_relationships (product attributes are actually taxonomies).
In the case of variable products this is true for the main product,
but not for the variations. The attributes used to define variations
are stored as post meta, but nothing is recorded in the term
relationships table.

This is a problem when using the layered nav filtering plugin,
since the attribute counters displayed are calculated based solely
on the contents of the term relationships table. Adding meta queries
would be really messy (especially when the widget is configured
with AND operator) and would probably also hurt performance.

This commit adds a change to store the attributes for variations
as term relationships, additionally to storing them as post meta.
Terms are stored on variation creation, and updated/deleted together
with the variation as appropriate. "Any" variations (stored in meta
as empty values) are not stored as terms.

Additionally, a database upgrade is included in order to backfill
terms for already existing products.
2020-07-28 08:55:55 +02:00
Nestor Soriano 752b47513d Fix code sniffer errors in some files.
Fixed files:

includes/data-stores/class-wc-product-variable-data-store-cpt.php
includes/wc-update-functions.php
2020-07-28 08:55:55 +02:00
Claudio Sanches 9c4ac29137
Merge pull request #26565 from woocommerce/fix/26510
Allow set "order key" while creating order via CRUD
2020-07-01 12:42:18 -03:00
Claudio Sanches cac529c393
Merge pull request #26567 from woocommerce/fix/26510-created-date
Allow set "date_created" while creating orders via CRUD
2020-07-01 12:40:43 -03:00
Vedanshu Jain b45373fe0c Revert "Revert "Introduce a `reserved stock` class and database table to prevent race conditions during checkout"" 2020-06-05 15:18:01 +05:30
Claudio Sanches 7534e2eba0 Allow set "date_created" while creating orders via CRUD 2020-05-20 18:04:49 -03:00
Claudio Sanches ea19190d3b Allows to set custom order_key while creating an order 2020-05-20 17:14:17 -03:00
Christopher Allford 8332410939
Merge pull request #26308 from vandekul/master
Fix matching zones query for working with sqlite
2020-05-11 19:58:17 -07:00
Claudio Sanches 85d7cdbbb4 Allow schedule coupons via CRUD 2020-05-05 16:35:10 -03:00
Susanna 07eef2d717
Fix matching zones query for working with sqlite
And probably other databases too.
2020-04-27 18:31:52 +02:00
Vedanshu Jain ee119e0a7e
Revert "Introduce a `reserved stock` class and database table to prevent race conditions during checkout" 2020-04-21 15:37:21 +05:30
Claudio Sanches 58db7314a8 Added validation for product fields. 2020-04-07 11:29:54 +02:00
Vedanshu Jain 3bf473517d
Merge pull request #25708 from woocommerce/update/reserve-stock-for-checkout
Introduce a `reserved stock` class and database table to prevent race conditions during checkout
2020-04-07 02:16:22 +05:30
Mike Jolley 51aca598b9 Only implement get_query_for_stock in data store 2020-04-03 15:55:14 +01:00
Claudio Sanches 2ebd86f2dc Revert "Revert "Add support for '_held_for_checkout` records to prevent race conditions."" 2020-04-03 15:55:13 +01:00
Gennady Kovshenin ca996a8941 Fix race condition in update_product_stock
Modify the increment and decrement SQL query in
WC_Product_Data_Store_CPT::update_product_stock to be atomic. This fixes
a race condition in concurrent order placement.
2020-03-31 16:01:26 +03:00
vedanshujain 509b2c180d Set usage count as its required by usages query 2020-03-11 20:44:52 +05:30
Rodrigo Primo 0aa438e031 Add version to @since tag of WC_Coupon_Data_Store_CPT::updated_props
See #25755
2020-03-04 15:57:17 -03:00
Rodrigo Primo 831b02a0a6
Merge pull request #25755 from nefeline/fix/undefined-property-coupon-post-meta-update
Fix > Undefined property error when updating the coupon post meta
2020-03-04 15:56:24 -03:00
Christopher Allford 37ff503855 Adjusted the ordering of the cache clear on order item deletion to prevent leaving behind a ghost cache entry 2020-02-26 09:36:28 -08:00
Christopher Allford 165138fc30 Renamed the WC_Order_item_Data_Store::clear_cache method to be consistent with other data stores. 2020-02-26 09:34:27 -08:00
Patricia Hillebrandt c3379482a2 Updating docblock 2020-02-25 16:53:40 +01:00
Christopher Allford 6a292de9f9 Cleared the cache when order items are added, updated, or deleted 2020-02-23 12:41:33 -08:00
Christopher Allford e2a09ac1a7 Added a cache clearing method to the order item data store
The order items utilize caching, but the cache is never cleared. This will allow us to resolve this issue in a way consistent with other data stores.
2020-02-23 12:11:23 -08:00
Patricia Hillebrandt bd53e2eb60 Prevents the Undefined property error when updating the post meta for a given coupon 2020-02-23 14:07:18 +01:00
Rodrigo Primo 7c9d6110e2 Fix typo in code comment 2020-02-05 15:48:40 -03:00
Christopher Allford 57734ca8ce Merge branch 'master' into refactor/add-jetpack-constants 2020-02-04 14:36:35 -08:00
Christopher Allford 1d1413b4ee Replaced direct access of many constants with the Constants library 2020-01-31 22:18:47 -08:00
Mike Jolley 314cc8eee6 Add columns to data store 2020-01-20 14:17:42 +00:00
Rodrigo Primo 2668bf6025
Merge pull request #25314 from woocommerce/fix/24746
Removed the lowercase conversion of product search terms
2020-01-16 16:29:07 -03:00
Claudio Sanches 3ebda4a431 Use WC_Data_Exception in WC_Product_Variation_Data_Store_CPT 2020-01-06 21:35:23 -03:00
Claudio Sanches 85a077b939 Coupon race condition prevention 2020-01-06 19:44:24 -03:00
Christopher Allford 874be93c14 Removed the lowercase conversion of product search terms
When searched in a case sensitive manner, the conversion to lowercase causes uppercase matches that would have been found to be lost. This change increases the tolerance of the OR search format while also removing this unintended side-effect.
2019-12-24 15:00:40 -08:00
Rodrigo Primo 7337ab60c2 Fix PEAR.Functions.FunctionCallSignature violations
This commit fixes all violations of the PEAR.Functions.FunctionCallSignature sniff automatically using phpcbf.
2019-12-20 15:25:23 -03:00
Rodrigo Primo 487f96d844 Fix WordPress.DateTime.CurrentTimeTimestamp vilations
This commit fixes all violations of the WordPress.DateTime.CurrentTimeTimestamp sniff automatically using phpcbf.
2019-12-20 14:23:05 -03:00
Rodrigo Primo 62d6b05b58 Fix Generic.Formatting.MultipleStatementAlignment violations
This commit fixes all violations of the Generic.Formatting.MultipleStatementAlignment sniff automatically using phpcbf.
2019-12-20 14:21:08 -03:00
vedanshujain ad2f76275a Applied coding standards 2019-12-17 19:13:19 +05:30
vedanshujain ba2d825800 Use DB timestamp to ensure consistency between servers. 2019-12-17 19:13:19 +05:30
vedanshujain 9b7343d23b Applied coding standards 2019-12-17 19:13:19 +05:30
vedanshujain 47ba1d49da Cascade to return null to prevent notice when array is empty.
Another situation where this change is required when there are two coupons in an order but only one coupon has limit. In this case array will be present but one of the coupon will not have a corresponding record which will throw a notice.
2019-12-17 19:13:19 +05:30
vedanshujain 53bfcea110 Use same filter for stocks and coupon for consistency. 2019-12-17 19:13:19 +05:30
vedanshujain 72545c44b7 Add support for `_held_for_checkout` records to improve performance.
This will also improve transactional stability and avoid race conditions by providing a way to lock usage counts.
2019-12-17 19:13:19 +05:30
Claudio Sanches f7632de06e
Merge pull request #25164 from om4james/webhook-delete-cache
Delete cached webhook data when a webhook is deleted
2019-12-10 22:45:42 -03:00
Claudio Sanches 104f40c36e
Merge pull request #24281 from woocommerce/fix/24269
Handle multiple decimal points
2019-12-09 14:07:29 -03:00
Claudio Sanches 78e382e4d6 Fixed incorrect concatenation of variation sale prices with ".00" 2019-12-06 12:37:23 -03:00
James Collins 0246b02a94 Merge branch 'master' into webhook-delete-cache 2019-12-06 08:57:54 +08:00
Rodrigo Primo 27915dd696 Exception when WC_Product_Variation is instantiated with the wrong type
This commits changes WC_Product_Variation to raise an exception when the
class is instantiated with an ID that belongs to a post object that is
not a product variation.

This is necessary to avoid problems like the one described in #24956
where passing a variable product ID to WC_Product_Variation would result
in transparently modifying the variable product title and excerpt.
2019-12-05 15:45:48 -03:00
Rodrigo Primo 61a843679a Fix WPCS violations automatically using phpcbf 2019-12-05 15:45:12 -03:00
Claudio Sanches 5fdb880831
Merge branch 'master' into feature/24956 2019-12-04 16:18:39 -03:00