File: /wordpress/plugins/wp-cloud-client/1.1.3/src/Handler/SetSiteOptionsHandler.php
<?php
declare(strict_types=1);
namespace VPlugins\WPCloudClient\Handler;
use VPlugins\WPCloudClient\SiteOptions\OptionRegistry;
final class SetSiteOptionsHandler extends AbstractHandler {
/**
* Constructor.
*
* @param OptionRegistry $optionRegistry The option registry instance.
*/
public function __construct(
private readonly OptionRegistry $optionRegistry,
) {}
/**
* Return the action name this handler responds to.
*
* @return string The action identifier.
*/
public function action(): string {
return 'set_site_options';
}
/**
* Execute the set site options action.
*
* @param array $params The request parameters.
* @return array The written option values.
* @throws \InvalidArgumentException When options is not a non-empty array.
*/
public function execute( array $params ): array {
$this->requireParams( $params, 'options' );
$options = $params['options'];
if ( ! is_array( $options ) || empty( $options ) ) {
throw new \InvalidArgumentException( 'options must be a non-empty object of key-value pairs' );
}
return $this->optionRegistry->write( $options );
}
}