Commit Graph

28159 Commits

Author SHA1 Message Date
Brent Shepherd 0611ff7665 Add WC_Action_Queue
As a wrapper for Action Scheduler. This implements the WC_Queue_Interface
so it can be used as WC core's job queue. Implementing WC_Queue_Interface
also means this class has more generic and appropriate job queue nomenclature
than Action Scheduler itself. For exsample, it provides a method for
non-delayed jobs, i.e. WC_Queue_Interface::add(), unlike Action Scheduler,
which requires scheduling a job for now(), which while fairly simple, is not
intuitive or immediately obvious to new comers.

This makes it both more clear and convenient to use Action Scheduler
as a simple job queue instead of just a queue for delayed jobs.
2018-07-31 12:21:04 +10:00
Brent Shepherd 8e4466c9c8 Add WC_Queue_Interface
To provide an agreed set of public methods that need to be defined
for any class wanting to act as WooCommerce's queue handler.

The require APIs support both delay jobs, by providing APIs to
schedule an action/job/event for some time in the future, and a
non-delayed job API, to add an event to the queue to run as soon
as possible.
2018-07-31 12:20:30 +10:00
Brent Shepherd e00e728f1f Merge branch 'master' into issue_18003 2018-07-25 14:41:56 +10:00
Claudiu Lodromanean 59de4c7148
Merge pull request #20879 from woocommerce/fix/20671
Update redirect option during activation of MailChimp in Install Wizard.
2018-07-24 11:07:00 -07:00
Claudiu Lodromanean 4c945f2e7e
Merge pull request #20854 from EmranAhmed/master
Prevent JS Issue if `woocommerce_available_variation` filter return false
2018-07-24 10:50:08 -07:00
Claudiu Lodromanean 9e3da78c73
Merge pull request #20853 from woocommerce/reduce-test-suite-execution-time
Reduce WC_Tests_REST_System_Status tests execution time
2018-07-24 10:46:26 -07:00
Claudiu Lodromanean 4016925616
Merge pull request #20818 from woocommerce/fix/20797-2
Removed 100% width on images on single product page for 2017 theme
2018-07-24 10:40:42 -07:00
Claudiu Lodromanean 9886d678bb
Merge pull request #20812 from woocommerce/fix/20804
Do not build paypal pay link when no base country is set.
2018-07-24 10:31:34 -07:00
Claudiu Lodromanean 8cde592c54
Merge pull request #20787 from thenbrent/error_log_file_line
Expand fatal error logging and add file/line number to log entries
2018-07-24 10:28:38 -07:00
Claudiu Lodromanean a0b4a8df03
Merge pull request #20611 from woocommerce/fix/20349
Allow filtering variations by attributes in API.
2018-07-24 10:25:36 -07:00
Claudiu Lodromanean 87acfa731d
Merge pull request #20260 from leglesslizard/master
Set low stock notification threshold per product
2018-07-24 10:23:15 -07:00
Peter Fabian d679a88156 Update redirect option during activation of MailChimp in Install Wizard. 2018-07-24 12:29:10 +02:00
Peter Fabian a19fff2da0
Merge pull request #20861 from rnaby/200718-225157-wc-csv-exporter
PHPDoc | Return type changed from array to string.
2018-07-23 11:07:19 +02:00
Peter Fabian a8eac15e5b Regenerate CSS after master merge. 2018-07-21 22:17:54 +02:00
Peter Fabian d9202ed6be Merge branch 'master' into fix/20797-2 2018-07-21 22:06:46 +02:00
Khan M Rashedun-Naby 90b6f98582 PHPDoc | Return type changed to string from array. 2018-07-20 22:59:41 +06:00
Khan M Rashedun-Naby eb104ecd17 PHPDoc | Return type changed from array to string. 2018-07-20 22:53:16 +06:00
Emran Ahmed f0151ca873
Re-indexing `get_available_variations` method values when `woocommerce_available_variation` filter return false.
### All Submissions:

