benecasterAdmin Localized Data Reference
The Benecaster React admin SPA receives its boot data via wp_localize_script under the benecasterAdmin global. This reference documents every property on that object.
Shape
interface BenecasterAdmin {
apiUrl: string;
nonce: string;
adminUrl: string;
pluginVersion: string;
license: LicenseStatus | null;
pricing: PricingData | null;
staging: StagingContext;
currentUser: {
id: number;
displayName: string;
capabilities: Record<string, boolean>;
};
}
Properties
apiUrl
Base URL for the REST API. Example: "https://yoursite.com/wp-json/benecaster/v1/". Always has a trailing slash. Use this rather than constructing the URL manually — it handles subdirectory installs and custom REST namespaces.
nonce (WP REST nonce)
A wp_rest nonce scoped to the current admin session. Send as the X-WP-Nonce header on all authenticated requests. The React app refreshes the nonce every 12 hours in the background.
adminUrl
WordPress admin base URL, e.g. "https://yoursite.com/wp-admin/". Used to construct links to non-Benecaster admin pages (media library, user editor, etc.).
pluginVersion
Installed plugin version string, e.g. "1.4.2". Useful for conditional feature flags in add-on React code.
license
Current license status as returned by GET /license. null when no license key is stored. The React admin uses this to render the upgrade prompts, tier usage bars, and the add-on license badges. Full shape: see GET /license in the REST API reference.
pricing
Current pricing data from GET https://benecaster.com/wp-json/benecaster-license/v1/pricing, cached as the benecaster_pricing_data transient. null when the transient is empty. The React admin reads plan limits and prices from this object — do not hardcode any plan limits.
staging
Context about the current staging environment state. Always present (never null), even on production domains.
interface StagingContext {
isStaging: boolean; // true when BENECASTER_STAGING constant is defined
cap: number | null; // staging subscriber cap; null for unlimited plans
}
isStaging drives the staging banner in the React admin shell, the per-row staging status indicators in the Subscribers screen, and the TokenManager::validate() branch that gates feed access to staging-active subscribers only. It is false on production domains and does not change during a session.
cap is the effective staging subscriber cap as read from the license response. null for Pro, Multi-Show, and Studio (unlimited plans). The staging swap modal uses cap to determine when the set is full and offer the swap UI.
currentUser
Minimal current-user data for capability-gating the admin UI. capabilities is a flat map of capability names to booleans — only capabilities relevant to Benecaster are included (e.g. manage_benecaster, manage_options).
Extending the Payload
Add-ons can append properties via the benecaster_admin_localized_data filter:
add_filter( 'benecaster_admin_localized_data', function ( array $data ): array {
$data['myAddon'] = [
'apiKey' => get_option( 'my_addon_api_key_set' ) ? true : false,
'version' => MY_ADDON_VERSION,
];
return $data;
} );
Keep the payload lean — it is inlined into every admin page load. For large datasets, load them lazily via REST API requests from the React components that need them.
See Also
Last updated