File: /home/axxoncom/domains/ogundem.xyz/public_html/wp-content/themes/spectra-one/inc/admin/settings.php
<?php
/**
* Admin Global settings route.
*
* @package Spectra One
* @author Brainstorm Force
* @since 1.0.2
*/
declare(strict_types=1);
namespace Swt;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
add_action( 'rest_api_init', SWT_NS . 'create_rest_routes' );
/**
* Creating rest routes
*
* @since 1.0.2
* @return void
*/
function create_rest_routes(): void {
register_rest_route(
'swt/v1',
'/global_settings',
array(
array(
'methods' => \WP_REST_Server::READABLE,
'callback' => SWT_NS . 'swt_get_global_settings',
'permission_callback' => static function () {
return true;
},
),
array(
'methods' => \WP_REST_Server::EDITABLE,
'callback' => SWT_NS . 'swt_update_global_settings',
'permission_callback' => static function () {
return current_user_can( 'edit_theme_options' );
},
),
)
);
}
/**
* Get configs
*
* @since 1.0.2
* @param \WP_REST_Request $request Full details about the request.
* @return \WP_REST_Response|\WP_Error Response object on success, or WP_Error object on failure.
*/
function swt_get_global_settings( \WP_REST_Request $request ) {
$settings = get_option( 'swt_theme_options' );
return rest_ensure_response( $settings );
}
/**
* Set configs
*
* @param \WP_REST_Request $request Full details about the request.
* @return \WP_REST_Response|\WP_Error Response object on success, or WP_Error object on failure.
* @since 1.0.2
*/
function swt_update_global_settings( \WP_REST_Request $request ) {
$fields = isset( $request['setting'] ) ? $request['setting'] : array();
if ( ! empty( $fields ) ) {
update_option( 'swt_theme_options', $fields );
}
return rest_ensure_response( 'success' );
}