* [x] Have you followed the [WooCommerce Contributing guideline](https://github.com/woocommerce/woocommerce/blob/master/.github/CONTRIBUTING.md)?
* [x] Does your code follow the [WordPress' coding standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/)?
* [x] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change?

<!-- Mark completed items with an [x] -->

<!-- You can erase any parts of this template not applicable to your Pull Request. -->

### Changes proposed in this Pull Request:

Re-indexing `get_available_variations` method values.

Suppose you made changed with `woocommerce_available_variation` hook and skip returning some specific variation product with false value. There is `array_filter` function to filter empty values from `get_available_variations` but it keeps index which convert to js object rather then array on `single-product/add-to-cart/variable.php` template variation form `data-product_variations` attribute, and select box dropdown doesn't show. I just added `array_values` PHP function to reindex after `array_filter` function which convert to js array rather then js object before `get_available_variations` function return.

Closes # .

### How to test the changes in this Pull Request:

1. Before approving pull req just return false on a specific variation via `woocommerce_available_variation` filter.
2. Now check that variation product dropdown doesn't show. Because it needs to reindex array.

### Other information:

* [x] Have you added an explanation of what your changes do and why you'd like us to include them?
* [ ] Have you written new tests for your changes, as applicable?
* [x] Have you successfully ran tests with your changes locally?

<!-- Mark completed items with an [x] -->

### Changelog entry

> Enter a short summary of all changes on this Pull Request. This will appear in the changelog if accepted.
2018-07-20 20:14:57 +06:00
Gerhard Potgieter 8aba169654 Switch travis codecoverage from xdebug to phpdbg (#20857)
This commit changes the travis codecoverage from using xdebug to phpdbg, phpdbg seems much faster and gives similar results.

Reason for switching is we have been running into constant timeouts on our codecoverage due to the 50min job limit on travis, which means our codecoverage has not been updated in a couple of months.

* Remove xdebug as it slows tests down, switch to using phpdbg for code coverage.

* Update parameters for phpdbg

* It is qrr not qqr

* Include vendor/bin path when using phpdbg

* Use PHP 7.1 to run phpdbg

* Update phpunit dire

* Include $HOME in phpdbg call to phpunit

* Set no memory limit to avoid out of memory errors.

* Assign timeout group to test_request_url test for paypal and do not execute that on coverage as it causes a memeory timeout. Test needs optimization to run for code coverage.

* @covers usage for methods should be prefixed with ::
2018-07-20 09:34:43 -03:00
Emran Ahmed 33949f3c25
Prevent JS Issue if `woocommerce_available_variation` return false for a variation.
After checking some condition if `woocommerce_available_variation` filter return false. Then Option list don't show because of JS issue.
2018-07-20 01:33:25 +06:00
Rodrigo Primo f47c9e7842 Reduce WC_Tests_REST_System_Status tests execution time
This commit changes WC_Tests_REST_System_Status tests to use artificial HTTP responses instead of performing external HTTP requests. With this change execution time for these tests droped from 22s to 3s.
2018-07-19 14:22:29 -03:00
Rodrigo Primo 1860cd1933 Change WC_Unit_Test_Case to extend WP_HTTP_TestCase instead of WP_UnitTestCase
This commits changes WC_Unit_Test_Case parent class to WP_HTTP_TestCase (which extends WP_UnitTestCase). This way all WC core test classes can benefit from the functionality provided by WP_HTTP_TestCase if needed. This is necessary because otherwise test classes can use the functionality provided by WC_Unit_Test_Case or WP_HTTP_TestCase. This change should not affect test classes that don't explicitly call one of the WP_HTTP_TestCase features.
2018-07-19 14:17:06 -03:00
Peter Fabian b9cdc760ac
Merge pull request #20817 from keefyhub/master
Add class names to `edit_category_fields()` to be inline with other f…
2018-07-19 18:45:00 +02:00
Gerhard Potgieter 990ab6a910
Merge pull request #20850 from rodrigoprimo/oembed-test
Use an artificial HTTP response for wc_do_oembeds() test
2018-07-19 17:30:44 +02:00
Rodrigo Primo 1d13dd4dd4 Use an artificial HTTP response for wc_do_oembeds() test
Doing this to speed up the test as an HTTP request to an external server is slow and also because it should fix this test that has been failing on Travis only for an unknown reason.
2018-07-19 10:35:32 -03:00
Rodrigo Primo fb9aa71b33 Undoing DB changes on tearDown() is not necessary
WP test suite starts a transaction when the test starts and roll it back when the test finishes. So it is not necessary to undo database changes using tearDown().
2018-07-19 10:35:19 -03:00
Peter Fabian 15e44897f6
Merge pull request #20849 from woocommerce/fix/20838
Add a margin to the bestseller widget product title
2018-07-19 14:27:33 +02:00
Gerhard Potgieter 67b46aadf8 Include postcss task in the watch to be the same as grunt css 2018-07-19 14:12:12 +02:00
Peter Fabian 22059880cd
Merge pull request #20842 from rnaby/180718-221942-wc-data
Unnecessary Variables and Spaces Removed
2018-07-19 13:49:25 +02:00
Gerhard Potgieter 3065eec515 Add a margin to the bestseller widget product title to avoid it overlapping the sparkline when the title is long. 2018-07-19 12:26:45 +02:00
Peter Fabian a26530f84a
Merge pull request #20846 from woocommerce/fix/e2e-tests
Enable SCRIPT_DEBUG on e2e tests
2018-07-19 11:18:38 +02:00
Gerhard Potgieter c3993accd4 Set SCRIPT_DEBUG to true for e2e tests since we never commit minified js during dev, only once we do a release do we minify scripts. 2018-07-19 09:06:11 +02:00
Gerhard Potgieter 30766df5c4
Merge pull request #20840 from woocommerce/add/wp-http-testcase
Fix test failing only the Travis builds
2018-07-19 07:42:02 +02:00
Khan M Rashedun-Naby 25ab294d40 Unnecessay Spaces Removed 2018-07-19 10:33:22 +06:00
Claudio Sanches 09d50df86b
Merge pull request #20753 from ldybecklee/master
Fix product csv exporter get stock value
2018-07-18 21:23:44 -03:00
Rodrigo Primo 34ec2e87c0 Add wp-http-testcase directly to the repository
This commit adds the composer package jdgrimes/wp-http-testcase directly to this repository instead of via composer. Doing this because I couldn't find a way to make this package work on Travis build jobs running older versions of PHP and I don't think it is worth investing much time on it.
2018-07-18 18:19:39 -03:00
Rodrigo Primo 0e785d4614 Make WC_Tests_Product_CSV_Importer::test_import() faster
This commit changes the WC_Tests_Product_CSV_Importer class to use artificial HTTP responses instead of performing real HTTP requests to a external server to get the images of the imported products. On my local machine, this change reduced the test execution time from 3257ms to 831ms.

As a consequence of this change, this commit also fixes WC_Tests_Product_CSV_Importer::test_import() in all Travis builds. This test has been failing for a few weeks on Travis but not on our local environments. After some debugging, I found out that the test was failing on Travis because of the following error when `wp_safe_remote_get()` was called to get images for the imported products:

```
Error getting remote image http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_1_front.jpg. Error: cURL error 35: gnutls_handshake() failed: Handshake failed.
```

Apparently, the PHP binary that is used by Travis is unable to handle the TLS handshake (see https://github.com/travis-ci/travis-ci/issues/6339) and the test probably started failing when demo.woothemes.com (which is used to download the images for the imported products) switched from HTTP to HTTPS.
2018-07-18 17:16:26 -03:00
Rodrigo Primo 5c04cca91c Add jdgrimes/wp-http-testcase composer package
This commit adds jdgrimes/wp-http-testcase (https://github.com/JDGrimes/wp-http-testcase) composer package as a dev requirement. This package provides a PHPUnit testcase for testing code that uses the WP_Http class. Using it it is possible to create artificial HTTP responses skipping the request to external servers and making the tests faster.
2018-07-18 17:10:29 -03:00
Gerhard Potgieter ea2b3f9d7a
Merge pull request #20821 from woocommerce/fix/20718
Pass an instance of the background updater to the db update callbacks
2018-07-18 14:51:12 +02:00
ldybecklee a7de4672dc
Update class-wc-product-csv-exporter.php 2018-07-17 12:10:55 +08:00
ldybecklee 0cf070ed5e
fix method 'get_column_value_stock' 2018-07-17 12:09:34 +08:00
Rodrigo Primo b39b419e5b Pass an instance of the background updater to the db update callbacks
This commit changes the way that WC_Background_Updater::task() calls the database update callbacks and adds the WC_Background_Updater instance as the first parameter to the callbacks. This is used in wc_update_350_order_customer_id() (36b6bd79c0/includes/wc-update-functions.php (L1870)) to monitor memory usage while the function is running. This change was intended to ship with PR #17895 (see commit c77b2f20f4) but was accidentaly removed when merging commit 083c994732 from another PR.

Fixes #20718
2018-07-16 14:24:42 -03:00
Rodrigo Primo bfebd30565
Merge pull request #20726 from itowhid06/master
Convert  hardcoded db prefix to dynamic db prefix. Fixes #20718
2018-07-16 14:21:45 -03:00
Peter Fabian a5e4dc9dcc Removed 100% width on images on single product page for 2017 theme 2018-07-16 17:16:54 +02:00
Keith Light 4144211754 Add class names to `edit_category_fields()` to be inline with other fields
Class names are added in `add_category_fields()` but not `edit_category_fields()`
2018-07-16 15:24:57 +01:00
Gerhard Potgieter c7884003dc Do not build paypal pay link when no base country is set. 2018-07-16 11:44:58 +02:00
Brent Shepherd 67744b7768 Add 'woocommerce_shutdown_error' action 2018-07-13 17:08:34 +10:00
Brent Shepherd febea645f9 Log error's file and line number
To help with debugging.
2018-07-13 14:23:17 +10:00
Brent Shepherd 0c17fd49e4 Expand error logging to E_ERROR like errors
Including those triggered by code via trigger_error() and compile-time
parse errors (including those generated by Zend Scripting Engine).
2018-07-13 14:21:03 +10:00
Claudiu Lodromanean ef00985e44
Merge pull request #20762 from woocommerce/fix/20752
Fixed notice when variation does not exists on frontend
2018-07-12 11:59:05 -07:00