Commit Graph

1563 Commits

Author SHA1 Message Date
Mike Jolley 3e7968d37b Merge branch 'master' into pr/16418 2017-11-13 14:37:18 +00:00
Claudio Sanches b04c7bd71e
Merge pull request #17628 from woocommerce/fix/17624
Change how line items are saved in API
2017-11-09 17:36:39 -02:00
Mike Jolley 2a3ace9853 Merge branch 'master' into feature/17550-archives-template-support 2017-11-09 17:34:57 +00:00
Mike Jolley 1a7d7dd127 Widget base url 2017-11-09 11:24:29 +00:00
Mike Jolley 1b22d97be2 Combined get_page_base_url 2017-11-09 11:16:47 +00:00
Mike Jolley 93da46e66e phpcs 2017-11-08 12:20:49 +00:00
Mike Jolley db4e630600 Replace thumbnail names 2017-11-07 18:48:51 +00:00
Mike Jolley 1f7ecd9fb9 Merge branch 'master' into tweak/order-screens
# Conflicts:
#	assets/js/frontend/checkout.min.js
2017-11-01 16:52:21 +00:00
Tim Howe abea378245 Variation Displayed in Cross-Sell and Upsells with Parent's Post Status set to 'draft' and 'pending review' (#17423)
* Fix - #17413
Update the `json_search_products` function to use the
`wc_products_array_filter_visible` filter rather then the
`wc_products_array_filter_editable` filter

Added an additional if condition to the `is_visible` function to check
if the product had a parent and it's post status

* remove additional comment from code to keep it clean

* Reverted filter

* Updated the is_visable to check parent product post status using WooCommerce class methods

* Updated the `if empty` check to make it is compatible with older versions of php

* Removed the empty check infavor of just testing on the returned value
Updated the way we are retrieving the partent product object

* Moved the `$parent_product` variable assigment out of the if statement.
2017-11-01 12:52:58 +00:00
Mike Jolley 7c74e77849 handle tax removal in order class 2017-10-31 13:37:57 +00:00
Mike Jolley bc7484f473 Merge branch 'master' into pr/16959
# Conflicts:
#	includes/abstracts/abstract-wc-order.php
2017-10-31 13:33:09 +00:00
Mike Jolley 9521a0ba1f Improve tax class check and handle non-taxable items 2017-10-30 13:23:15 +00:00
Ewout Fernhout 029e93fd4f
Use item tax class rather than product tax class for getter
Fixes #17449
2017-10-30 11:04:56 +01:00
Mike Jolley e72a297842 Break up logic so is callable is only checked on internal meta keys 2017-10-27 16:23:05 +01:00
Cesar Rodas 32da25c4f1 Improved "is_internal_meta_key"
Improved is_internal_meta_key to check if the meta_key has a setter or a getter before returning TRUE and calling doing_it_wrong
2017-10-23 22:22:31 -03:00
Mike Jolley 39443d23e5 Fix meta data clone for products 2017-10-16 21:05:29 -07:00
Rodrigo Primo fa0e5569f8 Add 'parent' to the list of valid tax classes for product variations
Commit d9f9e74bd added a check to `WC_Product::set_tax_class()` to only accept valid tax classes, but this created a bug for product variations as this type of product has an extra tax class called 'parent'.

This commit fixes this problem by adding a new method to `WC_Product` that returns a list of valid tax classes. `WC_Product_Variation` then override this method, returning another list including the tax class 'parent'.

