Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
422d428
Update packages
ahegyes Oct 31, 2026
ae66d29
Test that LO and IC load their safeguards before the floor gate
ahegyes Oct 31, 2026
c16dcf2
Load LO's and IC's safeguards before the floor gate
ahegyes Oct 31, 2026
ffb5eff
Add Locked Payment Methods from the plugin template
ahegyes Oct 31, 2026
5dfdd10
Name Locked Payment Methods' Composer package after its mirror
ahegyes Oct 31, 2026
392f70a
Remove the template's demo from Locked Payment Methods
ahegyes Oct 31, 2026
b344a42
Test Locked Payment Methods' settings and their migration from v1
ahegyes Oct 31, 2026
9e6fa87
Move Locked Payment Methods' settings to the Advanced tab
ahegyes Oct 31, 2026
51c0c0a
Test Locked Payment Methods' lock as its safeguard
ahegyes Oct 31, 2026
98113ac
Lock payment methods in Locked Payment Methods' safeguard
ahegyes Oct 31, 2026
d3a8064
Test Locked Payment Methods' capabilities under v1's names
ahegyes Oct 31, 2026
8d61213
Grant Locked Payment Methods' capabilities through the framework
ahegyes Oct 31, 2026
253a6de
Test Locked Payment Methods' role strategy
ahegyes Oct 31, 2026
7afa17f
Unlock every locked method for Locked Payment Methods' full-access roles
ahegyes Oct 31, 2026
ba7a75b
Test Locked Payment Methods' user grants and their move from v1
ahegyes Oct 31, 2026
c563afb
Unlock payment methods per user from Locked Payment Methods' profiles
ahegyes Oct 31, 2026
1ec3c54
Test Locked Payment Methods' order grants and their move from v1
ahegyes Oct 31, 2026
9f3072b
Unlock payment methods per order in Locked Payment Methods
ahegyes Oct 31, 2026
d05ec1c
Test Locked Payment Methods' Groups grants and their move from v1
ahegyes Oct 31, 2026
39fecbf
Unlock payment methods for Groups members in Locked Payment Methods
ahegyes Oct 31, 2026
6401a48
Name Locked Payment Methods' grants meta for every object it unlocks for
ahegyes Oct 31, 2026
cf7e621
Test Locked Payment Methods' Memberships grants and their move from v1
ahegyes Oct 31, 2026
5bede3b
Unlock payment methods for Memberships plans in Locked Payment Methods
ahegyes Oct 31, 2026
794ca00
Test Locked Payment Methods' v1 API as deprecated shims
ahegyes Oct 31, 2026
c501382
Keep Locked Payment Methods' v1 API as deprecated shims
ahegyes Oct 31, 2026
5e6ab43
Test that Locked Payment Methods' uninstall removes v2's and v1's data
ahegyes Oct 31, 2026
a828378
Remove Locked Payment Methods' v2 and v1 data on a consenting uninstall
ahegyes Oct 31, 2026
f5e2a32
Remove the demo's build output from Locked Payment Methods
ahegyes Oct 31, 2026
3502dfa
Distribute Locked Payment Methods through wordpress.org
ahegyes Oct 31, 2026
f5c0555
Unhook each strategy's test class after its rows
ahegyes Oct 31, 2026
0d4231c
Declare Locked Payment Methods compatible with the order tables
ahegyes Oct 31, 2026
4e9934a
Check that the readme repeats the entry's version and floors
ahegyes Oct 31, 2026
8f0723e
Test the lock on the block checkout and the Store API
ahegyes Oct 31, 2026
6346388
Describe Locked Payment Methods in its own docs
ahegyes Oct 31, 2026
c0767f9
Add Locked Payment Methods to the root's shared environment
ahegyes Oct 31, 2026
d90f4ee
Keep a payment method locked unless a callback returns false
ahegyes Oct 31, 2026
eb8171a
Say which list the lock check and the grants forms read
ahegyes Oct 31, 2026
7d174cd
Filter only the Users list by a granted payment method
ahegyes Oct 31, 2026
55e4e3e
Load the footprint's constants when uninstalling
ahegyes Oct 31, 2026
3d98a53
Store an order's grants list before deleting v1's rows
ahegyes Nov 1, 2026
75148bd
Leave no orders behind the checkout and uninstall rows
ahegyes Nov 1, 2026
9e85659
Keep order grants off checkouts that pay a new order
ahegyes Nov 1, 2026
ba10de8
Test the underscore include skip with an include that exists
ahegyes Nov 1, 2026
3a78a70
Fail the order grants step when its table probe fails
ahegyes Nov 1, 2026
41021c7
Narrow the uninstall's v1 user meta prefix to the grants
ahegyes Nov 1, 2026
d9239ca
Judge the gateways as WooCommerce casts them
ahegyes Nov 1, 2026
58ac0a3
Test that every reader of the locked list counts the locked_ids filter
ahegyes Nov 1, 2026
2f5885e
Filter the locked list wherever Locked Payment Methods reads it
ahegyes Nov 1, 2026
ae2e3f3
Judge a locked method for a user without reading the list again
ahegyes Nov 1, 2026
aa509c6
Check that the plugin booted in the underscore include row
ahegyes Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .wp-env.tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"mappings": {
"wp-content/plugins/internal-comments": "./plugins/internal-comments",
"wp-content/plugins/linked-orders-for-woocommerce": "./plugins/linked-orders-for-woocommerce",
"wp-content/plugins/locked-payment-methods-for-woocommerce": "./plugins/locked-payment-methods-for-woocommerce",
"wp-content/plugins/woocommerce": "./vendor/wp-plugin/woocommerce"
},
"config": {
Expand All @@ -15,6 +16,6 @@
"WP_ENVIRONMENT_TYPE": false
},
"lifecycleScripts": {
"afterStart": "node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp plugin activate woocommerce && node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp wc hpos enable --ignore-plugin-compatibility && node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp plugin activate linked-orders-for-woocommerce internal-comments"
"afterStart": "node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp plugin activate woocommerce && node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp wc hpos enable --ignore-plugin-compatibility && node_modules/.bin/wp-env --config .wp-env.tests.json run cli wp plugin activate linked-orders-for-woocommerce internal-comments locked-payment-methods-for-woocommerce"
}
}
9 changes: 5 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ The monorepo of the DWS v2 WordPress plugins, each built on the wp-framework pac
wordpress-plugins/
├── plugins/
│ ├── linked-orders-for-woocommerce/ Linked Orders for WooCommerce → wc-linked-orders, ports 8822 and 8823, on wordpress.org
│ └── internal-comments/ Internal Comments → wp-internal-comments, ports 8824 and 8825, on wordpress.org
│ ├── internal-comments/ Internal Comments → wp-internal-comments, ports 8824 and 8825, on wordpress.org
│ └── locked-payment-methods-for-woocommerce/ Locked Payment Methods for WooCommerce → wc-locked-payment-methods, ports 8826 and 8827, on wordpress.org
├── tests/
│ ├── e2e/ the shared environment's smoke check, over the plugins .wp-env.tests.json maps
│ ├── e2e/ the shared environment's checks: every plugin .wp-env.tests.json maps is active and boots, and the plugins work side by side
│ └── Fixtures/multi-plugin-smoke/ reserved for a fixture plugin the shared environment mounts
├── .github/workflows/
│ ├── plugins.yml lists the plugins, their mirrors and readmes and each one's WordPress versions for the other workflows
Expand All @@ -28,7 +29,7 @@ wordpress-plugins/
npm run setup # every install, then every plugin's build
composer plugins:quality-check # each plugin's quality-check, in its own environments
composer test:integration # starts the shared environment and runs each plugin's Integration suite in it
npm run test:e2e # the shared environment's smoke check
npm run test:e2e # the shared environment's checks
npm run plugins:test:e2e # each plugin's end-to-end suite, in its own environment
actionlint .github/workflows/*.yml plugins/*/.github/workflows/*.yml && zizmor .github/ plugins/*/.github/
```
Expand All @@ -49,4 +50,4 @@ Each plugin's `AGENTS.md` states its code style, the template's. Markdown keeps

- CI runs twice per change: the root's lanes on the pull request, and the mirror's own after the split.
- The root's workflow checks cover the root's workflows; a plugin's own are checked on its mirror after the split, and locally by the command above.
- Each plugin's Integration suite runs twice: in the plugin's own environments and in the shared one.
- Each plugin's Integration suite runs twice: in the plugin's own environments and in the shared one, which leaves out the rows of a plugin the shared environment does not install, such as Locked Payment Methods' Groups and WooCommerce Memberships groups.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ Plugins built on the wp-framework packages are developed side by side here, so a
| Plugin | Mirror | Distribution |
| --- | --- | --- |
| [Linked Orders for WooCommerce](./plugins/linked-orders-for-woocommerce) | [`wc-linked-orders`](https://github.com/ahegyes/wc-linked-orders) | wordpress.org |
| [Internal Comments](./plugins/internal-comments) | [`wp-internal-comments`](https://github.com/ahegyes/wp-internal-comments) | wordpress.org |
| [Locked Payment Methods for WooCommerce](./plugins/locked-payment-methods-for-woocommerce) | [`wc-locked-payment-methods`](https://github.com/ahegyes/wc-locked-payment-methods) | wordpress.org |

Each plugin under `plugins/<slug>/` is a complete plugin repository, started from [wordpress-plugin-template](https://github.com/ahegyes/wordpress-plugin-template): its own Composer and npm manifests, prefixed framework, test environments, CI and release workflows. Every push to `trunk` splits it to its mirror, which runs the plugin's own CI and releases it.

Expand All @@ -29,7 +31,7 @@ composer test:integration
npm run test:e2e
```

