Commit Graph

28353 Commits

Author SHA1 Message Date
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
Alex Sanford 0e1ec203cd Allow custom menu ordering when set by another filter
This fixes the case where another plugin sets custom menu ordering to be
true, but its filter runs before WooCommerce's filter. Otherwise
WooCommerce's filter will return false, and disallow the other plugin to
customize its menu items.
2018-07-19 17:39:41 -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
Khan M Rashedun-Naby 416f4b64ee HashTable Implemented 2018-07-18 01:37:08 +06: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 1f46caaa4c Test some edge cases where CC name could be empty or contain a non standard value. 2018-07-16 13:02:24 +02:00
Gerhard Potgieter 370c200076 Make wc_array_cartesian test use predefined array for testing against instead of relying on product attributes. 2018-07-16 12:59:01 +02:00
Gerhard Potgieter c7884003dc Do not build paypal pay link when no base country is set. 2018-07-16 11:44:58 +02:00
LuigiPulcini bca7bfe29c
Adding product data to `removed_from_cart` event
Adding `$thisbutton.data()` to the arguments sent by the `removed_from_cart` event.
This would help developers easily detect which product has just been removed and alter their theme/plugin accordingly.
2018-07-14 16:11:16 +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
Joey 6820de4f2f removed all low_stock additions to api files 2018-07-12 11:55:16 +01:00
Peter Fabian 3fa3830b6c
Merge pull request #20757 from woocommerce/update/wc_get_user_agent
Make wc_get_user_agent respect RFC2616
2018-07-12 11:46:51 +02:00
Claudio Sanches 2a1940aeba Fixed notice when variation does not exists on frontend
Closes #20752
2018-07-11 22:02:56 -03:00
Claudiu Lodromanean 6dbd5d5323
Merge pull request #20731 from woocommerce/add/20724
Do not load all tables in multisite system status
2018-07-11 13:42:52 -07:00
Gerhard Potgieter 9e495478f4 Add unit test for wc_decimal_to_fraction 2018-07-11 15:17:00 +02:00
Gerhard Potgieter a28253739f Add wc_get_permalink_structure unit test 2018-07-11 15:10:55 +02:00
Gerhard Potgieter 0c01b6c3bb Add wc_get_credit_card_type_label unit test 2018-07-11 15:05:18 +02:00
Gerhard Potgieter 1d5605c9dc Add wc_array_cartesian unit test 2018-07-11 14:59:05 +02:00
Gerhard Potgieter 2f7e42bb2f Add wc_get_theme_support unit test 2018-07-11 14:38:33 +02:00
Gerhard Potgieter eb533d0263 Update test_get_woocommerce_currencies to test for both cached and uncached currencies, gives us more code coverage 2018-07-11 14:25:42 +02:00
Gerhard Potgieter a6e7ae15f9 Add unit test for testing wc_get_user_agent 2018-07-11 14:11:31 +02:00
Gerhard Potgieter f0bd830502 Do not return or store user agent in lower case as HTTP header fields values are case sensitive as per rfc2616 2018-07-11 13:54:14 +02:00