Skip to main content

benecasterAdmin Localized Data Reference

Required add-on: Core

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