Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
15568bf
Integrate Stripe Connect proxy server for secure OAuth flow
superdav42 Dec 15, 2025
bd87731
Optimize Stripe OAuth performance and remove application fees
superdav42 Dec 15, 2025
c431f91
Remove platform_client_id - now handled by proxy server
superdav42 Dec 15, 2025
44f23c3
fix stripe
superdav42 Dec 31, 2025
b0155af
Merge branch 'main' of github.com:Multisite-Ultimate/ultimate-multisi…
superdav42 Jan 2, 2026
f980d7c
Hide redundant billing address fields when Stripe gateway is selected
superdav42 Jan 2, 2026
4f14632
Merge branch 'main' into stripe-claude
superdav42 Feb 8, 2026
18efb0b
Add Stripe checkout and subscription renewal E2E tests
superdav42 Feb 9, 2026
2e044f4
fix: use env var check instead of secrets context in workflow if cond…
superdav42 Feb 9, 2026
30e8f1c
fix: override wp-env plugins in CI to exclude missing domain-seller a…
superdav42 Feb 9, 2026
c5937c4
fix: rewrite wp-env.json in CI to strip addons and mappings
superdav42 Feb 9, 2026
568a608
Fix invoice PDF download failing with expired nonce
superdav42 Feb 9, 2026
01b2fae
Fix Stripe checkout test mock missing latest_charge field
superdav42 Feb 9, 2026
76b6b62
change the validation rules
superdav42 Feb 9, 2026
966176e
add attachement pdf in test emails
superdav42 Feb 10, 2026
7454593
Only check for memory errors
superdav42 Feb 10, 2026
4a125da
Merge branch 'main' into stripe-claude
superdav42 Feb 12, 2026
e58d57c
Actually get stripe to work
superdav42 Feb 13, 2026
52f9f17
fix test
superdav42 Feb 13, 2026
0a6982a
Fix duplicate Country/ZIP fields on Stripe checkout
superdav42 Feb 13, 2026
caf0854
Update tests/e2e/cypress/fixtures/process-stripe-renewal.php
superdav42 Feb 13, 2026
1ec49d7
Update inc/managers/class-gateway-manager.php
superdav42 Feb 13, 2026
827e78e
Move payment status CSS from inline to checkout.css
superdav42 Feb 13, 2026
2da2f14
Merge branch 'main' into stripe-claude
superdav42 Feb 13, 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
48 changes: 47 additions & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
cypress:
runs-on: ubuntu-latest
timeout-minutes: 30 # Increased timeout for setup wizard
timeout-minutes: 45 # Increased for setup wizard + Stripe test clock advancement
strategy:
matrix:
php: ["8.1", "8.2"] # Reduced PHP versions for faster CI
Expand Down Expand Up @@ -183,6 +183,52 @@ jobs:

echo "✅ All checkout tests passed!"

- name: Run Stripe Tests (After Setup)
id: stripe-tests
env:
STRIPE_TEST_PK_KEY: ${{ secrets.STRIPE_TEST_PK_KEY }}
STRIPE_TEST_SK_KEY: ${{ secrets.STRIPE_TEST_SK_KEY }}
run: |
if [ -z "$STRIPE_TEST_SK_KEY" ]; then
echo "⏭️ Skipping Stripe tests: STRIPE_TEST_SK_KEY secret not configured"
exit 0
fi

set +e
echo "=== Starting Stripe Tests ==="

STRIPE_TESTS=(
"tests/e2e/cypress/integration/030-stripe-checkout-flow.spec.js"
"tests/e2e/cypress/integration/040-stripe-renewal-flow.spec.js"
)

TOTAL_FAILURES=0

for TEST_SPEC in "${STRIPE_TESTS[@]}"; do
echo "Running: $TEST_SPEC"

npx cypress run \
--config-file cypress.config.test.js \
--spec "$TEST_SPEC" \
--browser ${{ matrix.browser }}

CYPRESS_EXIT_CODE=$?

if [ $CYPRESS_EXIT_CODE -eq 0 ]; then
echo "✅ $TEST_SPEC passed"
else
echo "❌ $TEST_SPEC failed with exit code $CYPRESS_EXIT_CODE"
TOTAL_FAILURES=$((TOTAL_FAILURES + 1))
fi
done

if [ $TOTAL_FAILURES -gt 0 ]; then
echo "❌ $TOTAL_FAILURES Stripe test(s) failed"
exit 1
fi

echo "✅ All Stripe tests passed!"
Comment on lines +186 to +230
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Consider also checking STRIPE_TEST_PK_KEY in the skip guard.

Line 176 only checks STRIPE_TEST_SK_KEY, but the Cypress tests also need STRIPE_TEST_PK_KEY (forwarded via config). If only the secret key is configured but the publishable key is missing, tests would run but likely fail during gateway setup.

