Commit Graph

291 Commits

Author SHA1 Message Date
Brent Shepherd e01b3b2714 Pass $order on checkout line item hooks
Because otherwise, there is no way to find out what order the line
item is associated with as the order has not been saved, so does
not have an ID to set on the line item yet - $item->get_order_id()
will return 0.
2017-02-20 21:35:00 -08:00
Claudio Sanches 486a81bf12 Fixed coding standards 2017-02-17 16:10:15 -02:00
Mike Jolley 9b7395705a Fix checkout $order property 2017-02-15 17:07:03 +00:00
Claudiu Lodromanean dda98da4ad Merge pull request #13192 from woocommerce/deprecated-hooks
Deprecated hook handling
2017-02-15 08:40:16 -08:00
Mike Jolley 7b0b1529bf woocommerce_checkout_order_processed bw compat 2017-02-14 18:57:29 +00:00
Brent Shepherd 5d10c797d0 Make WC_Checkout line item creations reusable
By passing in dependencies, like cart items, fees, taxes or coupons,
as well as the cart to which they relate.
2017-02-10 12:03:32 -08:00
Claudio Sanches e3b563c518 Merge pull request #13044 from woocommerce/crud-perf-tweaks
[2.7] CRUD performance improvements for emails
2017-02-09 13:25:29 -02:00
Mike Jolley dcce2a4190 Change order of execution on checkout so shipping is required.
Closes #12992
2017-02-09 12:59:13 +00: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 b08449e502 Payment method display
Fixes #12830
2017-02-07 14:51:21 +00:00
Mike Jolley 3a3588c92c Check product once 2017-02-01 02:11:56 +01:00
Brent Shepherd 50da0ebd4a Fix default WC_Checkout::get_value() behaviour
Prior to SHA: 43d362d1, WC_Checkout::get_value() would set the default value
for an $input whenever the value after was null after being passed through
filters. This logic changed with SHA: 43d362d1 to *always* return the filtered
value, even if the value was not changed by filters and was still null.

