diff --git a/Gruntfile.js b/Gruntfile.js
index 9fbdc4dc06..208f3b8b5e 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -208,4 +208,8 @@ module.exports = function ( grunt ) {
// Build task(s).
grunt.registerTask( 'prep', [ 'clean', 'force:checktextdomain' ] );
+ grunt.registerTask( 'build', [ 'clean', 'pro', 'lite' ] );
+ grunt.registerTask( 'pro', [ 'copy:pro', 'compress:pro' ] );
+ grunt.registerTask( 'lite', [ 'copy:lite', 'replace:pro' ] );
+ grunt.registerTask( 'repo', [ 'clean:repo', 'copy:repo', 'replace:repo' ] );
};
diff --git a/bin/update-blocks.sh b/bin/update-blocks.sh
deleted file mode 100644
index 05e491685b..0000000000
--- a/bin/update-blocks.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-# Remove anything that already exists.
-rm -rf includes/blocks
-
-# Initial clone
-git clone git@github.com:awesomemotive/edd-blocks includes/blocks
-
-# Install dependencies
-cd includes/blocks
-composer install --no-dev
-npm install && npm run build
-
-git rev-parse HEAD > ../.blocks-hash
-
-# Clean up files for distribution.
-# @todo Maybe use git archive? However composer.json would
-# need to be removed from .gitattributes export-ignore
-rm -rf languages
-rm -rf .git
-rm -rf .github
-rm -rf vendor
-rm .gitattributes
-rm .gitignore
-rm .editorconfig
-rm package-lock.json
-rm readme.md
-rm readme.txt
-rm composer.lock
-
-# Reset cwd
-cd ../../
diff --git a/composer.json b/composer.json
index 1874005ab7..ecbbc79cf7 100755
--- a/composer.json
+++ b/composer.json
@@ -9,10 +9,7 @@
"issues": "https://easydigitaldownloads.com/support"
},
"config": {
- "platform-check": false,
- "allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true
- }
+ "platform-check": false
},
"require": {
"nesbot/carbon": "^2.69.0",
@@ -24,11 +21,7 @@
"yoast/phpunit-polyfills": "^1.0.5",
"yoast/wp-test-utils": "^1.0",
"codedungeon/phpunit-result-printer": "dev-master",
- "coenjacobs/mozart": "dev-master",
- "wp-coding-standards/wpcs": "dev-develop",
- "squizlabs/php_codesniffer": "^3.7.2",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
- "phpcompatibility/phpcompatibility-wp": "^2.1.4"
+ "coenjacobs/mozart": "^0.7.1"
},
"minimum-stability": "dev",
"prefer-stable": true,
diff --git a/composer.lock b/composer.lock
index 33fe458114..66bce901f4 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "ae501374d2957404094ff57456d85a10",
+ "content-hash": "b78a6d80b1dd0a3b68ce7452892b6400",
"packages": [
{
"name": "carbonphp/carbon-doctrine-types",
- "version": "3.1.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5"
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/a31d3358a2a5d6ae947df1691d1f321418a5f3d5",
- "reference": "a31d3358a2a5d6ae947df1691d1f321418a5f3d5",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
"shasum": ""
},
"require": {
@@ -57,7 +57,7 @@
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.1.0"
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
},
"funding": [
{
@@ -73,20 +73,20 @@
"type": "tidelift"
}
],
- "time": "2023-12-10T15:33:53+00:00"
+ "time": "2024-02-09T16:56:22+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.72.3",
+ "version": "2.72.5",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
- "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
"shasum": ""
},
"require": {
@@ -120,8 +120,8 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@@ -180,7 +180,7 @@
"type": "tidelift"
}
],
- "time": "2024-01-25T10:35:09+00:00"
+ "time": "2024-06-03T19:18:41+00:00"
},
{
"name": "psr/clock",
@@ -292,16 +292,16 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.4.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"shasum": ""
},
"require": {
@@ -310,7 +310,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -339,7 +339,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -355,20 +355,20 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
- "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"shasum": ""
},
"require": {
@@ -419,7 +419,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
},
"funding": [
{
@@ -435,20 +435,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+ "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
- "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
+ "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
"shasum": ""
},
"require": {
@@ -499,7 +499,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
},
"funding": [
{
@@ -515,20 +515,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.4.3",
+ "version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "637c51191b6b184184bbf98937702bcf554f7d04"
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04",
- "reference": "637c51191b6b184184bbf98937702bcf554f7d04",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9",
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9",
"shasum": ""
},
"require": {
@@ -594,7 +594,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.4.3"
+ "source": "https://github.com/symfony/translation/tree/v6.4.10"
},
"funding": [
{
@@ -610,20 +610,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T13:11:52+00:00"
+ "time": "2024-07-26T12:30:32+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.4.1",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "06450585bf65e978026bda220cdebca3f867fde7"
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
- "reference": "06450585bf65e978026bda220cdebca3f867fde7",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"shasum": ""
},
"require": {
@@ -632,7 +632,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -672,7 +672,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -688,7 +688,7 @@
"type": "tidelift"
}
],
- "time": "2023-12-26T14:02:43+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
}
],
"packages-dev": [
@@ -976,16 +976,16 @@
},
{
"name": "coenjacobs/mozart",
- "version": "dev-master",
+ "version": "0.7.1",
"source": {
"type": "git",
"url": "https://github.com/coenjacobs/mozart.git",
- "reference": "4f9d00fbc3b3e39f4e334434fe058e516ad82291"
+ "reference": "dbcdeb992d20d9c8914eef090f9a0d684bb1102c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/coenjacobs/mozart/zipball/4f9d00fbc3b3e39f4e334434fe058e516ad82291",
- "reference": "4f9d00fbc3b3e39f4e334434fe058e516ad82291",
+ "url": "https://api.github.com/repos/coenjacobs/mozart/zipball/dbcdeb992d20d9c8914eef090f9a0d684bb1102c",
+ "reference": "dbcdeb992d20d9c8914eef090f9a0d684bb1102c",
"shasum": ""
},
"require": {
@@ -996,13 +996,10 @@
},
"require-dev": {
"mheap/phpunit-github-actions-printer": "^1.4",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-deprecation-rules": "^1.0",
"phpunit/phpunit": "^8.5",
- "squizlabs/php_codesniffer": "^3.5"
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.4"
},
- "default-branch": true,
"bin": [
"bin/mozart"
],
@@ -1025,7 +1022,7 @@
"description": "Composes all dependencies as a package inside a WordPress plugin",
"support": {
"issues": "https://github.com/coenjacobs/mozart/issues",
- "source": "https://github.com/coenjacobs/mozart/tree/master"
+ "source": "https://github.com/coenjacobs/mozart/tree/0.7.1"
},
"funding": [
{
@@ -1033,82 +1030,7 @@
"type": "github"
}
],
- "time": "2022-10-22T08:08:20+00:00"
- },
- {
- "name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v0.7.2",
- "source": {
- "type": "git",
- "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
- "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
- "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.0 || ^2.0",
- "php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
- },
- "require-dev": {
- "composer/composer": "*",
- "php-parallel-lint/php-parallel-lint": "^1.3.1",
- "phpcompatibility/php-compatibility": "^9.0"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
- },
- "autoload": {
- "psr-4": {
- "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Franck Nijhof",
- "email": "franck.nijhof@dealerdirect.com",
- "homepage": "http://www.frenck.nl",
- "role": "Developer / IT Manager"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
- }
- ],
- "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
- "homepage": "http://www.dealerdirect.com",
- "keywords": [
- "PHPCodeSniffer",
- "PHP_CodeSniffer",
- "code quality",
- "codesniffer",
- "composer",
- "installer",
- "phpcbf",
- "phpcs",
- "plugin",
- "qa",
- "quality",
- "standard",
- "standards",
- "style guide",
- "stylecheck",
- "tests"
- ],
- "support": {
- "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
- "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
- },
- "time": "2022-02-04T12:51:07+00:00"
+ "time": "2021-02-02T21:37:03+00:00"
},
{
"name": "doctrine/instantiator",
@@ -1509,16 +1431,16 @@
},
{
"name": "mockery/mockery",
- "version": "1.6.7",
+ "version": "1.6.12",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06"
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
- "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
"shasum": ""
},
"require": {
@@ -1530,8 +1452,8 @@
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.6.10",
- "symplify/easy-coding-standard": "^12.0.8"
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
},
"type": "library",
"autoload": {
@@ -1588,20 +1510,20 @@
"security": "https://github.com/mockery/mockery/security/advisories",
"source": "https://github.com/mockery/mockery"
},
- "time": "2023-12-10T02:24:34+00:00"
+ "time": "2024-05-16T03:13:13+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.1",
+ "version": "1.12.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
"shasum": ""
},
"require": {
@@ -1609,11 +1531,12 @@
},
"conflict": {
"doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
"type": "library",
@@ -1639,7 +1562,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
},
"funding": [
{
@@ -1647,24 +1570,25 @@
"type": "tidelift"
}
],
- "time": "2023-03-08T13:26:56+00:00"
+ "time": "2024-06-12T14:39:25+00:00"
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -1705,9 +1629,15 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -1760,511 +1690,18 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
- {
- "name": "php-stubs/wordpress-stubs",
- "version": "v6.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-stubs/wordpress-stubs.git",
- "reference": "6d6063cf9464a306ca2a0529705d41312b08500b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/6d6063cf9464a306ca2a0529705d41312b08500b",
- "reference": "6d6063cf9464a306ca2a0529705d41312b08500b",
- "shasum": ""
- },
- "require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
- "nikic/php-parser": "^4.13",
- "php": "^7.4 || ~8.0.0",
- "php-stubs/generator": "^0.8.3",
- "phpdocumentor/reflection-docblock": "^5.3",
- "phpstan/phpstan": "^1.10.12",
- "phpunit/phpunit": "^9.5",
- "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.8"
- },
- "suggest": {
- "paragonie/sodium_compat": "Pure PHP implementation of libsodium",
- "symfony/polyfill-php80": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan"
- },
- "type": "library",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "WordPress function and class declaration stubs for static analysis.",
- "homepage": "https://github.com/php-stubs/wordpress-stubs",
- "keywords": [
- "PHPStan",
- "static analysis",
- "wordpress"
- ],
- "support": {
- "issues": "https://github.com/php-stubs/wordpress-stubs/issues",
- "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.4.1"
- },
- "time": "2023-11-10T00:33:47+00:00"
- },
- {
- "name": "phpcompatibility/php-compatibility",
- "version": "9.3.5",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
- "reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
- "reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
- },
- "conflict": {
- "squizlabs/php_codesniffer": "2.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
- },
- "suggest": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
- "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
- },
- "type": "phpcodesniffer-standard",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Wim Godden",
- "homepage": "https://github.com/wimg",
- "role": "lead"
- },
- {
- "name": "Juliette Reinders Folmer",
- "homepage": "https://github.com/jrfnl",
- "role": "lead"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
- }
- ],
- "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
- "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
- "keywords": [
- "compatibility",
- "phpcs",
- "standards"
- ],
- "support": {
- "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
- "source": "https://github.com/PHPCompatibility/PHPCompatibility"
- },
- "time": "2019-12-27T09:44:58+00:00"
- },
- {
- "name": "phpcompatibility/phpcompatibility-paragonie",
- "version": "1.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
- "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/bba5a9dfec7fcfbd679cfaf611d86b4d3759da26",
- "reference": "bba5a9dfec7fcfbd679cfaf611d86b4d3759da26",
- "shasum": ""
- },
- "require": {
- "phpcompatibility/php-compatibility": "^9.0"
- },
- "require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7",
- "paragonie/random_compat": "dev-master",
- "paragonie/sodium_compat": "dev-master"
- },
- "suggest": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
- "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
- },
- "type": "phpcodesniffer-standard",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Wim Godden",
- "role": "lead"
- },
- {
- "name": "Juliette Reinders Folmer",
- "role": "lead"
- }
- ],
- "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
- "homepage": "http://phpcompatibility.com/",
- "keywords": [
- "compatibility",
- "paragonie",
- "phpcs",
- "polyfill",
- "standards",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues",
- "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie"
- },
- "time": "2022-10-25T01:46:02+00:00"
- },
- {
- "name": "phpcompatibility/phpcompatibility-wp",
- "version": "2.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
- "reference": "b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5",
- "reference": "b6c1e3ee1c35de6c41a511d5eb9bd03e447480a5",
- "shasum": ""
- },
- "require": {
- "phpcompatibility/php-compatibility": "^9.0",
- "phpcompatibility/phpcompatibility-paragonie": "^1.0"
- },
- "require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7"
- },
- "suggest": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
- "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
- },
- "type": "phpcodesniffer-standard",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Wim Godden",
- "role": "lead"
- },
- {
- "name": "Juliette Reinders Folmer",
- "role": "lead"
- }
- ],
- "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
- "homepage": "http://phpcompatibility.com/",
- "keywords": [
- "compatibility",
- "phpcs",
- "standards",
- "static analysis",
- "wordpress"
- ],
- "support": {
- "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues",
- "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP"
- },
- "time": "2022-10-24T09:00:36+00:00"
- },
- {
- "name": "phpcsstandards/phpcsextra",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCSStandards/PHPCSExtra.git",
- "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/11d387c6642b6e4acaf0bd9bf5203b8cca1ec489",
- "reference": "11d387c6642b6e4acaf0bd9bf5203b8cca1ec489",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4",
- "phpcsstandards/phpcsutils": "^1.0.9",
- "squizlabs/php_codesniffer": "^3.8.0"
- },
- "require-dev": {
- "php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.3.2",
- "phpcsstandards/phpcsdevcs": "^1.1.6",
- "phpcsstandards/phpcsdevtools": "^1.2.1",
- "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
- },
- "type": "phpcodesniffer-standard",
- "extra": {
- "branch-alias": {
- "dev-stable": "1.x-dev",
- "dev-develop": "1.x-dev"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Juliette Reinders Folmer",
- "homepage": "https://github.com/jrfnl",
- "role": "lead"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors"
- }
- ],
- "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.",
- "keywords": [
- "PHP_CodeSniffer",
- "phpcbf",
- "phpcodesniffer-standard",
- "phpcs",
- "standards",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues",
- "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy",
- "source": "https://github.com/PHPCSStandards/PHPCSExtra"
- },
- "funding": [
- {
- "url": "https://github.com/PHPCSStandards",
- "type": "github"
- },
- {
- "url": "https://github.com/jrfnl",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
- }
- ],
- "time": "2023-12-08T16:49:07+00:00"
- },
- {
- "name": "phpcsstandards/phpcsutils",
- "version": "1.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCSStandards/PHPCSUtils.git",
- "reference": "908247bc65010c7b7541a9551e002db12e9dae70"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/908247bc65010c7b7541a9551e002db12e9dae70",
- "reference": "908247bc65010c7b7541a9551e002db12e9dae70",
- "shasum": ""
- },
- "require": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0",
- "php": ">=5.4",
- "squizlabs/php_codesniffer": "^3.8.0 || 4.0.x-dev@dev"
- },
- "require-dev": {
- "ext-filter": "*",
- "php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.3.2",
- "phpcsstandards/phpcsdevcs": "^1.1.6",
- "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0"
- },
- "type": "phpcodesniffer-standard",
- "extra": {
- "branch-alias": {
- "dev-stable": "1.x-dev",
- "dev-develop": "1.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "PHPCSUtils/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0-or-later"
- ],
- "authors": [
- {
- "name": "Juliette Reinders Folmer",
- "homepage": "https://github.com/jrfnl",
- "role": "lead"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors"
- }
- ],
- "description": "A suite of utility functions for use with PHP_CodeSniffer",
- "homepage": "https://phpcsutils.com/",
- "keywords": [
- "PHP_CodeSniffer",
- "phpcbf",
- "phpcodesniffer-standard",
- "phpcs",
- "phpcs3",
- "standards",
- "static analysis",
- "tokens",
- "utility"
- ],
- "support": {
- "docs": "https://phpcsutils.com/",
- "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues",
- "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy",
- "source": "https://github.com/PHPCSStandards/PHPCSUtils"
- },
- "funding": [
- {
- "url": "https://github.com/PHPCSStandards",
- "type": "github"
- },
- {
- "url": "https://github.com/jrfnl",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
- }
- ],
- "time": "2023-12-08T14:50:00+00:00"
- },
- {
- "name": "phpstan/extension-installer",
- "version": "1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/extension-installer.git",
- "reference": "f45734bfb9984c6c56c4486b71230355f066a58a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/f45734bfb9984c6c56c4486b71230355f066a58a",
- "reference": "f45734bfb9984c6c56c4486b71230355f066a58a",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^2.0",
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.9.0"
- },
- "require-dev": {
- "composer/composer": "^2.0",
- "php-parallel-lint/php-parallel-lint": "^1.2.0",
- "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "PHPStan\\ExtensionInstaller\\Plugin"
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\ExtensionInstaller\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Composer plugin for automatic installation of PHPStan extensions",
- "support": {
- "issues": "https://github.com/phpstan/extension-installer/issues",
- "source": "https://github.com/phpstan/extension-installer/tree/1.3.1"
- },
- "time": "2023-05-24T08:59:17+00:00"
- },
- {
- "name": "phpstan/phpstan",
- "version": "1.10.57",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan.git",
- "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e",
- "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e",
- "shasum": ""
- },
- "require": {
- "php": "^7.2|^8.0"
- },
- "conflict": {
- "phpstan/phpstan-shim": "*"
- },
- "bin": [
- "phpstan",
- "phpstan.phar"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPStan - PHP Static Analysis Tool",
- "keywords": [
- "dev",
- "static analysis"
- ],
- "support": {
- "docs": "https://phpstan.org/user-guide/getting-started",
- "forum": "https://github.com/phpstan/phpstan/discussions",
- "issues": "https://github.com/phpstan/phpstan/issues",
- "security": "https://github.com/phpstan/phpstan/security/policy",
- "source": "https://github.com/phpstan/phpstan-src"
- },
- "funding": [
- {
- "url": "https://github.com/ondrejmirtes",
- "type": "github"
- },
- {
- "url": "https://github.com/phpstan",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
- "type": "tidelift"
- }
- ],
- "time": "2024-01-24T11:51:34+00:00"
- },
{
"name": "phpunit/php-code-coverage",
- "version": "7.0.15",
+ "version": "7.0.17",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "819f92bba8b001d4363065928088de22f25a3a48"
+ "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48",
- "reference": "819f92bba8b001d4363065928088de22f25a3a48",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
+ "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66",
"shasum": ""
},
"require": {
@@ -2316,7 +1753,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.17"
},
"funding": [
{
@@ -2324,20 +1761,20 @@
"type": "github"
}
],
- "time": "2021-07-26T12:20:09+00:00"
+ "time": "2024-03-02T06:09:37+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "2.0.5",
+ "version": "2.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5"
+ "reference": "69deeb8664f611f156a924154985fbd4911eb36b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b",
+ "reference": "69deeb8664f611f156a924154985fbd4911eb36b",
"shasum": ""
},
"require": {
@@ -2376,7 +1813,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6"
},
"funding": [
{
@@ -2384,7 +1821,7 @@
"type": "github"
}
],
- "time": "2021-12-02T12:42:26+00:00"
+ "time": "2024-03-01T13:39:50+00:00"
},
{
"name": "phpunit/php-text-template",
@@ -2433,16 +1870,16 @@
},
{
"name": "phpunit/php-timer",
- "version": "2.1.3",
+ "version": "2.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662"
+ "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb",
+ "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb",
"shasum": ""
},
"require": {
@@ -2480,7 +1917,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4"
},
"funding": [
{
@@ -2488,7 +1925,7 @@
"type": "github"
}
],
- "time": "2020-11-30T08:20:02+00:00"
+ "time": "2024-03-01T13:42:41+00:00"
},
{
"name": "phpunit/php-token-stream",
@@ -2552,42 +1989,42 @@
},
{
"name": "phpunit/phpunit",
- "version": "8.5.36",
+ "version": "8.5.39",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a"
+ "reference": "172ba97bcf97ae6ef86ca256adf77aece8a143fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9652df58e06a681429d8cfdaec3c43d6de581d5a",
- "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/172ba97bcf97ae6ef86ca256adf77aece8a143fe",
+ "reference": "172ba97bcf97ae6ef86ca256adf77aece8a143fe",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1",
+ "doctrine/instantiator": "^1.5.0",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.0",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
+ "myclabs/deep-copy": "^1.12.0",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
"php": ">=7.2",
- "phpunit/php-code-coverage": "^7.0.12",
- "phpunit/php-file-iterator": "^2.0.4",
+ "phpunit/php-code-coverage": "^7.0.17",
+ "phpunit/php-file-iterator": "^2.0.6",
"phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1.2",
+ "phpunit/php-timer": "^2.1.4",
"sebastian/comparator": "^3.0.5",
- "sebastian/diff": "^3.0.2",
- "sebastian/environment": "^4.2.3",
- "sebastian/exporter": "^3.1.5",
- "sebastian/global-state": "^3.0.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^2.0.1",
- "sebastian/type": "^1.1.3",
+ "sebastian/diff": "^3.0.6",
+ "sebastian/environment": "^4.2.5",
+ "sebastian/exporter": "^3.1.6",
+ "sebastian/global-state": "^3.0.5",
+ "sebastian/object-enumerator": "^3.0.5",
+ "sebastian/resource-operations": "^2.0.3",
+ "sebastian/type": "^1.1.5",
"sebastian/version": "^2.0.1"
},
"suggest": {
@@ -2630,7 +2067,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.36"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.39"
},
"funding": [
{
@@ -2646,7 +2083,7 @@
"type": "tidelift"
}
],
- "time": "2023-12-01T16:52:15+00:00"
+ "time": "2024-07-10T11:43:00+00:00"
},
{
"name": "psr/container",
@@ -2703,16 +2140,16 @@
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.2",
+ "version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
+ "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
+ "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54",
"shasum": ""
},
"require": {
@@ -2746,7 +2183,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3"
},
"funding": [
{
@@ -2754,7 +2191,7 @@
"type": "github"
}
],
- "time": "2020-11-30T08:15:22+00:00"
+ "time": "2024-03-01T13:45:45+00:00"
},
{
"name": "sebastian/comparator",
@@ -2832,16 +2269,16 @@
},
{
"name": "sebastian/diff",
- "version": "3.0.4",
+ "version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae"
+ "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6",
+ "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6",
"shasum": ""
},
"require": {
@@ -2886,7 +2323,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/3.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6"
},
"funding": [
{
@@ -2894,20 +2331,20 @@
"type": "github"
}
],
- "time": "2023-05-07T05:30:20+00:00"
+ "time": "2024-03-02T06:16:36+00:00"
},
{
"name": "sebastian/environment",
- "version": "4.2.4",
+ "version": "4.2.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0"
+ "reference": "56932f6049a0482853056ffd617c91ffcc754205"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205",
+ "reference": "56932f6049a0482853056ffd617c91ffcc754205",
"shasum": ""
},
"require": {
@@ -2949,7 +2386,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4"
+ "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5"
},
"funding": [
{
@@ -2957,24 +2394,24 @@
"type": "github"
}
],
- "time": "2020-11-30T07:53:42+00:00"
+ "time": "2024-03-01T13:49:59+00:00"
},
{
"name": "sebastian/exporter",
- "version": "3.1.5",
+ "version": "3.1.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6"
+ "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1939bc8fd1d39adcfa88c5b35335910869214c56",
+ "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56",
"shasum": ""
},
"require": {
- "php": ">=7.0",
+ "php": ">=7.2",
"sebastian/recursion-context": "^3.0"
},
"require-dev": {
@@ -3026,7 +2463,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.6"
},
"funding": [
{
@@ -3034,20 +2471,20 @@
"type": "github"
}
],
- "time": "2022-09-14T06:00:17+00:00"
+ "time": "2024-03-02T06:21:38+00:00"
},
{
"name": "sebastian/global-state",
- "version": "3.0.3",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0"
+ "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/66783ce213de415b451b904bfef9dda0cf9aeae0",
- "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/91c7c47047a971f02de57ed6f040087ef110c5d9",
+ "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9",
"shasum": ""
},
"require": {
@@ -3090,7 +2527,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.5"
},
"funding": [
{
@@ -3098,20 +2535,20 @@
"type": "github"
}
],
- "time": "2023-08-02T09:23:32+00:00"
+ "time": "2024-03-02T06:13:16+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "3.0.4",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2"
+ "reference": "ac5b293dba925751b808e02923399fb44ff0d541"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541",
+ "reference": "ac5b293dba925751b808e02923399fb44ff0d541",
"shasum": ""
},
"require": {
@@ -3147,7 +2584,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5"
},
"funding": [
{
@@ -3155,20 +2592,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:40:27+00:00"
+ "time": "2024-03-01T13:54:02+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "1.1.2",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d"
+ "reference": "1d439c229e61f244ff1f211e5c99737f90c67def"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def",
+ "reference": "1d439c229e61f244ff1f211e5c99737f90c67def",
"shasum": ""
},
"require": {
@@ -3202,7 +2639,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3"
},
"funding": [
{
@@ -3210,20 +2647,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:37:18+00:00"
+ "time": "2024-03-01T13:56:04+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "3.0.1",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb"
+ "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/9bfd3c6f1f08c026f542032dfb42813544f7d64c",
+ "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c",
"shasum": ""
},
"require": {
@@ -3265,7 +2702,7 @@
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.2"
},
"funding": [
{
@@ -3273,20 +2710,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:34:24+00:00"
+ "time": "2024-03-01T14:07:30+00:00"
},
{
"name": "sebastian/resource-operations",
- "version": "2.0.2",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3"
+ "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee",
+ "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee",
"shasum": ""
},
"require": {
@@ -3316,8 +2753,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3"
},
"funding": [
{
@@ -3325,20 +2761,20 @@
"type": "github"
}
],
- "time": "2020-11-30T07:30:19+00:00"
+ "time": "2024-03-01T13:59:09+00:00"
},
{
"name": "sebastian/type",
- "version": "1.1.4",
+ "version": "1.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4"
+ "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4",
- "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/18f071c3a29892b037d35e6b20ddf3ea39b42874",
+ "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874",
"shasum": ""
},
"require": {
@@ -3373,7 +2809,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/1.1.4"
+ "source": "https://github.com/sebastianbergmann/type/tree/1.1.5"
},
"funding": [
{
@@ -3381,7 +2817,7 @@
"type": "github"
}
],
- "time": "2020-11-30T07:25:11+00:00"
+ "time": "2024-03-01T14:04:07+00:00"
},
{
"name": "sebastian/version",
@@ -3430,86 +2866,6 @@
},
"time": "2016-10-03T07:35:21+00:00"
},
- {
- "name": "squizlabs/php_codesniffer",
- "version": "3.8.1",
- "source": {
- "type": "git",
- "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
- "reference": "14f5fff1e64118595db5408e946f3a22c75807f7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7",
- "reference": "14f5fff1e64118595db5408e946f3a22c75807f7",
- "shasum": ""
- },
- "require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
- },
- "bin": [
- "bin/phpcbf",
- "bin/phpcs"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Greg Sherwood",
- "role": "Former lead"
- },
- {
- "name": "Juliette Reinders Folmer",
- "role": "Current lead"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
- }
- ],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
- "keywords": [
- "phpcs",
- "standards",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
- "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
- "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
- "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
- },
- "funding": [
- {
- "url": "https://github.com/PHPCSStandards",
- "type": "github"
- },
- {
- "url": "https://github.com/jrfnl",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/php_codesniffer",
- "type": "open_collective"
- }
- ],
- "time": "2024-01-11T20:47:48+00:00"
- },
{
"name": "stevegrunwell/phpunit-markup-assertions",
"version": "v1.4.0",
@@ -3568,16 +2924,16 @@
},
{
"name": "symfony/console",
- "version": "v5.4.35",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931"
+ "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/dbdf6adcb88d5f83790e1efb57ef4074309d3931",
- "reference": "dbdf6adcb88d5f83790e1efb57ef4074309d3931",
+ "url": "https://api.github.com/repos/symfony/console/zipball/cef62396a0477e94fc52e87a17c6e5c32e226b7f",
+ "reference": "cef62396a0477e94fc52e87a17c6e5c32e226b7f",
"shasum": ""
},
"require": {
@@ -3647,7 +3003,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.35"
+ "source": "https://github.com/symfony/console/tree/v5.4.42"
},
"funding": [
{
@@ -3663,20 +3019,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T14:28:09+00:00"
+ "time": "2024-07-26T12:21:55+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.35",
+ "version": "v5.4.42",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435"
+ "reference": "0724c51fa067b198e36506d2864e09a52180998a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435",
- "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/0724c51fa067b198e36506d2864e09a52180998a",
+ "reference": "0724c51fa067b198e36506d2864e09a52180998a",
"shasum": ""
},
"require": {
@@ -3710,7 +3066,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.35"
+ "source": "https://github.com/symfony/finder/tree/v5.4.42"
},
"funding": [
{
@@ -3726,20 +3082,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T13:51:25+00:00"
+ "time": "2024-07-22T08:53:29+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+ "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
- "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
+ "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
"shasum": ""
},
"require": {
@@ -3789,7 +3145,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
},
"funding": [
{
@@ -3805,20 +3161,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+ "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
- "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
+ "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
"shasum": ""
},
"require": {
@@ -3867,7 +3223,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
},
"funding": [
{
@@ -3883,20 +3239,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+ "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
- "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
+ "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"shasum": ""
},
"require": {
@@ -3948,7 +3304,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
},
"funding": [
{
@@ -3964,20 +3320,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.29.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "21bd091060673a1177ae842c0ef8fe30893114d2"
+ "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2",
- "reference": "21bd091060673a1177ae842c0ef8fe30893114d2",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1",
+ "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1",
"shasum": ""
},
"require": {
@@ -4024,7 +3380,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0"
},
"funding": [
{
@@ -4040,25 +3396,26 @@
"type": "tidelift"
}
],
- "time": "2024-01-29T20:11:03+00:00"
+ "time": "2024-05-31T15:07:36+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.4.1",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^1.1|^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -4066,7 +3423,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4106,7 +3463,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4122,20 +3479,20 @@
"type": "tidelift"
}
],
- "time": "2023-12-26T14:02:43+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/string",
- "version": "v6.4.3",
+ "version": "v6.4.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "7a14736fb179876575464e4658fce0c304e8c15b"
+ "reference": "ccf9b30251719567bfd46494138327522b9a9446"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/7a14736fb179876575464e4658fce0c304e8c15b",
- "reference": "7a14736fb179876575464e4658fce0c304e8c15b",
+ "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446",
+ "reference": "ccf9b30251719567bfd46494138327522b9a9446",
"shasum": ""
},
"require": {
@@ -4192,7 +3549,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.3"
+ "source": "https://github.com/symfony/string/tree/v6.4.10"
},
"funding": [
{
@@ -4208,20 +3565,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-25T09:26:29+00:00"
+ "time": "2024-07-22T10:21:14+00:00"
},
{
"name": "symfony/yaml",
- "version": "v5.4.35",
+ "version": "v5.4.40",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4"
+ "reference": "81cad0ceab3d61fe14fe941ff18a230ac9c80f83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/e78db7f5c70a21f0417a31f414c4a95fe76c07e4",
- "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/81cad0ceab3d61fe14fe941ff18a230ac9c80f83",
+ "reference": "81cad0ceab3d61fe14fe941ff18a230ac9c80f83",
"shasum": ""
},
"require": {
@@ -4267,7 +3624,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v5.4.35"
+ "source": "https://github.com/symfony/yaml/tree/v5.4.40"
},
"funding": [
{
@@ -4283,82 +3640,20 @@
"type": "tidelift"
}
],
- "time": "2024-01-23T13:51:25+00:00"
- },
- {
- "name": "szepeviktor/phpstan-wordpress",
- "version": "v1.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/szepeviktor/phpstan-wordpress.git",
- "reference": "b8516ed6bab7ec50aae981698ce3f67f1be2e45a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/b8516ed6bab7ec50aae981698ce3f67f1be2e45a",
- "reference": "b8516ed6bab7ec50aae981698ce3f67f1be2e45a",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "php-stubs/wordpress-stubs": "^4.7 || ^5.0 || ^6.0",
- "phpstan/phpstan": "^1.10.30",
- "symfony/polyfill-php73": "^1.12.0"
- },
- "require-dev": {
- "composer/composer": "^2.1.14",
- "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.2",
- "phpunit/phpunit": "^8.0 || ^9.0",
- "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^0.8"
- },
- "suggest": {
- "swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "SzepeViktor\\PHPStan\\WordPress\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "WordPress extensions for PHPStan",
- "keywords": [
- "PHPStan",
- "code analyse",
- "code analysis",
- "static analysis",
- "wordpress"
- ],
- "support": {
- "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues",
- "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v1.3.2"
- },
- "time": "2023-10-16T17:23:56+00:00"
+ "time": "2024-05-31T14:33:22+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.2",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -4387,7 +3682,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -4395,87 +3690,20 @@
"type": "github"
}
],
- "time": "2023-11-20T00:12:19+00:00"
- },
- {
- "name": "wp-coding-standards/wpcs",
- "version": "dev-develop",
- "source": {
- "type": "git",
- "url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
- "reference": "eaa70fe99e8aa5f7fc444b67ae7b8401688f2d5c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/eaa70fe99e8aa5f7fc444b67ae7b8401688f2d5c",
- "reference": "eaa70fe99e8aa5f7fc444b67ae7b8401688f2d5c",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "ext-libxml": "*",
- "ext-tokenizer": "*",
- "ext-xmlreader": "*",
- "php": ">=5.4",
- "phpcsstandards/phpcsextra": "^1.2.1",
- "phpcsstandards/phpcsutils": "^1.0.9",
- "squizlabs/php_codesniffer": "^3.8.0"
- },
- "require-dev": {
- "php-parallel-lint/php-console-highlighter": "^1.0.0",
- "php-parallel-lint/php-parallel-lint": "^1.3.2",
- "phpcompatibility/php-compatibility": "^9.0",
- "phpcsstandards/phpcsdevtools": "^1.2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
- },
- "suggest": {
- "ext-iconv": "For improved results",
- "ext-mbstring": "For improved results"
- },
- "default-branch": true,
- "type": "phpcodesniffer-standard",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Contributors",
- "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
- }
- ],
- "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
- "keywords": [
- "phpcs",
- "standards",
- "static analysis",
- "wordpress"
- ],
- "support": {
- "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
- "source": "https://github.com/WordPress/WordPress-Coding-Standards",
- "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
- },
- "funding": [
- {
- "url": "https://opencollective.com/php_codesniffer",
- "type": "custom"
- }
- ],
- "time": "2024-01-03T15:33:57+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
},
{
"name": "yoast/phpunit-polyfills",
- "version": "1.1.0",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/Yoast/PHPUnit-Polyfills.git",
- "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212"
+ "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212",
- "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212",
+ "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/a0f7d708794a738f328d7b6c94380fd1d6c40446",
+ "reference": "a0f7d708794a738f328d7b6c94380fd1d6c40446",
"shasum": ""
},
"require": {
@@ -4483,7 +3711,9 @@
"phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
},
"require-dev": {
- "yoast/yoastcs": "^2.3.0"
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "yoast/yoastcs": "^3.1.0"
},
"type": "library",
"extra": {
@@ -4520,9 +3750,10 @@
],
"support": {
"issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues",
+ "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy",
"source": "https://github.com/Yoast/PHPUnit-Polyfills"
},
- "time": "2023-08-19T14:25:08+00:00"
+ "time": "2024-04-05T16:01:51+00:00"
},
{
"name": "yoast/wp-test-utils",
@@ -4597,13 +3828,11 @@
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
- "codedungeon/phpunit-result-printer": 20,
- "coenjacobs/mozart": 20,
- "wp-coding-standards/wpcs": 20
+ "codedungeon/phpunit-result-printer": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": [],
"platform-dev": [],
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.3.0"
}
diff --git a/easy-digital-downloads.php b/easy-digital-downloads.php
index d84938e821..52e2d9de4c 100755
--- a/easy-digital-downloads.php
+++ b/easy-digital-downloads.php
@@ -1,11 +1,11 @@
add_notice(
+ array(
+ 'id' => 'edd-webhooks-created',
+ 'message' => __( 'Webhooks have been created for the Stripe gateway.', 'easy-digital-downloads' ),
+ )
+ );
+ break;
+
+ case 'stripe_webhooks_error':
+ $this->add_notice(
+ array(
+ 'id' => 'edd-webhooks-error',
+ 'message' => __( 'There was an error creating webhooks for the Stripe gateway.', 'easy-digital-downloads' ),
+ 'class' => 'error',
+ )
+ );
+ break;
}
}
@@ -937,6 +956,23 @@ private function add_user_action_notices( $notice = '' ) {
)
);
break;
+ case 'order_recalculated':
+ $this->add_notice(
+ array(
+ 'id' => 'edd-order-recalculated',
+ 'message' => __( 'The order values have been recalculated.', 'easy-digital-downloads' ),
+ )
+ );
+ break;
+ case 'order_not_recalculated':
+ $this->add_notice(
+ array(
+ 'id' => 'edd-order-not-recalculated',
+ 'message' => __( 'The order values could not be recalculated.', 'easy-digital-downloads' ),
+ 'class' => 'error',
+ )
+ );
+ break;
}
}
@@ -1034,6 +1070,15 @@ private function add_user_action_notices( $notice = '' ) {
)
);
}
+
+ if ( current_user_can( 'edit_users' ) && 'capabilities_reset' === $notice ) {
+ $this->add_notice(
+ array(
+ 'id' => 'edd-capabilities-reset',
+ 'message' => __( 'The user capabilities for Easy Digital Downloads have been reset.', 'easy-digital-downloads' ),
+ )
+ );
+ }
}
/**
diff --git a/includes/admin/import/class-batch-import-downloads.php b/includes/admin/import/class-batch-import-downloads.php
index c6281a416d..ac5c0bc980 100644
--- a/includes/admin/import/class-batch-import-downloads.php
+++ b/includes/admin/import/class-batch-import-downloads.php
@@ -11,9 +11,11 @@
* @since 2.6
*/
-// Exit if accessed directly
+// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
+use EDD\Utils\FileSystem;
+
/**
* EDD_Batch_Downloads_Import Class
*
@@ -29,7 +31,7 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
*/
public function init() {
- // Set up default field map values
+ // Set up default field map values.
$this->field_mapping = array(
'post_title' => '',
'post_name' => '',
@@ -47,7 +49,7 @@ public function init() {
'sales' => '',
'featured_image' => '',
'download_limit' => '',
- 'notes' => ''
+ 'notes' => '',
);
}
@@ -68,30 +70,30 @@ public function process_step() {
$i = 1;
$offset = $this->step > 1 ? ( $this->per_step * ( $this->step - 1 ) ) : 0;
- if( $offset > $this->total ) {
+ if ( $offset > $this->total ) {
$this->done = true;
// Delete the uploaded CSV file.
unlink( $this->file );
}
- if( ! $this->done && $this->csv ) {
+ if ( ! $this->done && $this->csv ) {
$more = true;
- foreach( $this->csv as $key => $row ) {
+ foreach ( $this->csv as $key => $row ) {
- // Skip all rows until we pass our offset
- if( $key + 1 <= $offset ) {
+ // Skip all rows until we pass our offset.
+ if ( $key + 1 <= $offset ) {
continue;
}
- // Done with this batch
- if( $i > $this->per_step ) {
+ // Done with this batch.
+ if ( $i > $this->per_step ) {
break;
}
- // Import Download
+ // Import Download.
$args = array(
'post_type' => 'download',
'post_title' => '',
@@ -100,7 +102,7 @@ public function process_step() {
'post_author' => '',
'post_date' => '',
'post_content' => '',
- 'post_excerpt' => ''
+ 'post_excerpt' => '',
);
foreach ( $args as $key => $field ) {
@@ -110,44 +112,42 @@ public function process_step() {
}
if ( empty( $args['post_author'] ) ) {
- $user = wp_get_current_user();
- $args['post_author'] = $user->ID;
- } else {
-
- // Check all forms of possible user inputs, email, ID, login.
- if ( is_email( $args['post_author'] ) ) {
- $user = get_user_by( 'email', $args['post_author'] );
- } elseif ( is_numeric( $args['post_author'] ) ) {
- $user = get_user_by( 'ID', $args['post_author'] );
- } else {
- $user = get_user_by( 'login', $args['post_author'] );
- }
-
- // If we don't find one, resort to the logged in user.
- if ( false === $user ) {
- $user = wp_get_current_user();
- }
-
- $args['post_author'] = $user->ID;
- }
-
- // Format the date properly
+ $user = wp_get_current_user();
+ $args['post_author'] = $user->ID;
+ } else {
+
+ // Check all forms of possible user inputs, email, ID, login.
+ if ( is_email( $args['post_author'] ) ) {
+ $user = get_user_by( 'email', $args['post_author'] );
+ } elseif ( is_numeric( $args['post_author'] ) ) {
+ $user = get_user_by( 'ID', $args['post_author'] );
+ } else {
+ $user = get_user_by( 'login', $args['post_author'] );
+ }
+
+ // If we don't find one, resort to the logged in user.
+ if ( false === $user ) {
+ $user = wp_get_current_user();
+ }
+
+ $args['post_author'] = $user->ID;
+ }
+
+ // Format the date properly.
if ( ! empty( $args['post_date'] ) ) {
$timestamp = strtotime( $args['post_date'], current_time( 'timestamp' ) );
$date = date( 'Y-m-d H:i:s', $timestamp );
- // If the date provided results in a date string, use it, or just default to today so it imports
+ // If the date provided results in a date string, use it, or just default to today so it imports.
if ( ! empty( $date ) ) {
$args['post_date'] = $date;
} else {
$date = '';
}
-
}
-
- // Detect any status that could map to `publish`
+ // Detect any status that could map to `publish`.
if ( ! empty( $args['post_status'] ) ) {
$published_statuses = array(
@@ -160,13 +160,12 @@ public function process_step() {
if ( in_array( $current_status, $published_statuses ) ) {
$args['post_status'] = 'publish';
}
-
}
$download_id = wp_insert_post( $args );
- // setup categories
- if( ! empty( $this->field_mapping['categories'] ) && ! empty( $row[ $this->field_mapping['categories'] ] ) ) {
+ // setup categories.
+ if ( ! empty( $this->field_mapping['categories'] ) && ! empty( $row[ $this->field_mapping['categories'] ] ) ) {
$categories = $this->str_to_array( $row[ $this->field_mapping['categories'] ] );
@@ -174,8 +173,8 @@ public function process_step() {
}
- // setup tags
- if( ! empty( $this->field_mapping['tags'] ) && ! empty( $row[ $this->field_mapping['tags'] ] ) ) {
+ // setup tags.
+ if ( ! empty( $this->field_mapping['tags'] ) && ! empty( $row[ $this->field_mapping['tags'] ] ) ) {
$tags = $this->str_to_array( $row[ $this->field_mapping['tags'] ] );
@@ -183,8 +182,8 @@ public function process_step() {
}
- // setup price(s)
- if( ! empty( $this->field_mapping['price'] ) && ! empty( $row[ $this->field_mapping['price'] ] ) ) {
+ // setup price(s).
+ if ( ! empty( $this->field_mapping['price'] ) && ! empty( $row[ $this->field_mapping['price'] ] ) ) {
$price = $row[ $this->field_mapping['price'] ];
@@ -192,8 +191,8 @@ public function process_step() {
}
- // setup files
- if( ! empty( $this->field_mapping['files'] ) && ! empty( $row[ $this->field_mapping['files'] ] ) ) {
+ // setup files.
+ if ( ! empty( $this->field_mapping['files'] ) && ! empty( $row[ $this->field_mapping['files'] ] ) ) {
$files = $this->convert_file_string_to_array( $row[ $this->field_mapping['files'] ] );
@@ -201,8 +200,8 @@ public function process_step() {
}
- // Product Image
- if( ! empty( $this->field_mapping['featured_image'] ) && ! empty( $row[ $this->field_mapping['featured_image'] ] ) ) {
+ // Product Image.
+ if ( ! empty( $this->field_mapping['featured_image'] ) && ! empty( $row[ $this->field_mapping['featured_image'] ] ) ) {
$image = sanitize_text_field( $row[ $this->field_mapping['featured_image'] ] );
@@ -210,42 +209,40 @@ public function process_step() {
}
- // File download limit
- if( ! empty( $this->field_mapping['download_limit'] ) && ! empty( $row[ $this->field_mapping['download_limit'] ] ) ) {
+ // File download limit.
+ if ( ! empty( $this->field_mapping['download_limit'] ) && ! empty( $row[ $this->field_mapping['download_limit'] ] ) ) {
update_post_meta( $download_id, '_edd_download_limit', absint( $row[ $this->field_mapping['download_limit'] ] ) );
}
- // Sale count
- if( ! empty( $this->field_mapping['sales'] ) && ! empty( $row[ $this->field_mapping['sales'] ] ) ) {
+ // Sale count.
+ if ( ! empty( $this->field_mapping['sales'] ) && ! empty( $row[ $this->field_mapping['sales'] ] ) ) {
update_post_meta( $download_id, '_edd_download_sales', absint( $row[ $this->field_mapping['sales'] ] ) );
}
- // Earnings
- if( ! empty( $this->field_mapping['earnings'] ) && ! empty( $row[ $this->field_mapping['earnings'] ] ) ) {
+ // Earnings.
+ if ( ! empty( $this->field_mapping['earnings'] ) && ! empty( $row[ $this->field_mapping['earnings'] ] ) ) {
update_post_meta( $download_id, '_edd_download_earnings', edd_sanitize_amount( $row[ $this->field_mapping['earnings'] ] ) );
}
- // Notes
- if( ! empty( $this->field_mapping['notes'] ) && ! empty( $row[ $this->field_mapping['notes'] ] ) ) {
+ // Notes.
+ if ( ! empty( $this->field_mapping['notes'] ) && ! empty( $row[ $this->field_mapping['notes'] ] ) ) {
update_post_meta( $download_id, 'edd_product_notes', sanitize_text_field( $row[ $this->field_mapping['notes'] ] ) );
}
- // SKU
- if( ! empty( $this->field_mapping[ 'sku' ] ) && ! empty( $row[ $this->field_mapping[ 'sku' ] ] ) ) {
+ // SKU.
+ if ( ! empty( $this->field_mapping['sku'] ) && ! empty( $row[ $this->field_mapping['sku'] ] ) ) {
update_post_meta( $download_id, 'edd_sku', sanitize_text_field( $row[ $this->field_mapping['sku'] ] ) );
}
- // Custom fields
-
+ // Custom fields.
- $i++;
+ ++$i;
}
-
}
return $more;
@@ -279,7 +276,7 @@ public function get_percentage_complete() {
*/
private function set_price( $download_id = 0, $price = '' ) {
- if( is_numeric( $price ) ) {
+ if ( is_numeric( $price ) ) {
update_post_meta( $download_id, 'edd_price', edd_sanitize_amount( $price ) );
@@ -287,31 +284,31 @@ private function set_price( $download_id = 0, $price = '' ) {
$prices = $this->str_to_array( $price );
- if( ! empty( $prices ) ) {
+ if ( ! empty( $prices ) ) {
$variable_prices = array();
$price_id = 1;
- foreach( $prices as $price ) {
+ foreach ( $prices as $price ) {
- // See if this matches the EDD Download export for variable prices
- if( false !== strpos( $price, ':' ) ) {
+ // See if this matches the EDD Download export for variable prices.
+ if ( false !== strpos( $price, ':' ) ) {
$price = array_map( 'trim', explode( ':', $price ) );
- $variable_prices[ $price_id ] = array( 'name' => $price[ 0 ], 'amount' => $price[ 1 ] );
- $price_id++;
+ $variable_prices[ $price_id ] = array(
+ 'name' => $price[0],
+ 'amount' => $price[1],
+ );
+ ++$price_id;
}
-
}
update_post_meta( $download_id, '_variable_pricing', 1 );
update_post_meta( $download_id, 'edd_variable_prices', $variable_prices );
}
-
}
-
}
/**
@@ -322,11 +319,11 @@ private function set_price( $download_id = 0, $price = '' ) {
*/
private function set_files( $download_id = 0, $files = array() ) {
- if( ! empty( $files ) ) {
+ if ( ! empty( $files ) ) {
$download_files = array();
$file_id = 1;
- foreach( $files as $file ) {
+ foreach ( $files as $file ) {
$condition = '';
@@ -346,25 +343,24 @@ private function set_files( $download_id = 0, $files = array() ) {
'index' => $file_id,
'file' => $file_url,
'name' => basename( $file_url ),
- 'condition' => empty( $condition ) ? 'all' : $condition
+ 'condition' => empty( $condition ) ? 'all' : $condition,
);
$download_files[ $file_id ] = $download_file_args;
- $file_id++;
+ ++$file_id;
}
update_post_meta( $download_id, 'edd_download_files', $download_files );
}
-
}
/**
* Set up and store the Featured Image
*
* @since 2.6
- * @return void
+ * @return bool
*/
private function set_image( $download_id = 0, $image = '', $post_author = 0 ) {
@@ -372,71 +368,66 @@ private function set_image( $download_id = 0, $image = '', $post_author = 0 ) {
$is_local = $is_url && false !== strpos( $image, site_url() );
$ext = edd_get_file_extension( $image );
- if( $is_url && $is_local ) {
+ if ( $is_url && $is_local ) {
- // Image given by URL, see if we have an attachment already
+ // Image given by URL, see if we have an attachment already.
$attachment_id = attachment_url_to_postid( $image );
- } elseif( $is_url ) {
+ } elseif ( $is_url ) {
- if( ! function_exists( 'media_sideload_image' ) ) {
+ if ( ! function_exists( 'media_sideload_image' ) ) {
- require_once( ABSPATH . 'wp-admin/includes/file.php' );
+ require_once ABSPATH . 'wp-admin/includes/file.php';
}
- // Image given by external URL
+ // Image given by external URL.
$url = media_sideload_image( $image, $download_id, '', 'src' );
- if( ! is_wp_error( $url ) ) {
+ if ( ! is_wp_error( $url ) ) {
$attachment_id = attachment_url_to_postid( $url );
}
+ } elseif ( false === strpos( $image, '/' ) && edd_get_file_extension( $image ) ) {
-
- } elseif( false === strpos( $image, '/' ) && edd_get_file_extension( $image ) ) {
-
- // Image given by name only
+ // Image given by name only.
$upload_dir = wp_upload_dir();
- if( file_exists( trailingslashit( $upload_dir['path'] ) . $image ) ) {
+ if ( FileSystem::file_exists( trailingslashit( $upload_dir['path'] ) . $image ) ) {
- // Look in current upload directory first
+ // Look in current upload directory first.
$file = trailingslashit( $upload_dir['path'] ) . $image;
} else {
- // Now look through year/month sub folders of upload directory for files with our image's same extension
+ // Now look through year/month sub folders of upload directory for files with our image's same extension.
$files = glob( $upload_dir['basedir'] . '/*/*/*' . $ext );
- foreach( $files as $file ) {
+ foreach ( $files as $file ) {
- if( basename( $file ) == $image ) {
+ if ( basename( $file ) == $image ) {
- // Found our file
+ // Found our file.
break;
}
- // Make sure $file is unset so our empty check below does not return a false positive
+ // Make sure $file is unset so our empty check below does not return a false positive.
unset( $file );
}
-
}
- if( ! empty( $file ) ) {
-
- // We found the file, let's see if it already exists in the media library
+ if ( ! empty( $file ) ) {
+ // We found the file, let's see if it already exists in the media library.
$guid = str_replace( $upload_dir['basedir'], $upload_dir['baseurl'], $file );
$attachment_id = attachment_url_to_postid( $guid );
+ if ( empty( $attachment_id ) ) {
- if( empty( $attachment_id ) ) {
-
- // Doesn't exist in the media library, let's add it
+ // Doesn't exist in the media library, let's add it.
$filetype = wp_check_filetype( basename( $file ), null );
@@ -447,33 +438,30 @@ private function set_image( $download_id = 0, $image = '', $post_author = 0 ) {
'post_title' => preg_replace( '/\.[^.]+$/', '', $image ),
'post_content' => '',
'post_status' => 'inherit',
- 'post_author' => $post_author
+ 'post_author' => $post_author,
);
// Insert the attachment.
$attachment_id = wp_insert_attachment( $attachment, $file, $download_id );
// Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
- require_once( ABSPATH . 'wp-admin/includes/image.php' );
+ require_once ABSPATH . 'wp-admin/includes/image.php';
// Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata( $attachment_id, $file );
wp_update_attachment_metadata( $attachment_id, $attach_data );
}
-
}
-
}
- if( ! empty( $attachment_id ) ) {
+ if ( ! empty( $attachment_id ) ) {
return set_post_thumbnail( $download_id, $attachment_id );
}
return false;
-
}
/**
@@ -486,12 +474,11 @@ private function set_taxonomy_terms( $download_id = 0, $terms = array(), $taxono
$terms = $this->maybe_create_terms( $terms, $taxonomy );
- if( ! empty( $terms ) ) {
+ if ( ! empty( $terms ) ) {
wp_set_object_terms( $download_id, $terms, $taxonomy );
}
-
}
/**
@@ -502,12 +489,12 @@ private function set_taxonomy_terms( $download_id = 0, $terms = array(), $taxono
*/
private function maybe_create_terms( $terms = array(), $taxonomy = 'download_category' ) {
- // Return of term IDs
+ // Return of term IDs.
$term_ids = array();
- foreach( $terms as $term ) {
+ foreach ( $terms as $term ) {
- if( is_numeric( $term ) && 0 === (int) $term ) {
+ if ( is_numeric( $term ) && 0 === (int) $term ) {
$t = get_term( $term, $taxonomy );
@@ -515,15 +502,14 @@ private function maybe_create_terms( $terms = array(), $taxonomy = 'download_cat
$t = get_term_by( 'name', $term, $taxonomy );
- if( ! $t ) {
+ if ( ! $t ) {
$t = get_term_by( 'slug', $term, $taxonomy );
}
-
}
- if( ! empty( $t ) ) {
+ if ( ! empty( $t ) ) {
$term_ids[] = $t->term_id;
@@ -531,14 +517,12 @@ private function maybe_create_terms( $terms = array(), $taxonomy = 'download_cat
$term_data = wp_insert_term( $term, $taxonomy, array( 'slug' => sanitize_title( $term ) ) );
- if( ! is_wp_error( $term_data ) ) {
+ if ( ! is_wp_error( $term_data ) ) {
$term_ids[] = $term_data['term_id'];
}
-
}
-
}
return array_map( 'absint', $term_ids );
@@ -558,10 +542,9 @@ public function get_list_table_url() {
* Retrieve Download label
*
* @since 2.6
- * @return void
+ * @return string
*/
public function get_import_type_label() {
return edd_get_label_plural( true );
}
-
}
diff --git a/includes/admin/import/class-batch-import.php b/includes/admin/import/class-batch-import.php
index f03ed24e33..c8ffdb1747 100644
--- a/includes/admin/import/class-batch-import.php
+++ b/includes/admin/import/class-batch-import.php
@@ -139,7 +139,7 @@ public function can_import() {
*/
public function get_csv_file( $file ) {
$this->file = $file;
- $csv = array_map( 'str_getcsv', file( $file ) );
+ $csv = array_map( 'str_getcsv', EDD\Utils\FileSystem::file( $file ) );
array_walk(
$csv,
function ( &$a ) use ( $csv ) {
diff --git a/includes/admin/import/import-functions.php b/includes/admin/import/import-functions.php
index 9098d31ead..e87dfac096 100644
--- a/includes/admin/import/import-functions.php
+++ b/includes/admin/import/import-functions.php
@@ -10,9 +10,11 @@
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
*/
-// Exit if accessed directly
+// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
+use EDD\Utils\FileSystem;
+
/**
* Upload an import file with ajax
*
@@ -58,7 +60,7 @@ function edd_do_ajax_import_file_upload() {
wp_send_json_error( array( 'error' => __( 'The file you uploaded does not appear to be a CSV file.', 'easy-digital-downloads' ), 'request' => $_REQUEST ) );
}
- if ( ! file_exists( $_FILES['edd-import-file']['tmp_name'] ) ) {
+ if ( ! FileSystem::file_exists( $_FILES['edd-import-file']['tmp_name'] ) ) {
wp_send_json_error( array( 'error' => __( 'Something went wrong during the upload process, please try again.', 'easy-digital-downloads' ), 'request' => $_REQUEST ) );
}
@@ -110,7 +112,7 @@ function edd_do_ajax_import() {
wp_send_json_error( array( 'error' => __( 'Missing import parameters. Import class must be specified.', 'easy-digital-downloads' ), 'request' => $_REQUEST ) );
}
- if ( ! file_exists( $_REQUEST['upload']['file'] ) ) {
+ if ( ! FileSystem::file_exists( $_REQUEST['upload']['file'] ) ) {
wp_send_json_error( array( 'error' => __( 'Something went wrong during the upload process, please try again.', 'easy-digital-downloads' ), 'request' => $_REQUEST ) );
}
diff --git a/includes/admin/payments/actions.php b/includes/admin/payments/actions.php
index cf2b67d281..7f4838db66 100644
--- a/includes/admin/payments/actions.php
+++ b/includes/admin/payments/actions.php
@@ -7,7 +7,7 @@
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
* @since 1.9
-*/
+ */
// Exit if accessed directly
defined( 'ABSPATH' ) || exit;
@@ -25,8 +25,8 @@ function edd_handle_order_item_change( $request = array() ) {
// Bail if missing necessary properties
if (
- empty( $request['_wpnonce'] ) ||
- empty( $request['id'] ) ||
+ empty( $request['_wpnonce'] ) ||
+ empty( $request['id'] ) ||
empty( $request['order_item'] )
) {
return false;
@@ -41,18 +41,22 @@ function edd_handle_order_item_change( $request = array() ) {
$data = array();
// Maybe add status to data to update
- if ( ! empty( $request['status'] ) && ( 'inherit' === $request['status'] ) || in_array( $request['status'], array_keys( edd_get_payment_statuses() ), true )) {
+ if ( ! empty( $request['status'] ) && ( 'inherit' === $request['status'] ) || in_array( $request['status'], array_keys( edd_get_payment_statuses() ), true ) ) {
$data['status'] = sanitize_key( $request['status'] );
}
// Update order item
if ( ! empty( $data ) ) {
edd_update_order_item( $request['order_item'], $data );
- edd_redirect( edd_get_admin_url( array(
- 'page' => 'edd-payment-history',
- 'view' => 'view-order-details',
- 'id' => absint( $request['id'] )
- ) ) );
+ edd_redirect(
+ edd_get_admin_url(
+ array(
+ 'page' => 'edd-payment-history',
+ 'view' => 'view-order-details',
+ 'id' => absint( $request['id'] ),
+ )
+ )
+ );
}
}
add_action( 'edd_handle_order_item_change', 'edd_handle_order_item_change' );
@@ -64,7 +68,7 @@ function edd_handle_order_item_change( $request = array() ) {
* @since 3.0 Refactored to use new core objects and query methods.
*
* @param array $data Order data.
-*/
+ */
function edd_update_payment_details( $data = array() ) {
// Bail if an empty array is passed.
@@ -219,12 +223,16 @@ function edd_update_payment_details( $data = array() ) {
do_action( 'edd_updated_edited_purchase', $order_id );
- edd_redirect( edd_get_admin_url( array(
- 'page' => 'edd-payment-history',
- 'view' => 'view-order-details',
- 'edd-message' => 'payment-updated',
- 'id' => absint( $order_id ),
- ) ) );
+ edd_redirect(
+ edd_get_admin_url(
+ array(
+ 'page' => 'edd-payment-history',
+ 'view' => 'view-order-details',
+ 'edd-message' => 'payment-updated',
+ 'id' => absint( $order_id ),
+ )
+ )
+ );
}
add_action( 'edd_update_payment_details', 'edd_update_payment_details' );
@@ -279,11 +287,13 @@ function edd_trigger_trash_order( $data ) {
edd_trash_order( $payment_id );
- $redirect = edd_get_admin_url( array(
- 'page' => 'edd-payment-history',
- 'edd-message' => 'order_trashed',
- 'order_type' => esc_attr( $data['order_type'] ),
- ) );
+ $redirect = edd_get_admin_url(
+ array(
+ 'page' => 'edd-payment-history',
+ 'edd-message' => 'order_trashed',
+ 'order_type' => esc_attr( $data['order_type'] ),
+ )
+ );
edd_redirect( $redirect );
}
@@ -309,11 +319,13 @@ function edd_trigger_restore_order( $data ) {
edd_restore_order( $payment_id );
- $redirect = edd_get_admin_url( array(
- 'page' => 'edd-payment-history',
- 'edd-message' => 'order_restored',
- 'order_type' => esc_attr( $data['order_type'] ),
- ) );
+ $redirect = edd_get_admin_url(
+ array(
+ 'page' => 'edd-payment-history',
+ 'edd-message' => 'order_restored',
+ 'order_type' => esc_attr( $data['order_type'] ),
+ )
+ );
edd_redirect( $redirect );
}
@@ -325,7 +337,7 @@ function edd_trigger_restore_order( $data ) {
*
* @since 2.0
* @return string
-*/
+ */
function edd_ajax_generate_file_download_link() {
$customer_view_role = apply_filters( 'edd_view_customers_role', 'view_shop_reports' );
@@ -463,7 +475,6 @@ function edd_ajax_generate_refund_form() {
);
wp_send_json( $return, 200 );
-
}
add_action( 'wp_ajax_edd_generate_refund_form', 'edd_ajax_generate_refund_form' );
@@ -501,7 +512,7 @@ function edd_ajax_process_refund_form() {
// Collect selected order items.
$order_items = array();
if ( ! empty( $form_data['refund_order_item'] ) && is_array( $form_data['refund_order_item'] ) ) {
- foreach( $form_data['refund_order_item'] as $order_item_id => $order_item ) {
+ foreach ( $form_data['refund_order_item'] as $order_item_id => $order_item ) {
// If there's no quantity or subtotal - bail.
if ( empty( $order_item['quantity'] ) || empty( $order_item['subtotal'] ) ) {
continue;
@@ -511,7 +522,7 @@ function edd_ajax_process_refund_form() {
'order_item_id' => absint( $order_item_id ),
'quantity' => intval( $order_item['quantity'] ),
'subtotal' => edd_sanitize_amount( $order_item['subtotal'] ),
- 'tax' => ! empty( $order_item['tax'] ) ? edd_sanitize_amount( $order_item['tax'] ) : 0.00
+ 'tax' => ! empty( $order_item['tax'] ) ? edd_sanitize_amount( $order_item['tax'] ) : 0.00,
);
}
}
@@ -519,7 +530,7 @@ function edd_ajax_process_refund_form() {
// Collect selected adjustments.
$adjustments = array();
if ( ! empty( $form_data['refund_order_adjustment'] ) && is_array( $form_data['refund_order_adjustment'] ) ) {
- foreach( $form_data['refund_order_adjustment'] as $adjustment_id => $adjustment ) {
+ foreach ( $form_data['refund_order_adjustment'] as $adjustment_id => $adjustment ) {
// If there's no quantity or subtotal - bail.
if ( empty( $adjustment['quantity'] ) || empty( $adjustment['subtotal'] ) ) {
continue;
@@ -529,7 +540,7 @@ function edd_ajax_process_refund_form() {
'adjustment_id' => absint( $adjustment_id ),
'quantity' => intval( $adjustment['quantity'] ),
'subtotal' => floatval( edd_sanitize_amount( $adjustment['subtotal'] ) ),
- 'tax' => ! empty( $adjustment['tax'] ) ? floatval( edd_sanitize_amount( $adjustment['tax'] ) ) : 0.00
+ 'tax' => ! empty( $adjustment['tax'] ) ? floatval( edd_sanitize_amount( $adjustment['tax'] ) ) : 0.00,
);
}
}
@@ -545,11 +556,11 @@ function edd_ajax_process_refund_form() {
'message' => sprintf( __( 'Refund successfully processed.', 'easy-digital-downloads' ) ),
'refund_url' => edd_get_admin_url(
array(
- 'page' => 'edd-payment-history',
- 'view' => 'view-refund-details',
- 'id' => urlencode( $refund_id ),
+ 'page' => 'edd-payment-history',
+ 'view' => 'view-refund-details',
+ 'id' => urlencode( $refund_id ),
)
- )
+ ),
);
wp_send_json_success( $return, 200 );
} else {
@@ -646,7 +657,7 @@ function edd_orders_list_table_process_bulk_actions() {
break;
case 'resend-receipt':
- $order = edd_get_order( $id );
+ $order = edd_get_order( $id );
$order_receipt = EDD\Emails\Registry::get( 'order_receipt', array( $order ) );
$order_receipt->send();
break;
@@ -658,3 +669,30 @@ function edd_orders_list_table_process_bulk_actions() {
wp_safe_redirect( wp_get_referer() );
}
add_action( 'load-download_page_edd-payment-history', 'edd_orders_list_table_process_bulk_actions' );
+
+/**
+ * Recalculate the values of an order.
+ *
+ * @since 3.3.4
+ * @param array $data
+ */
+function edd_recalculate_order_values( $data ) {
+ if ( ! current_user_can( 'edit_shop_payments' ) ) {
+ return;
+ }
+ if ( empty( $data['_wpnonce'] ) || ! wp_verify_nonce( $data['_wpnonce'], 'edd_recalculate_order_nonce' ) ) {
+ return;
+ }
+ $order = edd_get_order( $data['id'] );
+ $recalculated = $order->recalculate();
+
+ $url = remove_query_arg( 'edd-action', wp_get_referer() );
+ if ( $recalculated ) {
+ $url = add_query_arg( 'edd-message', 'order_recalculated', $url );
+ } else {
+ $url = add_query_arg( 'edd-message', 'order_not_recalculated', $url );
+ }
+
+ edd_redirect( $url );
+}
+add_action( 'edd_recalculate_order', 'edd_recalculate_order_values' );
diff --git a/includes/admin/payments/orders.php b/includes/admin/payments/orders.php
index 6da0b77c21..00766bf426 100644
--- a/includes/admin/payments/orders.php
+++ b/includes/admin/payments/orders.php
@@ -145,7 +145,7 @@ function edd_get_order_details_sections( $order ) {
),
array(
'id' => 'logs',
- 'label' => __( 'Logs', 'easy-digital-downloads' ),
+ 'label' => __( 'Tools', 'easy-digital-downloads' ),
'icon' => 'admin-tools',
'callback' => 'edd_order_details_logs',
),
@@ -595,7 +595,7 @@ function edd_order_details_logs( $order ) {
)
);
?>
-
+
@@ -609,6 +609,16 @@ function edd_order_details_logs( $order ) {
* @param int $order_id ID of the current order.
*/
do_action( 'edd_view_order_details_logs_after', $order->id );
+
+ if ( current_user_can( 'edit_shop_payments' ) ) {
+ $link = wp_nonce_url( add_query_arg( 'edd-action', 'recalculate_order' ), 'edd_recalculate_order_nonce' );
+ ?>
+
+
+
diff --git a/includes/admin/reporting/class-export.php b/includes/admin/reporting/class-export.php
index fadc1991dc..364656076e 100755
--- a/includes/admin/reporting/class-export.php
+++ b/includes/admin/reporting/class-export.php
@@ -11,7 +11,7 @@
* @since 1.4.4
*/
-// Exit if accessed directly
+// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
/**
@@ -23,8 +23,10 @@ class EDD_Export {
/**
* Our export type. Used for export-type specific filters/actions
- * @var string
+ *
* @since 1.4.4
+ *
+ * @var string
*/
public $export_type = 'default';
@@ -71,7 +73,7 @@ public function headers() {
*/
public function csv_cols() {
$cols = array(
- 'id' => __( 'ID', 'easy-digital-downloads' ),
+ 'id' => __( 'ID', 'easy-digital-downloads' ),
'date' => __( 'Date', 'easy-digital-downloads' ),
);
return $cols;
@@ -107,7 +109,7 @@ public function csv_cols_out() {
? ''
: ',';
- $i++;
+ ++$i;
}
echo "\r\n";
}
@@ -121,7 +123,7 @@ public function csv_cols_out() {
*/
public function get_data() {
- // Just a sample data array
+ // Just a sample data array.
$data = array(
0 => array(
'id' => '',
@@ -175,7 +177,6 @@ public function csv_rows_out() {
*
* @since 1.4.4
*
- *
* @uses EDD_Export::can_export()
* @uses EDD_Export::headers()
* @uses EDD_Export::csv_cols_out()
@@ -188,13 +189,13 @@ public function export() {
wp_die( __( 'You do not have permission to export data.', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
}
- // Set headers
+ // Set headers.
$this->headers();
- // Output CSV columns (headers)
+ // Output CSV columns (headers).
$this->csv_cols_out();
- // Output CSV rows
+ // Output CSV rows.
$this->csv_rows_out();
edd_die();
diff --git a/includes/admin/reporting/export/class-batch-export.php b/includes/admin/reporting/export/class-batch-export.php
index 2d827abcdc..8a73609d1c 100644
--- a/includes/admin/reporting/export/class-batch-export.php
+++ b/includes/admin/reporting/export/class-batch-export.php
@@ -14,6 +14,8 @@
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
+use EDD\Utils\FileSystem;
+
/**
* EDD_Export Class
*
@@ -52,6 +54,15 @@ class EDD_Batch_Export extends EDD_Export {
*/
public $filetype;
+ /**
+ * File system object
+ *
+ * @since 3.3.4
+ *
+ * @var object
+ */
+ private $file_system;
+
/**
* The current step being processed
*
@@ -132,6 +143,7 @@ class EDD_Batch_Export extends EDD_Export {
* @param int $_step The step to process.
*/
public function __construct( $_step = 1 ) {
+ $this->file_system = FileSystem::get_fs();
$exports_dir = edd_get_exports_dir();
$this->filetype = '.csv';
@@ -146,7 +158,7 @@ public function __construct( $_step = 1 ) {
);
$this->file = trailingslashit( $exports_dir ) . $this->filename;
- if ( ! is_writeable( $exports_dir ) ) {
+ if ( ! $this->file_system->is_writable( $exports_dir ) ) {
$this->is_writable = false;
}
@@ -169,8 +181,8 @@ public function process_step() {
if ( $this->step < 2 ) {
// Make sure we start with a fresh file on step 1.
- if ( file_exists( $this->file ) ) {
- unlink( $this->file );
+ if ( FileSystem::file_exists( $this->file ) ) {
+ $this->file_system->delete( $this->file );
}
$this->print_csv_cols();
}
@@ -265,18 +277,18 @@ protected function get_file() {
$file = '';
- if ( @file_exists( $this->file ) ) {
+ if ( FileSystem::file_exists( $this->file ) ) {
- if ( ! is_writeable( $this->file ) ) {
+ if ( ! $this->file_system->is_writable( $this->file ) ) {
$this->is_writable = false;
}
- $file = @file_get_contents( $this->file );
+ $file = FileSystem::get_contents( $this->file );
} else {
- @file_put_contents( $this->file, '' ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
- @chmod( $this->file, 0664 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ $this->file_system->put_contents( $this->file, '' );
+ $this->file_system->chmod( $this->file, 0664 );
}
@@ -294,10 +306,10 @@ protected function stash_step_data( $data = '' ) {
$file = $this->get_file();
$file .= $data;
- @file_put_contents( $this->file, $file ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ $this->file_system->put_contents( $this->file, $file );
// If we have no rows after this step, mark it as an empty export.
- $file_rows = file( $this->file, FILE_SKIP_EMPTY_LINES );
+ $file_rows = FileSystem::file( $this->file, FILE_SKIP_EMPTY_LINES );
$default_cols = $this->get_csv_cols();
$default_cols = empty( $default_cols ) ? 0 : 1;
@@ -317,7 +329,7 @@ public function export() {
$file = $this->get_file();
- @unlink( $this->file );
+ $this->file_system->delete( $this->file );
echo $file;
diff --git a/includes/admin/tools.php b/includes/admin/tools.php
index 73d1cea65d..7cf3439752 100755
--- a/includes/admin/tools.php
+++ b/includes/admin/tools.php
@@ -1057,8 +1057,8 @@ function edd_tools_import_export_process_import() {
wp_die( __( 'Please upload a file to import', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 400 ) );
}
- // Retrieve the settings from the file and convert the json object to an array
- $settings = edd_object_to_array( json_decode( file_get_contents( $import_file ) ) );
+ // Retrieve the settings from the file and convert the json object to an array.
+ $settings = edd_object_to_array( json_decode( EDD\Utils\FileSystem::get_contents( $import_file ) ) );
if ( ! isset( $settings['edd_settings'] ) ) {
diff --git a/includes/admin/upload-functions.php b/includes/admin/upload-functions.php
index 1bf893f0a5..d815d2da1f 100755
--- a/includes/admin/upload-functions.php
+++ b/includes/admin/upload-functions.php
@@ -51,7 +51,6 @@ function edd_change_downloads_upload_dir( $file = array() ) {
* @param bool $method The method used to download files.
*/
function edd_create_protection_files( $force = false, $method = false ) {
- $file_system = EDD\Utils\FileSystem::get_fs();
if ( false === get_transient( 'edd_check_protection_files' ) || $force ) {
$upload_path = edd_get_upload_dir();
@@ -62,23 +61,23 @@ function edd_create_protection_files( $force = false, $method = false ) {
// Top level .htaccess file.
$rules = edd_get_htaccess_rules( $method );
if ( edd_htaccess_exists() ) {
- $contents = $file_system->get_contents( $upload_path . '/.htaccess' );
+ $contents = EDD\Utils\FileSystem::get_contents( $upload_path . '/.htaccess' );
if ( $contents !== $rules || ! $contents ) {
// Update the .htaccess rules if they don't match.
- $file_system->put_contents( $upload_path . '/.htaccess', $rules );
+ EDD\Utils\FileSystem::put_contents( $upload_path . '/.htaccess', $rules );
}
} elseif ( $upload_path_writeable ) {
// Create the file if it doesn't exist.
- $file_system->put_contents( $upload_path . '/.htaccess', $rules );
+ EDD\Utils\FileSystem::put_contents( $upload_path . '/.htaccess', $rules );
}
// Top level blank index.php.
- if ( $upload_path_writeable && ! file_exists( $upload_path . '/index.php' ) ) {
- $file_system->put_contents( $upload_path . '/index.php', 'put_contents( $upload_path . '/index.html', '' );
+ if ( $upload_path_writeable && ! EDD\Utils\FileSystem::file_exists( $upload_path . '/index.html' ) ) {
+ EDD\Utils\FileSystem::put_contents( $upload_path . '/index.html', '' );
}
// Now place index.php files in all sub folders.
@@ -90,12 +89,12 @@ function edd_create_protection_files( $force = false, $method = false ) {
}
// Create index.php, if it doesn't exist.
- if ( ! file_exists( $folder . 'index.php' ) ) {
- $file_system->put_contents( $folder . 'index.php', 'put_contents( $folder . 'index.html', '' );
+ if ( ! EDD\Utils\FileSystem::file_exists( $folder . 'index.html' ) ) {
+ EDD\Utils\FileSystem::put_contents( $folder . 'index.html', '' );
}
}
@@ -114,7 +113,7 @@ function edd_create_protection_files( $force = false, $method = false ) {
function edd_htaccess_exists() {
$upload_path = edd_get_upload_dir();
- return file_exists( $upload_path . '/.htaccess' );
+ return EDD\Utils\FileSystem::file_exists( $upload_path . '/.htaccess' );
}
/**
diff --git a/includes/admin/views/email-editor/editor.php b/includes/admin/views/email-editor/editor.php
index 3341281a52..6cda39d74f 100644
--- a/includes/admin/views/email-editor/editor.php
+++ b/includes/admin/views/email-editor/editor.php
@@ -16,7 +16,11 @@
wp_enqueue_style( 'edd-admin-emails' );
if ( $email->can_edit( 'content' ) ) {
$email->maybe_add_required_tag();
- edd_email_tags_inserter_media_button();
+ $html_allowed = $email->supports_html();
+ edd_email_tags_inserter_media_button( $html_allowed );
+ if ( ! $html_allowed ) {
+ add_filter( 'user_can_richedit', '__return_false', 50 );
+ }
} else {
remove_action( 'media_buttons', 'media_buttons' );
}
diff --git a/includes/blocks/edd-blocks.php b/includes/blocks/edd-blocks.php
index 9e6c4d59de..f831ead013 100644
--- a/includes/blocks/edd-blocks.php
+++ b/includes/blocks/edd-blocks.php
@@ -49,7 +49,7 @@ function init_core_blocks() {
}
if ( edd_is_pro() ) {
- if ( file_exists( EDD_BLOCKS_DIR . 'pro/pro.php' ) ) {
+ if ( \EDD\Utils\FileSystem::file_exists( EDD_BLOCKS_DIR . 'pro/pro.php' ) ) {
require_once EDD_BLOCKS_DIR . 'pro/pro.php';
Pro\init();
}
diff --git a/includes/blocks/package.json b/includes/blocks/package.json
index 72e764df3d..acfa090587 100644
--- a/includes/blocks/package.json
+++ b/includes/blocks/package.json
@@ -4,7 +4,22 @@
"description": "Core blocks for Easy Digital Downloads.",
"author": "Easy Digital Downloads",
"license": "GPL-2.0-or-later",
+ "keywords": [
+ "wordpress",
+ "wordpress-plugin"
+ ],
+ "homepage": "https://easydigitaldownloads.com",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/easydigitaldownloads/easy-digital-downloads/"
+ },
+ "bugs": {
+ "url": "https://github.com/easydigitaldownloads/easy-digital-downloads/issues"
+ },
"main": "build/index.js",
+ "devDependencies": {
+ "@wordpress/scripts": "^23.6.0"
+ },
"scripts": {
"build": "wp-scripts build",
"dev": "wp-scripts start",
@@ -13,8 +28,5 @@
"lint:js": "wp-scripts lint-js",
"packages-update": "wp-scripts packages-update",
"plugin-zip": "wp-scripts plugin-zip"
- },
- "devDependencies": {
- "@wordpress/scripts": "^23.6.0"
}
}
diff --git a/includes/blocks/views/checkout/purchase-form/personal-info.php b/includes/blocks/views/checkout/purchase-form/personal-info.php
index ee7e02382a..01b283ceff 100644
--- a/includes/blocks/views/checkout/purchase-form/personal-info.php
+++ b/includes/blocks/views/checkout/purchase-form/personal-info.php
@@ -17,7 +17,7 @@
-
+
-
+