Fixes #17024
2017-10-09 16:20:03 -03:00
Rodrigo Primo d769ef24f2 Coding standards fixes 2017-10-09 16:19:24 -03:00
Claudio Sanches b25e08e1cc Merge pull request #17058 from woocommerce/fix/17047-alt
Fix meta data returns in API using JsonSerializable
2017-10-04 11:48:46 -03:00
Mike Jolley 240a321dd0 Revert get_meta_data changes and return array of WC_Meta_Data objects 2017-10-04 14:12:43 +01:00
victorfreitas 9dcfe4883a Fix error when invalid parent term 2017-10-03 17:59:58 -03:00
Mike Jolley 7460189752 Handle WC_Meta_Data in get_data() and API
Fixes #17003
2017-10-02 13:12:33 +01:00
Diego Zanella e93ad155df Added support for "is_vat_exempt" flag on orders
Added check for the presence of the "is_vat_exempt" meta against an order. When present, such information is used during tax calculation to remove the taxes applied to an order.
2017-09-27 18:56:11 +01:00
Mike Jolley 00b8e395f8 Unused variable 2017-09-27 17:12:50 +01:00
Diego Zanella 5e23770d74 Added actions before calculatins order totals and taxes 2017-09-27 16:07:02 +01:00
Mike Jolley 5dcde7b093 Use discounts class for validation logic 2017-09-27 12:54:04 +01:00
Mike Jolley 25337b21ce If sorting by date in the REST API, fallback to ID
Ref: #16911
2017-09-25 13:31:25 +01:00
Brent Shepherd 81b9160973 Add offending key to error message 2017-09-15 15:58:34 -07:00
Brent Shepherd f404affff4 Tweak internal meta notice
To remove ambiguity with accessing properties via $object->meta_key
syntax, which was deprecated with WC 3.0.
2017-09-15 15:48:53 -07:00
Mike Jolley d09d7d1358 wc_get_relative_url/wc_is_external_resource helpers 2017-09-08 12:20:03 +01:00
Mike Jolley ee3ea1b739 Only make http resources relative - https can be left alone.
Closes #16737
2017-09-07 16:55:29 +01:00
Mike Jolley d08bf4b489 Add option to disable validation when applying coupons
Closes #16720
2017-09-06 11:26:34 +01:00
Mike Jolley 2a71a66fc9 Order screen refinements and preview window 2017-09-04 17:42:31 +01:00
Mike Jolley fe847630b2 Tests when tax is not enabled 2017-08-29 12:38:35 +01:00
Mike Jolley 31a90bdd85 Handle prices including tax calcs 2017-08-25 18:21:27 +01:00
Mike Jolley 4ac1ed84cc Fallback no coupon data 2017-08-25 16:15:28 +01:00
Mike Jolley 2682d86660 Move comment 2017-08-25 16:09:56 +01:00
Boro Sitnikovski 3cd1bedade Set coupon virtual state on when initializing virtual coupons during recalculation 2017-08-25 17:07:07 +02:00
Mike Jolley 961c190985 Comments 2017-08-25 14:42:56 +01:00
Mike Jolley 1e65a918d5 Pull meta to apply coupons which do not exist 2017-08-24 17:08:45 +01:00
Josh Smith 49c7449e8b Merge remote-tracking branch 'upstream/master' 2017-08-23 22:41:04 +00:00
Claudiu Lodromanean 56e1207903 Merge pull request #16583 from woocommerce/update/apply-fees
Improved apply fees
2017-08-23 13:35:18 -07:00
Mike Jolley 2beddc59a7 docblocks 2017-08-23 14:38:00 +01:00
Mike Jolley e0de3643bc ID is unused 2017-08-23 14:28:25 +01:00
Mike Jolley 9483a7ec19 invalid return 2017-08-23 14:27:30 +01:00
Mike Jolley c60859bf3c types 2017-08-23 14:27:10 +01:00
Mike Jolley a7b697b679 type checks 2017-08-23 14:25:41 +01:00
Mike Jolley 714c4c672e unused prop 2017-08-23 14:21:42 +01:00
Mike Jolley be042ee8f3 Set to amount before calc 2017-08-23 12:24:33 +01:00
Mike Jolley 804feb9333 Store fee amount and prevent totals going negative 2017-08-23 12:15:06 +01:00
Josh Smith 148fa16055 [#12517] Removing unnecessary isset on check for download id in WC_Product 2017-08-23 02:27:42 +00:00
Josh Smith 413444c616 Merge remote-tracking branch 'upstream/master' 2017-08-20 04:09:17 +00:00
Mike Jolley d9f9e74bd9 Only set valid tax classes in product abstract 2017-08-18 17:06:22 +01:00
Mike Jolley e99471c0cd Removed manual discounts code 2017-08-18 10:36:10 +01:00
claudiulodro 9a47146716 Fix discounts rounding issues 2017-08-15 14:11:25 -07:00
claudiulodro ae80d12d80 Merge master 2017-08-14 11:12:09 -07:00
Mike Jolley be11c1089f Fix tests 2017-08-14 16:03:50 +01:00
Mike Jolley 7ddfe0703b Store coupon item taxes 2017-08-14 15:57:51 +01:00
Beka Rice c54b0ecd9d Pass WC_Shipping_Method instance to availability filters 2017-08-11 16:36:18 -04:00
Mike Jolley b826d02f9b Split tax across items for discounts 2017-08-11 17:53:49 +01:00
Josh Smith fe01910b8b Fixing spacing on WC_Product and WC_Install 2017-08-11 16:49:49 +00:00
Mike Jolley 3496e8dca4 Match order of cart discount 2017-08-11 16:16:09 +01:00
Mike Jolley 56726deb5a Fix recalculate_coupons 2017-08-11 13:52:40 +01:00
claudiulodro 28f0431c56 Coupon usage counts 2017-08-10 11:27:13 -07:00
claudiulodro f1e6fd53bd Prevent double coupons 2017-08-10 11:14:01 -07:00
Mike Jolley db87fc68b9 Fix refs 2017-08-10 16:33:21 +01:00
Mike Jolley 30c80c6ad5 Fix tax recalc 2017-08-10 16:22:17 +01:00
Mike Jolley 22d6c789ab herpa derpa 2017-08-10 15:57:34 +01:00
Mike Jolley e90fb6d54f fix discount apply and save 2017-08-10 15:33:01 +01:00
Mike Jolley cd8fb23884 Add ability to get local item rather than from DB 2017-08-10 14:38:02 +01:00
Mike Jolley e2599d83c8 Apply methods 2017-08-10 14:22:27 +01:00
Mike Jolley 3dc9f06f6a Remove fixed discounts correctly 2017-08-10 12:06:03 +01:00
Mike Jolley 06381f28bd Edit items rather than recreate 2017-08-10 11:38:09 +01:00
claudiulodro a416ebe09b It kind-of works. 2017-08-09 14:55:35 -07:00
Mike Jolley 5874fb8715 Type and sum fix 2017-08-09 19:11:02 +01:00
Mike Jolley c556facd41 Fix percent coupon and display 2017-08-09 19:02:10 +01:00
Mike Jolley f71dc64d35 Manual discounts and negative taxes 2017-08-09 18:53:10 +01:00
Mike Jolley 2def474421 Order calc 2017-08-09 16:19:10 +01:00
Josh Smith d8b6b2042a Merge remote-tracking branch 'upstream/master' 2017-08-08 21:20:35 +00: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 3778918a0a Merge branch 'master' into pr/14751
# Conflicts:
#	includes/class-wc-structured-data.php
2017-08-08 15:28:31 +01:00
Claudio Sanches 53ea3c8b96 Merge branch 'master' into fix/16347 2017-08-07 16:36:36 -03:00
Mike Jolley 847e4859f8 Include add_payment_method in gateway abstract 2017-08-07 12:38:50 +01:00
Josh Smith 644ac674d7 [#12517] Replace download_id on customer download and product download with static UUID instead of filename based hash, to preserve download links, logs, and permissions across filename changes 2017-08-05 04:42:31 +00:00
Mike Jolley 6af275da6e Only return tax classes if product is taxable.
Fixes #16241
2017-08-03 08:44:02 +02:00
Mike Jolley f47bb39a06 Merge pull request #15479 from woocommerce/add/poc-no-managing-meta-directly
Proof of concept to error when internal meta props are accessed directly
2017-07-27 15:54:24 +01:00
Mike Jolley 306db69eaf Remove order subclass 2017-07-27 10:49:47 +01:00
claudiulodro cfb04f0ead Boolval wasnt added til php 5.5 2017-07-26 13:48:36 -07:00
claudiulodro d15a2f5f6a Make tax calculation optional 2017-07-26 13:46:50 -07:00
claudiulodro 77838d05bb Fix unknown item variable 2017-07-26 10:25:08 -07:00
Mike Jolley b9b4336c1b Removed some duplicate keys 2017-07-26 16:50:34 +01:00
Mike Jolley abdb325d83 Order items 2017-07-26 15:47:30 +01:00
Mike Jolley 1faae6a7aa Order subclass 2017-07-26 14:32:43 +01:00
Mike Jolley 250dabaf41 WC_Cart_Totals subclass 2017-07-26 12:44:06 +01:00
Jaydeep Rami 46d3638089 Fix missing return statement (#16148)
* Fix missing return statement

* Fix missing return statement

* Fix missing return statement

* Fix missing return statement

* Fix missing return statement

* Fix missing return statement
2017-07-20 18:01:14 +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
Akeda Bagus 53807185a8
Fixed typos.
These typos are catched by `misspell` program.

```
find . -type f | grep -v assets | grep -v dummy-data | grep -v i18n | grep -v node_modules | grep -v .git | grep -v apigen |  xargs misspell -w
```

Some results were excluded because of 3rd party ownership and non-english
sentences.
2017-07-10 12:56:28 +07:00
Mike Jolley e539d3125a Refactor shipping rate to include instance IDs 2017-07-07 14:14:29 +01:00
Brent Shepherd 1992d90d37 Revert "Merge pull request #14706 from crodas/make_get_item_consistent"
This reverts commit 56ffa3d2aa, reversing
changes made to 64a60de24f.
2017-06-27 22:28:23 -07:00
claudiulodro 4515e5fca9 Fix undefined/incorrectly used variables 2017-06-09 14:10:55 -07:00
Boro Sitnikovski 68d512ae01 Address PR comments 2017-06-08 13:00:28 +02:00
Boro Sitnikovski 0271a9e2fe Update version 2017-06-07 16:20:09 +02:00
Boro Sitnikovski 00847da730 Fix 2017-06-07 12:33:05 +02:00
Boro Sitnikovski 1584836fa9 Code style fixes 2017-06-07 12:31:42 +02:00
Boro Sitnikovski b5fd62274f Map the correct function and use notice instead of exception 2017-06-07 12:30:03 +02:00
jgacuca567 4a9950b4c5 Changed their to there 2017-06-06 17:30:20 -04:00
Boro Sitnikovski efd42e6bc4 Proof of concept to error when internal meta props are accessed directly 2017-06-06 19:13:53 +02:00
Claudio Sanches 46846ed4e0 Merge pull request #15416 from woocommerce/fix/15407
Correctly append cache
2017-06-02 12:18:55 -03:00
Mike Jolley da91857a84 Correctly append cache
Fixes #15407
2017-06-02 13:34:09 +01:00
Cesar Rodas c96c62f380 Improved how taxes are applied
If by default the taxes are based on the shipping address and the current order doesn't have any, it would use the billing address rather than using the Shopping base location.

It's basically what WooCommerce is [doing already in Javascript](https://github.com/woocommerce/woocommerce/blob/master/assets/js/admin/meta-boxes-order.js#L526-L575). This kind of checks should be done in the backend, never in the client side.
2017-06-01 15:51:55 -04:00
Cesar Rodas 5997ffd4b1 Fixed coding styles issues 2017-06-01 11:46:05 -04:00
David de Boer d788b15073 Set delete_meta_data @param to accept a string
Set delete_meta_data @param to accept a string
2017-06-01 01:47:52 +02:00
Claudio Sanches d9e946491f Merge pull request #15357 from woocommerce/fix/15274-meta
Add ability to invalidate cache by object ID
2017-05-31 11:53:53 -03:00
Mike Jolley cb59bd0487 Merge pull request #15351 from woocommerce/fix/15329
Use get_max_purchase_quantityin cart template and fix logic
2017-05-31 11:39:53 +01:00
Mike Jolley 56ffa3d2aa Merge pull request #14706 from crodas/make_get_item_consistent
Make get item consistent
2017-05-31 11:10:09 +01:00
Mike Jolley 2366a036e3 Add id cache group to invalidate by ID 2017-05-30 14:37:29 +01:00
Mike Jolley 38bcdcfb28 Use get_max_purchase_quantityin cart template and fix logic
Closes #15329
2017-05-30 11:02:56 +01:00
Cesar Rodas 8c67ae6a7a Make `get_item` to rely no `get_items` 2017-05-29 12:38:25 -04:00
Cesar Rodas 563aa887f7 Apply woocommerce_order_get_items filter to get_item 2017-05-24 17:30:14 -04:00
Cesar Rodas ea9c573f2c Improved WC_Order::get_item()
Do not load all items, just load the items with a given order_item_type.
2017-05-23 20:12:47 -04:00
Cesar Rodas b612bab38b Fixed coding styles 2017-05-23 19:18:31 -04:00
Cesar Rodas b158ba2c47 Merge remote-tracking branch 'origin/master' into improve_meta_data_updates 2017-05-23 17:34:12 -04:00
Mike Jolley a3b89a9efc Merge pull request #15144 from timondavis/fix/15103-cannot_set_default_variation_to_string_zero
#15103 Variation default value of '0' fails to save on product.
2017-05-23 19:31:38 +01:00
Mike Jolley 6dfdc86111 Merge branch 'pr/14678' 2017-05-23 19:16:37 +01:00
Mike Jolley 109e951de3 Renamed filters and actions 2017-05-23 19:16:30 +01:00
Mike Jolley c16acc6b51 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	assets/css/wc-setup-rtl.css
#	assets/css/wc-setup.css
2017-05-23 19:00:24 +01:00
Mike Jolley d3666738d8 Merge branch 'pr/15069' 2017-05-23 18:56:58 +01:00
Mike Jolley 00e5189a05 Merge pull request #15070 from rasmusbe/phpdoc-missing-return-throws
Phpdoc: Add missing return and throws
2017-05-23 18:50:58 +01:00
Mike Jolley db012b3a12 Merge pull request #15011 from woocommerce/fix/14999
Add abspath checks
2017-05-23 15:57:35 +01:00
Mike Jolley d31a58b117 More abspath 2017-05-23 15:40:19 +01:00
Timon Davis af308da6b9 Fix bug #15103 where site operator cannot assign a variation with value of '0' as the default choice on the customer facing form.
The WC_Product::set_default_attributes function uses an array_filter (using the default callback for filtration)
to remove null and false values from the defaults array for a given product.  The issue here is that, in the above use case,
the array_filter will evaluate '0' as 0 and therefore as false.  Ultimately, array_filter then prevents the value from being
recorded, moving forward.

I've added a new filter callback to includes/wc-attribute-functions which will disregard all FALSE PHP equivalents except for
'0' (as a a string).  Also, I've updated the filter_array call in WC_Product::set_default_attributes so that it uses this new callback,
instead of the PHP default. Finally, I've added a phpunit test to assert that, when storing default variations / attributes on a product,
the false/true PHP synonyms are evaluating and storing like one would normally expect, with the exception that (string) '0'
evaluates as true in this special case.

This solution could potentially be broadened to facililate similar rules elsewhere, but the need raised in the bug is specific and
this is a specific solution.
2017-05-18 02:43:14 -07:00
Mike Jolley dd798d219e Make calculate tax function clear taxes if disabled on recalculation
Fixes #15057
2017-05-15 14:55:39 +01:00
Rasmus Bengtsson 185934fad9 Fix phpdoc to include params and correct types 2017-05-15 13:50:52 +02:00
Rasmus Bengtsson 4f00d7e5e3 PHPDoc: Add missing return statement 2017-05-15 13:37:59 +02:00
claudiulodro 3861e32803 Migrate wc_get_orders 2017-05-12 11:45:01 -07:00
Mike Jolley bc4d36fd3f Add abspath checks
Closes #14999
2017-05-10 19:03:19 +01:00
Rasmus 98833fa9c5 Fix param documentation for WC_Product::is_type 2017-05-09 14:10:27 +02:00
Claudio Sanches 257594a67c Merge pull request #14945 from woocommerce/pr/14875
Pr/14875
2017-05-08 13:56:12 -03:00
Mike Jolley 03a69e1d44 Prepend new item keys with `$items_key` to make them unique.
Fixes #14875
2017-05-08 17:44:10 +01:00
Mike Jolley dd3be1278b Merge pull request #14733 from woocommerce/feature/13646
WC_Object_Query & WC_Order_Query
2017-05-07 14:24:12 +01:00
Claudio Sanches 9930099b98 Merge pull request #14846 from woocommerce/fix/non-numeric-warning-order
Fix non numeric warning for orders.
2017-05-04 18:35:51 -03:00
Boro Sitnikovski f493afe718 intval -> floatval 2017-05-04 10:09:16 +02:00
Claudio Sanches 84dfaf3c09 Merge pull request #14851 from franticpsyx/clone-meta-data
[3.0] Clone each meta stdClass object when cloning a WC_Data object
2017-05-03 18:03:54 -03:00
Manos Psychogyiopoulos 8f7671f066 Clone each meta object when cloning WC_Data object to avoid modifying original meta stdClass objects 2017-05-03 16:37:01 +03:00
Boro Sitnikovski 8f63211f1c Fix non numeric warning for orders. 2017-05-03 08:31:35 +02:00
claudiulodro c93c45b15e Docblock 2017-04-28 09:55:49 -07:00
claudiulodro 30d2332f48 Handle paginate 2017-04-27 19:14:48 -07:00
claudiulodro 4eb1396e85 Offload more to subclasses 2017-04-27 14:09:10 -07:00
claudiulodro db3de7375d Tweaks from feedback 2017-04-27 11:07:03 -07:00
Mike Jolley 796ab0f257 Merge pull request #14756 from woocommerce/fix/14753
Compare with timestamp and remove start date once passed for sale products
2017-04-27 18:06:18 +01:00
Cesar Rodas 7a8011e878 Merge remote-tracking branch 'origin/master' into improve_meta_data_updates 2017-04-27 12:29:09 -04:00
Mike Jolley a68934d7db Merge pull request #14731 from crodas/make_sure_meta_data_cache_is_not_shared
Make sure the meta data cache is not shared among instances
2017-04-27 16:50:10 +01:00
claudiulodro 6aecb15505 Reduce scope 2017-04-27 08:38:18 -07:00
Mike Jolley eedcdd97ba Compare with timestamp and remove start date once passed for sale products
Fixes #14753
2017-04-27 14:35:33 +01:00
Cesar Rodas 2e6dc17bd5 Improved update_meta_data function
Also updated unit tests that was expecting the meta data as stdclass objects
2017-04-27 09:28:19 -04:00
Mike Jolley a6329fa68c Merge pull request #14752 from woocommerce/pr/14732
revert price handling of get_price_html()
2017-04-27 13:03:15 +01:00
Mike Jolley db5e2572f6 clean up 2017-04-27 13:01:52 +01:00
claudiulodro 2fad12221d Better comments 2017-04-26 11:04:28 -07:00
Cesar Rodas 91de312eb2 Make sure the meta data cache is not shared among instances
See #14620 for more context. In there I thought this was the desired behaviour and I enhanced it. After talking with @mikejolley he explained to me that it was not by designed.

This commit makes sure the meta data cache is not shared among instances
2017-04-26 13:51:52 -04:00
Kathy Darling 36dbe64170 revert price handling so null price still is filtered by woocommerce_get_price_html. closes #14727. 2017-04-26 12:37:30 -05:00
Cesar Rodas 6eb7dcabf2 Added WC_Meta_Data object
It wraps an array, and tells if there were any changes before saving it
2017-04-26 10:18:41 -04:00
Cesar Rodas 7f357b18ba Fixed typo
This expression had a typo from the refactoring
2017-04-26 03:21:10 -04:00
Cesar Rodas d3fd16617c Improved phpdoc 2017-04-26 02:57:00 -04:00
Cesar Rodas 38f379a7d7 Make get_item() consistent (like get_items())
Right now get_item() is loading an item from the database directly. It doesn't
take advantage of our cache and it doesn't check if the item is already loaded in memory.

There is also another bug (or feature?) that it will let you load any item, even if the item is not related to the current order. I believe this is a bug, if somebody really wants to load any item regardless of the order they should use `WC_Order_Factory::get_order_item`.

Another bug is that items loaded with get_item() are not related to the order object, therefore any calls to Order::save() won't persist the changes made to the item.

This commits makes sure the item returned by get_item is loaded similarly like get_items() does, taking advantage of the cache and the $items protected property (chances are the item is already in memory, ready to be used).

If a given item is not found false will be returned. If item exists but it is not related to the current object it will return false as well (If this behaviour is wanted, I can easily change it load the item anyways instead of returning false).
2017-04-26 02:54:14 -04:00
claudiulodro efa1dbbda5 Basic working order queries 2017-04-25 14:52:17 -07:00
Petar Petrov fdb28218ea items_type_key filter and woocommerce_order_line_item_object fix 2017-04-25 18:07:40 +03:00
Mike Jolley 9923612832 Prevent orders being their own parent (!)
Closes #14660
2017-04-25 14:18:27 +01:00
Petar Petrov 2b3ec357ad fix-14302 2017-04-25 14:12:36 +03:00
claudiulodro 553a12203b WC_Order_Query 2017-04-24 16:28:13 -07:00
claudiulodro 29fa59a0b7 WC_Object_Query 2017-04-24 11:33:17 -07:00
Mike Jolley 4a6c87d1cc docblock 2017-04-20 16:03:40 +01:00
Mike Jolley 8e28af8b87 define get_user_id/get_user methods for bw compat
Closes #14543
2017-04-20 16:02:10 +01:00
Mike Jolley 69a8b6c9b5 When on backorder without notifications, hide the text
Fixes #14530
2017-04-19 16:57:49 +01:00
Claudio Sanches d94f3883da Merge pull request #14497 from woocommerce/fix/14416
Fixed docblocks in REST API v1
2017-04-18 18:43:06 -03:00
Claudio Sanches 81dcd6e79e Fixed docblocks in REST API v1 for #14416 2017-04-18 13:40:10 -03:00
Mike Jolley de016c6615 Fix call to is_compound method
Fixes #14484
2017-04-18 12:00:21 +01:00
Govind Kumar 200cd2de63 Fixed: get_term() returns objects not array. 2017-04-18 13:00:04 +05:30
Mike Jolley 71929666ac Merge pull request #14404 from thenbrent/fix_get_meta_returning_deleted_values
Don't return deleted meta in get_meta_data()
2017-04-17 11:38:12 +01:00
Beka Rice d35621f166 Cast unmodified tax as float as well 2017-04-15 12:01:37 -04:00
Brent Shepherd 0e40d2c764 Don't return deleted meta
By using $this->get_meta_data() which passed meta through the
WC_Data::filter_null_meta() method, rather than $this->meta_data
which still has null values set.
2017-04-14 13:58:00 -07:00
Beka Rice 9de8589c9c Fix PHP 7.1 warnings when manually adding order items 2017-04-14 11:12:53 -04:00
Mike Jolley 76d962b606 since 2017-04-10 21:52:06 +01:00
Mike Jolley e14d85d0a3 __clone meta correctly on object clone
Fixes #14118
2017-04-10 17:12:17 +01:00
Claudiu Lodromanean 19361127a9 Array filter before saving 2017-04-06 14:47:22 -07:00
Mike Jolley fbcb46b273 filter items which are false
https://wordpress.org/support/topic/call-to-a-member-function-is_type-cl
ass-wc-order-php-on-line-1305/
2017-04-06 22:15:42 +01:00
Claudiu Lodromanean 94814a0b03 Dont throw exceptions when reading 2017-04-06 13:39:36 -07:00
Mike Jolley fe42b2565c Defer variation parent sync to shutdown rather than cron 2017-04-06 12:25:34 +01:00
Gregory Karpinsky 37c7e2a615 Docblock fix
`get_availability` returns array of strings
2017-04-06 00:32:36 -04:00
Claudiu Lodromanean 87b71b0653 Merge pull request #13941 from woocommerce/fix/hook-deprecated-function-calls
Use wc_deprecated_function so notices are not triggered on ajax requests
2017-04-05 09:36:01 -07:00
Mike Jolley e66efc1dcc Use wc_deprecated_function so notices are not triggered on ajax requests 2017-04-05 13:06:43 +01:00
Claudio Sanches cf954fac1e Fixed missing array declaration 2017-04-04 14:53:05 -03:00
Mike Jolley d917856378 Validate status if object_read
#13891
2017-04-04 12:39:35 +01:00
Mike Jolley c06fdc2e2e If product has_options, don't show qty in grouped product add to cart form
Fixes #13875
2017-04-03 12:05:28 +01:00
Akeda Bagus 0b416439c8
Fixed all typos of all files in includes/ directory.
Scanning and fixing were done automatically by codespell,
https://github.com/lucasdemarchi/codespell.
2017-03-29 00:58:51 +07:00
Mike Jolley 7857fbe41f Cast values to float
Fixes #13752
2017-03-24 12:05:28 +00:00
Mike Jolley 0ad1f6a63f Merge pull request #13709 from woocommerce/fix-13708
Timezone/DST fixes
2017-03-24 10:25:08 +00:00
Mike Jolley ba07d53768 Remove guesswork from timezone handling so offsets work correctly regardless of DST 2017-03-23 00:11:15 +00:00
Mike Jolley c4c8edee5f Remove order and product factory cache 2017-03-21 23:37:38 +00:00
Mike Jolley 98f5ba44e8 Protection against removed objects. 2017-03-21 18:31:38 +00:00
Mike Jolley 991927c2d8 Handle sleep and wakeup in WC_Data class 2017-03-21 17:42:34 +00:00
JeroenSormani 373bdda4f8 Add required filters to allow custom order item types 2017-03-20 10:37:06 +01:00
Claudio Sanches 59c2849736 Changed version 2.7 to 3.0 2017-03-15 13:36:53 -03:00
Mike Jolley 75a5b062cf Merge pull request #13577 from woocommerce/fix-13498
Timezone/Date method handling
2017-03-15 16:09:41 +00:00
Mike Jolley d55653a408 Merge branch 'master' into fix-13498
# Conflicts:
#	includes/class-wc-order.php
#	tests/unit-tests/crud/data.php
2017-03-15 15:52:40 +00:00
Mike Jolley 77cade928a Merge pull request #13596 from woocommerce/fix/payment-token-crud-pattern
Update Payment Tokens to follow the same pattern for custom data as other objects.
2017-03-15 15:38:31 +00:00
Justin Shreve b917a87a73 Deprecated $context on get_display_name. 2017-03-15 08:21:02 -07:00
Mike Jolley 20b857bfbf Merge pull request #13602 from JeroenSormani/fix-false-deprecated
Remove @(deprecated) sign from docblock to prevent false notice in ed…
2017-03-15 09:55:13 +00:00
JeroenSormani 08e441149b Remove @(deprecated) sign from docblock to prevent false notice in editors 2017-03-15 09:46:17 +01:00
Justin Shreve fb124232cf Update Payment Tokens to follow the same pattern for custom data as other object types.
Payment tokens was introduced in 2.6 and was updated to use the new CRUD code while some of the CRUD system was still in flux.

While most things were correct, the prop handling for custom fields (like a card's last 4 digits) were directly calling meta functions, instead of delegating to the data store/parent.

This PR moves these props to `extra_data` and follows the same pattern as product types or order items. It also updates some version tags to 3.0.0. Finally, it adds an additional test for saving meta after a create which looks like it was lacking.

To Test:
* Run `phpunit`.
* Go to the "My Account" tab and add a new payment method. You need a payment gateway that supports this, like Simplify.
* Test the add a payment method flow.
* Make a test purchase using the saved payment method.
2017-03-14 12:33:35 -07:00
Mike Jolley a3cc5cc9bb has_meta -> meta_exists
#13590

Avoid has_meta conflict with old method.

#13581
2017-03-14 16:49:13 +00:00
Mike Jolley 8f2746049d has_meta method 2017-03-14 12:08:33 +00:00
Mike Jolley 02c826ba5e Correctly handle null values 2017-03-13 22:14:20 +00:00
Mike Jolley 1bac579df7 Date getters and setters 2017-03-13 19:52:44 +00:00
Rami Yushuvaev d2457fe922 i18n: escape translation strings and fix wrong usage of i18n functions 2017-03-13 07:39:46 +02:00
Mike Jolley 53962f1143 Other date_date call replacements 2017-03-10 16:43:05 +00:00
Mike Jolley 66e8d9b054 Merge pull request #13530 from woocommerce/alt-fix-13496
Avoid filters during construct
2017-03-10 12:22:22 +00:00
Claudiu Lodromanean 8a18702c27 Just use array_replace_recursive in apply_changes 2017-03-09 09:06:05 -08:00
Mike Jolley 6848fad224 Merge branch 'timezone-poc' into fix-13498 2017-03-09 16:10:07 +00:00
Mike Jolley 9427eb048d Set default status in getter, not during contruct.
Prevents loops like in Prospress/woocommerce-subscriptions#1902
2017-03-09 13:45:33 +00:00
Claudiu Lodromanean 3b8eb75c93 Better handling of nested arrays in apply_changes 2017-03-08 11:51:38 -08:00
Mike Jolley c7dc8ae2b4 date_created and date_modified getters and setters 2017-03-08 16:51:10 +00:00
Mike Jolley 1a9c49db25 set_date_prop helper to convert dates in setters 2017-03-08 16:50:38 +00:00
Michael Pretty 6150ee2fde Validate the parent order ID by calling wc_get_order() instead of get_post() 2017-03-08 08:02:18 -05:00
Mike Jolley 5bdeddcb32 Hide suffix on variable product when dynamic.
Closes #13494
2017-03-07 13:25:52 +00:00
Mike Jolley e5ed116e33 Split total row methods to avoid calling total row filter twice
Fixes #13456
2017-03-06 13:44:52 +00:00
Claudio Sanches 7adb472a1c Fixed extra argument on array_map while setting categories and tags ids 2017-03-03 16:26:57 -03:00
Claudio Sanches a4b7cc5f0d Accept only list of terms IDs for product categories and tags 2017-03-03 16:19:32 -03:00
Mike Jolley 8440083fef Merge pull request #13443 from woocommerce/cache-groups
Standardize cache group names
2017-03-03 10:44:34 +00:00
Claudiu Lodromanean d5fd1e46ee get_meta should return empty array sometimes 2017-03-02 11:16:49 -08:00
Mike Jolley 1a8737fdeb Standardize cache group names 2017-03-02 17:15:39 +00:00
Mike Jolley f5a36778fd Move refund/payment method code out of abstract 2017-02-27 17:06:09 +00:00
Mike Jolley c5697f2d59 Logic error with used id 2017-02-23 15:25:49 +00:00
Mike Jolley 134df2f4a0 Save existing rates rather than recreate all
Fixes #13264
2017-02-23 14:14:50 +00:00
Mike Jolley ded2accace Allow trash status to be set/returned rather than pending 2017-02-22 11:53:47 +00:00
Claudio Sanches 486a81bf12 Fixed coding standards 2017-02-17 16:10:15 -02:00
Mike Jolley a5ddccf814 Merge pull request #13229 from woocommerce/remove-filter-for-v2
Allow filter query parameter only in REST API v1
2017-02-17 16:29:57 +00:00
Mike Jolley 6201c7e22b Add get_min_purchase_quantity and max helper 2017-02-17 15:52:39 +00:00
Claudio Sanches 8db3f3eaf0 Allow filter query parameter only in v1 2017-02-17 13:13:17 -02:00
Claudio Sanches b0e6a5ab5d Get object again after saved 2017-02-17 01:46:42 -02:00
Claudio Sanches a46aea1b77 Fixedd status 2017-02-17 01:17:52 -02:00
Claudio Sanches 18dc63757b BCheck if object exists 2017-02-17 00:09:46 -02:00
Claudio Sanches 01a5296e7e Fixed how CRUD delete items by REST API 2017-02-16 22:25:07 -02:00
Claudio Sanches d4ce22cb76 Created WC_REST_CRUD_Controller 2017-02-16 20:27:07 -02:00
Mike Jolley b37e4da43c Move legacy classes to correct dir 2017-02-16 16:39:56 +00:00
Claudio Sanches 9c15ca936b Merge pull request #13206 from woocommerce/rest-api-v2
REST API v2
2017-02-16 12:53:46 -02:00
Claudiu Lodromanean dda98da4ad Merge pull request #13192 from woocommerce/deprecated-hooks
Deprecated hook handling
2017-02-15 08:40:16 -08:00
Boro Sitnikovski 5dd607023b Fix PHP notice when there are shipping taxes. 2017-02-15 15:17:04 +01:00
Mike Jolley 0c7218047c Fix error message 2017-02-14 19:31:14 +00:00
Mike Jolley e0d1cfc7b0 Actions 2017-02-14 19:23:57 +00:00
Mike Jolley 6add2f9a64 WC_Deprecated_Hooks abstract 2017-02-14 18:56:09 +00:00
Mike Jolley 1a61f20785 Add actions to trigger legacy actions 2017-02-14 18:55:56 +00:00
Mike Jolley 00cda91c73 Merge pull request #13164 from woocommerce/lazy-update-products-13157
Lazy update products
2017-02-13 17:24:51 +00:00
Mike Jolley ad442567d6 Remove isset rule 2017-02-13 14:39:00 +00:00
Mike Jolley bdf567e90d Adjust how product_type is deprecated 2017-02-13 14:31:43 +00:00
Mike Jolley 6cf98a7e4d Avoid read after updating meta in the database
@justinshreve Was there a reason this was added? I don’t see a reason
why it needs to be re-read if the array is up to date?
2017-02-11 15:45:13 +00:00
Mike Jolley eb518ec06d Only append tax price suffix if taxable 2017-02-11 00:08:49 +00:00
Claudio Sanches 5d87a28407 Restored shipping zones base controller 2017-02-09 18:46:57 -02:00
Claudio Sanches 4b156ab1ae Merge old REST API branch 2017-02-09 18:19:56 -02:00
Claudiu Lodromanean 3120a19dae Switch isset back to array_key_exists to keep null-default props working 2017-02-09 10:13:44 -08:00
Claudio Sanches 4352484ed7 REST API v2 2017-02-09 15:06:13 -02:00
Mike Jolley 7ff301e2ca Merge branch 'master' into crud-perf-tweaks
# Conflicts:
#	includes/data-stores/class-wc-order-item-data-store.php
2017-02-09 12:31:25 +00:00
Mike Jolley b391e64453 Fix; Deprecated methods should return 2017-02-08 16:18:42 +00:00
Mike Jolley 5888ef5b93 Convert standard to '' in CRUD
Closes #12896
2017-02-07 17:22:04 +00:00
Mike Jolley b19be41994 Added since to WC_Data docblocks
Closes #13056
2017-02-06 17:06:20 +00:00
Mike Jolley 1ef593ff16 Merge pull request #13046 from thenbrent/merge_extra_data
Merge WC_Data::$extra_data in WC_Data::__construct()
2017-02-06 13:08:53 +01:00
Mike Jolley 09f7b0493e Merge pull request #13042 from woocommerce/legacy-order-date-format
Fix legacy order dates format
2017-02-06 12:51:41 +01:00
Mike Jolley 244b42eae8 Merge pull request #13048 from woocommerce/fix/cart-discount-call
Fix call to non-existent method for cart_discount.
2017-02-03 11:00:54 +01:00
Claudio Sanches 5eb08aeda6 [REST API] Cast int for batch delete 2017-02-02 19:09:45 +01:00
Mike Jolley 2ec4b8cf7f Revert "Get rating count should use is_array"
This reverts commit 0625a2b759.
2017-02-02 18:43:43 +01:00
Mike Jolley 0625a2b759 Get rating count should use is_array 2017-02-02 18:35:30 +01:00
Boro Sitnikovski 5f05b2e3d8 Fix call to non-existant method for cart_discount. 2017-02-02 09:45:09 +01:00
Brent Shepherd 010a208e88 Merge WC_Data::$extra_data in WC_Data::__construct
Rather than requiring child classes to merge it as well as define it.
If it's not defined in a child class, then the merge call will have no
effect as it will be an the empty array set in WC_Data, if they do define
it, WC_Data will now take care of it automatically rather than requiring
manually merging it in the child class's constructor before it has any
effect on that objects data.

This helps reduce duplicate code by removing this from child classes, and
in some cases, being able to remove the child constructor definitions
entirely. It also avoids a gotcha for developers setting their own
$extra_data values only to find they aren't being set on the $data
property.
2017-02-01 12:48:27 -08:00
Mike Jolley 3529d7cafd Cache items 2017-02-01 14:54:18 +01:00
Mike Jolley 31308403d4 Use variables to save values in item crud. 2017-02-01 10:53:53 +01:00
Claudio Sanches 54e35648e2 Fixed legacy date format 2017-02-01 10:11:19 +01:00
Brent Shepherd 7a7c0fbce6 Add WC_Abstract_Order::get_valid_statuses()
So that classes which extend WC_Abstract_Order can define custom statuses
specifically for their order type and have those used for validation in
WC_Abstract_Order::set_status() instead of only the order statuses defined
by wc_get_order_statuses().

For example, the subscription order type has a number of custom order statuses,
like 'wc-active' and 'wc-expired', which do not apply to orders but are valid
statuses for WC_Subscription objects, which extend WC_Abstract_Order.
2017-01-31 15:00:03 -08:00
Caleb Burks df7f3533bc Fix wording on deprecation messages 2017-01-30 23:40:21 -06:00
Claudio Sanches 346e1ea1e0 Merge pull request #12996 from woocommerce/rest-api-missing-types-args
REST API Types
2017-01-27 14:49:35 -02:00
Brent Shepherd 0e393da2cd Fix woocommerce_order_add_product deprecation msg 2017-01-26 16:58:47 -08:00
Brent Shepherd 5e77311384 Fix deprecated action messages
Don't end sentence with double .. and instead of "Replace with Use CRUD"
just say "Replace with CRUD"
2017-01-26 16:44:28 -08:00
Mike Jolley e930ccd16e object types to fix unit tests 2017-01-26 20:58:55 +00:00
Mike Jolley 82d7fe6e73 Added more missing args and types 2017-01-26 20:33:39 +00:00
Mike Jolley b727c61da7 Missing arg and setting types 2017-01-26 20:06:18 +00:00
Mike Jolley 2d23705431 ID arg definitions 2017-01-26 19:22:57 +00:00
Mike Jolley def35a5aa2 Cast request ids to int 2017-01-26 18:34:11 +00:00
Justin Shreve 474a307420 Introduce get_tax_class_slugs. 2017-01-25 13:38:13 -08:00
Mike Jolley 0df50c59a3 Merge pull request #12972 from woocommerce/log-handler-interface
Add log handler interface
2017-01-25 00:42:50 +00:00
Mike Jolley 3a104df5bd Merge pull request #12966 from thenbrent/dry_get_data
Remove redundant WC_Product::get_data() method
2017-01-25 00:12:16 +00:00
Justin Shreve dcecf0f228 Fix get_hook_prefix format 2017-01-24 11:02:06 -08:00
Brent Shepherd 2cf401f60f Delete WC_Product::get_data()
It's identical to WC_Data::get_data(), which is already inherited from
WC_Abstract_Legacy_Product (which extends WC_Data::get_data()).
2017-01-24 10:44:51 -08:00
Jon Surrell 8e0f40d3d1 Add WC_Log_Handler_Interface
Abstract class `WC_Log_Handler` implements interface
2017-01-24 14:10:05 +01:00
Mike Jolley eb2b9d78f8 Merge pull request #12947 from woocommerce/improve-rest-api-error-data
Allow pass error data using WC_Data_Exception
2017-01-24 12:45:49 +00:00
Claudio Sanches bac0b299c4 Include conflicted product ID when trying to create a product with duplicated SKU 2017-01-23 17:34:49 -02:00
Claudio Sanches e23ddabfea Allow WC_Data_Exception have extra error data 2017-01-23 17:29:16 -02:00
Claudio Sanches 03b34fb738 [REST API] Improved messages for term_exists error 2017-01-23 17:07:36 -02:00
Claudio Sanches 10a9baeada [REST API] Fixed PHP notices while trying to set product category parent as 0 2017-01-23 16:44:22 -02:00
Mike Jolley 66914966fb Adjust meta saving code throughout
#12885
2017-01-23 11:30:53 +00:00
Brent Shepherd a1cd7eee42 Fix get_price_html_from_to() deprecation
WC_Product::get_price_html_from_to() was incorrectly using
wc_format_sale_price() as its replacement in WC 2.7; however,
wc_format_price_range() is a more suitable replacement.
2017-01-19 13:51:23 -08:00
Claudio Sanches bd655af072 Restore attributes ordering, closes #12847 2017-01-16 21:11:56 -02:00
Claudio Sanches 20032fd170 Fixed declaration of is_on_sale() compatible with WC_Product::is_on_sale 2017-01-16 19:59:53 -02:00
roykho 11d0d26df7
Fix typo on variable when it should be 2017-01-16 12:54:59 -08:00
Manos Psychogyiopoulos 892d5da7e9 get prices in 'edit' context when updating meta 2017-01-16 17:33:30 +02:00
Claudio Sanches 9c27661dea Synchronized with master 2017-01-12 17:53:15 -02:00
Mike Jolley b240e10b91 Merge branch 'pr/12756' 2017-01-11 12:19:30 +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
Claudio Sanches ca47661388 Fixed WC_Product::get_price_html_from_text deprecated message, closes #12779 2017-01-09 15:52:17 -02:00
Justin Shreve e4937b898d Fix PHP 7.1 warnings/notices. 2017-01-04 10:45:45 -08:00
Justin Shreve 94a33b694c Separate status and post_status in legacy output. status should match get_status exactly. 2017-01-03 14:04:41 -08:00
Jon Surrell 2ae1bc1ab2 Protect methods 2016-12-29 11:58:43 +01:00
Jon Surrell acc98a1d6a Mark WC_Log_Handler::format_entry abstract 2016-12-29 11:58:43 +01:00
Jonathan Surrell 4318b3aa53 Improve @return signature on WC_Log_Handler::handle
Make meaning of returned bool explicit.
Update WC_Log_Handler_Email::handle accordingly.

via https://github.com/woocommerce/woocommerce/pull/12575#pullrequestreview-12381573
2016-12-29 11:58:43 +01:00
Jon Surrell ffd0d380ee Remove threshold logic from handlers.
Email handler implements threshold logic internally. Other handlers handle all logs received.
Handler constructors have changed.
2016-12-29 11:58:43 +01:00
Jon Surrell 85fa9df7fe Drop "bubbling" support for logs
The concept of bubbling or consuming logs has little benefit for our use case.
Drop support for bubbling and simplify logging.
2016-12-29 11:58:43 +01:00
Jon Surrell 4f77954bc7 Move log levels to independent class 2016-12-29 11:58:43 +01:00
Jon Surrell d88ea4ecea Spelling and doc fixes 2016-12-29 11:58:43 +01:00
Jon Surrell 5e9d4189fb Include missing 5 in log level severities 2016-12-29 11:58:42 +01:00
Jon Surrell a0670cfae8 Add woocommerce_format_log_entry filter to base WC_Log_Handler class 2016-12-29 11:58:42 +01:00
Jon Surrell 2283956db6 Provide correct class name to woocommerce_log_handler_set_threshold filter 2016-12-29 11:58:42 +01:00
Jon Surrell 0c5634c99f Version 1.0.0 for abstract wc log handler 2016-12-29 11:58:42 +01:00
Jon Surrell 822981c009 Improve handle signature
The signature of WC_Log_Handler::handle mirrors log messages which is more intuitive.
Method docblocks have also been improved and are more complete.
2016-12-29 11:58:42 +01:00
Jon Surrell ad03597a3d Simplify default log entry format
Remove punctuation. Space separate values:

TIMESTAMP LEVEL MESSAGE
2016-12-29 11:58:42 +01:00
Jon Surrell 722b288b79 Remove _ from private/protected properties 2016-12-29 11:58:42 +01:00
Jon Surrell 6ec75d8c2e Change defualt log handler threshold to DEBUG following discussion with team members. 2016-12-29 11:58:42 +01:00
Jon Surrell b5cebcab6c Fix scrutinizer issues 2016-12-29 11:58:42 +01:00
Jon Surrell d5d1ab16ea Fix docblocks 2016-12-29 11:58:42 +01:00
Jon Surrell 4262a72af6 Use wp_parse_args for default args 2016-12-29 11:58:42 +01:00
Jon Surrell 44ea69c579 Adds tests for bubbling, etc.
Add tests teardown to cleanup log files
Fix errors in log handlers
2016-12-29 11:58:42 +01:00
Jon Surrell 0e0433195d Add logic for log level filtering to `WC_Log_Handler`. 2016-12-29 11:58:42 +01:00
Jon Surrell 9a0efcfe55 Add abstract WC_Log_Handler class
Abstract base class is implemented with default formatting implementations.
`$timestamp` has been added to the `WC_Log_Handler::handle` implementation. This ensures all handlers are passed the same timestamp for the same message.
`_legacy` context has been added to `WC_Log_Handler_File` to ensure handle deprecated `WC_Logger::add` provides the same log entries as before.

Fix CS problems.
2016-12-29 11:58:42 +01:00
Mike Jolley daea231ab7 Merge pull request #12666 from woocommerce/select2-4
Upgrade Select2 to V4
2016-12-24 14:40:09 +00:00
Mike Jolley 6b511e84be Sorting 2016-12-23 15:14:27 +00:00
Manos Psychogyiopoulos 40bf6afc29 fix incorrect inline comments
Ref: 01aba1fd2b
2016-12-22 19:41:23 +02:00
Mike Jolley 03b581f72e Refunds API/get_data() missing ID
Fixes #12672
2016-12-22 14:52:37 +00:00
Mike Jolley d5b346fc40 Variation specific backwards compatibility 2016-12-22 14:30:47 +00:00
Mike Jolley 56fef5b4f6 More styling settings tweaks 2016-12-21 11:36:48 +00:00
Mike Jolley 20680203bb Add actions for all object types 2016-12-19 17:09:52 +00:00
Mike Jolley 5ae62959d8 Notices 2016-12-19 11:59:10 +00:00
Manos Psychogyiopoulos 87bb9adf08 use CRUD to add line item meta 2016-12-19 13:27:32 +02:00
Manos Psychogyiopoulos 3a8eae195b maintain order item meta action hooks 2016-12-18 18:13:11 +02:00
Mike Jolley 3e2a758c65 Fix meta data read 2016-12-14 11:23:17 +00:00
Mike Jolley 1e80db6021 Force meta to be written on creation
#12567
2016-12-12 13:56:35 +00:00
Mike Jolley 0ce99fbdbb Merge pull request #12558 from woocommerce/crud-reduce-queries
CRUD reduce queries
2016-12-10 12:35:45 +00:00
Mike Jolley 87579c013d Fix attribute output
Closes #12556
2016-12-09 16:43:22 +00:00
Mike Jolley 5562cfc1f6 Lazy load product meta data 2016-12-09 12:18:21 +00:00
Mike Jolley 90ff6705be Only validate attachment IDs when set after read 2016-12-08 16:08:10 +00:00
Mike Jolley 47fbae4d26 Product Visibility Taxonomies (#12527)
* Convert visibility and featured to taxonomy

* Comment

* Add missing tax_queries

* Only check SKU after read.

* Added visibility term for outofstock products to speed those queries up al

* wc_bool_to_string
2016-12-08 10:56:45 +00:00
Mike Jolley 070926f7e6 woocommerce_downloadable_file_hash filter
Closes #12444
2016-12-06 11:09:03 +00:00
Mike Jolley 1f04cf9dc0 Comment on has_all_attributes_set 2016-12-05 13:15:25 +00:00
Mike Jolley 2780688a70 wc_get_price_html_from_text 2016-12-05 13:13:30 +00:00
Mike Jolley ba56274662 Move get_price_suffix back to main class 2016-12-02 17:02:06 +00:00
Mike Jolley d67f17a789 Put get_availability functions back in main product classes. 2016-12-02 16:46:35 +00:00
Manos Psychogyiopoulos b10810824f add 'id' to WC_Abstract_Legacy_Product __isset 2016-11-27 16:30:13 +02:00
Mike Jolley fb2804a5ab Code comments 2016-11-25 14:48:20 +00:00
Mike Jolley 8d30e1d044 Correct title filter 2016-11-25 10:41:42 +00:00
Mike Jolley 6b8fc659bf Put get_title back in main class 2016-11-24 14:19:52 +00:00
Mike Jolley d7dfdd3d10 Wrap all deprecation calls. 2016-11-23 16:15:00 +00:00
Mike Jolley 2b1c762142 Set parent 2016-11-23 15:37:34 +00:00
Mike Jolley 885dad605a Interface naming 2016-11-22 13:54:51 +00:00
Justin Shreve dd0a2317f1 Fix up data tests and some coding standards issues 2016-11-22 04:05:05 -08:00
Justin Shreve 174aa38be6 Start moving meta to normal stores, instead of a separate meta store. 2016-11-22 04:05:05 -08:00
Justin Shreve a8fa6ea69e Move loading meta data store out of constructor. 2016-11-22 04:03:57 -08:00
Justin Shreve f3140889d5 Move meta handling saving/getting logic to a data store, and fix cache handling for meta to reduce queries. 2016-11-22 04:03:57 -08:00
Justin Shreve 8d551c01e6 Merge pull request #12403 from woocommerce/order-item-data-store
Order Item Data Store
2016-11-22 03:39:53 -08:00
Claudio Sanches 4f7290daa0 Fixed expected result from WC_Product::get_post_data for variations 2016-11-21 20:10:40 -02:00
Claudio Sanches dd78bbd6ad Keep backwards compatibility for variation title 2016-11-21 20:05:37 -02:00
Justin Shreve b20b3590c8 First pass at order items 2016-11-21 10:56:21 -08:00
Mike Jolley 8cf3feaf82 No absint here 2016-11-21 16:55:36 +00:00
Mike Jolley 8466f4f79a Feedback 2016-11-21 16:46:32 +00: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 c06c357399 Fix tests 2016-11-18 20:27:59 +00:00
Mike Jolley b1565cf0d6 Download update routine and interface 2016-11-18 19:29:37 +00:00
Claudio Sanches 6d66391a68 Merge pull request #12388 from woocommerce/terms-performance
Optimize terms queries
2016-11-18 13:01:38 -02:00
Claudio Sanches f5a228509a Fixed coding standards 2016-11-17 18:07:58 -02:00
Claudio Sanches e1aeba9f21 Remove all wp_get_post_terms() and wp_get_object_terms() terms occurrences 2016-11-17 17:02:05 -02:00
Mike Jolley c933f82961 Refunds 2016-11-17 16:53:13 +00:00
Mike Jolley 8d6f236d47 Fix save 2016-11-17 16:02:09 +00:00
Mike Jolley 87aadaa7cf getters 2016-11-17 15:02:33 +00:00
Mike Jolley 83813bb9bb Interface 2016-11-17 13:18:24 +00:00
Mike Jolley eafd7c9fa5 Use data store for methods 2016-11-17 12:34:39 +00:00
Mike Jolley 81a2d6345f Setters 2016-11-17 11:26:24 +00:00
Mike Jolley b37db6eb7b Getters 2016-11-17 11:22:24 +00:00
Mike Jolley d387afbba3 Added data store 2016-11-17 10:53:22 +00:00
Claudio Sanches c5a00a3120 Make products visible by default 2016-11-16 16:56:40 -02:00
Justin Shreve 421d0331b6 Make sure we don't try to ->read when creating a new shipping zone. 2016-11-16 04:54:42 -08: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
Justin Shreve 53524141b7 Fix up the other delete signatures. 2016-11-15 11:35:10 -08:00
Mike Jolley dc60ea4c23 Merge branch 'master' into customer-data-store
# Conflicts:
#	includes/class-wc-data-store.php
#	woocommerce.php
2016-11-14 18:21:30 +00:00
Mike Jolley 00ed627b29 Data stores 2016-11-14 18:18:08 +00:00
Justin Shreve d986d1bba1 Rename interface file 2016-11-14 09:13:55 -08:00
Justin Shreve 944e5d658b Handle feedback 2016-11-14 09:08:46 -08:00
Justin Shreve 370166a6b0 Payment Token Data Store 2016-11-14 06:20:41 -08:00
Krzysztof Grabania 4711066490 Removed empty string param in _deprecated_function function (#12301)
`_deprecated_function` has conditional which is checking if third param (replacement) is null. Passing replacement as empty string to this function will fail this test and the end of triggered error will look like this: `Use instead.` instead of `with no alternative available.`. This PR removes all occurrences of empty strings in this function.
2016-11-10 10:17:32 +00:00
Justin Shreve b41626c555 Implement Coupon Data Store (#12280)
* Implement a Coupon Data Store using CPTs..

* Handle PR feedback.
2016-11-09 12:21:18 +00:00
Claudio Sanches f23a529329 [REST API] Throw messages when trying to manipulate variations in products endpoint 2016-11-08 13:55:33 -02:00
Claudio Sanches e1b914d227 Reverted changes that allowed manipulate variations on products endpoint (#12255) 2016-11-08 11:14:01 +00:00
Justin Shreve 52aedb5fc4 Remove context param on set_props 2016-11-08 02:28:00 -08:00
Justin Shreve c7fdb061c3 Implement get/set proxy code. 2016-11-08 02:16:16 -08:00
Justin Shreve 1797c76a14 Implement WC_Data_Store and related code & tests. 2016-11-08 01:39:47 -08:00
Rami Yushuvaev 9469673c05 a11y: remove unneeded `title` attributes 2016-11-04 17:40:15 +02:00
Rami Yushuvaev 6cc301e58c add translators comments 2016-10-29 13:16:03 +03:00