This means if any code filters just one checkout value, like order_comments,
then all other checkout values will default to null, because the has_filter()
check will pass, but the default null value won't be modified by that callback.
2017-01-26 14:47:43 -08:00
Mike Jolley 66914966fb Adjust meta saving code throughout
#12885
2017-01-23 11:30:53 +00:00
Nabeel Sulieman 3c8ce9b494 Add shipping rate meta data to line item 2017-01-18 10:41:32 -08:00
Mike Jolley 5bfb372f01 Customer update hook 2017-01-10 14:14:05 +00:00
Mike Jolley a2a16a2ec0 Merge pull request #12683 from franticpsyx/shipping-rate-taxes-array-not-saved
[2.7] Shipping order item taxes array not saved on checkout
2016-12-23 14:19:43 +00:00
Manos Psychogyiopoulos d7afab3930 fix saving of shipping order item taxes on checkout 2016-12-22 20:49:42 +02:00
Manos Psychogyiopoulos 40bf6afc29 fix incorrect inline comments
Ref: 01aba1fd2b
2016-12-22 19:41:23 +02:00
Mike Jolley 01aba1fd2b Incorrect inline comments 2016-12-22 15:06:10 +00:00
Mike Jolley a41f9d6ec4 Make sure shipping address is set if needed 2016-12-19 15:42:53 +00:00
Mike Jolley 910d6d9900 Store custom checkout fields prefixed with shipping or billing in meta
Closes #12634
2016-12-19 14:51:56 +00:00
Mike Jolley 0246172806 Action comments 2016-12-19 11:58:00 +00:00
Manos Psychogyiopoulos 87bb9adf08 use CRUD to add line item meta 2016-12-19 13:27:32 +02:00
Manos Psychogyiopoulos f0aa493a98 order id omitted from woocommerce_add_shipping_order_item args 2016-12-18 18:39:37 +02:00
Manos Psychogyiopoulos 7751264a2a package not passed in woocommerce_add_shipping_order_item action 2016-12-18 18:36:04 +02:00
Manos Psychogyiopoulos 3a8eae195b maintain order item meta action hooks 2016-12-18 18:13:11 +02:00
Mike Jolley 3bf3422b5c Feedback 2016-12-02 16:13:36 +00:00
Mike Jolley 43d362d107 Tidy, refactor, and split up methods in checkout class 2016-11-25 21:46:34 +00:00
Mike Jolley eab41b37f7 Move location of billing email field to work with password managers.
Fixes #11016
2016-11-25 11:32:42 +00:00
Mike Jolley d7dfdd3d10 Wrap all deprecation calls. 2016-11-23 16:15:00 +00:00
Mike Jolley 430a31a963 Add notice class to checkout message
Closes #12245
2016-11-22 14:21:21 +00:00
Justin Shreve b20b3590c8 First pass at order items 2016-11-21 10:56:21 -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
Rami Yushuvaev 4e36ce7425 add translators comments 2016-10-29 15:57:09 +03:00
proArtex 8798ee4632 Removed redundant condition (#12210)
Exception object cannot be empty()
2016-10-28 16:53:54 +01:00
Rami Yushuvaev fe8fa477e8 Fix test error (#12193)
* i18n: simpler translation strings

* i18n: simpler translation strings

* i18n: readble printf(), and moving the %s placeholder to `%s product`

* i18n: make string translatable and remove the HTML tags

* i18n: avoide using HTML tags in translatino strings

* i18n: move the colon into the translation string and use %s placeholder for the IP

* i18n: use sprintf() on field-validation translation strings, and unify those strings

* i18n: move colons into the translation strings

* i18n: use `%s` placeholder as the site name in "Powered by WooCommerce" string

* i18n: use `%s` placeholder for min and max price

* i18n: rewrite the translation strings printf()

* Fix test error
2016-10-26 19:58:46 -02:00
Rami Yushuvaev 0be4db2261 more i18n updates (#12189)
* i18n: simpler translation strings

* i18n: simpler translation strings

* i18n: readble printf(), and moving the %s placeholder to `%s product`

* i18n: make string translatable and remove the HTML tags

* i18n: avoide using HTML tags in translatino strings

* i18n: move the colon into the translation string and use %s placeholder for the IP

* i18n: use sprintf() on field-validation translation strings, and unify those strings

* i18n: move colons into the translation strings

* i18n: use `%s` placeholder as the site name in "Powered by WooCommerce" string

* i18n: use `%s` placeholder for min and max price

* i18n: rewrite the translation strings printf()
2016-10-26 14:35:52 -02:00
Rami Yushuvaev 4375618438 i18n context functions (#12156)
* Replace some context function with translation comments

* Remove two more context function

* Replace another context function with translation comments
2016-10-24 08:31:07 +01:00
Mike Jolley 42f420b16c Correct admin link for variable product. 2016-10-13 15:18:44 +01: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
Rami Yushuvaev 83e938af1e i18n: Merge similar translation strings to reduce the total strings count #11905 2016-10-11 04:39:13 +03:00
Claudio Sanches 089b5e93f2 Fixed coding standards 2016-09-13 19:04:33 -03:00
Aristeides Stathopoulos 734f284fa4 WordPress.PHP.YodaConditions.NotYoda 2016-09-08 01:32:24 +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 f2730eea02 WordPress.WhiteSpace.ControlStructureSpacing.BlankLineAfterEnd 2016-08-27 08:57:05 +03:00
Aristeides Stathopoulos 538f8e02cc WordPress.WhiteSpace.ControlStructureSpacing.SpaceBeforeFunctionOpenParenthesis 2016-08-27 07:06:25 +03:00
Aristeides Stathopoulos 58b9df6564 WordPress.Arrays.ArrayDeclaration.NoSpaceAfterOpenParenthesis 2016-08-27 05:23:54 +03:00
Aristeides Stathopoulos 32ddc22465 WordPress.Arrays.ArrayDeclaration.NoSpaceAfterComma 2016-08-27 05:14:16 +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 3755049d86 Fix item data 2016-08-17 11:45:07 +01:00
Mike Jolley e1318d9175 Stop WP core meta data being removed for customers
@justinshreve
2016-08-15 13:17:43 +01:00
Mike Jolley 6090e3cd00 set_backorder_meta helper 2016-08-15 11:02:38 +01:00
Mike Jolley 8d58febaf8 Merge branch 'master' into orders-crud-function-update
# Conflicts:
#	includes/class-wc-checkout.php
2016-08-09 14:03:06 +01:00
Mike Jolley 7861b76e9b Checkout handling
Also introduces add_item so you can add items to an order before the
order exists. Save at once is more efficient.
2016-08-09 14:02:40 +01:00
Mike Jolley 39b4831e95 get_id 2016-08-05 15:56:23 +01:00
Justin Shreve e3b1f6dbc9 A few fixes to customer CRUD:
* Implement some missing legacy functions
* Stop calling legacy functions from some pages
* Prevent extra meta from being deleted, unless requested by the CRUD (was causing problems with user/customer)
* Prevent save when loading from session AND logged out
2016-08-04 13:13:07 -07:00
Mike Jolley 1bc9da3e91 Merge branch 'master' into WC-CRUD
# Conflicts:
#	includes/class-wc-coupon.php
2016-08-04 12:10:04 +01:00
Mike Jolley d2754a0081 Simpler logic 2016-07-22 12:59:51 +01:00
terence1990 ca44110f3d Fix: ship_to_different_address 2016-07-20 14:26:14 +01: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 847dea6a2d docs/vars 2016-06-07 14:02:02 +01:00
Mike Jolley 730019ef18 scrutinizer best practice 2016-06-06 19:39:23 +01:00
Mike Jolley d9db29a035 Clean before json_encode to ensure values are strings
#10937 @thenbrent
2016-06-02 12:51:26 +01:00
Mike Jolley 2745d8721f Fix required field empty string check
@roykho
2016-05-31 18:02:15 +01:00
Mike Jolley 130933badf Merge pull request #10937 from thenbrent/cart_hash_tweak
Use print_r() to stringify cart session
2016-05-18 11:30:08 +01:00
Brent Shepherd 671ae32e58 Use print_r() to stringify cart session
Instead of json_encode(), because json_encode() takes types into
account, meaning numbers may end up being represented in the
encoded JSON as a string, e.g. "1" instead of 1, which can lead
to the md5() being different between requests.

This issue surfaces when creating a cart hash in a different
request to the request to pay for the order, because after adding
line items to the cart, the items quantity will be encoded with
json_encode() as an int, but when encoding them in a different
request, where they are coming from the database, they will be
encoded as a string.
2016-05-17 16:38:08 -07:00
Caleb Burks 75dfae2bf2 Return to shop if session expires and escape url. 2016-05-17 17:00:09 -05:00
Caleb Burks b8aea9aff0 Return to shop if session expires 2016-05-17 16:52:17 -05:00
Claudio Sanches 653f79b25b Fixed method retuning value in write context in includes/class-wc-checkout.php 2016-04-22 15:03:10 -03:00
Mike Jolley 6ae2fea045 Allow default address to be empty.
Fixes #10664
2016-04-18 14:51:39 +01:00
Mike Jolley bfadb22c7c Added notice when no methods exist 2016-03-31 18:54:33 +01:00
Mike Jolley bcd90ea1fb Fix error is default address values
Fixes #10606
2016-03-30 12:55:29 +01:00
Claudio Sanches ab90f54880 Better name for required field notices filter #10597 2016-03-24 09:06:17 -03:00
vasikgreif 565e259851 Add filter for required fields error message
Add the ability to change required fields error message, as discussed here: https://github.com/woothemes/woocommerce/pull/10591
2016-03-23 14:00:51 +01:00
Justin Shreve 4194aca904 Deprecated functions for old billing address functions 2016-03-17 13:40:30 -07:00
Justin Shreve e65ab6adec start transfering things to billing_ prefix 2016-03-17 12:39:29 -07: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
Mike Jolley ac122f13b9 Add context to checkout error messages
Closes #10540
2016-03-14 11:54:16 +00:00
JeroenSormani 67adc81814 Use real checkout fields for getting value 2016-02-12 13:51:08 +01:00
Mike Jolley a71a4de1b8 Add hash check when resuming order to detect changes.
@claudiosmweb
2016-02-05 09:41:25 +00:00
Mike Jolley 3938a43b44 Error handling when order cannot be retrieved.
Also renumbers error codes @claudiosmweb since 4xx usually reflects
client errors and may be misleading

Closes #10047
2016-01-11 10:47:10 +00:00
Max Rice 655089b162 Fix checkout result notice 2015-12-14 20:15:22 -05:00
Mike Jolley ef98a2d79c Compare type 2015-12-03 10:51:07 +00:00
Nicola Mustone c9da4f928a check if ABSPATH is defined 2015-11-06 10:22:19 +01:00
Mike Jolley 61e746730f wc_transaction_query function
Only uses transactions if enabled, or read uncommitted is supported
#9279
2015-11-04 14:11:40 +00:00
Claudio Sanches 5893875b0c Removed period for file headers 2015-11-03 11:53:50 -02:00
Claudio Sanches ee30b5b308 Fixed php docs standards 2015-11-03 11:31:20 -02:00
Claudio Sanches f64ea948f1 Replaced WC()->cart->ship_to_billing_address_only() to wc_ship_to_billing_address_only() 2015-10-28 16:03:24 -02:00
Mike Jolley 5ec400e514 Validate terms and conditions and improve templates 2015-10-06 12:33:45 +01:00
Claudio Sanches 9e41552342 Removed all "@return void" 2015-07-16 16:55:48 -03:00
Nathan Dawson f9e43b874c Resolve blank shipping information bug. Fixes #8235
Setting the 'woocommerce_cart_needs_shipping' filter to true means the shipping fields can be shown for virtual products. Whether to check shipping details should be based on whether they're shown and not whether the cart needs shipping.
2015-05-28 00:54:05 +01:00
Mike Jolley 0b58a840e2 Merge pull request #8168 from Nikker/master
Added method to check if cart is empty
2015-05-19 11:41:48 -04:00
Mike Jolley c1e3da8bcb Return real json response during checkout
Closes #8086
2015-05-15 13:51:51 +01:00
Nikki DelRosso 940c2369b0 Added method to check if cart is empty 2015-05-14 14:18:53 -07:00
Slobodan Manic f1927c8c40 Fixes WC_Checkout class name in header comment block 2015-04-27 21:57:16 +02:00
Mike Jolley c19f2e573e [2.3] Only automatically cancel orders created via checkout + allow post_parent to be set 2015-04-01 14:21:10 +01:00
Nicola Mustone d2af01df5b scrutinizer suggested tweaks 2015-03-27 16:15:40 +01:00
Mike Jolley 9bc1b09fc5 Undefined and dead variables in checkout class 2015-02-03 15:27:40 +00:00
Mike Jolley ca29deead9 Error codes for create order function
Closes #6952
2015-01-05 15:45:11 +00:00
Mike Jolley d1fd2b3612 Fix zero-rated tax display and ensure tax_id is not empty when saving taxes
Closes #7040
2015-01-05 15:13:49 +00:00
Juan Gadiel Rosado Colon de1466779b Fixes issue #6940
Check if the cart needs shipping before updating the user shipping address. This fixes the issue (#6940) of the shipping address being updated with the user billing address when purchasing a virtual product.
2014-12-20 20:29:09 -04:00
juangadiel ca1b9c334c Update class-wc-checkout.php fixes issue #6940
Check if the cart needs shipping before updating the user shipping address. This fixes the issue (#6940) of the shipping address being updated with the user billing address when purchasing a virtual product.
2014-12-12 17:18:16 -04:00
Mike Jolley eba8206540 Merge branch 'tax-coupon-handling' Closes #6830
Conflicts:
	assets/js/admin/meta-boxes-order.min.js
	includes/api/class-wc-api-coupons.php
	includes/class-wc-cart.php
	templates/checkout/review-order.php
2014-12-03 12:33:15 +00:00
Barry Kooij 4c2adfda62 Doc return type update. 2014-11-30 14:16:40 +01:00
Mike Jolley 3c82331a8b Store discount 'tax' to show discounts on prices including tax more accuratly
Also deprecated some functions named after having 2 levels of discounts.
2014-11-25 13:05:03 +00:00
Mike Jolley 4a8c541fbf Remove 'order' discounts from classes 2014-11-25 11:05:14 +00:00
Mike Jolley 591086eb9b Show notice when nonce isn't set. Fixes #6658
Wrap entire process_checkout method in try catch block to make errors
output correctly.
2014-10-31 15:03:53 +00:00
claudiosmweb 95605982ba Load billing and shipping address when get the values in checkout, closes #6590 2014-10-21 19:56:20 -02:00
Mike Jolley b09f1062da Merge pull request #6579 from woothemes/hotfix-unqiue-nonce-edit-details
[2.2] Make edit account details nonce unique to customer.
2014-10-21 13:17:36 +01:00
Gerhard 5c1ad63876 Propper verify nonce use on checkout 2014-10-21 09:44:53 +02:00
mgiulio 8567f2f1fd Fix comment 2014-10-15 14:51:15 +02:00
Mike Jolley 229d9135ef Prevent errors when country field is disabled
Fixes #6336
2014-09-22 13:23:31 +01:00
Ninos Ego 966f6f1bad createaccount value check 2014-09-21 20:45:42 +02:00
Mike Jolley 09a59a5e7e Prevent errors when adding 'zero-rated' tax on checkout. 2014-09-17 11:40:54 +01:00
claudiosmweb 48b5014036 fixed the filling of the shipping fields in WC_Checkout::create_order() 2014-09-11 17:31:57 -03:00
claudiosmweb 591d3dc3be added methods to dynamically get the address fields in WC_Checkout::create_order(), closes #6226 2014-09-11 17:12:17 -03:00
Barry Kooij 6655188f0b Changed use of get_order with wc_get_order 2014-08-15 14:29:21 +02:00
Mike Jolley c465c7235d Merge branch 'credit-notes'
Conflicts:
	includes/abstracts/abstract-wc-order.php
	includes/class-wc-order-factory.php
	includes/class-wc-post-types.php
	includes/wc-formatting-functions.php
	includes/wc-order-functions.php
2014-07-29 12:09:52 +01:00
claudiosmweb 93cf3c88bd initial implementation of order items taxes 2014-07-19 01:08:02 -03:00
Mike Jolley 755001f19b Use order types where required 2014-07-11 12:43:42 +01:00
Max Rice 10046cb8a1 Only print checkout notices when not reloading the checkout
Any notices that are added during checkout are immediately lost when
the checkout is forced to reload. This commit fixes that by only
printing the notices if the checkout is not being reloaded, otherwise
they’re printed on the page reload and properly displayed to the user.
2014-07-04 17:22:58 -04:00
Coen Jacobs 86a4add087 Merge remote-tracking branch 'upstream/master' into order-factory-refactor
Conflicts:
	includes/class-wc-order.php
2014-07-03 13:38:55 +02:00
JDGrimes 0d472cead5 Update copy-pasted docs
Fixes #5707
2014-06-19 15:43:05 -04:00
Mike Jolley cf3cca4c8e Merge branch 'feature-wc-create-order' 2014-06-18 16:07:29 +01:00
Mike Jolley f2ca5e76bd Use a transaction during checkout's order creation method to ensure all data gets set
Closes #5368
2014-06-18 16:03:46 +01:00
Coen Jacobs 89ea6c46ab Replace new WC_Order calls with get_order 2014-06-13 15:24:51 +02:00
Mike Jolley ef3e728855 Setters + wc_create_order + wc_update_order for #4169 2014-06-11 15:10:03 +01:00
Coen Jacobs 3ad8935b20 Removed ununsed global variables in local scopes 2014-06-08 22:33:11 +02:00
Mike Jolley 5d8a1e03c0 Merge pull request #5610 from ragulka/checkout-wc-clean-fix
Check if posted data is_array before doing wc_clean in checkout
2014-06-06 16:09:02 +01:00
Mike Jolley 09c4e1c07a Merge pull request #5614 from mkayan-wakefly/master
RE issue: #5613 - Typo in error message
2014-06-04 11:31:19 +01:00
mkayan-wakefly e6bfd393ac #5613 Typo in "don't ship to" error message
Typo in "don't ship to" country message: Issue #5613

Removing the word "to" from the error message indicating that a site doesn't ship to a certain country.

The function, shipping_to_prefix(), will handle insert the word "to".
Or, in the case of US, GB, and a few other countries, the words "to the".
2014-06-03 15:51:09 -04:00
mkayan-wakefly 32618c72b5 Update class-wc-checkout.php
Removing the word "to" from the error message indicating that a site doesn't ship to a certain country.

The function, shipping_to_prefix(), will handle insert the word "to".
Or, in the case of US, GB, and a few other countries, the words "to the".
2014-06-03 15:45:22 -04:00
Illimar Tambek 6302c0fb8a Check if posted data is_array before doing wc_clean in checkout 2014-06-03 14:16:19 +03:00
Mike Jolley f30e95663b Prefixes for queries 2014-06-03 11:29:01 +01:00
Mike Jolley 309f700283 has_status 2014-06-03 10:45:33 +01:00
Mike Jolley 5af1c5ba59 Update checkout functions 2014-05-30 16:16:57 +01:00
Mike Jolley 6e8e32256b Indentation 2014-05-20 11:08:09 +01:00
Mike Jolley b7efaea79f Tidyup brackets 2014-05-01 14:40:31 +01:00
mkayan-wakefly 84f531f848 Update class-wc-checkout.php
Recalculating the cart totals, in the event a user registers during checkout and in doing so qualifies for any discounts
2014-04-28 14:20:45 -04:00
Mike Jolley edf54ad0c8 Check order exists when resuming on checkout 2014-03-31 11:12:12 +01:00
Mike Jolley ed4f283627 Remove this from earlier as it breaks foreign chars 2014-03-19 15:32:07 +00:00
Mike Jolley 6355a0c54a esc_attr isn't suitable for meta keys 2014-03-19 12:58:39 +00:00
InoPlugs Webdesign a284d7fe69 Update class-wc-checkout.php
We need this hook to mark the fees our plugin (additional fee based on gateway) adds to the the order. Otherwise we can't tell if a fee was added by the user (Add fee button), by another plugin or by our plugin.
2014-03-11 19:48:51 +01:00
Mike Jolley f35c3708bb Rounding order_tax and order_shipping_tax restricts our ability to get an accurate tax_total after an order is made. Fixes some paypal rounding requests.
@coenjacobs
2014-02-20 15:41:08 +00:00
Mike Jolley 3be6664f05 Handle get_rate_code when no matching rate is found. Prevents notices. 2014-02-17 15:11:50 +00:00
Mike Jolley c0c21c8364 Unify textdomains Closes #4814 2014-02-17 13:14:45 +00:00
Mike Jolley 1a92bfeb39 If logged in, and no billing_email is set, set it. 2014-02-13 15:51:16 +00:00
Mike Jolley 5b5183bb35 The checkout's get_value method should return null if a value is not yet set - this allows the 'default' in woocommerce_form_field to be used as a fallback Closes #4746 2014-02-13 09:52:48 +00:00