/home/smartbloks/.trash/extendify/app/Onboarding/Controllers/WPController.php
<?php
/**
* WP Controller
*/
namespace Extendify\Onboarding\Controllers;
if (!defined('ABSPATH')) {
die('No direct access.');
}
/**
* The controller for interacting with WordPress.
*/
class WPController
{
/**
* Parse theme.json file.
*
* @param \WP_REST_Request $request - The request.
* @return \WP_REST_Response
*/
public static function parseThemeJson($request)
{
if (!$request->get_param('themeJson')) {
return new \WP_Error('invalid_theme_json', __('Invalid Theme.json file', 'extendify'));
}
$themeJson = new \WP_Theme_JSON(json_decode($request->get_param('themeJson'), true), '');
return new \WP_REST_Response([
'success' => true,
'styles' => $themeJson->get_stylesheet(),
]);
}
/**
* Persist the data
*
* @param \WP_REST_Request $request - The request.
* @return \WP_REST_Response
*/
public static function updateOption($request)
{
$params = $request->get_json_params();
\update_option($params['option'], $params['value']);
return new \WP_REST_Response(['success' => true]);
}
/**
* Get a setting from the options table
*
* @param \WP_REST_Request $request - The request.
* @return \WP_REST_Response
*/
public static function getOption($request)
{
$value = \get_option($request->get_param('option'), null);
return new \WP_REST_Response([
'success' => true,
'data' => $value,
]);
}
/**
* Get the list of active plugins slugs
*
* @return \WP_REST_Response
*/
public static function getActivePlugins()
{
return new \WP_REST_Response([
'success' => true,
'data' => \get_option('active_plugins', null),
]);
}
}