Now that all the required changes to make WooCommerce work fine with PHP 7.3 were implemented, it is safe to remove PHP 7.3 from the list of Travis build jobs that are allowed to fail.
The name of some sniffs changed in the most recent PHPCompatiblity version. This commit update all instances where those names are used in WooCommerce codebase.
The name of one of the WPCS sniffs changed from WordPress.CSRF.NonceVerification.NoNonceVerification to WordPress.Security.NonceVerification.NoNonceVerification. This commit updates all instances where this sniff is used in WooCommerce codebase.
In preparation for PHP 7.3, this commit makes the regular expressions used in Emogrifier compatible with PCRE2. It was necessary to escape hyphens used in a few regular expressions. Since the changes were simple and I'm not familiar enough with Emogrifier, I opted to backport the changes that they made in preparation for PHP 7.3 (https://github.com/MyIntervals/emogrifier/pull/588 and https://github.com/MyIntervals/emogrifier/issues/587) instead of updating the library to the yet to be released version 2.1.0.
This change removes the following warning when running WC unit tests using PHP 7.3:
PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 39 in includes/libraries/class-emogrifier.php on line 1504
For more information about the PCRE2 change in PHP 7.3 see the section "PCRE to PCRE2 migration" in the link https://ayesh.me/Upgrade-PHP-7.3
This commit changes the regular expression used to determine the WP_TESTS_TAG variable to ignore WP beta releases otherwise install_test_suite() will fail to download the test suite. This is part of workaround to run WooCommerce unit tests using PHP 7.3 and WP 5.0 beta-5.
To make it easier to test WC running the upcoming PHP 7.3, this commit changes the PHP 7.3 Travis build to run unit tests using WP 5.0-beta5. This way we won't display WP core warnings related to PHP 7.3 that were already fixed in the upcoming WP version and will be able to see only WC related warnings.
My initial plan was to use WP nightly but that didn't work as nightly is still build from trunk and WP 5.0 development is being done on another branch (https://make.wordpress.org/core/2018/10/05/wordpress-5-0-commit-management/).