Commit Graph

10176 Commits

Author SHA1 Message Date
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 1740f1e3e8 Merge pull request #13590 from woocommerce/fix-13581
Add a has_meta method to WC_Data
2017-03-14 16:42:40 +00:00
Mike Jolley b7579b2686 Merge pull request #13589 from woocommerce/fix-13578
get_formatted_meta_data should ignore meta with no ID
2017-03-14 15:58:26 +00:00
Mike Jolley a0c160f6e9 Merge branch 'pr/13558' 2017-03-14 12:35:19 +00:00
Mike Jolley 49b782d20e Correct formatting 2017-03-14 12:34:20 +00:00
Mike Jolley a9e224fa78 Wrap rating with esc_html 2017-03-14 12:32:34 +00:00
Mike Jolley 9d7c5cee39 Work around legacy has_meta method for orders 2017-03-14 12:25:39 +00:00
Mike Jolley 7f787fac84 Check empty strings literally
Closes #13565
2017-03-14 12:17:49 +00:00
Mike Jolley 8f2746049d has_meta method 2017-03-14 12:08:33 +00:00
Mike Jolley 186c26e60d Missing return in offsetSet 2017-03-14 11:33:35 +00:00
Mike Jolley f404eeede6 get_formatted_meta_data should ignore meta with no ID 2017-03-14 11:28:57 +00:00
Claudio Sanches 591327287a Do not set remaining downloads when is unlimited 2017-03-13 21:24:59 -03:00
Mike Jolley 7e165413cf Check for arrays, not serialised strings
Fixes #13556
2017-03-13 17:49:59 +00:00
Mike Jolley c80fed52d8 Merge pull request #13571 from woocommerce/fix-13529
Check $_POST before trying to save order address inputs
2017-03-13 17:47:21 +00:00
Mike Jolley 38f31d3b8e Remove broken coupon usage link
#13568
2017-03-13 17:27:59 +00:00
Claudio Sanches 75ae465924 Merge pull request #13564 from ramiy/i18n
i18n: escape translation strings and fix wrong usage of i18n functions
2017-03-13 14:08:41 -03:00
Claudiu Lodromanean cf397cfbdd Dont try and save inputs that arent there 2017-03-13 09:55:18 -07:00
Mike Jolley 19759a83b4 Merge pull request #13560 from JeroenSormani/php71-typecast-fix
Type cast ->get_weight() on WC_Cart::get_cart_contents_weight calcula…
2017-03-13 16:10:47 +00:00
Rami Yushuvaev d2457fe922 i18n: escape translation strings and fix wrong usage of i18n functions 2017-03-13 07:39:46 +02:00
JeroenSormani 91ce342e7c Type cast ->get_weight() on WC_Cart::get_cart_contents_weight calculation 2017-03-11 19:01:58 +01:00
fuzzguard 1a99235dc8 Adding in proper error handling from 'lostpassword_post'
Since WP version 4.4.0 the 'lostpassword_post' hook has had the ability to handle error messages from the WP_Error class.  This allows errors to to occur BEFORE the username or email address are validated against the WP.

wp-login.php
        /**
         * Fires before errors are returned from a password reset request.
         *
         * @since 2.1.0
         * @since 4.4.0 Added the `$errors` parameter.
         *
         * @param WP_Error $errors A WP_Error object containing any errors generated
         *                         by using invalid credentials.
         */
        do_action( 'lostpassword_post', $errors );

        if ( $errors->get_error_code() )
                return $errors;

