Palettecommando’s met stappen
Sinds versie 2.11.0 kan een commando in de Addofy-palette om waarden vragen voordat het draait. Elke parameter is een stap in de palette.
Parametertypes
order,productenuserkiezen een id uit de zoekresultaten.choicetoont de opties die je opgeeft.textneemt over wat de gebruiker typt.
Uitvoeren via een REST-route
Voeg het commando toe met de filter adba_commands. Met een endpoint post de palette de waarden op de achtergrond naar die route onder adba/v1. Plaatshouders zoals {order} worden ingevuld en de rest wordt als body verstuurd. De tekst in done verschijnt als toast.
add_filter( 'adba_commands', function ( $commands ) {
$commands[] = array(
'id' => 'myplugin-priority',
'label' => 'Set order priority',
'keywords' => array( 'order', 'priority' ),
'params' => array(
array( 'name' => 'order', 'type' => 'order', 'label' => 'Which order?' ),
array( 'name' => 'level', 'type' => 'choice', 'label' => 'Priority', 'options' => array( 'high' => 'High', 'low' => 'Low' ) ),
),
'endpoint' => 'myplugin/orders/{order}/priority', // Your own route below adba/v1.
'done' => 'Priority saved.',
);
return $commands;
} );
Registreer de route met register_rest_route( 'adba/v1', '/myplugin/...' ).
Uitvoeren in JavaScript
In plaats van een endpoint kun je het commando in JavaScript registreren. run() krijgt de waarden:
adba.commands.register( { id: 'myplugin-priority', label: 'Set order priority', params: [ /* same params */ ], run( values ) {} } );
Gedrag in de palette
screenstoont een commando alleen op die schermen, bovenaan de palette.context(orderofproduct) vult de eerste parameter van dat type met het object van het bewerkscherm.- Backspace in een leeg invoerveld gaat een stap terug. Esc gaat terug naar de commandolijst.
- De laatste acht commando's staan onder Recent.
- Het event
palette:run({ command, values }) vuurt wanneer een palettecommando draait.