If a Card or Wizard class returns a populated array in the props()
method, the data will be available in the window[{admin page slug}]["cards"]
or window[{admin page slug}]["wizards"]
property.
class Example_Card extends WME_Sparkplug_Card {
protected $admin_page_slug = 'example';
protected $card_slug = 'example-card-1';
public function props(): array {
return [
'foo' => 'bar',
];
}
}
new Example_Card;
window['example']['cards'][0] === {
"slug": "example-card-1",
"foo": "bar"
}
The cards
property is an array of objects, while the wizards
property is an object of objects, with the keys being the slugs of the registered wizards: if a wizard's slug is example-wizard-1
for the example
admin page, the properties for that wizard will be available at window['example']['wizards']['example_wizard_1']
(notice that dashes are converted to underscores).
If the ajax_action
property is defined for a Card or Wizard, then the configuration payload will include an ajax
property with nonce
and url
properties.
class Example_Card extends WPE_Sparkplug_Card {
protected $admin_page_slug = 'example';
protected $card_slug = 'example-card-2';
protected $ajax_action = 'example-card-2-ajax';
public function props(): array {
return [
'bar' => 'foo',
];
}
}
new Example_Card;
window['example']['cards'][0] === {
"slug": "example-card-2",
"bar": "foo",
"ajax": {
"nonce": "wpnonce",
"url": "https://example.com/wp-admin/admin-ajax.php?action=example-card-2-ajax",
"action": "example-card-2-ajax"
}
}