Commit Graph

495 Commits

Author SHA1 Message Date
Mike Jolley 1b905b2975
Merge pull request #19331 from woocommerce/add/coupon-wildcard-email
Add wildcard email support for coupons.
2018-03-13 10:05:06 +00:00
Gerhard Potgieter 01775a4443 Missing space 2018-03-13 07:34:47 +02:00
Claudio Sanches 768a21e788 Check if product has weight before calculate weigth total in cart
Closes #19347
2018-03-12 12:54:00 -03:00
Gerhard Potgieter 3910fbc270 Update method name 2018-03-09 11:00:57 +02:00
Gerhard Potgieter 1840d594ee Add wildcard email support for coupons.
Co-authored-by: l4ll3x
2018-03-09 10:57:12 +02:00
Mike Jolley 46862deb17 wc_get_cart_item_data_hash function 2018-03-05 19:57:57 +00:00
Mike Jolley 1901493eee Should be pulic. 2017-12-15 15:18:17 +00:00
Mike Jolley 01871fd2c8 Add getter for tax_display_cart variable, with filter 2017-12-15 13:39:35 +00:00
James Allan 82c282e83a Clone the child objects rather than instantiating new objects.
When cloning the cart, the current fees and session objects should
remain the same but have new pointers.
2017-12-08 21:15:45 +10:00
James Allan 83de162adb Only remove fees which belong to the cart which is being emptied/reset
If there are multiple instances of WC_Cart and therefore multiple
instances of WC_Cart_Fees, if 1 cart is emptied and
woocommerce_cart_emptied is triggered, all instances of WC_Cart_Fees
will trigger remove_all_fees, removing all the fees from all the carts.
2017-12-08 21:15:08 +10:00
Boro Sitnikovski d0f9aaa99a Merge branch 'master' into tweak/decouple-cart-template-methods 2017-12-07 20:16:08 +01:00
Boro Sitnikovski 588c5f3779 Change method name 2017-12-07 15:53:16 +01:00
Boro Sitnikovski 145d47c580 Decouple cart templating methods from WC_Cart class 2017-12-05 13:00:21 +01:00
Mike Jolley 17095a4011 Totals should be set to store DP setting. 2017-12-04 20:38:14 +00:00
JeroenSormani b96fea3e47 Add quantity arg to woocommerce_add_cart_item_data filter 2017-11-21 16:01:23 +01:00
Mike Jolley 8b02185596
Merge pull request #17817 from JeroenSormani/exclude-virtual-from-shipping-tax
Exclude virtual tax classes from calcluation for shipping taxes
2017-11-21 13:21:13 +00:00
JeroenSormani 14e5bcd51d Exclude virtual tax classes from calcluation for shipping taxes 2017-11-20 20:14:23 +01:00
Mike Jolley 78466a6665
Merge pull request #17599 from JPry/allow_clone_cart
Allow for cloning the WC_Cart object
2017-11-10 12:02:59 +00:00
Claudio Sanches 9979e4b3e5
Merge pull request #17589 from woocommerce/fix/17585
get_total_ex_tax should exclude fee taxes
2017-11-08 19:05:23 -02:00
Jeremy Pry 0e43551535 Move inline comment into the docblock 2017-11-08 10:18:08 -05:00
Jeremy Pry cf5bd606c6 Rename register_hooks() to init() 2017-11-08 10:17:52 -05:00
Mike Jolley 827d133cb2 Improve tests 2017-11-08 13:54:33 +00:00
claudiulodro 0e983c4fe9 Allow removing coupons even if coupons disabled 2017-11-07 10:33:11 -08:00
Mike Jolley c6c6a1e4b3 Grab all taxes individually 2017-11-06 16:34:45 +00:00
Mike Jolley 1b49e9a568 get_total_ex_tax should exclude fee taxes
Closes #17585
2017-11-06 16:18:21 +00:00
Jeremy Pry 9eee3805c0 Allow for cloning the cart object
This handles creating new instances of the `$session` and `$fees_api` properties.
2017-11-03 15:50:43 -04:00
Jeremy Pry 0cca83ff83 Add separate methods to register hooks
This facilitates cloning the cart without registering additonal hooks unnecessarily.
2017-11-03 15:49:45 -04:00
Dan Wyman 4c16aeac6d Coupon user limit check fix
Fixes a where clause problem. Fixes #17235 .
2017-10-16 18:40:46 +01:00
Mike Jolley 803b31a18c Switched to property_exists and moved deprecation notice to avoid errors and setting fees unnecessarily. 2017-10-13 13:46:49 +01:00
Boro Sitnikovski b11ed6e3db Fix direct access to props on checkout 2017-09-27 16:25:45 +02:00
Brent Shepherd 89e932c338 Fix shipping tax when calling calculate_shipping()
The $shipping_taxes is a multidimensional array so array_sum() does not
correctly sum the values. The $merged_taxes is a single level array with
all other taxes set, so array_sum() can be safely used on it.
2017-09-21 16:48:32 -07:00
Claudiu Lodromanean e713b5beb3 Merge pull request #16869 from woocommerce/fix/16861
Fix legacy access to array props (fees, taxes, coupon totals + taxes)
2017-09-21 09:47:29 -07:00
Brent Shepherd 470c5f7a1d Use __FUNCTION__ for filter hook name
To avoid including the WC_Cart class name and a double colon.

