Commit Graph

488 Commits

Author SHA1 Message Date
Rodrigo Primo 1d9ab63134 Revert "Punt to WC version 3.5.0"
This reverts commit ccf10f6ab2.
2018-10-29 11:37:24 -03:00
Rodrigo Primo 41d2e1cafd Change wp_woocommerce_sessions before dbDelta() is called
On PR #21245, I added a db update routine to change wp_woocommerce_sessions primary key from session_key char(32) to session_id bigint auto_increment as dbDelta() is unable to handle primary key changes (see https://core.trac.wordpress.org/ticket/40357). But I didn't realize that dbDelta() was actually trying to add a new primary key to the table without droping the old key first and this was generating the following error:

```
WordPress database error Multiple primary key defined for query ALTER TABLE wp_woocommerce_sessions ADD PRIMARY KEY  (`session_id`)
```

To prevent this error from happening, this commit moves the query that changes the primary key from db update routine to WC_Install::create_tables() so that it runs before dbDelta() is called.
2018-10-17 12:11:01 -03:00
Claudio Sanches 61f988db63
Merge branch 'master' into fix/product-review-type 2018-09-25 12:35:41 -03:00
claudiulodro d7afce5f4c Update routine to set reviews comment type 2018-09-20 09:28:39 -07:00
Rodrigo Primo 2740a686dc Change wp_woocommerce_sessions primary key
This commit changes wp_woocommerce_sessions primary key to the bigint field session_id. Before it was the char(32) field session_key. Doing this change primarily as it should reduce the occurrence of deadlocks, but also because it is not a good practice to use a char(32) field as the primary key of a table.
2018-08-31 16:56:30 -03:00
Peter Fabian d679a88156 Update redirect option during activation of MailChimp in Install Wizard. 2018-07-24 12:29:10 +02:00
Gerhard Potgieter 36b6bd79c0 Add update routines to recreate user roles 2018-07-10 10:30:11 +02:00
Gerhard Potgieter ef2f868b89 Add edit_theme_options capability to shop manager to allow access to customizer for changing WooCommerce settings. 2018-07-09 10:45:48 +02:00
Mike Jolley ff0e492a41 Setting 2018-06-27 18:38:36 +01:00
Mike Jolley 4fc64e85a6 Create placeholder image on install 2018-06-27 17:47:30 +01:00
Rodrigo Primo 43d22a2349 Merge branch 'master' into update/use-post-author-for-customer-id 2018-06-18 15:17:19 -03:00
Gerhard Potgieter 36d1c318cb Download Log FK Contraint check (#20478)
This PR introduces a check on the permission_id FK to ensure that it is not added multiple times on upgrades. It also names the key specifically to ensure future changes to the key can be targeted properly and removes old keys that were added since 3.4.0.

* Add FK check before adding the FK. Also give the FK a name to avoid auto generated names and duplicate keys.

* Remove additional OR

* Remove additional OR

* Final FK check query

* Add foreign key cleanup routine to 3.4.3 db version

* Only check on named foreign key now that we have a cleanup routine in place, use specific phpcignore

* Rework formatting of SQL query

* Change way to fetch and add FK, can't use procedural SQL, needs to be done via statements.

* Add table name to lookup

* Only clean up FK on the wc_download_log table

* Remove erenouse bracket
2018-06-18 11:47:47 -03:00
Rodrigo Primo f1f49bb27a Add WC 3.5.0 DB version update callback 2018-06-11 10:54:02 -03:00
Rodrigo Primo dd8bf8b522 Merge branch 'master' into update/use-post-author-for-customer-id 2018-06-11 10:44:14 -03:00
Rodrigo Primo fc5aef8478 Add nonce to force update WC database URL
Doing this to check if the user has intention to perform a WC database update before starting the process.
2018-06-07 09:55:47 -03:00
Rodrigo Primo a200686005 Add nonce to update WC database URL
Doing this to check if the user has intention to perform a WC database update before starting the process.
2018-06-07 09:45:18 -03:00
Gerhard Potgieter cc563c2883 Use single quotes, not a field name but a value 2018-06-04 13:31:03 +02:00
Gerhard Potgieter 193ae78037 Revert "Only run constraint if it does not already exist"
This reverts commit dcddf1b273.
2018-06-04 13:21:01 +02:00
Gerhard Potgieter dcddf1b273 Only run constraint if it does not already exist 2018-06-04 13:18:57 +02:00
Gerhard Potgieter 55d5e6c6f0 Avoid looping 2018-06-04 13:15:36 +02:00
Gerhard Potgieter 4fde0e9129 Add column data type checks to ensure they match before running the download logs constraint. 2018-06-04 13:10:05 +02:00
Mike Jolley 083c994732 Break up update routine and allow it run to multuple times 2018-05-25 14:18:19 +01:00
Rodrigo Primo c49059ce7a Merge branch 'master' into update/use-post-author-for-customer-id 2018-05-08 17:34:09 -03:00
Claudiu Lodromanean 9e1b8245be
Merge pull request #19987 from woocommerce/fix/plugin-install-get-proper-plugin-filename
Plugin installer: fix extracting filename from path
2018-05-07 14:37:40 -07:00
Paul Dechov d7dc2d45a4 Use simpler function for retrieving last array item
Also avoids array dereferencing syntax incompatible with PHP <5.4.
2018-05-07 14:50:26 -04:00
Paul Dechov 660a7eea0e Fix plugin installer extracting filename from path 2018-05-07 08:27:22 -04:00
Mike Jolley 9e9949a742 This should be on by default 2018-05-03 16:50:26 +01:00
Claudio Sanches a55ae32530
Merge pull request #19935 from woocommerce/update/19815
Hook doc update
2018-05-02 13:29:23 -03:00
Mike Jolley 06ef8c8589 Hook doc update 2018-05-02 14:28:53 +01:00
Mike Jolley e807c6151f Merge branch 'master' into update/erasure-requests 2018-05-02 14:06:47 +01:00
Claudiu Lodromanean 390288e283
Merge pull request #19914 from woocommerce/update/gdpr-log-audit
GDPR - log audit
2018-05-01 09:57:36 -07:00
Mike Jolley e8f3bac6c8 Implement log cleanup cron job (woocommerce_cleanup_logs) 2018-05-01 16:37:14 +01:00
Mike Jolley 250b7aecd5 Update function to set last active 2018-05-01 14:13:38 +01:00
Mike Jolley f59acf1350 Merge branch 'master' into update/erasure-requests 2018-05-01 13:46:53 +01:00
Mike Jolley 3c34394296 Set more defaults to reduce query count 2018-05-01 12:15:57 +01:00
Mike Jolley c765ce644d Inactive account handling 2018-04-30 15:38:45 +01:00
Claudio Sanches d496e28d08 Trigger GeoLite2 database download after update
Closes #19840
2018-04-24 15:32:27 -03:00
Gerhard Potgieter fc43bd2410 Delay tracking request by 10 seconds to allow for page load to complete first. 2018-04-24 12:42:06 +02:00
Mike Jolley 9dfb91835e Merge branch 'master' into update/gdpr-order-cleanup 2018-04-18 11:21:43 +01:00
claudiulodro f9e45bea91 Bring up-to-date with master and resolve merge conflicts 2018-04-17 13:27:39 -07:00
Claudiu Lodromanean 9821f6d23f
Merge pull request #19744 from woocommerce/update/19592
BD states and iso codes
2018-04-17 08:44:34 -07:00
Mike Jolley 9b043868e9 Update routine 2018-04-17 16:13:44 +01:00
Rodrigo Primo ccf10f6ab2 Punt to WC version 3.5.0 2018-04-17 11:12:46 -03:00
Mike Jolley 6e9e1aaa62 Daily order cleanup cron schedule 2018-04-17 12:33:22 +01:00
Paul Dechov a4f76e3529 Fix broken activation when done immediately after installation 2018-04-16 07:22:15 -04:00
Paul Dechov 3814796a24 Enhance plugin installer to accept plugin 'file'
'file' string as part of plugin information is used for activating plugin in combination with slug, or instead of slug in the case of plugins already installed. Defaults to [slug].php.
2018-04-16 07:16:59 -04:00
Mike Jolley 93d20d9c93 Data removal handling 2018-04-13 18:03:02 +01:00
Rodrigo Primo 36ca6ef901 Merge branch 'master' into update/use-post-author-for-customer-id 2018-04-11 15:19:58 -03:00
Peter Fabian ac1883ee00 Included db update scripts in WC install 2018-04-09 23:24:26 +02:00
Rodrigo Primo a7d2c5dd6e Merge branch 'master' into update/use-post-author-for-customer-id 2018-04-03 15:13:07 -03:00
Claudio Sanches b8534eee28 Fixed includes/class-wc-install.php PHPCS violations 2018-03-21 00:06:47 -03:00
Steve Grunwell 049876ac8f Add the "woocommerce_install_get_tables" filter to WC_Install::get_tables()
This commit adds a new filter, "woocommerce_install_get_tables", to the WC_Install::get_tables() method, enabling WooCommerce extensions to register new, WooCommerce-specific tables, ensuring these tables can be cleaned up automatically should WooCommerce be uninstalled (useful for things like custom table data stores). Nothing gets added by default, but this provides an integration point for plugins like WooCommerce Custom Orders Table.
2018-03-16 18:54:17 +00:00
Claudio Sanches c2966805c8
Merge pull request #19386 from woocommerce/fix/insert-term-fatal-error
Check if wp_insert_term() returned a term before using it
2018-03-13 14:33:17 -03:00
Rodrigo Primo d603ba0b68 Check if wp_insert_term() returned a term before using it
This commit adds a check to make sure wp_insert_term() returned a term and not an instance of WP_Error before trying to access it. Without this change, the old code could produce the following fatal error:

Uncaught Error: Cannot use object of type WP_Error as array in includes/class-wc-install.php:478

Fixes #19377
2018-03-13 11:02:55 -03:00
Rodrigo Primo 40c56d8ee3 Fix default product category check
This commit casts the 'default_product_cat' option to integer before passing it to `term_exists()`. If we don't do this, `get_option( 'default_product_cat' )` return a string that is passed to `term_exists( $woocommerce_default_category, 'product_cat' )`. `term_exists()` assumes that strings are term names or slugs and search only for this fields to check if the given term exist. So it will return false (unless the term name equals to the term ID which is unlikely) even though the term exists. To make it search for terms IDs to check if the given term exists, it is necessary to pass an integer.
2018-03-13 10:19:35 -03:00
Paul Dechov 08e8ca7823 Activate plugins during installation process even if directory doesn't match slug 2018-03-01 11:50:54 -05:00
Rodrigo Primo 5be9d1b118 Remove all WC tables when uninstalling the plugin
There were two outdated lists of WC tables. One used to drop tables when WC is uninstalled and another one to drop tables when a site is deleted in a multi site environment. This commit creates a new unified list of WC tables, adds the missing tables to this list and introduces a unit test that will fail if the list gets outdated.
2018-02-06 11:19:40 -02:00
Rodrigo Primo 13f703fd32 Don't call WC_Install::install() on downgrades
WC doesn't support downgrades but the if condition that decides whether or not to call WC_Install::install() and apply database schema changes was checking if the WC version stored in the database is equal to the WC version in the code. This commit changes the check performed inside the if condition to verify if the WC version stored in the database is smaller than the version in the code. This way `dbDelta()` won't be called automatically by WC and revert database schema changes. This is particulary important for clustered providers where the version of the WC code running in one of the containers could be outdated and trigger a database downgrade.
2018-02-05 14:40:51 -02:00
Rodrigo Primo 13351b3d75 phpcs fixes
Removed the print_r() call as phpcs was complaining about it and there is no need to output the version values as phpunit will do that if the test fails.
2018-02-05 14:40:36 -02:00
James Allan b2510773b1 On 3.3 upgrade set PayPal sandbox API credentials 2018-01-23 12:53:17 +10:00
Rodrigo Primo 7f43c39f2f Bump WC version to 3.4.0 2018-01-09 15:42:13 -02:00
Rodrigo Primo bf5c6f17a7 phpcs fixes 2018-01-09 15:42:08 -02:00
Rodrigo Primo 9de8478b42 Merge branch 'master' into update/use-post-author-for-customer-id 2018-01-09 15:21:12 -02:00
Shiva Poudel 0432b58182 Remove unwanted transient then were not set 2017-12-18 20:03:08 +05:45
Mike Jolley a42ba4607e
Merge pull request #18060 from woocommerce/fix/17915
Background processing; multisite should process current blog queue only
2017-12-13 12:38:19 +00:00
Mike Jolley 91803be50c Fix install_actions action name 2017-12-12 11:42:59 +00:00
Rodrigo Primo fee1dcf5f9 Merge branch 'master' into update/use-post-author-for-customer-id 2017-12-08 10:09:57 -02:00
Claudio Sanches 2f6f6112c2 Merge branch 'master' into feature/webhook-crud 2017-12-07 18:21:52 -02:00
Jonathan Belcher d38a9e2af6
Change order of commands to make DB last 2017-12-05 14:39:37 -05:00
Jonathan Belcher c39a181cb6 Clear addons transients on update to 3.3.0 2017-12-05 12:23:51 -05:00
Claudio Sanches 0f4f8a3f16
Merge branch 'master' into feature/webhook-crud 2017-12-04 12:37:10 -02:00
Mike Jolley 0a9485c465 Merge branch 'master' into feature/11259
# Conflicts:
#	assets/css/admin-rtl.css
#	assets/css/admin.css
#	includes/admin/list-tables/class-wc-admin-list-table-products.php
#	includes/class-wc-install.php
#	includes/wc-update-functions.php
2017-12-04 14:14:03 +00:00
Claudio Sanches cc20c1282c Fixed merge 2017-11-28 15:09:54 -02:00
Claudio Sanches c6f8e95b97 Merge branch 'master' into feature/webhook-crud 2017-11-28 15:09:10 -02:00
Rodrigo Primo 61c7abce4f First pass at using post_author instead of the post meta '_customer_user' 2017-11-28 10:13:30 -02:00
Claudio Sanches 8ed6e7436f
Merge pull request #17909 from woocommerce/update/phpcs-violations
Fix some PHPCS violations
2017-11-27 18:42:24 -02:00
Mike Jolley 856ae87d54 Update method 2017-11-23 15:44:17 +00:00
Mike Jolley c5a80d080b Rename so delete is hidden 2017-11-23 14:41:17 +00:00
Mike Jolley 3e921e524d Install default cat 2017-11-23 14:38:40 +00:00
Mike Jolley 3dc4277490 Install a default cat 2017-11-23 14:26:34 +00:00
Rodrigo Primo de5a21dcb0 Fix PHPCS violations in includes/class-wc-install.php 2017-11-23 12:16:47 -02:00
Rodrigo Primo e12fa54bc6 phpcbf automatic coding standard fixes 2017-11-23 12:16:47 -02:00
claudiulodro cebe335dda Update routine 2017-11-20 14:21:08 -08:00
Mike Jolley 34b7f67646
Merge pull request #17755 from woocommerce/feature/webhook-delivery-logging
Webhook Logging via WC_Logger
2017-11-20 12:29:43 +00:00
Gerhard Potgieter 0725ed11ac Remove webhook comment migration method, not needed. 2017-11-20 08:12:49 +02:00
Claudio Sanches 2669b8edc4 Webhooks migration script 2017-11-16 13:44:01 -02:00
Claudio Sanches 9fe0c7261e Merge branch 'master' into feature/webhook-crud 2017-11-16 12:20:22 -02:00
Gerhard Potgieter 3524ed2cf0 Merge branch 'master' of github.com:woocommerce/woocommerce into feature/webhook-delivery-logging 2017-11-15 14:28:14 +02:00
Mike Jolley 04d8184496 More filter options 2017-11-13 19:03:08 +00:00
Mike Jolley 3e7968d37b Merge branch 'master' into pr/16418 2017-11-13 14:37:18 +00:00
Gerhard Potgieter d7ca1d8cd8 Webhook logs update routine to move from comments to wc_logger 2017-11-09 08:02:59 +02:00
Mike Jolley 6f693d4d1a Upgrade routine 2017-11-07 19:16:44 +00:00
Claudio Sanches 368d958be4 Merge branch 'master' into feature/webhook-crud 2017-10-10 16:13:37 -03:00
Gerhard Potgieter 75003fe3dc Lock the install routine via a transient to prohibit race conditions due to firing on the init hook. 2017-09-27 17:41:26 +02:00
Mike Jolley 9c5765b625 This should be off by default 2017-09-06 10:49:03 +01:00
Mike Jolley 990e33dd07 Remove debug 2017-09-05 11:56:02 +01:00
Mike Jolley a4a9badbb9 Refactor and introduce `woocommerce_enable_auto_update_db` 2017-09-05 11:54:17 +01:00
Mike Jolley 8703481742 Merge pull request #16601 from ethitter/add/disable-mkdir
Allow install-related directory creation to be bypassed
2017-08-29 11:12:24 +01:00
Matt Miller 42e6d4dffe Removed extra tab character 2017-08-28 13:25:20 -07:00
Matt Miller a9db02d340 Variable update on sale schedule event fix
Removed extra variable declaration
2017-08-28 12:35:11 -07:00
Matt Miller 34b64764c7 Absolute value for gmt_offset in scheduled sales
In the event that you choose a -GMT value, the values are incorrect in some instances. For examples, if we choose a -7 GMT value, the gmt_offset will evaluate to '-7'.

On line 309, $ve will equal '+'.

On line 312, previously, $ve . get_option( 'gmt_offset' ) would evalute to '+-7'.
2017-08-25 15:25:39 -07:00
Erick Hitter aa881a0c47 Clarify inline doc 2017-08-24 21:42:32 -07:00
Erick Hitter c43155aff7 Allow directory creation to be bypassed 2017-08-24 21:16:32 -07:00
Josh Smith ee13db49a2 [#12517] Move download log table to const and helper, output download log report titles in standalone function, reorganize download log data store read for code readability 2017-08-23 03:10:14 +00:00
Josh Smith 868a0e0e84 Merge remote-tracking branch 'upstream/master' 2017-08-23 02:33:01 +00:00
Mike Jolley d68291b3ac Merge pull request #16086 from woocommerce/improvement/versions
Extensions version check.
2017-08-21 18:18:04 +01:00
Josh Smith 413444c616 Merge remote-tracking branch 'upstream/master' 2017-08-20 04:09:17 +00:00
Claudio Sanches 95de32d9c7 Changed webhook table name for #16390 2017-08-18 13:41:02 -03:00
Claudio Sanches 4762c04b4b Removed shop_webhook post type and removed upgrade scripts
With Webhook CRUD there is no more need to update hooks on database.
2017-08-17 11:37:57 -03:00
Claudio Sanches 1a3a2c0658 Updated webhook database schema
Allow default dates to '0000-00-00 00:00:00' and failure_count to '0'
2017-08-16 21:48:09 -03:00
Claudio Sanches e8defa48dc Webhook database schema 2017-08-16 15:37:22 -03:00
Claudio Sanches 3a12f7b494 2.1.2 db update functions 2017-08-15 13:01:28 -03:00
Claudio Sanches 339ab41bf1 Remove unfiltered_html capability from Shop Managers 2017-08-15 12:57:12 -03:00
Josh Smith fe01910b8b Fixing spacing on WC_Product and WC_Install 2017-08-11 16:49:49 +00:00
Josh Smith 644ac674d7 [#12517] Replace download_id on customer download and product download with static UUID instead of filename based hash, to preserve download links, logs, and permissions across filename changes 2017-08-05 04:42:31 +00:00
Josh Smith 399269a4f1 [#12517] Implement logging product downloads into new logging table 2017-07-30 22:38:17 +00:00
claudiulodro 45ba7fcbbb Corral things together 2017-07-13 11:00:39 -07:00
Mike Jolley b83f3cb9af handle MX state updates 2017-06-28 12:57:37 +01:00
Mike Jolley caacd65085 Update function to ensure notes have correct type (pre WC 1.6) 2017-06-08 12:18:07 +01:00
claudiulodro cad7757045 Add index to order_id 2017-06-01 11:26:35 -07:00
Mike Jolley 85b8d8661a Merge pull request #14595 from woocommerce/feature/helper
Helper: First pass at merging the Helper plugin into WooCommerce
2017-05-30 20:39:08 +01:00
Konstantin Kovshenin e8afe57593 Helper: Add contextual nags about available extension updates 2017-05-24 14:59:48 +03:00
Mike Jolley d3666738d8 Merge branch 'pr/15069' 2017-05-23 18:56:58 +01:00
Mike Jolley 15f47e00a2 Merge branch 'master' into feature/13088
# Conflicts:
#	assets/css/admin-rtl.css
#	assets/css/admin.css
#	assets/css/twenty-seventeen-rtl.css
#	assets/css/twenty-seventeen.css
#	assets/css/woocommerce-rtl.css
#	assets/css/woocommerce.css
2017-05-23 16:35:17 +01:00
Mike Jolley 956b1a6181 Adds storefront/theme step to the setup wizard
Also includes a background install to get Storefront installed and
activated on demand.

To test, use a default theme and go to wp-admin/index.php?page=wc-setup
The theme step will be after payments!
2017-05-17 17:42:18 +01:00
Rasmus Bengtsson 185934fad9 Fix phpdoc to include params and correct types 2017-05-15 13:50:52 +02:00
Akeda Bagus 881929b9b3
Fix small typo in the docblock. 2017-04-29 13:52:14 +07:00
Mike Jolley 412ddeacda When checking if the update notice should be shown, compare minor version, not the patch version
Fixes #14333
2017-04-13 13:15:49 +01:00
Mike Jolley 2eb9405caa Fix notice styling 2017-04-11 11:40:42 +01:00
Mike Jolley 6f3d0c1c11 Install terms prior to update
Closes #13770
2017-03-27 11:55:36 +01:00
Brent Shepherd 16cc914714 Restore prior order item length
To maintain backward compatibility with custom order item types,
like 'order_item_pending_switch' used by Subscriptions.
2017-03-22 10:11:46 -07:00
Mike Jolley dea59579bb description changes, and usage of ID's instead of IDs 2017-03-20 15:47:51 +00:00
Claudio Sanches 544060c0f2 Updated upgrade script from 2.7 to 3.0 2017-03-15 13:55:07 -03:00
Claudio Sanches 59c2849736 Changed version 2.7 to 3.0 2017-03-15 13:36:53 -03:00
Rami Yushuvaev d2457fe922 i18n: escape translation strings and fix wrong usage of i18n functions 2017-03-13 07:39:46 +02:00
Mike Jolley 70d46fe008 Fix index checks 2017-02-16 16:45:50 +00:00
Mike Jolley f4ab01d276 Reduce index sizes based on data 2017-02-15 11:36:41 +00:00
Mike Jolley 5f20f9a1f1 Fix tax rate country index 2017-02-15 11:17:33 +00:00
Mike Jolley 3157955414 Adjustments to schema
#13161
2017-02-13 14:04:33 +00:00
Mike Jolley cfa3c34ada bigint(20) replacement
Closes #13160
2017-02-13 11:49:30 +00:00
Mike Jolley f7da2c615a Remove location_type index
Closes #13162
2017-02-13 11:47:27 +00:00
akashsonic cb42768164 Added exit after wp_safe_redirect.
Here not add exit after wp_safe_redirect.
2017-02-08 17:52:06 +05:30
Mike Jolley dd70417758 Fix offset direction for schedule sales cron
Fixes #13105
2017-02-08 12:08:49 +00:00
Jon Surrell e4d5886427 Replace log `tag` with log `source` 2016-12-29 11:58:43 +01:00
Jon Surrell 080cf8e436 Store log levels as integer representations in database
This will allow indexed ordering by severity.
Add WC_Log_Levels::get_severity_level method to translate severity
integers to level strings. The inverse of WC_Log_Levels::get_level_severity.
Add context to tests.
2016-12-29 11:58:43 +01:00
Jon Surrell 691c35e97b Update logger calls 2016-12-29 11:58:42 +01:00
Jon Surrell 822981c009 Improve handle signature
The signature of WC_Log_Handler::handle mirrors log messages which is more intuitive.
Method docblocks have also been improved and are more complete.
2016-12-29 11:58:42 +01:00
Mike Jolley 9651a1d3fc Update CLI callback 2016-12-13 13:38:20 +00:00
Mike Jolley dcb5211adf Clear woocommerce_plugin_background_installer event 2016-12-12 12:02:06 +00:00
Mike Jolley e0e0c9e832 Replace rating filters with taxonomy 2016-12-09 15:43:25 +00:00
Mike Jolley 47fbae4d26 Product Visibility Taxonomies (#12527)
* Convert visibility and featured to taxonomy

* Comment

* Add missing tax_queries

* Only check SKU after read.

* Added visibility term for outofstock products to speed those queries up al

* wc_bool_to_string
2016-12-08 10:56:45 +00:00
Mike Jolley a2263d2760 Type should be checked by name not slug 2016-12-07 18:08:59 +00: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
Justin Stern a3e371e0d7 Make WooCommerce core play nice with Codeception (#11845)
If is_blog_installed() is false then skip some installation steps that
are performed on the 'init' action and which require the database to be
available
2016-11-09 11:53:39 +00:00
Rami Yushuvaev d85075dcb0 a11y: replace `title` attributes with `aria-label`, for better accessibility 2016-11-04 17:41:51 +02:00
Claudio Sanches fa0c710802 i18n <a> links, closes #12195 2016-10-27 15:36:24 -02:00
Daniel Hüsken ab7f9dd674 Flush rewrite rules with cron for attribute terms (#12132) 2016-10-21 15:29:50 +01:00
Claudio Sanches 657c312cae Fix strings case (#12069)
* Fixed case for all _e, esc_attr_e and esc_html_e strings

* Fixed case for all _n_noop strings

* Fixed case for all _x strings

* Fixed case for all __, esc_html__ and esc_attr__ strings

* Fixed a few more strings

* Fixed strings in unit tests

* Fix PayPal Standard case.

* Save Order text
2016-10-12 11:16:30 +01:00
Claudio Sanches dc3dbefa94 Fixed woocommerce_sessions primary key, closes #11999 2016-10-04 12:26:57 -03:00
Matty ae75f8b8cd Adjusts all references of 'woothemes' to 'woocommerce' in relevant URLs, excluding the Travis CI integration which correctly uses 'woocommerce/woocommerce'. 2016-09-28 12:17:40 +02:00
Mike Jolley f9b2ed88c2 Merge branch 'pr/11883'
# Conflicts:
#	includes/class-wc-shortcodes.php
2016-09-12 14:53:04 +01:00
Mike Jolley 63b6323b54 no www. 2016-09-12 14:41:03 +01:00
Andrew Wikel a489d492b8 Change the "Premium Support" link to updated link
Change the domain to WooCommerce.com and then used the link from the menu on WooCommerce.com
2016-09-09 14:50:26 -05:00
Aristeides Stathopoulos 734f284fa4 WordPress.PHP.YodaConditions.NotYoda 2016-09-08 01:32:24 +03:00
Mike Jolley 311c540662 Merge pull request #11833 from aristath/master
Coding Standards (2nd pass)
2016-09-07 10:14:17 +01:00
Mike Jolley 0e409a4526 [2.6] Add missing tables to wpmu_drop_tables
Closes #11850
2016-09-07 08:26:51 +01:00
Aristeides Stathopoulos d4e3faf014 PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket 2016-09-02 04:51:31 +03:00
Aristeides Stathopoulos f2730eea02 WordPress.WhiteSpace.ControlStructureSpacing.BlankLineAfterEnd 2016-08-27 08:57:05 +03:00
Aristeides Stathopoulos ec8a0b288b PHPCS: WordPress.Arrays.ArrayDeclaration.NoCommaAfterLast 2016-08-27 05:08:49 +03:00
Aristeides Stathopoulos b063bcfe4c last item in a multiline-array should end in a comma 2016-08-27 04:46:45 +03:00
Rodrigo Primo 7acf712e45 Check if there is a comment_type index before adding one
Adding this check to avoid a MySQL error when running the query if the index already exists.
2016-08-09 14:28:41 +02:00
Rodrigo Primo 2e8f02f6a4 Add an index to the field comment_type
This index improves the response time of the query used by WC_Comments::wp_count_comments() to get the number of comments by type.
2016-08-09 10:00:51 +02:00
Mike Jolley cfe28c9b25 Made WC_Logger pluggable via wc_get_logger function.
Closes #11474
2016-08-08 13:59:23 +01:00
Justin Shreve cad08747b9 Add bulk edit and quick edit to the list of hooks for the product.updated webhook. 2016-08-03 13:32:02 -07:00
Mike Jolley 66c61eebc8 Define full path for includes
Closes #11087
2016-07-27 11:58:43 +01:00
Claudio Sanches 14eeee15ee Welcome to docs.woocommerce.com 2016-07-19 07:30:31 -03:00
Mike Jolley 2267f96134 Set max index length on woocommerce_payment_tokenmeta 2016-06-17 15:00:21 +01:00
Mike Jolley 1d9ab98649 Init background updater and include class to prevent error during uninstall 2016-06-15 16:11:04 +01:00
Mike Jolley 6fc6e07c46 Added link to force DB update if cron is disabled.
@claudiosmweb
2016-06-15 11:07:12 +01:00
Mike Jolley 34f2bd683e Prevent update notice appearing twice
@claudiosmweb
2016-06-13 12:44:19 +01:00
Mike Jolley 394da46c63 Merge pull request #11056 from shivapoudel/some-tweaks
Minor tweaks and JSHint ignore for update notice script
2016-06-06 18:23:25 +01:00
Shiva Poudel 00cc3711ac Minor tweaks and JSHint ignore for update notice script 2016-06-06 23:05:10 +05:45
Mike Jolley a0c01d963b Vars and docs 2016-06-06 18:18:26 +01:00
Scrutinizer Auto-Fixer 7cef8ae4c9 Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2016-06-06 16:50:18 +00:00
Claudio Sanches e39274e753 HTTPS for everybody 2016-05-26 22:48:49 -03:00
Mike Jolley 141dd2e7ef link to schema doc 2016-05-13 17:07:33 +01:00
Mike Jolley 9c1aa8afe8 Merge pull request #10899 from woothemes/background-updates
Handle DB updates in the background
2016-05-12 16:45:42 +01:00
Mike Jolley c1830c12cc Redirect to install page w/ nonce
Fixes #10860
2016-05-11 17:01:34 +01:00
Mike Jolley 5bb7a3a1c4 Logging 2016-05-11 14:22:42 +01:00
Mike Jolley 511e8c3146 Handle updates in install class 2016-05-11 12:44:23 +01:00
Claudio Sanches 65e7737956 Ignore trunk when showing update notice 2016-05-04 17:42:53 -03:00
Mike Jolley 29c6acf767 Used positional placeholders in strings where the order of strings may require modification in the locale.
Closes #10775
2016-04-25 13:07:41 +01:00
Mike Jolley 1439b6da31 Do plugin install in the background 2016-04-18 17:05:19 +01:00
Mike Jolley 1549158981 Add 'is_enabled' column to instances table and allow toggle in zones screen
@allendav
2016-03-15 17:23:06 +00:00
Mike Jolley 5e88adc02a Remove drop index code - will patch WP core 2016-03-12 08:18:28 +00:00
Mike Jolley 86a0fff731 [2.5] Before updating with DBDELTA, drop existing indexes so they can be re-added without duplicate key errors. 2016-03-11 12:32:43 +00:00
Justin Shreve 927941e2ca Merge pull request #10260 from justinshreve/token-api
Payment Token API
2016-03-04 04:34:41 -08:00
Mike Jolley 579365b7d5 Merge branch 'master' into 4-4-term-meta-handling
# Conflicts:
#	includes/class-wc-install.php
2016-03-02 18:38:39 +00:00
Mike Jolley b221f9964a Merge branch 'master' into 4-4-term-meta-handling 2016-03-02 18:24:52 +00:00
Mike Jolley 5c3e7ded03 Version checks not needed 2016-03-02 18:24:49 +00:00