Commit Graph

267 Commits

Author SHA1 Message Date
Mike Jolley 698db6c131 When custom attributes are created, they are decoded. Make the values match.
When we create/link variations, the entities are decoded.

When the variation form is posted, the entities are encoded (esc_attr).
This decodes them so they match correctly. Fixes #17820
2017-11-20 20:51:32 +00:00
Mike Jolley c92f61d6d4 Variation add to cart logic 2017-11-15 16:29:04 +00:00
Mike Jolley 9f059e17a9 Add helper function instead of calling method, and restore old method for bw compat 2017-11-08 15:07:00 +00:00
Gerhard Potgieter 7b9fb6c0cb Change nocache_headers hook firing (#17540)
* wp hook is too late to fire the nocache_headers filter, some caching plugins read it before that it seems.

* Create do_not_cache_page helper function and call that instead of nocache_headers

* Must add checks to prevent caching on certain pages as well

* Nothing to return
2017-11-08 14:27:30 +00:00
Mike Jolley 72c10bdd33 Remove email to login handling code 2017-10-20 09:21:07 -07:00
Gary Ritchie cc44e72e61 sanitize _POST 2017-09-22 20:52:38 -07:00
Gary Ritchie a25d3c8af4 Allow registration to redirect to same page
Fixes #16889
2017-09-21 20:50:45 -07:00
Claudiu Lodromanean abc43c473e Merge pull request #16877 from nicoladj77/patch-1
Check for nonce when Cancelling Order.
2017-09-21 10:27:12 -07:00
Nicola Peluchetti 74bea6ec7d Check for nonce when Cancelling Order. 2017-09-21 03:08:06 +03:00
Mike Jolley c91cd01379 remove spam field
Closes #16862
2017-09-20 11:51:33 +01:00
Mike Jolley a8a33c8f0d Merge pull request #16717 from woocommerce/refactore/wc_maybe_define_constant
Use wc_maybe_define_constant() in all places
2017-09-07 12:16:13 +01:00
Claudio Sanches f8f9c7b04c Merge branch 'master' into add_to_cart_variation 2017-09-06 14:33:57 -03:00
Mike Jolley 7fefc5f5b5 Revise logic to deal with variation IDs 2017-09-06 17:05:21 +01:00
Mike Jolley 6fee915fdb phpcs 2017-09-06 16:47:48 +01:00
Mike Jolley 6ff78e29fe Fix conditonal on cart redirect
Closes #16724
2017-09-06 13:44:30 +01:00
Claudio Sanches a13158a75a Apply wc_maybe_define_constant() in all places 2017-09-05 16:52:39 -03:00
James Golovich 562912a27a Allow variable products to be added via simple HTTP Request
Matches existing behavior of simple products that allow adding via a URL link.
2017-09-05 09:12:53 -07:00
claudiulodro b37f7c8c23 Prevent reordering variable products if no variation set. 2017-08-31 09:54:14 -07:00
Umangvaghela 5794a9cb34 Update condition 2017-08-22 15:23:34 +05:30
Claudio Sanches 53ea3c8b96 Merge branch 'master' into fix/16347 2017-08-07 16:36:36 -03:00
Mike Jolley d46988b6a6 Improve add payment method logic 2017-08-07 12:39:16 +01:00
Mike Jolley e2839d3c09 Add nocache_headers to early update actions 2017-08-07 11:02:02 +01:00
Mike Jolley 4a0ea16eda Defer re-calc when adding grouped products to cart
Closes #16235
2017-08-01 13:36:46 +02: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
Mike Jolley ba2063efa4 Merge pull request #15961 from electrokit/order_again_merge_option
Feature: Add option for merging when using 'Order Again'
2017-07-11 11:23:33 +01:00
Gustaf Folin ead5f208fa Add hook around empty_cart() 2017-07-10 12:13:38 +02:00
Claudio Sanches 7e7194ce47 Merge pull request #15974 from woocommerce/fix/15965
Update customer with CRUD and set session data at the same time.
2017-07-05 15:58:21 -03:00
Mike Jolley 57ee9f58cf Update customer with CRUD and set session data at the same time.
Fixes #15965
2017-07-05 12:21:46 +01:00
Claudio Sanches ee87024d82 Merge pull request #15956 from woocommerce/add-cart-readdition-notice
Use ajax when restoring an item in the cart
2017-07-04 16:35:23 -03:00
Mike Jolley 6f6f410ce1 Use wc_get_raw_referer 2017-07-04 12:05:21 +01:00
Caleb Burks 2d52e6e398 Use ajax when restoring an item in the cart 2017-07-04 04:01:59 -05:00
Mike Jolley f9d1bbba73 Use wp_get_raw_referer in my account redirect, and validate all falling back to my account
Fixes #15911
Closes #15912
2017-07-03 13:30:32 +01:00
Mike Jolley 598982ef70 Standards 2017-06-13 13:34:46 +01:00
nishitlangaliya efea26d8fa Fixed Login Issue when the username is an email ref #15577 2017-06-13 16:09:54 +05:30
Mike Jolley bea7492e23 Validate all possible values for variation add to cart
Closes #15481
2017-06-07 11:13:28 +01:00
claudiulodro 05f3283c75 Remove debug 2017-05-05 09:18:15 -07:00
claudiulodro afe1a0dd21 Use term name for tax-based attribute reorder 2017-05-05 09:15:27 -07:00
Claudio Sanches e945db9464 Fixed relative URL in process lost password
Closes #14701
2017-04-28 18:29:58 -03:00
Mike Jolley aacb01d1e7 Merge branch 'pr/13503'
# Conflicts:
#	assets/css/twenty-seventeen.css
#	assets/css/woocommerce-layout.css
#	assets/css/woocommerce-layout.scss
#	assets/css/woocommerce.css
2017-04-27 12:46:05 +01:00
Manos Psychogyiopoulos e18d9741a4 Fix non-existing stdClass props 2017-04-06 17:42:51 +03:00
David Anderson 57ab34f13e Remove redundant / awkward empty password check
WooCommerce here checks that the password is not empty. This check is redundant, because it is already performed by wp_authenticate_email_password() (which is invoked, eventually, by the call in WC to wp_signon() ). Moreover, it is harmful, because it prevents extension of the login form. For example, in my use case, I have added a code to be scanned by a smartphone app as an alternative to the password. When the code is scanned, a password is required.

This extra/redundant check for an empty password on the WooCommerce form prevents my already-working-on-the-standard-wp-login-form code from working here, and there's no way to work around it that isn't hacky/ugly (e.g. direct manipulation of $_POST).
2017-03-21 23:21:43 +00:00
Mike Jolley 5440a45587 Remove add to cart from referer
Fixes #13618
2017-03-16 11:18:15 +00:00
Aristeides Stathopoulos 10ffc92a73 Inline control structures are not allowed 2017-03-07 22:24:24 +02:00
Mike Jolley 2b5bdaa15d Remove unused variable 2017-03-03 13:31:27 +00:00
Mike Jolley 09de226bd2 Fix error checking on endpoints to prevent fatal errors
Fixes #13453
2017-03-03 13:18:07 +00:00
Claudiu Lodromanean 078032f623 Handle deleted items in re-order 2017-02-20 09:29:19 -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 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 f27499b501 i18n Improvements (#12078)
* use %s in translations strings

* merge simmilar error strings

* i18n: use sprintf() in translation strings to make them easier to understand for translators

* i18n: remove sprintf() function from translation string with unused parameter

* i18n: move colons and brackets into the translation strings

* revert comit addaa5d

* Fix broken sprintf()

* i18n: move colons into the translation strings on error messages

* Fix Travis-CI Error: operator must be surrounded by a single space
2016-10-24 08:33:32 +01:00
Mike Jolley 9400962c00 [2.6] Fix account email check
Fixes #12126
2016-10-19 12:45:50 +01:00