Example hook from WC_Cart::get_total():
 * Before this PR: woocommerce_cart_WC_Cart::get_total
 * After this PR: woocommerce_cart_get_total
2017-09-20 14:45:37 -07:00
Mike Jolley eb79566985 Fix legacy access to array props (fees, taxes, coupon totals + taxes)
Closes #16861
2017-09-20 15:39:05 +01:00
Gabor Javorszky d3ade84852 Add cart object to filters with quantity updates
No issue.

Other filters (remove cart item, restore cart item) have the cart object passed as well. These ones should be too.
2017-09-05 16:40:44 +01:00
claudiulodro 734ed70462 Fall back to defaults if not set in cart 2017-08-28 14:12:35 -07:00
Mike Jolley 22813663d7 Merge pull request #16569 from woocommerce/update/fees-api-class
WC_Cart_fees and negative fee calculations
2017-08-23 10:59:19 +01:00
Mike Jolley 00cb48a5fe Pass through to order 2017-08-22 16:20:23 +01:00
Mike Jolley 57865204aa Cart fees class and legacy 2017-08-22 15:17:58 +01:00
Umangvaghela 5794a9cb34 Update condition 2017-08-22 15:23:34 +05:30
Mike Jolley 3d002f842f Fix get totals method 2017-08-18 17:18:41 +01:00
Mike Jolley 4567169aa9 Fix remove from cart 2017-08-18 16:37:24 +01:00
Mike Jolley 1c8ad67a9e Fix tests and tax merges 2017-08-18 15:05:01 +01:00
Mike Jolley 302512e51f Combine taxes correctly 2017-08-18 13:48:53 +01:00
Mike Jolley a2858245fe Remove call - it's hooked 2017-08-18 12:52:29 +01:00
Mike Jolley d2e3839d99 Use getters and setters in cart class 2017-08-18 12:51:45 +01:00
Mike Jolley a190dc79c3 Legacy getters/setters 2017-08-18 12:24:17 +01:00
Mike Jolley b9fea8419b getters and setters for totals 2017-08-18 12:05:18 +01:00
Mike Jolley 0c751087f9 Cast to arrays 2017-08-18 11:44:07 +01:00
Mike Jolley aefb9c4705 Moved magic method to legacy 2017-08-18 11:37:22 +01:00
Mike Jolley c0368362ce First pass 2017-08-18 11:29:26 +01:00
Mike Jolley c74835ec31 Use WP_User_Query 2017-08-14 12:51:04 +01:00
Mike Jolley 40757ddf86 Search given email against all user fields for matches. 2017-08-14 12:28:19 +01:00
Mike Jolley e9c3ebebdc Merge branch 'master' into feature/discounts-class
# Conflicts:
#	includes/abstracts/abstract-wc-data.php
#	woocommerce.php
2017-08-08 15:49:59 +01:00
Mike Jolley 6dc67ee133 phpcs 2017-08-08 10:51:35 +01:00
Mike Jolley 6af275da6e Only return tax classes if product is taxable.
Fixes #16241
2017-08-03 08:44:02 +02:00
claudiulodro 43cbcd04ef Remove extra calcs and populate item totals 2017-07-31 11:48:34 -07:00
Claudiu Lodromanean 95ffa441e0 Merge pull request #16290 from woocommerce/feature/15500-1
Soft deprecated WC_Cart->coupon_applied_count
2017-07-31 09:16:33 -07:00
Claudio Sanches 77855f9d07 Soft deprecated WC_Cart->coupon_applied_count 2017-07-28 18:12:56 -03:00
Claudio Sanches b8305f150e Use WC_Cart_Totals to calculate totals 2017-07-28 17:41:46 -03:00
Mike Jolley 51fbb1aec3 set_items_from_cart 2017-07-28 13:02:39 +01:00
Mike Jolley 4c4f26ff41 Changes to allow shipping to be calculated from totals class
Moved some items from
https://github.com/woocommerce/woocommerce/pull/11889/files to support
this.
2017-07-25 15:11:32 +01:00
Mike Jolley d24faebea8 Split fixed cart from other discounts in class. 2017-07-18 20:42:47 +01:00
Jaydeep Rami 3522857d23 Fix typo in WooCommerce plugin (#16135)
* Fixed typo

* Fixed more typo

* Fixed more typo

* Fix tyop

* Fix more typo

* Fix more typo

* Fix typo

* Fix typo

* Fix typo

* Fix typo datatime object

* Fix short name of compat

* Fix typo: update short name

* Fix typo "deactive" to "deactivate" and short BW - Compat

* Fix typo "Backwards compat"

* Fix typo 'parameters'

* Fix more typo 'pararmeters'

* Fix typo 'compund'

* FIx typo order

* Fix typo

* Fix typo 'incorrecly'

* Fix typo 'genarate'

* Fix typo 'reletive'

* Fix typo 'Handly'

* Fix typo 'rotatated'

* Fix typo

* Fix typo 'additonal'

* Fix typos
2017-07-17 11:10:52 +01:00
Caleb Burks 03d71cd8ee Add filter for cart cross-sells 2017-07-11 13:33:51 -05:00
Caleb Burks 5af560e32a Add `cart_subtotal` to the shipping package 2017-07-04 03:05:39 -05:00
Mike Jolley 748c39d966 Add note about #15904 2017-07-03 10:26:26 +01:00
claudiulodro 4e7d3333cf Use type check in coupon constructor 2017-06-27 13:53:56 -07:00
Mike Jolley 66c7c20844 Should work in reverse 2017-06-14 12:57:26 +01:00
Mike Jolley 985f7e043f Update totals if local pickup is selected 2017-06-14 12:46:59 +01:00
Mike Jolley 6eacecfeb6 Append blog ID on persistent cart user meta 2017-06-08 13:47:23 +01:00
Beka Rice 494fa0974c Filter quantity being added to the cart 2017-06-02 00:07:06 -04:00
Rasmus Bengtsson 185934fad9 Fix phpdoc to include params and correct types 2017-05-15 13:50:52 +02:00
Mike Jolley 0d89250b3f Merge pull request #14748 from woocommerce/fix/stock-in-cart-notice
Correct the stock display notice when a variable product manages stock for it's children
2017-04-27 17:38:59 +01:00
Mike Jolley aacb01d1e7 Merge branch 'pr/13503'
# Conflicts:
#	assets/css/twenty-seventeen.css
#	assets/css/woocommerce-layout.css
#	assets/css/woocommerce-layout.scss
#	assets/css/woocommerce.css
2017-04-27 12:46:05 +01:00
Mike Jolley 60a5ecf775 Merge pull request #13761 from franticpsyx/sold-individually-found-in-cart
[3.1] Add woocommerce_add_to_cart_sold_individually_found_in_cart hook
2017-04-27 11:32:33 +01:00
Mike Jolley dac36505c2 Correct the stock display notice when a variable product manages stock for it's children 2017-04-27 11:03:56 +01:00
Mike Jolley f9dd3310b2 Unfiltered context rather than true 2017-04-13 12:38:54 +01:00
Claudiu Lodromanean 715656921d wc_is_attribute_in_product_name 2017-04-10 14:35:16 -07:00
Mike Jolley 95397188d5 Make get_cross_sells unique.
Fixes #14158
2017-04-10 15:20:41 +01:00
Manos Psychogyiopoulos 24a2ff1960 Add woocommerce_add_to_cart_sold_individually_found_in_cart hook
Makes it easy for 3p code to change the condition that identifies whether a "sold individually" product is in the cart. For example, 3p code may use this hook to identify whether a product with the same ID already exists in the cart (instead of relying on finding the same hash/key).
2017-03-24 10:41:27 +02:00
Claudio Sanches 59c2849736 Changed version 2.7 to 3.0 2017-03-15 13:36:53 -03:00
JeroenSormani 91ce342e7c Type cast ->get_weight() on WC_Cart::get_cart_contents_weight calculation 2017-03-11 19:01:58 +01:00
Claudiu Lodromanean 28f8380ab6 Sprinkle some periods 2017-03-07 15:00:14 -08:00
Claudiu Lodromanean d0f47a7980 Revert to original behavior 2017-03-07 13:17:36 -08:00
Aristeides Stathopoulos 10ffc92a73 Inline control structures are not allowed 2017-03-07 22:24:24 +02:00
Claudiu Lodromanean 955a75bf30 Fix changes and more tests 2017-03-07 11:58:02 -08:00
Claudiu Lodromanean 2436541fff Fix individual use coupon handling 2017-03-07 11:31:20 -08:00
Mike Jolley 790dd57933 Apologise -> american english
Closes #13370
2017-02-27 17:39:08 +00:00
Claudio Sanches 2dc3033c1e Better fees description 2017-02-24 15:38:14 -03:00
Claudio Sanches 1fdcacc565 Stop remove negative fees 2017-02-24 15:31:51 -03:00
Claudio Sanches e42e2a3335 Replace woocommerce_coupon_code filter by wc_format_coupon_code() 2017-02-22 14:40:24 -03:00
Mike Jolley 1098d49526 Check if product is taxable. 2017-02-22 10:41:39 +00:00
Mike Jolley 73c651f4d0 Check the nicename, not the sanitized name 2017-02-20 18:04:45 +00:00
Mike Jolley 3a6b4ffb38 Doing it wrong notice when setting a negative fee in cart.
#13224
2017-02-17 12:28:18 +00:00
Jez McKean b65e41206f needs_shipping(): minor efficiency improvement
No need to check other products for whether they need shipping if we've already found one.
2017-02-13 12:28:50 +00:00
Mike Jolley 11015c4b06 Pass products around and change how wc_format_stock_for_display gets called so $product is available. 2017-01-11 12:17:18 +00:00
Kathy Darling 8d4844a31c space after parens 2017-01-06 14:39:02 -05:00
Kathy Darling ff0926aa2d use wc_format_stock_quantity_for_display() to wrap stock quantity numbers for front end display. closes #12753. 2017-01-04 12:25:28 -05:00
Mike Jolley 1795a0f9c3 Remove virtual products from shipping packages
Closes #12628
2016-12-19 16:17:50 +00:00
Mike Jolley 861f9e7a20 update_object_term_cache for cart items 2016-12-09 13:16:15 +00:00
Matty ff1442e9aa Allow cross sells to be sold as variations 2016-11-25 13:17:09 +00:00
Mike Jolley 9087a45f29 Remove attribute_ prefix rather than add so that get_attributes has better return values, and don't show duplicate data in cart. 2016-11-24 14:20:48 +00:00
Mike Jolley d7dfdd3d10 Wrap all deprecation calls. 2016-11-23 16:15:00 +00:00
Claudio Sanches 8d19832937 Fixed coding standards 2016-11-22 23:47:13 -02:00
Mike Jolley 32de28355a Merge branch 'master' into order-data-store
# Conflicts:
#	includes/admin/meta-boxes/class-wc-meta-box-order-data.php
2016-11-21 14:45:46 +00:00
Mike Jolley b929916190 get_cart_total comment 2016-11-18 21:19:52 +00:00
Mike Jolley b1565cf0d6 Download update routine and interface 2016-11-18 19:29:37 +00:00
Mike Jolley 76b32c9aa5 WIP - Product CRUD (#12065)
* Created function to get the catalog visibility options

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* Hardcode the get_type per product class

* Initial look through getters and setters and abstract data

* Missing var

* Add related product functions and deprecate those in class.

* No need to exclude ID

* Fixed coding standards and improved the docblocks

* Get cached terms from wc_get_related_terms()

* Fixed wrong variable in wc_get_related_terms

* Use count() instead of sizeof()

* Sanitize ids later

* Remove unneeded comments

* wc_get_product_term_ids instead of related wording and use in other places.

get_the_terms is used here and also handles caching, something
wp_get_post_terms does not.

* Clean up the abstract product class a bit, deprecate two functions we have renamed, make update & create work properly, and add some tests for it.

* Bump template version

* Handle PR feedback: Remove duplicate regular_price update, allow changing of post status for products, remove deprecation for get_title since we might still offer it as a function

* Made abstract function useful

* External Product CRUD

* _virtual meta should be 'no', not taxable, in product unit test helper

* Grouped product class

* Tests

* Move children to meta and update test

* Use get_upsell_ids

* Spacing in query

* Moving and refactoring methods

* Availability html

* Tidy/add todos

* Rename method

* Put back review functions (still todo)

* missing $this

* get_price_including_tax/excluding_tax functions

* wc_get_price_to_display

* Price handling

* [Product CRUD] Variable (#12146)

* [Product CRUD] Variable Products

* Handle PR feedback.

* [Product CRUD] Grouped Handling (#12151)

* Handle grouped product saving

* Update routine

* [Product CRUD] Product crud terms (#12149)

* Category and tag id handling

* Replace template functions

* Remove todo

* Handle default name in save function

* Product crud admin save routine (#12174)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Spacing

* Fix comment

* wc_implode_text_attributes helper function

* [Product CRUD] Product crud admin use getters (#12196)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Move settings into new files

* Refactor panels and use getters

* Use getters for variation panel

* Revert save variation changes for now

* Add todos

* Fix downloads

* REST API CRUD Updates

* Additional API updates/fixes. Added some todos

* Fix final failing tests and implementing setters/getters and attributes functionality.

* Fix comparison for is_on_sale and remove download_type from WC_Product.

* Add a wc_get_products wrapper.

* Remove the download type input from the product data metabox for downloadable products. (#12221)

* [Product CRUD] Variations - setters, getters and admin. (#12228)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* Feedback fixes

* Implement CRUD in the legacy REST API

* Handle PR feedback

* [Product CRUD] Getter setter proxy methods (#12236)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* get_prop implementation in abstract and data classes

* Implement set_prop

* Change handling

* Array key exists

* set_object_read

* Use get_the_terms() instead of wp_get_post_terms()

wp_get_post_terms() is a wrapper around wp_get_object_terms() which does not
use the object cache, and generates a database query every time it is used.

get_the_terms() however can use data from the object cache if present.

* Allow WP_Query to preload post data, and meta in wc_get_products()

Allow WP_Query to bulk query for post data and meta if more than
just IDs are requested from wc_get_products(). Reduces query count
significantly.

* [Product CRUD] Variable, variation, notices, and stock handling (#12277)

* No longer needed

* Remove old todos

* Use getters in admin list

* Related and upsells update for CRUD

* Fix notice in gallery

* Variable fixes and todos

* Context

* Price sync

* Revert variation attributes change

* Return parent data in view context

* Defer term counting

* wc_find_matching_product_variation

* Stock manage tweaks

* Stock fixes

* Correct id

* correct id

* Better sync

* Data logic setter fix

* feedback

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* Hardcode the get_type per product class

* Initial look through getters and setters and abstract data

* Missing var

* Fixed coding standards and improved the docblocks

* Get cached terms from wc_get_related_terms()

* Fixed wrong variable in wc_get_related_terms

* Use count() instead of sizeof()

* Add related product functions and deprecate those in class.

* No need to exclude ID

* Sanitize ids later

* Clean up the abstract product class a bit, deprecate two functions we have renamed, make update & create work properly, and add some tests for it.

* Remove unneeded comments

* wc_get_product_term_ids instead of related wording and use in other places.

get_the_terms is used here and also handles caching, something
wp_get_post_terms does not.

* Handle PR feedback: Remove duplicate regular_price update, allow changing of post status for products, remove deprecation for get_title since we might still offer it as a function

* External Product CRUD

* _virtual meta should be 'no', not taxable, in product unit test helper

* Bump template version

* Made abstract function useful

* Grouped product class

* Tests

* Move children to meta and update test

* Use get_upsell_ids

* Spacing in query

* Moving and refactoring methods

* Availability html

* Tidy/add todos

* Rename method

* Put back review functions (still todo)

* missing $this

* get_price_including_tax/excluding_tax functions

* wc_get_price_to_display

* Price handling

* [Product CRUD] Variable (#12146)

* [Product CRUD] Variable Products

* Handle PR feedback.

* [Product CRUD] Grouped Handling (#12151)

* Handle grouped product saving

* Update routine

* [Product CRUD] Product crud terms (#12149)

* Category and tag id handling

* Replace template functions

* Remove todo

* Handle default name in save function

* Product crud admin save routine (#12174)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Spacing

* Fix comment

* wc_implode_text_attributes helper function

* [Product CRUD] Product crud admin use getters (#12196)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Move settings into new files

* Refactor panels and use getters

* Use getters for variation panel

* Revert save variation changes for now

* Add todos

* Fix downloads

* REST API CRUD Updates

* Additional API updates/fixes. Added some todos

* Fix final failing tests and implementing setters/getters and attributes functionality.

* Fix comparison for is_on_sale and remove download_type from WC_Product.

* Add a wc_get_products wrapper.

* Remove the download type input from the product data metabox for downloadable products. (#12221)

* [Product CRUD] Variations - setters, getters and admin. (#12228)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* Feedback fixes

* Implement CRUD in the legacy REST API

* Handle PR feedback

* [Product CRUD] Getter setter proxy methods (#12236)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* get_prop implementation in abstract and data classes

* Implement set_prop

* Change handling

* Array key exists

* set_object_read

* Use get_the_terms() instead of wp_get_post_terms()

wp_get_post_terms() is a wrapper around wp_get_object_terms() which does not
use the object cache, and generates a database query every time it is used.

get_the_terms() however can use data from the object cache if present.

* [Product CRUD] Variable, variation, notices, and stock handling (#12277)

* No longer needed

* Remove old todos

* Use getters in admin list

* Related and upsells update for CRUD

* Fix notice in gallery

* Variable fixes and todos

* Context

* Price sync

* Revert variation attributes change

* Return parent data in view context

* Defer term counting

* wc_find_matching_product_variation

* Stock manage tweaks

* Stock fixes

* Correct id

* correct id

* Better sync

* Data logic setter fix

* feedback

* Prevent notices

* Handle image_id from parent

* Fix error

* Remove _wc_save_product_price

* Remove todo

* Fixed wrong variation URLs

* Fixed undefined $image_id in WC_Product_Variation::get_image_id()

* Allow wc_rest_prepare_date_response() handle timestamps

* Updated get methods on REST API for variations

* Use variations CRUD to save variations metadata

* [Product CRUD] Abstract todos (#12305)

* Get dimensions and weights, with soft deprecation

* Product attributes

* Ratings

* Fix read method

* Downloads

* Feedback

* Revert "[Product CRUD] Abstract todos (#12305)"

This reverts commit 9a6136fcf8.

* Remove deprecated get_variation_id()

* New default attributes method

* [Product CRUD] Product Datastore (#12317)

* Fix up tests in the product/* folder.

* Handle data store updates for grouped, variable, external, simple, and general data store updates for products.

* Variations & variable changes.

* Update -functions.php calls to use data store.

* Add an interface for the public product data store methods.

* Finished product factory tests

* Correctly delete in the api, fix up some comments, and implement an interface for the public variable methods.

* Fix up delete in all versions of the api

* Handle feedback

* Match protected decloration to parent

* Product crud abstract todos (#12316)

* Get dimensions and weights, with soft deprecation

* Product attributes

* Ratings

* Fix read method

* Downloads

* Feedback

* Fix up store

* Fixed method returning in write context

* Fix error in variation admin

* Check for parent value - fixes tax class

* Remove old/complete todos

* Allow set tax class as "parent"

* Removed duplicated sync

* Fixed wrong variation URLs

* Fixed undefined $image_id in WC_Product_Variation::get_image_id()

* Allow wc_rest_prepare_date_response() handle timestamps

* Updated get methods on REST API for variations

* Use variations CRUD to save variations metadata

* Remove deprecated get_variation_id()

* New default attributes method

* Fixed method returning in write context

* Allow set tax class as "parent"

* Removed duplicated sync

* Fixed coding standards

* TODO is not accurate.

* Should pass WC_Product instancies to WC_Comments methods (#12327)

* Use new method in abstract order class to prevent headers sent issue in tests

* Fixed variable description in REST API

* Updated how create initial product variation

* Fixed a few fatal errors and warnings in Products CRUD (#12329)

* Fixed a few fatal errors and warnings in Products CRUD

* Fixed sync functions

* Add variations CRUD to legacy API (#12331)

* Apply crud to variable products in legacy API v1

* New REST API do not need fallback for default attributes

* Apply variations CRUD to legacy API v2

* Legacy v2 - save default attributes

* Variations in legacy API v2 do not have descriptions

* Fixed legacy API v2 variations params

* Applied variations CRUD to legacy API v3

* Sync before save in legacy apis

* Punc

* Removed API todos

* Removed test

* Products endpoint tweaks (#12354)

* Var type already normalized on CRUD

* Let Product CRUD handle with validation, sanitization and conditional checks

* Set downloads using WC_Product_Download

* Stop try catch exceptions more than one time

* Handle WC_Data_Exception in legacy API

* Complete remove products when fails on creating

* On creating I mean!

* Already have a method to complete delete products

* Fixed standards using WP CodeSniffer

* get_the_terms() returns false when empty

* get_manage_stock returns boolean

@claudiosanches

* Merge conflict

* Variations API endpoint fixes

* Product CRUD improvements (#12359)

* args is not used any more - remove todo

* Added test for attributes

* wc_get_price_excluding_tax usage

* parent usage

* Fix rating counts

* Test fixes

* Cleanup after tests

* Make sure status transition code runs even during API calls, not just in admin.

* Default visibility

* Fix attribute setting in API

* Use get name instead of get title

* variation id usage

* Improved cross sell templates

* variation_data

* Grouped product sync

* Notices

* Sync is not needed in API

* Delete

* Rename interfaces

* Update counts in data store
2016-11-16 12:38:24 +00:00
Mike Jolley 599a2ad296 Product CRUD improvements (#12359)
* args is not used any more - remove todo

* Added test for attributes

* wc_get_price_excluding_tax usage

* parent usage

* Fix rating counts

* Test fixes

* Cleanup after tests

* Make sure status transition code runs even during API calls, not just in admin.

* Default visibility

* Fix attribute setting in API

* Use get name instead of get title

* variation id usage

* Improved cross sell templates

* variation_data

* Grouped product sync

* Notices

* Sync is not needed in API

* Delete

* Rename interfaces

* Update counts in data store
2016-11-16 12:17:00 +00:00
Mike Jolley 09ea4ba91f [Product CRUD] Variable, variation, notices, and stock handling (#12277)
* No longer needed

* Remove old todos

* Use getters in admin list

* Related and upsells update for CRUD

* Fix notice in gallery

* Variable fixes and todos

* Context

* Price sync

* Revert variation attributes change

* Return parent data in view context

* Defer term counting

* wc_find_matching_product_variation

* Stock manage tweaks

* Stock fixes

* Correct id

* correct id

* Better sync

* Data logic setter fix

* feedback
2016-11-09 16:10:37 +00:00
Mike Jolley 5f4dbdb733 [Product CRUD] Variations - setters, getters and admin. (#12228)
* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* Feedback fixes
2016-11-09 16:05:49 +00:00
Rami Yushuvaev 93d55dade9 add translators comments 2016-10-29 20:32:38 +03:00
Claudio Sanches 657c312cae Fix strings case (#12069)
* Fixed case for all _e, esc_attr_e and esc_html_e strings

* Fixed case for all _n_noop strings

* Fixed case for all _x strings

* Fixed case for all __, esc_html__ and esc_attr__ strings

* Fixed a few more strings

* Fixed strings in unit tests

* Fix PayPal Standard case.

* Save Order text
2016-10-12 11:16:30 +01:00
Mike Jolley 96f05bb49a Add woocommerce_sort_by_subtotal_callback filter
Closes #11973
2016-10-08 13:22:52 +01:00
Aristeides Stathopoulos 734f284fa4 WordPress.PHP.YodaConditions.NotYoda 2016-09-08 01:32:24 +03:00
Aristeides Stathopoulos 39d4d4bd69 Squiz.Commenting.DocCommentAlignment.SpaceBeforeStar 2016-09-02 05:40:36 +03:00
Aristeides Stathopoulos d4e3faf014 PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket 2016-09-02 04:51:31 +03:00
Aristeides Stathopoulos 0516e96843 PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket 2016-09-02 04:33:57 +03:00
Aristeides Stathopoulos d922d045a7 Squiz.Commenting.BlockComment.NoNewLine + indentation on class-wc-cart 2016-09-02 04:03:52 +03:00
Aristeides Stathopoulos fde1037757 fix failing tests. 2016-09-01 23:50:14 +03:00
Mike Jolley 1b2df3dd3b Merge branch 'pr/11797'
# Conflicts:
#	includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php
#	includes/api/class-wc-rest-coupons-controller.php
#	includes/class-wc-coupon.php
#	tests/unit-tests/api/coupons.php
#	tests/unit-tests/coupon/crud.php
2016-09-01 11:46:05 +01:00
Mike Jolley 047242515d Make API and CRUD use consistent keys and make use of data 2016-08-30 17:50:35 +01:00
Aristeides Stathopoulos e69fafbda7 WordPress.WhiteSpace.OperatorSpacing.NoSpaceAfter 2016-08-27 09:06:22 +03:00
Aristeides Stathopoulos f2730eea02 WordPress.WhiteSpace.ControlStructureSpacing.BlankLineAfterEnd 2016-08-27 08:57:05 +03:00
Aristeides Stathopoulos b063bcfe4c last item in a multiline-array should end in a comma 2016-08-27 04:46:45 +03:00
Mike Jolley 461ec4da16 Return false instead of throwing exception 2016-08-25 17:48:36 +01:00
Mike Jolley 3c13ce6fcd [2.6] Handle object when generate_cart_id is used.
Closes #11767
2016-08-25 10:58:11 +01:00
Mike Jolley 4ac4bcaa08 Merge branch 'master' into WC-CRUD
# Conflicts:
#	tests/unit-tests/cart/cart.php
2016-08-09 11:08:21 +01:00
Mike Jolley 54256c4123 Round prices being saved to DB 2016-08-05 14:06:51 +01:00
Mike Jolley 1bc9da3e91 Merge branch 'master' into WC-CRUD
# Conflicts:
#	includes/class-wc-coupon.php
2016-08-04 12:10:04 +01:00
Krzysztof Grabania 0276a3574b Removed unnecesary foreach loop 2016-07-22 14:55:51 +02:00
Kathy Darling cfafff192d add woocommerce_cart_id filter 2016-07-19 10:20:08 -05:00
Claudio Sanches 7778583340 Fixed wrong number of decimal precision, closes #11368 2016-07-11 17:26:54 +02:00
Mike Jolley 78142a8ebb Merge branch 'master' into WC-CRUD
# Conflicts:
#	includes/class-wc-checkout.php
#	includes/class-wc-coupon.php
#	includes/class-wc-customer.php
#	tests/unit-tests/cart/cart.php
#	tests/unit-tests/cart/functions.php
#	tests/unit-tests/coupon/coupon.php
#	woocommerce.php
2016-06-13 15:01:58 +01:00
Mike Jolley 730019ef18 scrutinizer best practice 2016-06-06 19:39:23 +01:00
Mike Jolley 3fd15ad50f Unused vars and code docs 2016-06-06 18:57:24 +01:00
Mike Jolley 2d2a5eb816 Hide empty taxes by default.
Closes #11050 @claudiosmweb
2016-06-06 13:50:21 +01:00
Mike Jolley c14993b90e No shipping methods = no shipping at checkout
#10987
2016-05-25 12:05:33 +01:00
Mike Jolley e00c3450c5 Discount rounding logic improvements
Instead of rounding the single item discount amount, this rounds the
line to the store DP setting before running tax logic.

Fixes #10963
Also works with #10573

Includes unit tests
2016-05-23 16:56:31 +01:00
James Golovich 96583d99c0 Pass $cart_item_key to 'woocommerce_get_undo_url' filter
I don't want users to automatically get an item re-added to their cart, I want to change the URL to send them back to the product page so they can re-add the item (if it is still available)
2016-05-19 13:46:22 -07:00
Ryder Ross 9a9dd7faf4 Fixing typo in comment 2016-05-10 09:17:28 -07:00
Fredrik Forsmo 4e19676acf Add `public` to `needs_shipping_address` method 2016-04-20 21:05:23 +02:00
Mike Jolley 6ae2fea045 Allow default address to be empty.
Fixes #10664
2016-04-18 14:51:39 +01:00
Mike Jolley a77735432b Use get_displayed_subtotal() to determine if conditions for coupons and free shipping is met.
@claudiosmweb

Closes #10711
2016-04-18 11:39:00 +01:00
JeroenSormani b77445787e Fix few typos and small docblock changes 2016-03-30 18:23:44 +02:00
Mike Jolley 1238a37124 Merge pull request #10576 from justinshreve/coupon-crud
Coupon CRUD
2016-03-18 11:12:32 +00:00
Justin Shreve ffc80ccd15 Start updating some usage, and start implementing the actual CRUD functions, and some new get/setters for username, email, etc. 2016-03-17 09:41:12 -07:00
Justin Shreve 3eacb992bc Address issues from Mike's Feedback:
* Rename individual use, free shipping, and exclude sale items to match their meta names closer.
* Sanitize emails when using set_email_restrictions
* Remove some unnecessary explict true checks
* Move ID into _data with the rest of the fields
* Fixed some spacing issues
2016-03-17 09:19:27 -07:00
Justin Shreve d738dec05d Coupon CRUD (WIP). 2016-03-17 09:19:27 -07:00