First Commit
This commit is contained in:
1 parent
5eb9dd037d
commit
2e62c0e60b
11877 files changed
+2035312
No files matched your search
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
* Demo helper
|
||||
* ───────────
|
||||
* Resolves which *connected* school the demo checkout pages should run as.
|
||||
*
|
||||
* The PayPal widget (paypal-checkout-widget.php) only renders buttons for a
|
||||
* school that has a saved merchant_id and is PayPal-ready. The demo pages used
|
||||
* to hardcode "Demo School", which is never connected — so the buttons silently
|
||||
* never appeared. These helpers let the demos auto-pick a school that can
|
||||
* actually accept PayPal, so the page is testable out of the box.
|
||||
*/
|
||||
|
||||
/** All onboarded schools keyed by school name. */
|
||||
function pp_demo_schools(): array
|
||||
{
|
||||
$file = __DIR__ . '/data/school_merchants.json';
|
||||
if (!file_exists($file)) {
|
||||
return [];
|
||||
}
|
||||
return json_decode(file_get_contents($file), true) ?: [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Decide which school the demo should check out as.
|
||||
*
|
||||
* Priority:
|
||||
* 1. An explicit ?school= value, if that school is actually connected.
|
||||
* 2. Otherwise the first connected school that is PayPal-ready.
|
||||
* 3. null when no school can accept PayPal yet.
|
||||
*/
|
||||
function pp_demo_resolve_school(?string $requested = null): ?string
|
||||
{
|
||||
$merchants = pp_demo_schools();
|
||||
|
||||
// Honour an explicit request only if that school is connected.
|
||||
if ($requested !== null && $requested !== '' && isset($merchants[$requested])) {
|
||||
return $requested;
|
||||
}
|
||||
|
||||
// Auto-pick the first school that can actually receive payments.
|
||||
foreach ($merchants as $name => $rec) {
|
||||
if (empty($rec['merchant_id'])) {
|
||||
continue;
|
||||
}
|
||||
// paypal_ready may be absent (status never checked) — treat absence as ready.
|
||||
if (array_key_exists('paypal_ready', $rec) && !$rec['paypal_ready']) {
|
||||
continue;
|
||||
}
|
||||
if (!empty($rec['consent_revoked'])) {
|
||||
continue;
|
||||
}
|
||||
return $name;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
Reference in new issue
Block a user