Commit Graph

457 Commits

Author SHA1 Message Date
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
vedanshujain aaa85ac74c Use standard way to calculate total in `get_subtotal_to_display` for consistency.
We were calculating subtotal to display slightly differently then we would have calculated subtotal in the cart. This was affecting subtotal value in invoices and in order confirmation screen.

This patch updates how we calculate subtotal to display such that we calculate in same way.
2019-11-27 04:43:23 +05:30
vedanshujain 1de30e8963 Refactor so that trait don't have class specific functions. 2019-11-26 01:30:45 +05:30
vedanshujain 60cd7b3651 Refactor Order Class to use shared calculation logic.
We added a trait to move shared logic betweem Orders and Cart. This commit refactors Order class to use that shared logic.
Also adds a test for a failing case.
2019-11-25 17:53:14 +05:30
vedanshujain bee7ea4490 Add trait which contains common total calc logic.
`WC_Abstract_Order` and `WC_Cart_Totals` have their own logic to calculate totals. This means that we would have to fix in two places. This commit adds a trait which can be used to place shared logic between above two classes.
2019-11-25 17:53:14 +05:30
Vedanshu Jain 9641963001
Merge pull request #24740 from woocommerce/feature/24654
Make WC_Abstract_Order::recalculate_coupons() public
2019-10-02 15:56:36 +05:30
Claudio Sanches 8c88cd9b6f Make WC_Abstract_Order::recalculate_coupons() public 2019-10-01 17:19:33 -03:00
vedanshujain 6f2d64dcb4 Check for max discount to be -ve to prevent overwriting fee.
When we refund fee and some other line item whose value is more than fee in a single requst, value of line item will overwrite refund fee.

This is because where we check to make sure that we do not discount more than total possible value (to prevent negative total), we do not account for the fact that sometimes the cart could contain refund items. In those cases max_discount * -1 will always be larges then fees total.

This commit adds a check to make sure that max discount * -1 is indeed negative before overwriting fee total.
2019-09-03 20:45:33 +05:30
Claudio Sanches 01f5a09d27
Merge pull request #23338 from woocommerce/update/23335
More useful actions in during CRUD save events
2019-07-08 18:56:14 -03:00
Jared Burke 332c94c13a Fix fatal error when applying a virtual coupon to an order placed by a guest 2019-06-06 15:37:08 -05:00
Ajay Ghaghretiya c9bcce3a31 #23850 Fixed the coupon usage limit issue when apply coupon from admin panel (#23851)
* fix the coupon usage limit issue

* fix the if condition for the usage limit

* fixed coding standard

* fix the if conditions for coupon usage limit per user
2019-06-03 10:47:32 -03:00
Gerhard Potgieter b2ed079520 Manual orders coupon usage limits by email (#23775)
* Add functionality to wp-admin order to check for coupon usage based on email addresses, similar to how WC_Cart handles this seperately, included unit tests.

* Only do the coupon by email usage check if order is from a guest. Fix issue with unit test.
2019-05-27 11:45:29 -03:00
Claudio Sanches 28d49031d3
Merge pull request #23695 from james-allan/calc-base-zip-city
Calculate base store taxes including the store's zip and city
2019-05-22 20:49:57 -03:00
Boris Djemrovski c45e06a130 get_formatted_line_subtotal takes Item object instead of an array 2019-05-16 12:04:34 +02:00
Gerhard Potgieter 30ce9ff6a3
Merge pull request #23689 from woocommerce/add/get_used_coupon_codes
Deprecate get_used_coupons in favor of get_coupon_codes
2019-05-15 15:34:40 +02:00
James Allan 6069854d9f Replace wc_get_base_location() with individual getters 2019-05-15 15:43:15 +10:00
Gerhard Potgieter b7facc0674
Merge pull request #23663 from danielbitzer/add_get_coupons_method
Add WC_Abstract_Order::get_coupons()
2019-05-14 11:35:21 +02:00
Gerhard efe3e4c5d6 Move get_used_coupons to WC_Abstract_Legacy_Order and renamed get_used_coupon_codes to get_coupon_codes. 2019-05-14 11:19:48 +02:00
Daniel Bitzer 0705730121 Add WC_Abstract_Order::get_coupons() 2019-05-14 15:46:48 +09:30
James Allan 45b461639e Calculate base store taxes including the store's zip and city 2019-05-14 13:43:57 +10:00
Gerhard 31acfbcb4a Deprecate WC_Abstract_Order::get_used_coupons in favor of WC_Abstract_Order::get_used_coupon_codes, this reflects the actual data being returned better. 2019-05-13 14:40:54 +02:00
Nathan Dawson 6088f7c353 Fixes #23578 - Check taxes are enabled before adding totals row to orders 2019-05-01 22:05:46 +01:00
Mike Jolley 47eee0143f Restore order note on exception 2019-04-17 13:07:52 +01:00
Mike Jolley a0d4f6174c Consistent CRUD classes with before/after save hooks 2019-04-17 12:47:35 +01:00
Mike Jolley 9529d6eee7 Use total, not amount, when calculating fees 2019-02-20 16:22:20 +00:00
Mike Jolley b8921f9fba
Merge pull request #22420 from woocommerce/refactor/tax-rounding-methods
Refactor tax rounding methods for consistency
2019-02-12 16:13:58 +00:00
Ron Rennick 3f24ad8d4c phpcs sniff fixes for abstract-wc-order.php 2019-01-27 11:38:08 -04:00
Ron Rennick d32f189f27 recalculate coupons after adding to order 2019-01-26 23:57:32 -04:00
Mike Jolley 42f77950bd Make total recalc use unrounded tax values to fix test WC_Tests_Order_Coupons::test_add_coupon_to_order 2019-01-11 13:17:06 +00:00
Mike Jolley 28ac24d870 update_taxes can safely round all values, as lines would already be rounded if applicable 2019-01-11 13:12:31 +00:00
Mike Jolley 50ca24e5d9 set_coupon_discount_amounts should support woocommerce_tax_round_at_subtotal 2019-01-11 13:09:20 +00:00
Mike Jolley caffa319f4 set_item_discount_amounts should support woocommerce_tax_round_at_subtotal 2019-01-11 13:06:26 +00:00
Mike Jolley 11d14b30a4 PHPCS fixes 2019-01-11 12:28:52 +00:00
JeroenSormani f4775ccd90 Use shipping method instead of property through magic + doc return statements 2019-01-04 12:41:38 +00:00
Ewout Fernhout 9c411dc532
Fixes #21345 2018-09-13 15:23:00 +02:00
Mike Jolley ddb779e917 Check type correctly 2018-06-29 11:22:03 +01:00
Claudiu Lodromanean 4c47574d7c
Merge pull request #20533 from woocommerce/fix/20505
Round items for order total
2018-06-14 09:11:57 -07:00
Mike Jolley 893e6affb1 Revert this change - no issue, just keeping diff small 2018-06-14 12:56:21 +01:00
Mike Jolley 90c90591f3 Round items for order total 2018-06-14 12:52:13 +01:00
Mike Jolley aa4a89f92d Shipping tax may be a string, so cast it
Fixes #20519
2018-06-14 11:49:45 +01:00
Mike Jolley 813db4c7f1 Clear needs_processing transient when adding a product to an order 2018-06-05 11:28:45 +01:00
Diego Zanella 18731221fa Added order to "woocommerce_order_is_vat_exempt" filter arguments 2018-06-04 11:01:15 +01:00
Mike Jolley d25bd2dd33 Fix rounding of line items for orders 2018-05-15 23:18:39 +01:00
JeroenSormani 4e6b0dc500 Doc improvements (return types mostly) 2018-04-12 09:10:14 +02:00
Brian Henry b6f1f68a00
Documentation punctuation fixes: its = posessive 2018-04-05 19:45:14 -07:00
Claudio Sanches 0660a50e07 Removed obvious boolean results 2018-03-21 19:57:10 -03:00
Claudiu Lodromanean b6c1a9d2c1
Merge pull request #19220 from woocommerce/fix/19218
Only append tax label if taxes are enabled
2018-03-05 09:26:10 -08:00
Gerhard Potgieter 440358a4f2 PHPCS passing for abstract-wc-order.php 2018-03-05 13:41:04 +02:00
Mike Jolley 57cfa72d99 Only append tax label if taxes are enabled 2018-03-02 16:22:54 +00:00
Mike Jolley 69816b9854
Merge pull request #18538 from woocommerce/update/16366
Optimise saving of orders
2018-02-22 12:20:14 +00:00