Commit Graph

21077 Commits

Author SHA1 Message Date
Christopher Allford 6780e3e07d Added appropriate postcode formatting for Puerto Rico 2020-12-03 11:57:30 -08:00
Rodrigo Primo 39b0d83b4d
Merge pull request #28358 from szepeviktor/patch-1
Fix types in WC_Payment_Gateway
2020-12-03 15:51:50 -03:00
Rodrigo Primo 076d0b7373
Merge pull request #28415 from zzap/patch-3
Make City and Postcode mandatory fields for Serbia
2020-12-02 11:42:24 -03:00
Néstor Soriano af3077bca9
Merge pull request #28467 from woocommerce/fix/28428
Update `lostpassword_post` action and add missing parameter
2020-12-02 15:31:21 +01:00
Néstor Soriano 43f735d0f8
Merge pull request #27558 from PlexusLLC/add_before_set_stock_action 2020-12-02 15:21:05 +01:00
Philipp Bammes c84f4600e3
Simplify `reload_checkout` expression 2020-12-02 15:01:07 +01:00
Rodrigo Primo de6d55eef9 Use single quotes inside MySQL query to avoid issues with ANSI_QUOTES
This commit replaces double quotes with single quotes inside a MySQL query to avoid a syntax error when the SQL mode ANSI_QUOTES is enabled in MySQL. When this mode is enabled, MySQL treats double quotes as identifiers (like the backtick character) instead of as string delimiters. Before this change, sites running with this mode enabled wouldn't be able to add products to orders created manually in the admin as the modified query would fail (other places that also use product search including variations would fail as well). The commit that introduced this issue shipped in WC 4.5.0 (see https://github.com/woocommerce/woocommerce/pull/27171).
2020-12-02 10:37:46 -03:00
Rodrigo Primo ba538147c1 Update `lostpassword_post` action and add missing parameter
`lostpassword_post` is a WP action that is duplicated in WooCommerce to replicate the functionality to retrieve user password in the 'My Account' pages. WP recently added the variable `$user_data` as a second parameter to this action (a6cecef42f). This commit simply copies this change to the version of the action that we maintain. Similar to what was done in 1a99235dc8 when a first parameter as added to the action in WP and we had to do the same in WC core.
2020-12-02 09:52:58 -03:00
pjv b4fdf17215
Update includes/data-stores/class-wc-product-data-store-cpt.php
Co-authored-by: Néstor Soriano <konamiman@konamiman.com>
2020-12-02 06:49:56 -06:00
Christopher Allford d59b47903f Fixed Puerto Rico address localization
* Renamed "City" to "Municipality"
* Made "State" not required and hidden
* Added ZIP code validation
2020-12-01 16:24:58 -08:00
Roy Ho acd78d43f6
Merge pull request #27451 from haydenw/fix-27339
Fix #27339
2020-12-01 13:28:54 -08:00
Roy Ho f698fbdeee
Merge pull request #28403 from bordoni/issue/28291
Prevent non-numeric values from throwing a Warning on PHP 7.4+
2020-12-01 10:43:13 -08:00
Gustavo Bordoni d6d68ed9cd
Remove white space. 2020-12-01 13:16:53 -05:00
Roy Ho 78e8fb00d2
Merge pull request #28440 from mathiasdb/patch-1
Update wc-formatting-functions.php
2020-11-30 07:37:44 -08:00
Roy Ho 89efae43a1
Merge pull request #28416 from woocommerce/fix/issue-27154
Fix/issue 27154
2020-11-30 06:14:15 -08:00
Roy Ho d795ecb6b9
Merge pull request #28351 from OlegApanovich/fix/27923
Fix toggle chevron issue in admin edit product data attribute section
2020-11-27 05:42:34 -08:00
OlegApanovich 26dae12279 Fix toggle chevron issue in admin edit product data attribute section #27923
After chevron clicking on attribute section complete edit product data section toggled insted cliackig area.
Key point issue is missing 'postbox' class of wordpress postbox.js library for a attribute block that we try to toggle.
2020-11-27 11:50:44 +02:00
Milana Cap 5fae30bea0
Make City and Postcode mandatory fields for Serbia
As these fields were mandatory for Serbia from the beginning, making them optional by default is causing shop owners additional effort to set them back to mandatory. This PR is making them mandatory by default.

