Commit Graph

507 Commits

Author SHA1 Message Date
Claudio Sanches 94bdcd0320
Merge pull request #27684 from woocommerce/refactor/settings-pages-classes-take-2
Refactor the settings pages, and add unit tests for them
2021-06-01 13:19:49 -03:00
Roy Ho 84f8fcd016
Merge pull request #29938 from geektzu/fix/29708
Fix for deleted Reduce or Zero rate tax classes
2021-05-28 07:11:33 -07:00
geektzu 394b6665f8 Move the comments as per code review 2021-05-28 10:26:31 +12:00
Claudio Sanches c9db54c784
Update includes/class-wc-install.php 2021-05-26 19:26:35 -03:00
Claudio Sanches 639623edb2
Update includes/class-wc-install.php 2021-05-26 19:26:02 -03:00
geektzu 3ee412155b Fixed function signature and re-ran unit tests locally
Also stick to the commenting standard
2021-05-21 18:04:35 +12:00
Cale9 a0ef53dd71 Fix for deleted Reduce or Zero rate tax classes 2021-05-18 19:11:59 +12:00
Marcos 971f41a89e
Check for WP Error when uploading placeholder 2021-04-28 14:04:47 -03:00
Nestor Soriano cf9300bbbc
Refactor in the WC_Settings_Page class for PHP 8 compatibility
- Turn get_settings into a parameterless method, but accept one
  parameter via func_get_arg; and mark the method as deprecated.
- Rename the existing get_settings to get_settings_for_section;
  and mark the method as final.
- Rename the existing get_settings_for_section to get_settings_for_section_core.

See the comment added to get_settings for the rationale for the change.
2021-04-13 12:45:42 +02:00
Nestor Soriano 56cc063d7f
Rename "get_settings" to "get_settings_for_section" in settings pages.
In PHP 8 overriding a method having an optional parameter with a
method having no parameters throws an error, thus we can't use
the strategy of changing "get_settings()" to "get_settings($section='')"
without breaking existing extensions. So we do the following instead:

- Rename the existing "get_settings" to "get_settings_for_section"
- Rename the existing "get_settings_for_section" to "get_settings_for_section_core"
- Add a "get_settings" that just does "get_settings_for_section('')"
  for compatibility, but mark it as deprecated.
2021-04-12 18:04:41 +02:00
jonathansadowski e5a3ac48aa
Merge pull request #28933 from Mindsize/wc-24581-holding-stock-minutes
Wc 24581 holding stock minutes
2021-02-03 16:05:18 -06:00
mfs-mindsize 1398219b95 adjusted new filter's default to option value + added absint 2021-02-01 14:15:41 -05:00
vedanshujain 2e4f2ef478 Add migration function for fixing existing product review counts. 2021-01-14 18:35:14 +05:30
mfs-mindsize cd725af6e2 also added filter: woocommerce_cancel_unpaid_orders_interval_minutes to wc install process 2020-12-17 11:44:53 -05:00
Gary Cao e6a7f0f40a
Fix Unknown named parameter error on PHP 8 2020-12-10 15:21:34 +09:00
Roy Ho 593cd0ea5d
Merge pull request #27675 from woocommerce/fix/update-premium-support-link-href
Update href of premium support link
2020-12-08 13:46:44 -08: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
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
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
Nestor Soriano f419335cdf Remove the migration to delete variation term relationships. 2020-09-28 09:35:13 +02:00
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
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
Rodrigo Primo f3191907d9 Add missing line break 2020-09-18 14:25:25 -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
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
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
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
Ron Rennick 8fe3bcb90e rebase to current master 2020-08-28 10:59:43 -03:00
Jonathan Sadowski 6bafef2041 Foreign key check 2020-08-18 13:44:29 -05:00
Ron Rennick 3c8b6559da create pages on installation 2020-08-13 15:03:58 -03:00
Claudio Sanches 02cf0dfaed
Merge pull request #27239 from woocommerce/fix/package-tag
Fix usage of "package" tag in file headers
2020-08-07 13:37:24 -03:00
Claudio Sanches d48f1d4e2e Fixed package tag usage 2020-08-05 13:36:24 -03:00
Andy Skelton b554eea43c
Whitespace 2020-08-04 10:47:59 -05:00
Claudio Sanches 0b45369bff Improved migration script to avoid race condition 2020-07-30 16:17:23 -03:00
Claudio Sanches 5b48191eac Batch update coupons 2020-07-29 23:07:00 -03:00
Claudio Sanches 119b5d6568
Merge branch 'master' into fix/23790 2020-07-28 13:07:17 -03:00
Néstor Soriano e9d692f455 Apply suggestions from code review
Mostly adding "since 4.4.0" annotations and updating
db update functions from 4.2 to 4.4.

Co-authored-by: Claudio Sanches <contato@claudiosanches.com>
2020-07-28 09:01:55 +02:00
Nestor Soriano 9c6c0d73d8 Record attribute terms for product variations in wp_term_relationships.
Product attributes are currently recorded as terms in
wp_term_relationships (product attributes are actually taxonomies).
In the case of variable products this is true for the main product,
but not for the variations. The attributes used to define variations
are stored as post meta, but nothing is recorded in the term
relationships table.

This is a problem when using the layered nav filtering plugin,
since the attribute counters displayed are calculated based solely
on the contents of the term relationships table. Adding meta queries
would be really messy (especially when the widget is configured
with AND operator) and would probably also hurt performance.

This commit adds a change to store the attributes for variations
as term relationships, additionally to storing them as post meta.
Terms are stored on variation creation, and updated/deleted together
with the variation as appropriate. "Any" variations (stored in meta
as empty values) are not stored as terms.

Additionally, a database upgrade is included in order to backfill
terms for already existing products.
2020-07-28 08:55:55 +02:00
Andy Skelton 3e5ce05d86
Faster foreign key check when installing/upgrading
Using WooCommerce on a multisite network using the hyperdb drop-in, the foreign key check fails although there is a foreign key.

32037e37dd/includes/class-wc-install.php (L745-L763)

The first problem is that hyperdb wasn't designed to route `information_schema` queries. After patching hyperdb, the query is routed to the correct database.

The second problem is that the query still finds zero foreign keys because `$wpdb->dbname` is blank when the query is generated. Hyperdb only has a dbname in the context of a query being executed; hyperdb extracts the table name, then maps that to the correct database.

Although we could find a way to support such `information_schema` queries, they are also not preferred because they are notoriously slow. On WordPress.com they take 300ms, versus 3ms for a `SHOW CREATE TABLE` which similarly reveals the existence of the foreign key.

The proposed changes simplify the check, make it faster, and make it work with hyperdb.
2020-07-27 16:39:42 -05:00
Claudio Sanches be106af910 Added upgrade routine to sanitize all coupon codes 2020-07-27 16:50:23 -03:00
Claudio Sanches 2947700029 Removed Features settings and home screen option 2020-07-15 22:58:51 -03:00
vedanshujain 4500e86198 Shorten class and method names to reduce redundancy in naming. 2020-07-15 15:20:18 +05:30
vedanshujain 1e68ce5dc9 Move function to src for better code architecture 2020-07-14 23:31:56 +05:30
Jory Hogeveen cde1bd019b
Allow public access to get_core_capabilities()
Allow role manager plugins to get these capabilties
2020-07-08 13:44:27 +02:00
vedanshujain 50b08a75ab Show community forum link if wccom is not connected 2020-07-02 16:28:33 +05:30
Peter Fabian c35c4f1f08
Merge pull request #26395 from woocommerce/revert-26226-revert-25708-update/reserve-stock-for-checkout
Introduce a `reserved stock` class and database table to prevent race conditions during checkout
2020-06-16 11:38:10 +02:00