Suggested fix
-          if [ -z "$STRIPE_TEST_SK_KEY" ]; then
-            echo "⏭️  Skipping Stripe tests: STRIPE_TEST_SK_KEY secret not configured"
+          if [ -z "$STRIPE_TEST_SK_KEY" ] || [ -z "$STRIPE_TEST_PK_KEY" ]; then
+            echo "⏭️  Skipping Stripe tests: Stripe test key secrets not configured"
             exit 0
           fi
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Run Stripe Tests (After Setup)
id: stripe-tests
env:
STRIPE_TEST_PK_KEY: ${{ secrets.STRIPE_TEST_PK_KEY }}
STRIPE_TEST_SK_KEY: ${{ secrets.STRIPE_TEST_SK_KEY }}
run: |
if [ -z "$STRIPE_TEST_SK_KEY" ]; then
echo "⏭️ Skipping Stripe tests: STRIPE_TEST_SK_KEY secret not configured"
exit 0
fi
set +e
echo "=== Starting Stripe Tests ==="
STRIPE_TESTS=(
"tests/e2e/cypress/integration/030-stripe-checkout-flow.spec.js"
"tests/e2e/cypress/integration/040-stripe-renewal-flow.spec.js"
)
TOTAL_FAILURES=0
for TEST_SPEC in "${STRIPE_TESTS[@]}"; do
echo "Running: $TEST_SPEC"
npx cypress run \
--config-file cypress.config.test.js \
--spec "$TEST_SPEC" \
--browser ${{ matrix.browser }}
CYPRESS_EXIT_CODE=$?
if [ $CYPRESS_EXIT_CODE -eq 0 ]; then
echo "✅ $TEST_SPEC passed"
else
echo "❌ $TEST_SPEC failed with exit code $CYPRESS_EXIT_CODE"
TOTAL_FAILURES=$((TOTAL_FAILURES + 1))
fi
done
if [ $TOTAL_FAILURES -gt 0 ]; then
echo "❌ $TOTAL_FAILURES Stripe test(s) failed"
exit 1
fi
echo "✅ All Stripe tests passed!"
- name: Run Stripe Tests (After Setup)
id: stripe-tests
env:
STRIPE_TEST_PK_KEY: ${{ secrets.STRIPE_TEST_PK_KEY }}
STRIPE_TEST_SK_KEY: ${{ secrets.STRIPE_TEST_SK_KEY }}
run: |
if [ -z "$STRIPE_TEST_SK_KEY" ] || [ -z "$STRIPE_TEST_PK_KEY" ]; then
echo "⏭️ Skipping Stripe tests: Stripe test key secrets not configured"
exit 0
fi
set +e
echo "=== Starting Stripe Tests ==="
STRIPE_TESTS=(
"tests/e2e/cypress/integration/030-stripe-checkout-flow.spec.js"
"tests/e2e/cypress/integration/040-stripe-renewal-flow.spec.js"
)
TOTAL_FAILURES=0
for TEST_SPEC in "${STRIPE_TESTS[@]}"; do
echo "Running: $TEST_SPEC"
npx cypress run \
--config-file cypress.config.test.js \
--spec "$TEST_SPEC" \
--browser ${{ matrix.browser }}
CYPRESS_EXIT_CODE=$?
if [ $CYPRESS_EXIT_CODE -eq 0 ]; then
echo "✅ $TEST_SPEC passed"
else
echo "❌ $TEST_SPEC failed with exit code $CYPRESS_EXIT_CODE"
TOTAL_FAILURES=$((TOTAL_FAILURES + 1))
fi
done
if [ $TOTAL_FAILURES -gt 0 ]; then
echo "❌ $TOTAL_FAILURES Stripe test(s) failed"
exit 1
fi
echo "✅ All Stripe tests passed!"
🤖 Prompt for AI Agents
In @.github/workflows/e2e.yml around lines 170 - 214, The skip guard currently
only checks STRIPE_TEST_SK_KEY; update it to verify both STRIPE_TEST_SK_KEY and
STRIPE_TEST_PK_KEY are present (i.e., test for either being empty using a
logical OR) before running the Cypress specs, and adjust the echo message to
mention both missing keys so tests are skipped when either the secret or
publishable key is not configured.


- name: Fix permissions for Cypress output
if: always()
run: sudo chown -R $USER:$USER tests/e2e/cypress
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ ultimate-multisite.zip

# Code coverage
coverage.xml
coverage-html/
coverage-html/

# Local test scripts with secrets
run-tests.sh
34 changes: 34 additions & 0 deletions assets/css/checkout.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
/**
* Payment status polling message styles.
*
* Used on the checkout confirmation/thank-you page
* when polling Stripe for payment completion.
*
* @since 2.4.0
*/
.wu-payment-status {
padding: 12px 16px;
border-radius: 6px;
margin-bottom: 16px;
font-weight: 500;
}

.wu-payment-status-pending,
.wu-payment-status-checking {
background-color: #fef3cd;
color: #856404;
border: 1px solid #ffc107;
}

.wu-payment-status-completed {
background-color: #d4edda;
color: #155724;
border: 1px solid #28a745;
}

.wu-payment-status-timeout,
.wu-payment-status-error {
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
/**
* Checkout form normalization styles.
*
Expand Down
3 changes: 2 additions & 1 deletion assets/css/checkout.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading