// Registra la ruta de la API REST para obtener múltiples opciones
add_action('rest_api_init', 'registrar_ruta_obtener_opciones');
function registrar_ruta_obtener_opciones() {
// Registra la ruta /sivocloud-app/v1/options
register_rest_route('sivocloud-app/v1', '/options', array(
'methods' => 'GET',
'callback' => 'obtener_opciones_callback',
));
}
function obtener_opciones_callback($request) {
// Obtiene el objeto JSON de opciones desde el cuerpo de la petición
$opciones = $request->get_json_params();
// Verifica que el objeto contenga la clave "opciones"
if (isset($opciones['opciones']) && is_array($opciones['opciones'])) {
// Obtiene los valores de las opciones y los almacena en un array
$valores_opciones = array();
foreach ($opciones['opciones'] as $nombre_opcion) {
$valor_opcion = get_option($nombre_opcion);
$valores_opciones[$nombre_opcion] = $valor_opcion;
}
// Devuelve una respuesta con los valores de las opciones
return new WP_REST_Response(array('message' => 'Opciones obtenidas con éxito', 'valores_opciones' => $valores_opciones), 200);
} else {
// Si el objeto no contiene la clave "opciones", devuelve un error
return new WP_Error('missing_options', 'El objeto JSON no contiene la clave "opciones"', array('status' => 400));
}
}