`composer test:integration` runs each plugin's Integration suite in the shared environment, and `npm run test:e2e` its smoke check.
`composer test:integration` runs each plugin's Integration suite in the shared environment, and `npm run test:e2e` its checks of the plugins side by side.

## Releases

Expand Down
27 changes: 18 additions & 9 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@
"@putenv CI=1",
"npm --prefix=. run plugins:build",
"node_modules/.bin/wp-env --config .wp-env.tests.json run cli --env-cwd=wp-content/plugins/linked-orders-for-woocommerce vendor/bin/phpunit --testsuite=Integration",
"node_modules/.bin/wp-env --config .wp-env.tests.json run cli --env-cwd=wp-content/plugins/internal-comments vendor/bin/phpunit --testsuite=Integration"
"node_modules/.bin/wp-env --config .wp-env.tests.json run cli --env-cwd=wp-content/plugins/internal-comments vendor/bin/phpunit --testsuite=Integration",
"node_modules/.bin/wp-env --config .wp-env.tests.json run cli --env-cwd=wp-content/plugins/locked-payment-methods-for-woocommerce vendor/bin/phpunit --testsuite=Integration --exclude-group groups --exclude-group wc-memberships"
],

"quality-check": [
Expand All @@ -70,38 +71,46 @@

"plugins:packages-install": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce packages-install",
"@composer --working-dir=plugins/internal-comments packages-install"
"@composer --working-dir=plugins/internal-comments packages-install",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce packages-install"
],
"plugins:packages-update": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce packages-update",
"@composer --working-dir=plugins/internal-comments packages-update"
"@composer --working-dir=plugins/internal-comments packages-update",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce packages-update"
],