Fixes #28366
2020-11-25 22:36:44 +01:00
roykho 3981377809
Strip the tags from product description on all other select2 fields that performs searches 2020-11-25 13:32:50 -08:00
roykho 9f12b34237
Fix unwanted html tags showing when searching products in select2 closes #27154 2020-11-25 13:15:56 -08:00
Gustavo Bordoni 2909be0777
Prevent non-numeric values from throwing a Warning on PHP 7.4+
Resolves #28291
2020-11-25 00:10:04 -05:00
Gustavo Bordoni 05c7f336bc
Use %1$s instead of %s on regen description
Resolve #28297
2020-11-24 23:56:36 -05:00
Christopher Allford 686872a237
Merge pull request #28134 from woocommerce/add/2021-compat
Add support for Twenty Twenty-One theme
2020-11-24 16:26:34 -08:00
Claudio Sanches 918750fffb Validate variation ID while adding products to the cart 2020-11-24 19:32:58 -03:00
abhishek-pokhriyal 9abbd42d69 Remove function_exists check for determine_locale 2020-11-24 15:37:13 +05:30
Claudio Sanches 1547372f62
Merge pull request #28377 from woocommerce/fix/28254
Map all possible taxonomy templates
2020-11-23 21:40:48 -03:00
Claudio Sanches 76c0a2ce8e
Merge pull request #28378 from woocommerce/fix/28256
Display *-product_<cat|tag>.php template overrides in Status page
2020-11-23 21:19:01 -03:00
Claudio Sanches cba0cc4799
Revert "Load product category content with content-product-cat.php" 2020-11-23 20:52:27 -03:00
Claudio Sanches e8b2a9adab Display *-product_<cat|tag> template overrides in Status page 2020-11-23 20:12:38 -03:00
Claudio Sanches 4418e79d0a Map all possible taxonomy templates 2020-11-23 19:29:30 -03:00
Roy Ho 36108a2c83
Merge pull request #28322 from aheckler/patch-1
Return default date and time formats if options are empty
2020-11-23 13:52:00 -08:00
Viktor Szépe ac3acc3df0
Fix CS 2020-11-20 18:53:39 +01:00
Viktor Szépe 996fb293a8
Fix types in WC_Payment_Gateway 2020-11-20 18:37:45 +01:00
Mathias De Beyser 5f14472e5a
Update wc-formatting-functions.php
Issue
When changing the "low stock amount" on product level, a.k.a. setting a "low stock amount" for a specific product. The message on the single product page does not change from "%s in stock" to "Only %s left in stock". It only checks the global setting "low stock quantity" defined in WooCommerce > Products > Stock.
2020-11-19 21:29:57 +01:00
Rodrigo Primo 1fca8bb1b1 Replaces a few more instances of jQuery.fn.click() event shorthand
This commit replaces a few more instances of jQuery.fn.click() event shorthand that were missed in the previous commit. For more information see the commit message for 8ebead165e.
2020-11-18 16:31:17 -03:00
Rodrigo Primo ee31c791af Fix PHPCS violations 2020-11-18 15:33:36 -03:00
Rodrigo Primo 8ebead165e Replace usages of depracted jQuery.fn.click() event shorthand
This commit replaces all instances in WooCommerce codebase (except included third-party libraries) where jQuery.fn.click( handler ) event shorthand was used. This shorthand was deprecated in jQuery 3.3 (see https://github.com/jquery/jquery/issues/3214). The jQuery documentation was not updated yet (see https://github.com/jquery/jquery-migrate/issues/288 and https://github.com/jquery/api.jquery.com/issues/972).

jQuery.click() was not deprecated and so it was not replaced.
2020-11-18 15:27:46 -03:00
Rodrigo Primo 246710fce8 Merge branch 'master' into fix/28232 2020-11-17 14:47:33 -03:00
Adam Heckler b0580f0eb4
More code standards fixes 2020-11-17 12:31:17 -05:00
Adam Heckler c3487785d5
Code standards fixes 2020-11-17 10:54:53 -05:00
Adam Heckler 97eea98a23
Return default date/time formats if blank
Fixes #28319
2020-11-17 10:21:20 -05:00
Rodrigo Primo 0e319f3293
Merge pull request #28151 from woocommerce/add/requires-php-support
Add requires_php support
2020-11-17 10:39:12 -03:00
Christopher Allford 52354c95cd
Merge pull request #28277 from woocommerce/add/prepare-4.9
Prepared branch for 4.9
2020-11-16 08:42:29 -08:00
Jonathan Sadowski 67b3d1c5fb Fix stretched product admin images 2020-11-14 10:27:42 -05:00
Vedanshu Jain ae163eb28b
Merge pull request #27734 from woocommerce/enhancement/optimize-wc-order
Optimize function `wc_get_orders` by priming caches beforehand
2020-11-14 12:37:44 +05:30
Claudio Sanches f8f1417d72 Fixed function name 2020-11-13 17:57:29 -03:00
Claudio Sanches b506627528 Keep WC_Checkout::process_checkout() backwards compatible 2020-11-13 17:49:27 -03:00
Renatho De Carli Rosa c2b066edcb Fix requires_php check 2020-11-13 16:47:26 -03:00
Renatho De Carli Rosa 5cbcdcd92c Add requires_php support
With this check, we're able to avoid updates when the PHP version
is not supported
2020-11-13 16:47:26 -03:00
Christopher Allford bb38673dad Prepared branch for 4.9 2020-11-13 09:38:22 -08:00
Jeffrey Pearce bf8662bf67 Adds structure for Twenty Twenty One default theme support. Issue #27766
- New class class-wc-twenty-twenty-one.php
- New stylesheet twenty-twenty-one.scss
- Updates checks for default themes in theme_support_includes() and wc_is_wp_default_theme_active()
2020-11-16 06:41:39 -06:00
Vedanshu Jain 13f429e80d
Merge pull request #28102 from woocommerce/fix/28100
Exclude user table columns as well while setting metadata props
2020-11-13 13:50:02 +05:30
Christopher Allford 03f65478f2
Merge pull request #28249 from woocommerce/add/composer-2
Update Composer to v2 (includes woocommerce-blocks 3.8.0 and woocommerce-admin 1.7.0)
2020-11-12 21:16:51 -08:00
Christopher Allford 2516414eb6
Merge pull request #28229 from woocommerce/add/wc-pay-extensions-screen
Add WooCommerce Payments banner to extensions screen
2020-11-12 14:21:01 -08:00
Christopher Allford 30d2e278b9 Replaced the deprecated `WC_Admin_Note` class 2020-11-12 13:26:30 -08:00
vedanshujain f1742e2298 Exclude user table columns as well
This is to prevent overwriting of original column data by a meta data if meta_key name is same as a column.
2020-11-13 01:02:15 +05:30
vedanshujain 00b7b40c37 Add method to get rates based on order.
This method will prioritize getting rates from billing/shipping address instead of `WC()->customer` which in irrevelant in context of editing order from admin screen.
2020-11-12 22:58:05 +05:30
vedanshujain 24a69fd249 Add return param comment 2020-11-12 22:58:05 +05:30
vedanshujain 74de152535 Use tax location from order while computing tax in discount.
We were not passing tax location while computing discount in orders, hence it was defaulting to shop's base address resulting in incorrect tax calculation.

This commit refactors `get_rates` method into another method that allows getting rates from location directly.
2020-11-12 22:57:56 +05:30
Rodrigo Primo 7659b984dc
Merge pull request #28058 from woocommerce/fix/27937
Replaces some jQuery deprecated code
2020-11-12 14:00:39 -03:00
roykho 5597f74e81
Merge branch 'master' into fix/issue-27972 2020-11-12 06:21:52 -08:00
vedanshujain fdceac9866 Delete refund cache for parent order when its deleted. 2020-11-12 10:01:15 +05:30
Claudio Sanches 6e2086e3eb Check if $product exists before using
And removed some PHP variables.
2020-11-11 19:55:59 -03:00
Claudio Sanches cb727736c0 Fixed placeholders and translators style 2020-11-11 19:47:03 -03:00
Claudio Sanches d77fc005d2
Merge pull request #28233 from woocommerce/fix/template-names
Load product category content with content-product-cat.php
2020-11-11 19:31:08 -03:00
Claudio Sanches 404bdbff48
Merge pull request #28242 from woocommerce/update/replace-usage-of-depracted-function
Replace call to deprecated woocommerce_reset_loop()
2020-11-11 19:30:02 -03:00
roykho 134786ada8 Fix stock reducing incorrect amount when order item is deleted after a refund closes #27504 2020-11-11 15:28:06 -06:00
Rodrigo Primo 2399668a05 Simplify code per reviewer suggestion
See https://github.com/woocommerce/woocommerce/pull/28058#pullrequestreview-519096925
2020-11-11 16:09:33 -03:00
Roy Ho e0204e04e4
Merge pull request #28241 from woocommerce/fix/27566
Add shipping, tax and fee lines to refund response for better information in refund REST API.
2020-11-11 08:11:56 -08:00
Rodrigo Primo 5d1435836d Replace call to deprecated woocommerce_reset_loop()
This commit simply replaces the single call in WooCommerce core codebase to the deprecated woocommerce_reset_loop() function with its replacement wc_reset_loop().
2020-11-11 10:26:56 -03:00
vedanshujain 62ae94d93e Add shipping, tax and fee lines to refund response for better information. 2020-11-11 18:47:48 +05:30
Claudio Sanches f1f2c3cfff Load product category content with content-product-cat.php 2020-11-10 20:54:59 -03:00
Gerhard Potgieter 6832dc96a4 Make wc shipping button also purple 2020-11-10 19:43:11 +02:00
Gerhard Potgieter 3c1352d36c Remember to break 2020-11-10 19:36:34 +02:00
Gerhard Potgieter caf2ea99fa Shorten title as per feedback 2020-11-10 19:26:44 +02:00
Gerhard Potgieter a0812d5009 Remove redirect as it does not work with the background installer 2020-11-10 18:28:47 +02:00
Gerhard Potgieter b5fb7c0104 Add purple woo button 2020-11-10 18:26:59 +02:00
Tom Hopcraft 296d912151
[typo] - fix 2020-11-10 15:46:20 +00:00
Gerhard Potgieter b5a4a1597f Fix current section check, phpcs linting errors. 2020-11-10 16:48:11 +02:00
Roy Ho 4954c17e89
Merge pull request #28177 from davefx/patch-11
Optimizing memory usage
2020-11-10 06:13:03 -08:00
vedanshujain 6ed8ffe850 Addressed PR review comments #27734 2020-11-10 14:23:45 +05:30
vedanshujain 3dd80d6d65 Add polyfill for wp_cache_get_multiple 2020-11-10 14:23:44 +05:30
vedanshujain 0b29232fe3 Prime caches only when needed. 2020-11-10 14:23:44 +05:30
vedanshujain eeb8851717 Minor fixups for PR #27734 2020-11-10 14:23:44 +05:30
vedanshujain 4599884dd0 Fix failing tests. 2020-11-10 14:23:43 +05:30
vedanshujain bb1e2f44ae Removed/reverted more unnecessary changes. 2020-11-10 14:23:43 +05:30
vedanshujain 12f69c2d2d Only set cache when neccessary.
This creates a tradeoff in optimizing repeated queries vs on off queries.

Another tradeoff is making more cache get calls as opposed to more SQL calls.
2020-11-10 14:23:43 +05:30
vedanshujain a5fb3178f0 Drop CacheHydration class and do it directly.
Primary reason for dropping the cache hydration is that seems like we can acheive the same results without it, so no need to add this additional complexity to our code.
2020-11-10 14:23:43 +05:30
vedanshujain 975783b2b4 Also support methods in case direct accessing key is deprecated.
For example, in case of refunds, directly accessing parent_id is deprecated, we should use get_parent_id instead.
2020-11-10 14:23:42 +05:30
vedanshujain 8ab9fd26ef Set key before trying to add values 2020-11-10 14:23:42 +05:30
vedanshujain d502407145 Use CacheHydration to speed up fetching Order data.
This also primes various caches by fetching data well in advance, this would have been individual SQL queries otherwise.
2020-11-10 14:23:42 +05:30
vedanshujain 44a226941d Refactor `read_meta` into filter_raw_data for better re-usability. 2020-11-10 14:23:41 +05:30
vedanshujain 4f514e79ad Add support to prime refund cache in wc_order class.
Fetching refunds call is an expensive query, so priming the cache where possible could be beneficial for better performance.
2020-11-10 14:23:41 +05:30
vedanshujain 9bd92205b0 Add support to use `cache_hydration` in wc_get_order.
This can be used to pre-load expensive to compute caches.
2020-11-10 14:23:40 +05:30
vedanshujain e9d97d97e7 Support for order_item to be init from obj with `order_item_id` prop.
Also set metadata cache if metadata prop is present in initial item.
2020-11-10 14:23:40 +05:30
vedanshujain 22212c7065 Add support for fetching order using a hydration object.
It will ultimately be on the datastore to effectively use the hydration object.
2020-11-10 14:23:40 +05:30
vedanshujain 4efc22f7d5 Refactor method to get individual class names for order and order-items.
This is done so that methods that fetch class names can be re-used.
2020-11-10 14:23:39 +05:30
vedanshujain f5d0275786 Refactor methods to break down into smaller units for re-usability.
This commit breaks down `read_meta_data` so that individual methods for cache key and setting raw meta data can be reused.

Also adds set_meta_data_from_raw_data to initialize metadata from manual cache.
2020-11-10 14:23:39 +05:30
Gerhard Potgieter 692dfa7fec Update banner copy 2020-11-09 15:21:38 +02:00
Gerhard Potgieter 8af8554770 Add functionality to handle woocommerce payments install 2020-11-09 14:48:49 +02:00
Gerhard Potgieter 7d33488d6b WooCommerce Services to WooCommerce Shipping 2020-11-09 14:22:20 +02:00
Gerhard Potgieter 78336781d1 Remember output_ in function name 2020-11-09 14:20:24 +02:00
Gerhard Potgieter b1d9363918 Add wc payments to extensions addons page. 2020-11-09 14:19:11 +02:00
Christopher Allford e711a447fe Fixed order account creation 2020-11-04 16:56:32 -03:00
Néstor Soriano 6e5cc0c2f2
Merge pull request #28052 from woocommerce/php8_tighten_non-strict_date_comparison
PHP 8.0 - Use strict comparison to compare post dates
2020-11-04 15:23:16 +01:00
Matt Harrison ebb8ced803
Make next webhook not return a date when the webhook is already running.
A potential fix for #26851

This does change the get_next functionality slightly but if the hook is
already running then the next state should trigger a new one anyway.
2020-11-04 09:10:28 -05:00
Néstor Soriano 09e066fc6e
Update includes/data-stores/class-wc-data-store-wp.php
Update `@since` in new function to 4.8.0
2020-11-04 13:09:52 +01:00
David Marín c3ba17ae71
Fixing spaces in empty lines 2020-11-03 13:53:19 +01:00
David Marín 9c1de7ca96
Optimizing memory usage
Removing the potential undesired retrieval of hundreds or thousands of unreadable WC_Product objects into memory just to filter them out immediately.
This change prevented some out-of-memory situations in our site.
2020-11-03 11:34:34 +01:00
James Allan 82b68b4914 Use strict comparison to compare post dates
With PHP 8.0, non-strict comparisons between integers and strings containing
non-numeric characters are being tightened. This affects comparisons like:

0 < '0000-00-00 00:00:00'

PHP 8.0 that equates to true whereas prior to 8.0 it would be false.

More details of this change can be found at: https://wiki.php.net/rfc/string_to_number_comparison
2020-11-02 11:10:30 +10:00
jozeflambrecht 6c86950075
Update class-wc-validation.php
Add support for validation BE postcodes

https://github.com/woocommerce/woocommerce/issues/28144
2020-10-29 19:11:36 -04:00
Rodrigo Primo e38d0dfdb1
Merge pull request #28005 from woocommerce/fix/issue-27945
Replace jQuery.ready function with recommended way since jQuery 3.0 c…
2020-10-29 18:06:02 -03:00
Rodrigo Primo b612c4f041
Merge pull request #28064 from woocommerce/fix/27087
Improves i18n of string displayed during checkout
2020-10-29 17:55:02 -03:00
Néstor Soriano 604958c4a8
Merge pull request #28103 from woocommerce/fix/issue-27756
Fix/issue 27756
2020-10-28 10:06:55 +01:00
Roy Ho 5007d17596
Merge pull request #27514 from helgatheviking/has_options
Add woocommerce_product_has_options filter to has_options() method
2020-10-27 09:48:26 -07:00
roykho 4abdf2d78b
Remove underline tag and allow themes to style to their liking 2020-10-27 09:10:13 -07:00
Roy Ho 99fcafee8f
Merge pull request #28027 from woocommerce/pp_response_check_for_cart
Check the cart exists before emptying it after handling PayPal response
2020-10-27 08:54:56 -07:00
roykho 4c079ea99e
Update SSR version to check against major versions only closes #27972 2020-10-27 08:16:35 -07:00
roykho 3b022be68b
Prevent variable product from adding to cart when no variations are selected closes #27756 2020-10-26 11:21:28 -07:00
Shiki 94ecfcab34 Orders API: Add parent_name to schema 2020-10-26 13:28:04 -03:00
Shiki 48d595ed71 Orders API: Reorganize and place parent_name in a separate section 2020-10-26 13:28:04 -03:00
Shiki 52739ba9ee Orders API: Add parent_name to line_items for variable products 2020-10-26 13:28:04 -03:00
Claudio Sanches 19e4c7ac7c
Merge pull request #28094 from woocommerce/revert/27289
Revert changes introduced in #27289
2020-10-26 12:39:11 -03:00
Roy Ho c96a642e8a
Merge pull request #28067 from woocommerce/fix/27529
Fix: use the correct parameter when calling get_avatar()
2020-10-26 07:46:51 -07:00
Claudio Sanches c5ff759d61 Revert changes introduced in #27289 2020-10-26 10:26:29 -03:00
Rodrigo Primo 80c3f343a4
Merge pull request #28062 from PlexusLLC/fix-sorting-capability
Fix incorrect capability for product sorting link
2020-10-24 15:10:00 -03:00
Rodrigo Primo 1b40e13f99
Merge pull request #27856 from sudoshreyansh/fix/27831
Fixed update term message. Issue: #27831
2020-10-24 14:57:06 -03:00
Rodrigo Primo 92153ac3b3
Merge pull request #27723 from alexstewartja/master
Introduced fine-grained cultural adaptation for Jamaican-based WooCommerce stores
2020-10-24 14:44:07 -03:00
Rodrigo Primo 3ed300a4aa
Merge pull request #27607 from wpdesk/bugfix/cart-weight-float
Fixed cart weight return type.
2020-10-24 14:12:03 -03:00
Claudio Sanches 1427a39be1
Merge pull request #28074 from shahlin/master
Minor docblock grammar/typo/casing fixes
2020-10-23 17:33:41 -03:00
Roy Ho ecd08277f9
Merge pull request #28070 from NicholasMacedo/patch-1
Update class-wc-product-variable.php
2020-10-23 13:12:04 -07:00
pjv 49c85e9c5e Merge branch 'master' into add_before_set_stock_action 2020-10-23 13:59:02 -05:00
Peter Fabian 068cd6cd4a Delay the registration of data exporters and erasers.
This is because i18n is not initialized yet and incorrect translations could be loaded.
2020-10-23 19:02:10 +02:00
Shahlin Ibrahim e06466b2b7 Minor docblock grammar/typo/casing fixes 2020-10-23 17:27:39 +04:00
Nicholas Macedo 815fd01a98
Update class-wc-product-variable.php
Fix the typo on line 416 according to Issue  #28066
2020-10-22 20:37:36 -04:00
Rodrigo Primo 09faf8ba84 Fix: use the correct parameter when calling get_avatar()
`WC_Admin_Dashboard::recent_reviews()` was calling `get_avatar()` passing `$comment->comment_author` which is not one of the list of parameters that the function accepts to get the avatar. As a result, the widget that displays the recent reviews in the admin dashboard was never displaying the avatar of the user that left the review. This commit fixes this issue by passing `$comment->comment_email` instead. I opted to use `$comment->comment_author` as it should be available for reviews left both by authenticated and anonymous users and because getting the comment object wouldn't be so simple (either we need to perform an extra query for each review or deprecate the `woocommerce_report_recent_reviews_query_from` filter).
2020-10-22 17:43:59 -03:00
Rodrigo Primo e91872c1a8 PHPCS fixes 2020-10-22 17:34:47 -03:00
Rodrigo Primo 6bde9fd8a5 Replace WPCS deprecated syntax
Using the WPCS native whitelist comments is deprecated. So this PR just replaces all instances of `// WPCS: XSS ok.` found in `includes/wc-cart-functions.php` with the PHPCS native "// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped". I found this while working on another issue in the same file.
2020-10-22 16:03:34 -03:00
Rodrigo Primo 4e5fb5724c Improves i18n of string displayed during checkout
This commit improves the i18n of a string displayed during checkout showing the total amount of the order when the store is configured to display prices inclusive of taxes.

Before string concatenation was used to build the final string which is almost always a bad practice from i18n point of view (https://codex.wordpress.org/I18n_for_WordPress_Developers#Best_Practices). This commit uses sprintf() and two separate strings to make translation easier.
2020-10-22 15:38:07 -03:00
pjv f03bfb85da Fix incorrect capability for product sorting link
Fixes #28049
2020-10-22 13:03:35 -05:00
Rodrigo Primo 05cc0882e5 Replace deprecated jQuery code in includes/emails/class-wc-email.php
This commit replaces a call to the now deprecated jQuery.fn.toggle(handler, handler...) (https://api.jquery.com/toggle-event/) with a jQuery.click(). The deprecated call was used in the page where admins can edit e-mail templates (example: wp-admin/admin.php?page=wc-settings&tab=email&section=wc_email_customer_on_hold_order) to show or hide the contents of the template and at the same time change the label of the button. We are now using jQuery.click() with a if statement inside to decide which label to use.
2020-10-22 09:28:06 -03:00
James Allan b1a2fa01a6 Check the cart exists before emptying it after PayPal response 2020-10-21 10:32:37 +10:00
Claudio Sanches f7ecbbeb35 Prepare default branch to 4.8 2020-10-20 15:20:52 -03:00
Claudio Sanches 631c06020c
Merge pull request #27800 from gbiorczyk/fix/field-label-escaping
Escaping output for field label
2020-10-19 20:26:38 -03:00
roykho 8c73c5f2f8
Replace jQuery.ready function with recommended way since jQuery 3.0 closes #27945 2020-10-19 06:47:55 -07:00
Rodrigo Primo 0a81188e42
Merge pull request #27987 from woocommerce/php8/fix-required-parameters-after-optional-take-2
[PHP 8] Convert optional-before-required parameters into required parameters (take 2)
2020-10-17 09:42:20 -03:00
roykho e8bcd464db
Update escape based on suggestion 2020-10-16 06:00:34 -07:00
Nestor Soriano 63ced34e2d Convert optional-before-required arguments to required (take 2)
In PHP 8 required parameters after optional parameters in
function/method signatures trigger a deprecation notice. These type
of parameters are pointless since a value needs to always be
provided for them anyway, so they are actually de-facto required.

This commit converts all these not-so-optional parameters into
truly required parameters by removing their default values.
2020-10-16 13:08:31 +02:00
roykho 800cbdbc7e
Add missing escapes 2020-10-15 16:31:56 -07:00
roykho ace411aacd
Fix billing email being parsed as a URL link when beginning of email contains www closes #25099 2020-10-15 14:25:03 -07:00
Rodrigo Primo 9155a78043
Merge pull request #27858 from Rowayda-Khayri/fixes
Add punctuation mark to function's docblock
2020-10-15 15:09:21 -03:00
Néstor Soriano e4a109f0d1
Merge pull request #27763 from woocommerce/fix/27445
Remove protection as we already diff and update only if needed.
2020-10-15 10:01:34 +02:00
Claudio Sanches e34681dbb4
Merge pull request #27696 from woocommerce/fix/version-race-conditions
Fix some race conditions in WC_Install
2020-10-14 20:18:47 -03:00
Claudio Sanches d211f6ee5c
Merge pull request #27516 from KoolPal/patch-2
Renamed Postcode / ZIP to Pin code & renamed State / County to State for India
2020-10-14 19:51:46 -03:00
Claudio Sanches 0b41aff81b
Merge pull request #27546 from KoolPal/patch-1
Updated - Added postcode validation for India
2020-10-14 19:25:32 -03:00
Claudio Sanches e581ffce27
Fixed missing "break" 2020-10-14 19:22:19 -03:00
Claudio Sanches 136c6e2916
Merge pull request #27779 from zzap/patch-2
Update properties for Serbia.
2020-10-14 18:09:56 -03:00
Claudio Sanches 23fe4f71bb
Merge pull request #27842 from sudoshreyansh/fix/27839
Fixed </strong> closing tag position. Issue: #27839
2020-10-14 18:06:10 -03:00
Claudio Sanches 537ec5d0e9
Merge pull request #27893 from dominic-ks/update-needs-payment-check
issue #24631 - Updated needs payment check to use order
2020-10-14 16:29:25 -03:00
Claudio Sanches 27e4288eab
Merge pull request #27934 from woocommerce/remove_get_product_from_item
Remove the remaining uses of $order->get_product_from_item()
2020-10-14 16:18:29 -03:00
Claudio Sanches c530fc0d55
Merge pull request #27908 from woocommerce/fix/template-attachment-ids
restore $attachment_ids for product thumbnails template
2020-10-14 15:38:19 -03:00
Claudio Sanches 6ad79cf050 Fixed PHP notice
> PHP Notice: compact(): Undefined variable: gallery_image_ids in includes/wc-template-functions.php on line 1487
2020-10-14 15:37:12 -03:00
Claudio Sanches 47a7c6648a
Update includes/wc-template-functions.php 2020-10-14 15:29:24 -03:00
Vedanshu Jain f65491d1b2
Merge pull request #27898 from woocommerce/add/allow-customise-reset-password-page-title
Use "Set Password" page title for lost-password endpoint when setting a password
2020-10-14 23:24:27 +05:30
Claudio Sanches be4aacee93
Merge pull request #27483 from woocommerce/fix/27475
prevent regenerate image filter loop
2020-10-14 14:03:00 -03:00
Claudio Sanches 7d1ff1a655
Merge pull request #27310 from woocommerce/fix/27215
Fix deleting a tax class via WP CLI.
2020-10-14 14:00:33 -03:00
Ron Rennick 9cf2d81f60 Merge branch 'master' into fix/template-attachment-ids 2020-10-14 12:40:57 -03:00
Ron Rennick 8ec54fabe0 phpcs fixes 2020-10-14 10:27:58 -03:00
Ron Rennick cd20044b13 Merge branch 'master' into fix/27215 2020-10-14 10:16:36 -03:00
vedanshujain c01f32a390 Use default value if formatted value is not available 2020-10-14 14:51:19 +05:30
vedanshujain 8e12de5d3c Merge branch 'fix/api/229-unit-test' of https://github.com/shiki/woocommerce into fix/api/229 2020-10-14 13:53:03 +05:30
Rua Haszard 95f4b5b81e restore original comment (related changes are gone) 2020-10-14 12:35:32 +13:00
Rua Haszard 5e3713da75 check password-set user token before redirecting to set password form:
- this prevents the password reset process earlier (before the redirect)
- also now shows a notice informing the user that they need to log out
  of (other) account
2020-10-14 12:26:51 +13:00
Rua Haszard 1f5601f0fe ensure lost-password form only resets password for correct user:
- if a user is logged in, check their ID matches the ID in the reset
  key / token
2020-10-14 12:12:01 +13:00
Rua Haszard 5e5d06cfab show lost-password form when logged-in user:
- in the checkout signup use case, the user may be setting their
password in a logged-in browser session; they need to be able to set an
initial account password
2020-10-14 09:50:36 +13:00
Rua Haszard b34ad5be5c improve PHPdocs for get_endpoint_title and related hook:
- add @since (original since based on git blame)
- document all params
- add @since for newly-added params
- add docs for woocommerce_endpoint_{$endpoint}_title
2020-10-14 09:50:36 +13:00
Rua Haszard 6032962e59 use "Set password" title for lost-password endpoint for more actions:
- 'rp' and 'resetpass' are used in WordPress core
1079647d30/wp-login.php (L913)
- using 'newaccount' for checkout signup case
2020-10-14 09:50:36 +13:00
Rua Haszard 1eb02845aa support overriding/customising password reset page title via `action`:
- get_endpoint_title now takes an extra `action` param
  - this also is passed to the relevant hook (as an additional arg)
  - woocommerce_endpoint_{$endpoint}_title
- for `lost-password?action=rp`, use `Set password`
- pass action query param through when using get_endpoint_title
2020-10-14 09:50:36 +13:00
pjv 7909c3ca7c white space 2020-10-13 13:59:53 -05:00
pjv 98b0fcbdff add “before” stock change action hooks to CRUD transaction 2020-10-13 13:36:42 -05:00
Claudio Sanches e655b44717 Fixed coding standards 2020-10-13 22:32:32 +05:30
Shiki 2e165e7558 Orders: Make display_key and _value meta available for v3 and v3
This resolves the intentionally failing
WC_Tests_API_Orders_V2::test_get_item_with_line_items_meta_data.
2020-10-13 22:32:31 +05:30
Shiki a3f46e5526 Schema: Make display_key and *_value available for v3 and v2
This is just the schema and the actual functionality isn't implemented yet.
2020-10-13 22:32:30 +05:30
Shiki b9ae830da5 Fix formatting in Orders V2 unit test 2020-10-13 22:32:30 +05:30
Shiki f45e8b884b Orders V3: Reuse WC_Order_Item->get_formatted_meta_data
Previously, I was using my own function. This time, we're using the function
available in WC_Order_Item but sanitizing the results after.
2020-10-13 22:32:30 +05:30
Shiki 2e92460df2 Orders V3: Include display_key and display_value in item meta_data 2020-10-13 22:32:30 +05:30
Shiki d8ac282c80 Orders V3 Schema: Add display_key and display_value for meta props 2020-10-13 22:32:29 +05:30
James Allan 1fcedb5279 Removes the remaining uses of $order->get_product_from_item 2020-10-13 11:24:48 +10:00
sudoshreyansh f1d89e6e78
Fixed taxonomy term message 2020-10-09 13:16:40 +05:30
Néstor Soriano c15488d840
Merge pull request #27830 from woocommerce/php8/fix-round-function-with-non-numeric-argument 2020-10-09 08:01:44 +02:00
Rodrigo Primo 6861fdab5d Update @version in which a filter was added 2020-10-08 17:03:09 -03:00
Jon Campbell 0fedb0db7a
Added filter for low stock notification emails (#27819)
* Adding new filter for low stock notification

* Update class-wc-emails.php

fixing whitespace
2020-10-08 17:02:09 -03:00
Ron Rennick 4a8898dfbd restore $attachment_ids for product thumbnails template 2020-10-08 15:08:03 -03:00
Néstor Soriano e4b78cedbf
Merge pull request #27748 from woocommerce/remove-leftovers-from-improved-filtering-by-attribute-for-variations
Remove leftovers from the reverted improved filtering mechanism for variations
2020-10-08 15:45:09 +02:00
Rodrigo Primo 0771138604
Merge pull request #27707 from dd32/php8/warnings
PHP8 Warning: Change __wakeup() to a public method
2020-10-08 10:01:21 -03:00
Néstor Soriano ab529835fa
Merge pull request #27840 from woocommerce/php8/fix-required-parameters-after-optional
[PHP 8] Convert optional-before-required parameters into required parameters
2020-10-08 14:22:52 +02:00
Vedanshu Jain 8a9fa0d27b
Merge pull request #27587 from om4james/fix/26847-rest-api-auth
Fix HTTP 401 `woocommerce_rest_cannot_view` `Sorry, you cannot list resources` REST API response
2020-10-08 16:32:03 +05:30
Nestor Soriano b71f876cba Reintroduce the dependency injection related code.
After the League's Container package has been reintroduced, all the
code that implements the dependency injection mechanism in woocommerce
can be brought back as well.
2020-10-08 09:28:05 +02:00
James Collins 79dd557b77
Return true to indicate that authentication using this method was successful 2020-10-08 09:33:33 +08:00
Ron Rennick 175499b40a Merge branch 'master' into fix/27215 2020-10-07 15:59:19 -03:00
Ron Rennick 577494796c
Merge pull request #27736 from woocommerce/fix/27681
Update taxonomy template file names to `-`
2020-10-07 15:23:11 -03:00
Ron Rennick 24ec59cf26 fix merge conflict 2020-10-07 15:19:05 -03:00
Ron Rennick 67a54b3aa3
Merge pull request #27289 from woocommerce/fix/27222
use first gallery image on single product when image not assigned
2020-10-07 15:06:30 -03:00
Dominic Vermeulen-Smith c054a2803b issue #24631 - Updated needs payment check to use order 2020-10-06 17:38:07 +01:00
Knyazevich ce59afb2b9 Simplify drafts excluding logic (ref #24136) 2020-10-06 18:11:58 +03:00
Knyazevich f551c6c792 Exclude drafts from the "Shop page" select (ref #24136) 2020-10-06 06:42:56 +03:00
Ron Rennick ab4a46e32e
Merge pull request #27299 from woocommerce/fix/27116
allow variation image to be removed via REST API
2020-10-05 09:33:50 -03:00
rowayda_khayri 547451560c Add punctuation mark to function's docblock 2020-10-03 20:52:57 +02:00
sudoshreyansh 7f9162d776 Fixed update term messages. Issue: #27831 2020-10-03 22:55:16 +05:30
pjv 73ccb72acc fix whitespace 2020-10-02 08:22:33 -05:00
sudoshreyansh dd9bf06594 Fixed </strong> closing tag position. Issue: #27839 2020-10-02 15:46:41 +05:30
Nestor Soriano 7485b9165f Convert optional-before-required arguments to required.
In PHP 8 required parameters after optional parameters in
function/method signatures trigger a deprecation notice. These type
of parameters are pointless since a value needs to always be
provided for them anyway, so they are actually de-facto required.

This commit converts all these not-so-optional parameters into
truly required parameters by removing their default values.
2020-10-02 09:45:09 +02:00
Nestor Soriano 53d33457e3 Fix code style/sniffer errors in a few files. 2020-10-02 09:34:09 +02:00
Nestor Soriano 52eed70f04 Add a 'NumberUtil' class with a 'round' method.
There's a number of places in the WooCommerce codebase where the
built-in function 'round' is executed passing a non-numeric value
(not a number and not a string that can be parsed as a number),
for example round(''). In PHP 7 this yields a value of 0, but in
PHP 8 this throws an error.

This commit adds a 'NumberUtil' class with a static 'round' method,
this method checks if the passed value is numeric and if so it just
executes the built-in function, otherwise it returns 0. And all the
calls to 'round' in the codebase are replaced with 'NumberUtil::round'.
2020-10-01 11:08:51 +02:00
Nestor Soriano b1e81d02da Fix code style/sniffer errors in a few files. 2020-10-01 11:08:51 +02:00
Jonathan Sadowski e540b4820e Rename maybe_enable_setup_wizard to maybe_set_activation_transients 2020-09-30 17:27:43 -05:00
Jonathan Sadowski 83238ec1d7 Move maybe_enable_setup_wizard abode update_wc_version so new install is detected 2020-09-30 17:01:43 -05:00
Jonathan Sadowski 95755cb59d Update the activation transient to only get added on new installs 2020-09-30 16:00:45 -05:00
Joshua Flowers 048c43a37f Add back in activation transient to redirect on install 2020-09-29 14:25:15 -04:00
Mateusz Gbiorczyk b730298ee6 Escaping output for field label 2020-09-29 14:25:56 +02:00
Ron Rennick 802b364b05 Merge branch 'master' into fix/27681 2020-09-28 16:17:51 -03:00
Nestor Soriano f419335cdf Remove the migration to delete variation term relationships. 2020-09-28 09:35:13 +02:00
Milana Cap 7c184e5f25
Update class-wc-countries.php 2020-09-24 22:41:33 +02:00
vedanshujain c69e1f5799 Remove protection as we already diff and update only if needed.
In #26642 we removed adding reduced_stock meta when adding new order item to prevent ghost entries, but in inadvertently exposed an underlying bug where _reduced_stock meta was getting set to 0 if its emtpy.

We were then checking the presence of this meta, but also not reducing the stock in case it was not set.
2020-09-24 00:54:24 +05:30
Nestor Soriano 849a64d67c Add a data migration for removing term relationships related to variations
After the code that creates term relationships for variations has been
removed, a data migration is required to remove all the no longer needed
term relationships.

Also, the original migration that backfilled those relationships has
been removed (the migration function is kept but with an empty body).
2020-09-22 16:31:38 +02:00
Nestor Soriano a94ea7f51f Remove logic for storage of attribute terms for variations
A mechanism for improved filtering by attribute for variations was
introduced some time ago. This mechanism implied maintaining term
relationships for variations, where the terms were the attributes
that defined the variation.

The mechanism was reverted because it was complex and presented many
issues, but the code that created those term relationships was kept.
This pull request removes that code and the associated unit tests.
2020-09-22 16:31:06 +02:00
Rodrigo Primo c3a72b994a Fix version in which the setup wizard was deprecated
The setup wizard is going to be deprecated in WC 4.6.0 which should be
released soon. Some functions were marked as if they were deprecated in
WC 4.5.0 which is not the case.
2020-09-22 11:20:33 -03:00
Rodrigo Primo 51fd4af1b2 Remove call to __() from deprecation messages
Doing this as AFAIK we don't typically support traslation for
deprecation messages.
2020-09-22 11:18:43 -03:00
James Collins ce31260452
Return early if another plugin has already declared an auth failure 2020-09-22 16:17:35 +08:00
Claudio Sanches 3391d8c0b0
Merge pull request #27718 from woocommerce/bump-versions-to-4.7.0
Bump WC version to 4.7.0
2020-09-21 16:21:09 -03:00
Ron Rennick 6a36bce334 tweak logic to use `woocommerce/*-*` templates in theme folder 2020-09-21 14:12:22 -03:00
Ron Rennick bb6ded857d phpcs fixes 2020-09-21 13:34:14 -03:00
Ron Rennick 57fa6aff83 update taxonomy template names from `_` to `-` 2020-09-21 13:30:29 -03:00
Alex Stewart b58dc02183 Introduced fine-grained cultural adaptation for Jamaican-based WooCommerce stores 2020-09-20 14:10:27 -05:00
Rodrigo Primo 6a641c4b1d Bump WC version to 4.7.0 2020-09-19 15:24:12 -03:00
Rodrigo Primo 7401982d37
Merge pull request #27047 from woocommerce/fix/26972
Removed Features settings and home screen option
2020-09-18 16:46:43 -03:00
Ron Rennick 9ae1ba92c6 remove WC_Admin_Setup_Wizard_Tracking from tracking classes 2020-09-18 15:26:18 -03:00
Ron Rennick 0735ed9f40 Merge branch 'fix/26173' of github.com:woocommerce/woocommerce into fix/26173 2020-09-18 15:23:08 -03:00
Ron Rennick 4b3b40d42e address feedback 2020-09-18 15:22:24 -03:00
Rodrigo Primo f3191907d9 Add missing line break 2020-09-18 14:25:25 -03:00
Ron Rennick 43051a0950 update deprecation versions to 4.6.0 2020-09-18 13:16:46 -03:00
Ron Rennick cca97599d7 only automatically create pages on new install 2020-09-18 13:10:11 -03:00
Ron Rennick 9915a5b142 merge master 2020-09-18 12:53:28 -03:00
Ron Rennick 6630f3fdba remove class accidentally added to PR 2020-09-18 12:41:57 -03:00
Rodrigo Primo d99053dbed Update version in @since tag of the woocommerce_should_send_no_stock_notification filter 2020-09-18 12:08:36 -03:00
Rodrigo Primo 8be6dc5b96
Merge pull request #27634 from jondcampbell/master
Added filter for no stock notification emails
2020-09-18 12:07:04 -03:00
Rodrigo Primo 60d6510cb0
Merge pull request #27685 from woocommerce/add/wp-env-type-to-wc-tracker
Added environment type var to WC tracker.
2020-09-18 11:30:35 -03:00
Rodrigo Primo 197e8d274c
Merge pull request #27616 from woocommerce/fix/26960
Paypal gateway: protect code against a fatal error if WooCommerce is unable to communicate with PayPal
2020-09-18 09:34:57 -03:00
Peter Fabian ed9c1e2f93
Update includes/class-wc-tracker.php
Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-09-18 14:30:39 +02:00
Dion Hulse 9440ec3570 Change __wakeup() to a public method to avoid PHP8 warning. 2020-09-18 07:55:26 +00:00
Claudio Sanches 29b8b0d60d
Merge pull request #27701 from woocommerce/fix/rest-api-package-tag
Fixed usage of package tag in REST API and templates
2020-09-17 18:45:14 -03:00
Claudio Sanches 153ce009de Fixed helper header 2020-09-17 16:50:17 -03:00
Claudio Sanches 3377c60c5e
Merge pull request #27433 from woocommerce/fix/remove-relative-include-paths
Change relative include paths to absolute include paths
2020-09-17 13:15:40 -03:00
Claudio Sanches f4e9fcc1a4 Fixed missing include 2020-09-17 13:12:57 -03:00
Claudio Sanches 70c7adfeb7 Fixed usage of package tag in REST API and templates 2020-09-17 11:56:08 -03:00
Claudio Sanches ed1a59b39b
Merge pull request #27416 from woocommerce/fix/27415
Fixed country list sorting
2020-09-17 10:35:43 -03:00
Konstantin Kovshenin a100ed67b2 Fix race conditions in WC_Install
In an environment with persistent object caching, concurrent calls
to delete_option() + add_option() can result in the option value
leaking out of the alloptions cache key, and into its own cache
item under the options group, while deleting the value from the
database.

This causes future function calls to add_option() to fail, since
the value already exists in cache (under the wrong key). It also
causes calls to delete_option() to fail, since the value is not
in the database.

This commit forces update_option() instead of the delete + add
combination, as well as removes multiple unnecessary calls to
update the woocommerce_db_version from admin notes and notices.
2020-09-17 11:59:50 +03:00
Peter Fabian b8670162a7 Added environment type var to WC tracker. 2020-09-16 13:44:36 +02:00
And Finally fc908a0bef Change href of premium support link from `https://woocommerce.com/my-account/tickets/` to `https://woocommerce.com/my-account/create-a-ticket/`, as the original URL is deprecated. 2020-09-15 10:55:52 +01:00
mahmoudsaeed 3865c615b9
Make WC_Tax::get_tax_rate_classes() public 2020-09-14 23:43:30 +02:00
Grzegorz Rola 75d9a8942c Fixed cart weight return type. 2020-09-14 11:32:05 +02:00
Anton Timmermans 723f14e44a
Improve bool <-> string conversion functions docs
These functions are polymorphic towards their input types to be more useful in more cases. Change the documentation to reflect this fact.
2020-09-13 13:01:14 +02:00
Rodrigo Primo 9bdafbeb18
Merge pull request #27219 from woocommerce/fix/filter-quantity-in-add_to_cart_handler_grouped
Filter quantity in add_to_cart_handler_grouped
2020-09-12 15:56:49 -03:00
Rodrigo Primo a24937556a
Merge pull request #27658 from woocommerce/update/4.6.0-dev
Prepare master for 4.6.0 development
2020-09-12 11:18:22 -03:00
Rodrigo Primo f345a1e0c8
Merge pull request #27615 from woocommerce/fix/26590
Fix bug when using tax classes with some non-ASCII characters
2020-09-11 14:48:10 -03:00
Rodrigo Primo d7b2207e75
Merge pull request #27610 from attitude/patch-1
Encapsulate scope of `c` variable
2020-09-11 14:27:06 -03:00
Rodrigo Primo fd25815a7c Prepare master for 4.6.0 development 2020-09-11 14:07:58 -03:00
Jon Campbell bb949ae474
simplifying filter usage
Switched to product id instead of product object
Moving the filter into the if condition instead of having a single use variable
2020-09-11 09:38:52 -07:00
Omkar Bhagat 87b2d574db Convert the two filters into a single filter
Removing the two newly introduced filters and replacing it with one single filter: woocommerce_delete_variations_on_product_type_change.
2020-09-11 01:29:17 +05:30
Claudio Sanches b5d8d94bc8 Use reference in wc_asort_by_locale 2020-09-10 16:02:39 -03:00
jonathansadowski 2bcdbacc98
Merge pull request #27625 from woocommerce/revert-improved-filtering-for-variations
Revert improved filtering for variations
2020-09-10 12:42:15 -05:00
Nestor Soriano 4411a394dc Reintroduce adjust_posts_count, and remove unnecessary comment.
We can't remove that method since it's public, but its body has
been changed so that it just returns the input unchanged.
2020-09-10 15:17:43 +02:00
Jon Campbell 642b5b958e
Update class-wc-emails.php
removing whitespace to be coding standards compliant.
2020-09-09 16:32:12 -07:00
Jon Campbell 188f839e70
add no stock notification filter 2020-09-09 12:07:15 -07:00
Christopher Allford ae697f9fe2 Prevented zero from being considered empty when validating posted variation attributes 2020-09-09 11:29:31 -07:00
Nestor Soriano 70a1cb2f1f Revert improved filtering for variations.
This commit reverts the functionality introduced in PR #26260
(later refined by #27175, #27190, #27508) in which filtering by
attribute using the layered nav widget was improved to handle the
cases of variations out of stock. The revert is a response to the
numerous problems reported by users in Woo 4.4 and 4.5

Not all the code has been reverted, only the code that resulted in
visible functionality changes. Thus, the code that generates
term relationships for variations is still in place to keep database
consistency and to keep the reverting changes to the minimum needed.
2020-09-09 17:36:26 +02:00
Jonathan Sadowski 9da304e983 Update version in class-woocommerce.php 2020-09-09 10:35:05 -05:00
jonathansadowski d00083f1ec
Merge pull request #27628 from woocommerce/fix/27624
Check for state and postcode fields only if required
2020-09-09 09:41:57 -05:00
vedanshujain 7f2b322085 Check for state and postcode fields only if required
We were doing state and postcode even for countries where its not required, but unfortunately as an unintended effect we were ending up not checking shipping requirements if this was not met.
2020-09-09 18:21:14 +05:30
Rodrigo Primo 3aed780443 Paypal gateway: protect code against a fatal error
This commit changes the order of the error handling check to protect the code against a possible fatal error if wp_safe_remote_post() returns an instance of WP_Error().
2020-09-08 16:57:48 -03:00
Omkar Bhagat 6bca55b6d6 Introduce filters to filter $from and $to
This will introduce two new filters:

woocommerce_from_product_type_changed
woocommerce_to_product_type_changed

to filter the $from and $to variables respectively.

This will be useful in WCS pr_3732!
2020-09-09 00:33:51 +05:30
Rodrigo Primo d50cd4389b Fix using tax classes with some non-ASCII characters
This commit fixes a bug that made it impossible to assign to a product a tax class that contained non-ASCII characters that are URL encoded by sanitize_title().

WooCommerce uses sanitize_title() to generate a slug when creating a tax class (d48f1d4e2e/includes/class-wc-tax.php (L808)). sanitize_title() converts some non-ASCII to ASCII equivalents (those handled by remove_accents()) and URL encodes others (like some Greek characters, for example).

The code was using wc_clean() to sanitize the tax class when the user edited a product. The problem is that wc_clean() removes URL encoded characters, changing the slug of some tax class, causing WooCommerce to use the standard tax class instead without any errors. To fix this issue, this commit replaces wc_clean() with sanitize_title(). This should be enough for security purposes and should not cause any issues with non-ASCII characters.
2020-09-08 16:00:56 -03:00
Omkar Bhagat 4ecb468690 Modify the logic for deleting variations
Implements the following expected behaviour:
1. Switch from variable subscription to non-variable one will delete variations.
2. Switch from variable subscription to variable product and vice-versa will NOT delete any variations.

This shall have no side-effects in WooCommerce Core.
2020-09-09 00:04:39 +05:30
jonathansadowski 168698cd91
Merge pull request #27589 from woocommerce/enhance-query-for-filtering-attributes-with-any-value
Enhance the query for "Any" variations in filter by attribute widget
2020-09-08 11:58:54 -05:00
Martin Adamko c2ab6a488d
Encapsulate scope of `c` variable
By changing to auto invoking call the `c` variable will be encapsulated in its scope therefore not polluting the global scope and will continue to function as previously.

Fixes conflict and reassigning of already used variables when using other minified scripts. In my case the problem occurred with the Speed Booster Pack plugin.
2020-09-08 09:20:18 +02:00
Grzegorz Rola 4cfedf3968 Fixed cart weight return type. 2020-09-07 18:14:01 +02:00
Nestor Soriano 958ecf1d48 Fix the SQL query to count products in the filter by attribute widget
The previous query was counting variable products twice when they
had a variation with a concrete value for the attribute and also
a variation with "Any..." value for the same attribute.
2020-09-07 16:44:14 +02:00
Rodrigo Primo 12cc9ddf7c Merge branch 'master' of github.com:woocommerce/woocommerce 2020-09-05 11:16:09 -03:00
Rodrigo Primo 1694975910 Fix type of the WC_Query::$product_query property in the documentation 2020-09-05 11:14:57 -03:00
Rodrigo Primo be8dc533ff
Merge pull request #26957 from kevinruscoe/patch-3
Update types
2020-09-05 11:13:10 -03:00
Rodrigo Primo a582589449
Merge pull request #27008 from azzy9/master
Fix the error message shown for the max setting
2020-09-05 11:08:50 -03:00
KoolPal 41ea743a22
Update includes/class-wc-validation.php
Please proceed with your suggested changes. I cannot continue to debate this.

Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-09-04 14:12:23 +00:00
Nestor Soriano 43642f7835 Enhance the query for "Any" variations in filter by attribute widget.
The new query fixes a bug where variations were being counted twice:
if a product was included in both the queries then it would be counted
differently and added; e.g. when a product had two variations,
one with "Any" attribute and other with a attribute that has a value.

The new query also optimizes performance, so that filter conditions
can be improved and better indexes can be used.
2020-09-04 11:29:50 +02:00
James Collins 59a6c4b330
Authentication fallback if current user is set before WC is initialized
See Issue #26847
2020-09-04 15:55:12 +08:00
James Collins 958896545d
Merge branch 'master' into fix/26847-rest-api-auth 2020-09-04 14:05:14 +08:00
jonathansadowski 53c22ba4e4
Merge pull request #27508 from woocommerce/fix/27419
Fix filter by attribute widget now working for "Any..." attributes
2020-09-02 13:32:54 -05:00
Nestor Soriano 417bcf8fff Split the query for counting terms in the filter by attributes widget.
For performance reasons the query is split in two: one for simple
products and variations with a concrete attribute value, and another
one for variations having "Any..." as the attribute value.
2020-09-02 16:22:25 +02:00
Shiki ac4cba3fab Orders API: Fix regression in `meta_data` `display_*` values
Previously, we were using the `$formatted_meta_data` to build the final array.
However, this does not consider the fact that
`WC_Order_Item->get_formatted_meta_data` can exclude `meta_data` from the
result. There would be less `meta_data` objects return than the previous
implementation.

This fixes the issue by using the `$data['meta_data']` value as the main list of
meta data and only using `$formatted_meta_data` to optionally apply the
`display_key` and `display_value` properties.
2020-09-01 14:38:28 -06:00
Shiki 398076627a Orders API: Fix mismatched domain error 2020-09-01 14:37:55 -06:00
pjv ff9a3f2e1e Add before set stock action
Add product and variation `before_set_stock` actions to allow 3rd party plugins to snapshot a product’s stock quantity before it is updated.
2020-09-01 14:37:02 -05:00
jonathansadowski 86f8788525
Merge pull request #27509 from woocommerce/fix/creating-variations-for-numeric-attributes
Fix "Create variations from all attributes" for numeric attribute values
2020-09-01 13:40:52 -05:00
Nestor Soriano 07b62dabbd Improve the query to retrieve "Any..."-attributed variations in filtering widget
The new query doesn't need empty attribute entries in the meta table,
therefore the code that generates them and the migration to backfill
the missing existing ones have been removed.
2020-09-01 16:47:41 +02:00
KoolPal 4fc66caadb
Updated - Added postcode validation for India
Updated from incorrect PR #27517
Postcode in India consists of 6 digit number.
Reference:
https://en.wikipedia.org/wiki/Postal_Index_Number
https://en.m.wikipedia.org/wiki/Address#India

Popular eCommerce sites in India use the same logic for Postcode:
Amazon India (https://www.amazon.in) & FlipKart (https://www.flipkart.com)

P.S. Please review as I am not very confident at a PR.
2020-09-01 11:21:06 +05:30
Nestor Soriano 53351fcc2f Update wc_product_attribute_uasort_comparison to accept null entries
When set_attributes is used on WC_Product to remove existing attributes
the wc_product_attribute_uasort_comparison ends up being called
with a null argument, and this breaks tests in PHP 7.4 since
null is used as an array. This commit modifies the function so that
if null is passed no array access is attempted.
2020-08-31 16:49:29 +02:00
Nestor Soriano 3a583feab1 Change filter by attributes widget to count products, not variations.
Right now the filter by attributes widget counts available variations
(for variation products). This is confusing since the counter shows
numbers that are higher than the actual count of products displayed.

This commit changes the query used by the widget so that instead
of counting variations it returns the parent product ids, and then
counts the distinct values. This also covers the case of products
where some of the variations have concrete values and some have
"Any..." values.
2020-08-31 12:22:33 +02:00
Julià Mestieri b209b2bec3 fixup! Added PR feedback. 2020-08-31 08:28:30 +02:00
KoolPal 3f28df9150
Renamed Postcode / ZIP to Pin code & renamed State / County to State for India
Renamed Postcode / ZIP to Pin code & renamed State / County to State for India

Reference: https://en.m.wikipedia.org/wiki/Address#India
2020-08-29 14:19:33 +05:30
Ron Rennick bbdafb5cb1
Merge pull request #26196 from fitimvata/master
Add filter woocommerce_cart_item_required_stock_is_not_enough
2020-08-28 15:34:46 -03:00
Ron Rennick af162d8bed
Updated `@since` for the filter 2020-08-28 15:33:43 -03:00
Ron Rennick d998c6334d
Merge pull request #26976 from JoryHogeveen/patch-1
Public access to WC_Install::get_core_capabilities()
2020-08-28 15:12:51 -03:00
Kathy Daring 0db54ecec3 Add woocommerce_product_has_options filter 2020-08-28 12:01:11 -06:00
Ron Rennick a88cb8ab8e
Merge pull request #27437 from georgejipa/master
Remove the second occurrence of woocommerce_add_{$notice_type} filter
2020-08-28 14:10:43 -03:00
Ron Rennick cd579e3798
update phpcs rule 2020-08-28 13:56:25 -03:00
Ron Rennick 1ae1b3e4e6 Merge branch 'master' into fix/27215 2020-08-28 11:38:37 -03:00
Ron Rennick e49527cf9d apply changes from feedback 2020-08-28 11:34:32 -03:00
Ron Rennick 8fe3bcb90e rebase to current master 2020-08-28 10:59:43 -03:00
Nestor Soriano d691692dcd Fix: "Create variations from all attributes" on numeric attribute values
When "Create variations from all attributes" is used to create
variations it generates term relationship entries for all the generated
variations, however that doesn't happen when the term can be interpreted
as a numeric value. This is because in that case product->get_attributes
returns the attribute values as numbers, but the code that generates
the term relationships expect those to always be strings.
When manually adding a given variation this doesn't happen.

The fix is to simply strval-ize the value before using it, but it might
be worth investigating why this is happening.
2020-08-28 11:49:31 +02:00
Nestor Soriano 602f58a7a9 Add data migration to backfill missing attributes meta for variations.
The previous commit fixes a bug that causes the "attribute_" metadata
with an empty value to not be created when a new variation attribute
is added to the product (so that all variations have the attribute
with a value of "Any..."). This commit adds a data migration to
backfill the missing metadata for existing variations.
2020-08-28 09:38:16 +02:00
Claudio Sanches 085b4b53fa
Merge pull request #27487 from woocommerce/update/choice-of-words
Improve choice of words
2020-08-27 19:30:54 -03:00
Nestor Soriano 1113201f8b Update meta 'attribute_' values when variation attributes are added or removed.
When a new variation attribute is added, the corresponding 'attribute_'
meta entries are added for all variations with an empty value;
and when an existing variation attribute is removed, the existing
'attribute_' meta entries are deleted for all variations.

This is necessary for the filter by attribute widget to work properly
when variations exist with a value of "Any..." for attributes.
2020-08-27 16:10:41 +02:00
Nestor Soriano a75da34a45 Fix filter by attribute widget now working for "Any..." attributes
When a variation product has an attribute with a value of "Any...",
and there's a filter by attribute widget for that attribute, then
that product won't be included in the counts displayed in the widget
(and if the count ends up being zero, the attribute won't be shown
in the widget).

This happens before since Woo 4.4, this widget works by looking at
entries in the term relationships table for varitions too
(used to do so for simple products and for "main" variable products
only), see PR #26260; but there are no such entries for
"Any..." attributes.

This commit fixes that by extending the SQL query used by the widget
to look for variations that have empty attribute values in the meta
table too.
2020-08-27 10:59:15 +02:00
Julià Mestieri 12be6f3c96 Fixed code standard error. 2020-08-27 09:33:56 +02:00
Julià Mestieri 83434deb42 Added PR feedback. 2020-08-27 09:05:33 +02:00
Romario fefc6193be Replace 'DIRECTORY_SEPARATOR' with '/' 2020-08-26 17:02:07 -05:00
Claudio Sanches c4ccc38780 Fixed use __DIR__ for relative paths 2020-08-26 18:46:44 -03:00
Romario 67a178f4f7 Replace 'DIRECTORY_SEPARATOR' with '/' 2020-08-26 15:50:34 -05:00
Romario 3b90d99d44
Change 'dirname( __FILE__ )' to '__DIR__ ' and include '/'
Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-08-26 14:58:22 -05:00
Shiki 2e366ef76b Orders: Make display_key and _value meta available for v3 and v3
This resolves the intentionally failing
WC_Tests_API_Orders_V2::test_get_item_with_line_items_meta_data.
2020-08-26 23:46:07 +05:30
Shiki 35ed2df4fb Schema: Make display_key and *_value available for v3 and v2
This is just the schema and the actual functionality isn't implemented yet.
2020-08-26 23:46:07 +05:30
Shiki 5ab863e649 Fix formatting in Orders V2 unit test 2020-08-26 23:46:07 +05:30
Shiki 9678a286e3 Orders V3: Reuse WC_Order_Item->get_formatted_meta_data
Previously, I was using my own function. This time, we're using the function
available in WC_Order_Item but sanitizing the results after.
2020-08-26 23:46:07 +05:30
Shiki ea63d5aaf9 Orders V3: Include display_key and display_value in item meta_data 2020-08-26 23:46:07 +05:30
Shiki 90d5a8e7e9 Orders V3 Schema: Add display_key and display_value for meta props 2020-08-26 23:46:07 +05:30
Ron Rennick 8270327f43 Merge branch 'master' into fix/27475 2020-08-26 10:07:44 -03:00
Ron Rennick c582ce2fd2
Merge pull request #27453 from arkadywtf/master
Fix PHP docblock summary for wc_get_coupon_id_by_code
2020-08-26 09:15:23 -03:00
Claudio Sanches 5240682f38 Improve choice of words 2020-08-25 18:03:03 -03:00
Ron Rennick ae96a828ec prevent regenerate image filter loop 2020-08-25 14:31:15 -03:00
jonathansadowski 209ea6a8bb
Merge pull request #27448 from haydenw/fix-27436
Fix #27436
2020-08-25 09:18:07 -05:00
jonathansadowski 68d1641e5c
Merge pull request #27468 from woocommerce/fix/27467
Rename built-in PayPal payment method to PayPal Standard
2020-08-25 08:42:11 -05:00
Ron Rennick 41a7caae05
Merge pull request #27449 from haydenw/fix-27413
Fix #27413
2020-08-25 10:29:45 -03:00
Ron Rennick bdb1451f2b
Merge pull request #27441 from Rahmon/patch-1
Ensure that the return of get_the_terms is not a WP error
2020-08-25 10:13:45 -03:00
Brent Shepherd a2e2d63265 Rename PayPal to PayPal Standard
In the admin area, not the front-end of the site.

Fixes #27467
2020-08-25 12:25:44 +10:00
Arkadiy Asuratov 99d8e975c2 Fix docblock summary for wc_get_coupon_id_by_code 2020-08-22 22:20:12 +02:00
Hayden Whiteman a939cacf5c Fix #27339 2020-08-22 22:09:14 +12:00
Hayden Whiteman 3fca3caf1d Fix #27413 2020-08-22 19:35:13 +12:00
Hayden Whiteman 201db0ca9e Fix #27436 2020-08-22 17:22:45 +12:00
Romario acfb3e5dfd Add spacing between '$dir 'and '.' 2020-08-21 15:25:21 -05:00
Romario 073c63c9c4 Replace dirname with __DIR__ and add DIRECTORY_SEPARATOR
Previously 'dirname(  __FILE__ )' was used to import files, however, the directory separator was missing.

This commit replaces 'dirname(  __FILE__ )' that was introduced in 5370d02484 with __DIR__  and added DIRECTORY_SEPARATOR
2020-08-21 15:16:26 -05:00
Daniel Morell 252128026f
Fixed $columns type in docblock 2020-08-21 12:55:28 -05:00
Ramon 7610e1311e
Ensure that the return of get_the_terms is not a WP error 2020-08-21 14:07:26 -03:00