Snippets Collections
// 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));

    }

}

​
function actualizar_campo_option($campos) {

    $campos_actualizados = array(); // Arreglo para almacenar los campos actualizados

    

    // Recorre el arreglo de campos y valores y actualiza cada uno utilizando la función update_option

    foreach ($campos as $nombre_campo => $valor) {

        $serializar_valores = isset($valor['unserialize']) ? $valor['unserialize'] : false;

        $valor = $valor['value'];

        

        if ($serializar_valores) {

            $valor_serializado = json_encode($valor);

            update_option($nombre_campo, $valor_serializado);

        } else {

            update_option($nombre_campo, $valor);

        }

        

        // Agrega el campo actualizado y su nuevo valor al arreglo de campos actualizados

        $campos_actualizados[$nombre_campo] = $valor;

    }

    

    return $campos_actualizados;

}

​

function actualizar_campos_options_callback($request) {

    // Obtiene el objeto JSON de campos y valores a actualizar desde la petición

    $campos = $request->get_json_params();

    

    // Actualiza los campos utilizando la función que creamos anteriormente

    $campos_actualizados = actualizar_campo_option($campos);

    

    // Devuelve una respuesta con los campos actualizados y sus nuevos valores

    return new WP_REST_Response(array('message' => 'Campos actualizados con éxito', 'campos_actualizados' => $campos_actualizados), 200);

}

​

add_action('rest_api_init', 'registrar_ruta_actualizar_campos_options');

​

function registrar_ruta_actualizar_campos_options() {

    // Registra la ruta /sivocloud-app/v1/options con el método PUT

    register_rest_route('sivocloud-app/v1', '/options', array(

        'methods' => 'PUT',

        'callback' => 'actualizar_campos_options_callback'

    ));

}
// From postman:
{
    "select": {"productName": "Skykick"}
}

// In file:
    req.body.select,
star

Sun Mar 26 2023 06:02:53 GMT+0000 (Coordinated Universal Time) https://woocommerce-831138-2865195.cloudwaysapps.com/wp-admin/admin.php?page

#postman
star

Sun Mar 26 2023 05:58:30 GMT+0000 (Coordinated Universal Time) https://woocommerce-831138-2865195.cloudwaysapps.com/wp-admin/admin.php?page

#postman
star

Wed Jul 21 2021 11:29:05 GMT+0000 (Coordinated Universal Time)

#nodejs #javascript #postman

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension