namespace Extendify\PageCreator\Controllers;
defined('ABSPATH') || die('No direct access.');
use Extendify\Shared\Services\Sanitizer;
* The controller for persisting site data
* Get option data by name.
* @param \WP_REST_Request $request - The request.
* @return \WP_REST_Response - Sends JSON response with the option data.
public static function get($request)
$data = \get_option('extendify_' . $request->get_param('name'));
return new \WP_REST_Response([]);
if ($request->get_param('item')) {
$data = ($data['state'][$request->get_param('item')] ?? []);
return new \WP_REST_Response($data);
* @param \WP_REST_Request $request - The request.
* @return \WP_REST_Response
public static function single($request)
$key = $request->get_param('key');
$value = $request->get_param('value');
// Remove the 'extendify_' prefix if it exists.
if (strpos($key, 'extendify_') === 0) {
\update_option('extendify_' . $key, Sanitizer::sanitizeUnknown($value));
return new \WP_REST_Response($value);