Proposal is to have this same process be respected by WooCommerce Lost Password process.
2017-03-11 11:43:21 +11:00
Mike Jolley ff4b79a6fc Status transition hooks should never run when objects are read regardless of status being set.
Fixes #13547
2017-03-10 20:20:07 +00:00
Mike Jolley 38afff0031 Merge pull request #13516 from woocommerce/fix-13505
Make increase_usage_count work correctly on concurrent checkout
2017-03-10 19:07:57 +00:00
Claudiu Lodromanean 73ed273189 Use active voice 2017-03-10 10:32:27 -08:00
Claudiu Lodromanean d630b948e3 Better increase/decreasing 2017-03-10 10:28:56 -08:00
Claudiu Lodromanean e6a17a0fb3 Dont use set_prop on increase/decrease to prevent overwriting data 2017-03-10 09:27:39 -08:00
Claudiu Lodromanean d70723553d CHange vary to update 2017-03-10 09:18:14 -08:00
Konstantinos Kouratoras f77b03ef94 Add missing trailing punctuation
Trailing punctuation is missing, causing duplication of the same text in translation, although it exists in another file:
https://github.com/woocommerce/woocommerce/blob/master/includes/api/class-wc-rest-settings-options-controller.php#L482
2017-03-10 17:01:47 +02: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
Mike Jolley 2894d5aab0 Make needs_processing public so the data store can access. 2017-03-10 12:21:42 +00:00
Mike Jolley 4f1c433fbf Merge pull request #13532 from woocommerce/fix/order-item-meta-cache
Fix order item meta functions cache busting.
2017-03-10 11:47:26 +00:00
Claudio Sanches 377fbf9c44 Use WordPress wp_get_password_hint() function to display passowd hint
Closes #13534
2017-03-10 00:48:19 -03:00
Justin Shreve 9724b67ab8 Fix order item meta functions cache busting.
The cache busting currently in `wc_add_order_item_meta`, `wc_update_order_item_meta`, and `wc_delete_order_item_meta` doesn't actually bust anything. The cache line looks like it is from 2.6. The relevent cache to bust is actually in the `order-items` group and has a different key/prefix.
This bug allows your meta to get out of sync if you use these functions and then try to access a value from a CRUD object.

You can see this in the `test_wc_order_item_meta_functions` test I've added. If you keep your `wc-order-item-functions.php` as is, the asserts against `$item->get_meta` will fail.

To test:
* `phpunit --filter=test_wc_order_item_meta_functions`.
* Try before applying the `wc-order-item-functions.php` changes and after.
2017-03-09 13:36:23 -08:00
Justin Shreve cd92351dd7 Fix direct property access for coupon amount.
In 2.6, you could access the amount via $coupon->coupon_amount. Or legacy code incorrectly handles $coupon->amount instead. 7778583340/includes/class-wc-coupon.php (L102)

This PR handles both since the RCs and betas allowed `->amount` and I don't want to break anything that may be accessing it that way..

To Test:
* `phpunit --filter=test_coupon_backwards_compat_props_use_correct_getters`
2017-03-09 10:34:45 -08:00
Mike Jolley 99776e6374 Merge pull request #13514 from woocommerce/fix-13509
Apply_changes nested array fix and tests
2017-03-09 17:32:19 +00:00
Claudiu Lodromanean 8a18702c27 Just use array_replace_recursive in apply_changes 2017-03-09 09:06:05 -08:00
Claudiu Lodromanean 3aea9a0b2f DRY out the meta bumping functions 2017-03-09 08:51:47 -08:00
Mike Jolley ac1c2f02b7 syntax 2017-03-09 14:53:52 +00:00
Mike Jolley 28a8d05285 Handle date paid in getter and during save to avoid filters during construct 2017-03-09 14:40:19 +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
Mike Jolley 92f989d8ac Merge pull request #13528 from woocommerce/fix/legacy-get-item-downloads
Fix legacy get item downloads
2017-03-09 13:26:54 +00:00
Mike Jolley a5c10d07c1 Fix is_purchasable (requires save) when price is null
Fixes #13043
2017-03-09 13:26:12 +00:00
Boro Sitnikovski deae95b678 Updates after PR review 2017-03-09 12:55:33 +01:00
Mike Jolley d811317a1f Merge pull request #13511 from franticpsyx/fix-price-incl-excl-tax-zero-empty-inputs
[2.7] Unexpected wc_get_price_{in/ex}cluding tax behavior with zero/empty inputs
2017-03-09 11:46:39 +00:00
Mike Jolley a185e57ccb Admin panel should not hide _ meta.
Fixes #13510
2017-03-09 11:45:22 +00:00
Boro Sitnikovski 6c967697d9 Fix legacy get item downloads 2017-03-09 12:41:25 +01:00
Illimar Tambek 21a54b93d8 Use wc_clean to sanitize fee title in legacy apis
This will bring legacy APIs in line with the new REST API, where the
order item names are sanitized using wc_clean and fix the
backwards-incompatible change of using sanitize_title.
2017-03-09 11:00:35 +02:00
Illimar Tambek 8e81a7e4e0 Set order id for fees & shipping on legacy api
If order ID is not set, the item will be created, but will not be
associated with the order being updated.
2017-03-09 10:53:10 +02:00
Claudiu Lodromanean e36ee46dea Make increase_usage_count work correctly on concurrent checkoutt 2017-03-08 15:27:37 -08:00