"plugins:format:php": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce format:php",
"@composer --working-dir=plugins/internal-comments format:php"
"@composer --working-dir=plugins/internal-comments format:php",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce format:php"
],
"plugins:lint:php": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce lint:php",
"@composer --working-dir=plugins/internal-comments lint:php"
"@composer --working-dir=plugins/internal-comments lint:php",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce lint:php"
],

"plugins:test": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce test",
"@composer --working-dir=plugins/internal-comments test"
"@composer --working-dir=plugins/internal-comments test",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce test"
],
"plugins:test:unit": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce test:unit",
"@composer --working-dir=plugins/internal-comments test:unit"
"@composer --working-dir=plugins/internal-comments test:unit",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce test:unit"
],
"plugins:test:integration": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce test:integration",
"@composer --working-dir=plugins/internal-comments test:integration"
"@composer --working-dir=plugins/internal-comments test:integration",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce test:integration"
],

"plugins:quality-check": [
"@composer --working-dir=plugins/linked-orders-for-woocommerce quality-check",
"@composer --working-dir=plugins/internal-comments quality-check"
"@composer --working-dir=plugins/internal-comments quality-check",
"@composer --working-dir=plugins/locked-payment-methods-for-woocommerce quality-check"
],

"changelog:add": "@php vendor/bin/changelogger add",
Expand Down
Loading
Loading