Jose

prefix . ‘tareas_mantenimiento’; $charset = $wpdb->get_charset_collate(); $sql = «CREATE TABLE IF NOT EXISTS $tabla ( id mediumint(9) NOT NULL AUTO_INCREMENT, data longtext NOT NULL, fecha_creacion datetime DEFAULT CURRENT_TIMESTAMP, fecha_actualizacion datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) $charset;»; require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’); dbDelta($sql); } register_activation_hook(__FILE__, ‘mantenimiento_crear_tabla’); // ================================================ // REGISTRAR RUTAS API REST // ================================================ add_action(‘rest_api_init’, function () { register_rest_route(‘mantenimiento/v1’, ‘/tareas’, array( ‘methods’ => ‘GET’, ‘callback’ => ‘mantenimiento_obtener_tareas’, ‘permission_callback’ => ‘__return_true’ )); register_rest_route(‘mantenimiento/v1’, ‘/tareas’, array( ‘methods’ => ‘POST’, ‘callback’ => ‘mantenimiento_guardar_tareas’, ‘permission_callback’ => ‘__return_true’ )); }); // ================================================ // OBTENER TAREAS // ================================================ function mantenimiento_obtener_tareas() { global $wpdb; $tabla = $wpdb->prefix . ‘tareas_mantenimiento’; $resultado = $wpdb->get_row(«SELECT data FROM $tabla ORDER BY id DESC LIMIT 1″); if ($resultado) { return json_decode($resultado->data, true); } return array( ‘building’ => », ‘bPhotos’ => array(), ‘units’ => array(), ‘lastSaved’ => date(‘c’) ); } // ================================================ // GUARDAR TAREAS // ================================================ function mantenimiento_guardar_tareas($request) { global $wpdb; $tabla = $wpdb->prefix . ‘tareas_mantenimiento’; $datos = $request->get_json_params(); if (!$datos || !isset($datos[‘units’])) { return new WP_REST_Response(array(‘error’ => ‘Datos inválidos’), 400); } $datos[‘lastSaved’] = date(‘c’); $resultado = $wpdb->insert( $tabla, array( ‘data’ => json_encode($datos), ‘fecha_actualizacion’ => current_time(‘mysql’) ), array(‘%s’, ‘%s’) ); if ($resultado) { return new WP_REST_Response(array( ‘success’ => true, ‘message’ => ‘Datos guardados correctamente’, ‘data’ => $datos ), 200); } else { return new WP_REST_Response(array( ‘error’ => ‘Error al guardar en la base de datos’ ), 500); } } // ================================================ // SHORTCODE PARA MOSTRAR LA APP // ================================================ add_shortcode(‘mantenimiento_app’, ‘mantenimiento_mostrar_app’); function mantenimiento_mostrar_app() { $api_url = get_rest_url(null, ‘mantenimiento/v1/tareas’); $nonce = wp_create_nonce(‘wp_rest’); ob_start(); ?>

Cargando aplicación de mantenimiento…