Commit Graph

461 Commits

Author SHA1 Message Date
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
John James Jacoby ca8ffcc9f4 Update database keys for utf8mb4 charset/collation
Since WordPress 4.2, `utf8mb4` is a natively supported and encouraged type of installation. Unfortunately some WooCommerce database tables fail to get created in these types of installations (with something like the below settings):

```
define( 'DB_CHARSET', 'utf8mb4'            );
define( 'DB_COLLATE', 'utf8mb4_unicode_ci' );
```

This commit takes a queue from WordPress core's `schema.php` and limits the length of index `KEY`s to `191`.
2016-03-01 19:28:04 -06:00
Justin Shreve cfe1da13d5 Remove todo comment for payment token tables 2016-03-01 11:49:41 -08:00
Justin Shreve f66a8b6478 Rename customer_id to user_id to match how orders reference the user. 2016-03-01 11:49:39 -08:00
Justin Shreve da9368e8be Switch the payment token meta to use WP's metadata functions. 2016-03-01 11:49:38 -08:00
Justin Shreve f9b19234b0 Fix coding/WP standard for primary key definitions - there must be two spaces between the words PRIMARY key and the definition. 2016-03-01 11:49:37 -08:00
Justin Shreve c5aec06a8a First pass at a payment token API 2016-03-01 11:49:37 -08:00
Mike Jolley e987a3830a Remove index drop for tax table 2016-02-18 10:52:54 +00:00
Mike Jolley 352184cc06 Merge branch 'master' into shipping-zones
# Conflicts:
#	assets/css/admin.css
#	i18n/languages/woocommerce.pot
#	includes/abstracts/abstract-wc-payment-gateway.php
#	includes/abstracts/abstract-wc-shipping-method.php
#	includes/admin/settings/class-wc-settings-shipping.php
#	includes/wc-core-functions.php
#	uninstall.php
2016-02-05 14:58:48 +00:00
Shiva Poudel bf2be97dd0 Use get_charset_collate of WP 2016-01-27 15:55:56 +05:45
Mike Jolley 44eac248b3 [2.5] check_version on all requests
cc @allendav Closes #10091
2016-01-19 10:05:44 +00:00
Mike Jolley 1076854608 Merge branch 'master' into shipping-zones
# Conflicts:
#	assets/css/admin.css
#	includes/abstracts/abstract-wc-shipping-method.php
#	includes/class-wc-shipping.php
#	includes/shipping/flat-rate/class-wc-shipping-flat-rate.php
#	includes/shipping/flat-rate/includes/class-wc-eval-math.php
#	includes/shipping/free-shipping/class-wc-shipping-free-shipping.php
#
includes/shipping/legacy-international-delivery/class-wc-shipping-legacy
-international-delivery.php
#
includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-d
elivery.php
2016-01-11 11:48:18 +00:00
Mike Jolley a33b9b9750 Unit tests for shipping zones 2016-01-08 13:56:01 +00:00
Mike Jolley 76405ed220 Schema fixes 2016-01-08 13:17:13 +00:00
Fredrik Forsmo bb19615029 Improve docblock comments in various WC_* classes
* Added comments to various methods
* Fixed various properties comments and param types
2016-01-06 16:24:47 +01:00
Mike Jolley ebba366433 Delete page transient after creating pages
Closes #9962
2016-01-05 15:19:48 +00:00
Mike Jolley 97d47fb576 Move zones to main settings 2016-01-05 11:23:15 +00:00
Mike Jolley 62ca37f651 Merge branch 'master' into shipping-zones
# Conflicts:
#	includes/admin/class-wc-admin-assets.php
#	includes/class-wc-install.php
2016-01-04 14:35:45 +00:00
Mike Jolley 901db7b0f8 zone tweaks 2015-12-18 17:10:58 +00:00
Claudio Sanches c04443c2d3 Added upgrade script for #9868
cc @mikejolley
2015-12-17 08:30:06 -02:00
Mike Jolley 6cea054fca Method list screen and method screen with breadcrumbs 2015-12-11 14:11:12 +00:00
Mike Jolley 14eeb9f936 Zones first draft with backbone saving of zone names 2015-12-10 11:55:03 +00:00
Mike Jolley d64bcd70bd Only install termmeta table on older installs 2015-11-06 15:33:12 +00:00
Scrutinizer Auto-Fixer 08efaf84df Scrutinizer Auto-Fixes
This commit consists of patches automatically generated for this project on https://scrutinizer-ci.com
2015-11-05 16:05:03 +00:00
James Collins 45972cf92b Fix duplicate key errors during db upgrade/install
Running phpunit tests currently outputs the following errors/warnings:

WordPress database error Duplicate key name 'session_id' for query ALTER TABLE wptests_woocommerce_sessions ADD UNIQUE KEY  session_id (session_id) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_Command->handleArguments, PHPUnit_TextUI_Command->handleBootstrap, PHPUnit_Util_Fileloader::checkAndLoad, PHPUnit_Util_Fileloader::load, include_once('/srv/www/woocommerce/htdocs/wp-content/plugins/woocommerce/tests/bootstrap.php'), WC_Unit_Tests_Bootstrap::instance, WC_Unit_Tests_Bootstrap->__construct, require_once('/srv/www/wordpress-develop/tests/phpunit/includes/bootstrap.php'), require_once('wp-settings.php'), do_action('setup_theme'), call_user_func_array, WC_Unit_Tests_Bootstrap->install_wc, WC_Install::install, WC_Install::create_tables, dbDelta
WordPress database error Multiple primary key defined for query ALTER TABLE wptests_woocommerce_sessions ADD PRIMARY KEY  session_key (session_key) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_Command->handleArguments, PHPUnit_TextUI_Command->handleBootstrap, PHPUnit_Util_Fileloader::checkAndLoad, PHPUnit_Util_Fileloader::load, include_once('/srv/www/woocommerce/htdocs/wp-content/plugins/woocommerce/tests/bootstrap.php'), WC_Unit_Tests_Bootstrap::instance, WC_Unit_Tests_Bootstrap->__construct, require_once('/srv/www/wordpress-develop/tests/phpunit/includes/bootstrap.php'), require_once('wp-settings.php'), do_action('setup_theme'), call_user_func_array, WC_Unit_Tests_Bootstrap->install_wc, WC_Install::install, WC_Install::create_tables, dbDelta

WordPress database error Duplicate key name 'session_id' for query ALTER TABLE wptests_woocommerce_sessions ADD UNIQUE KEY  session_id (session_id) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_TestRunner->doRun, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestCase->run, PHPUnit_Framework_TestResult->run, PHPUnit_Framework_TestCase->runBare, PHPUnit_Framework_TestCase->runTest, ReflectionMethod->invokeArgs, WooCommerce\Tests\Util\WC_Tests_Install->test_check_version, WC_Install::check_version, WC_Install::install, WC_Install::create_tables, dbDelta
WordPress database error Multiple primary key defined for query ALTER TABLE wptests_woocommerce_sessions ADD PRIMARY KEY  session_key (session_key) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_TestRunner->doRun, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestCase->run, PHPUnit_Framework_TestResult->run, PHPUnit_Framework_TestCase->runBare, PHPUnit_Framework_TestCase->runTest, ReflectionMethod->invokeArgs, WooCommerce\Tests\Util\WC_Tests_Install->test_check_version, WC_Install::check_version, WC_Install::install, WC_Install::create_tables, dbDelta
.WordPress database error Duplicate key name 'session_id' for query ALTER TABLE wptests_woocommerce_sessions ADD UNIQUE KEY  session_id (session_id) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_TestRunner->doRun, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestCase->run, PHPUnit_Framework_TestResult->run, PHPUnit_Framework_TestCase->runBare, PHPUnit_Framework_TestCase->runTest, ReflectionMethod->invokeArgs, WooCommerce\Tests\Util\WC_Tests_Install->test_install, WC_Install::install, WC_Install::create_tables, dbDelta
WordPress database error Multiple primary key defined for query ALTER TABLE wptests_woocommerce_sessions ADD PRIMARY KEY  session_key (session_key) made by PHPUnit_TextUI_Command::main, PHPUnit_TextUI_Command->run, PHPUnit_TextUI_TestRunner->doRun, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestCase->run, PHPUnit_Framework_TestResult->run, PHPUnit_Framework_TestCase->runBare, PHPUnit_Framework_TestCase->runTest, ReflectionMethod->invokeArgs, WooCommerce\Tests\Util\WC_Tests_Install->test_install, WC_Install::install, WC_Install::create_tables, dbDelta

dbDelta requires very specific syntax (as per http://codex.wordpress.org/Creating_Tables_with_Plugins).
2015-11-05 13:43:56 +08:00
Shiva Poudel d9e8057df3 Tweak the dockblocks and periodic-ending fix 2015-11-04 00:05:08 +05:45
Claudio Sanches 5893875b0c Removed period for file headers 2015-11-03 11:53:50 -02:00
Claudio Sanches ee30b5b308 Fixed php docs standards 2015-11-03 11:31:20 -02:00