__( 'You do not have permission to do this.', '360-orbit-speed-optimizer' ) ), 403 ); } } public static function quickstart() { self::check_request(); $settings = Wp360_Speed_Optimizer_Settings::apply_quickstart(); wp_send_json_success( array( 'settings' => $settings, 'test' => get_option( Wp360_Speed_Optimizer_Htaccess::OPTION_LAST_TEST, array() ), ) ); } /** * Speichert eingesendete Felder -- diese werden mit dem bestehenden * Settings-Stand zusammengefuehrt statt ihn zu ersetzen, weil jeder Tab * nur seinen eigenen Teil der Felder ins DOM rendert und sendet. */ public static function save_settings() { self::check_request(); // Der JSON-Rohstring wird nur von Tags befreit (keine Leerzeichen-/ // %-Bereinigung wie bei sanitize_text_field(), sonst litten URLs in den // PRO-Freitextfeldern); die eigentliche Pruefung jedes Werts macht // danach Settings::sanitize(). $json = isset( $_POST['settings'] ) ? wp_strip_all_tags( wp_unslash( $_POST['settings'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing $raw = '' !== $json ? json_decode( $json, true ) : null; if ( ! is_array( $raw ) ) { wp_send_json_error( array( 'message' => __( 'Invalid data.', '360-orbit-speed-optimizer' ) ), 400 ); } // Felder, die diese Variante nicht kennt, verwirft sanitize(); schon // gespeicherte Werte dazu bleiben erhalten (siehe Settings::save()). $current = Wp360_Speed_Optimizer_Settings::get(); $merged = array_replace_recursive( $current, $raw ); $settings = Wp360_Speed_Optimizer_Settings::save( $merged ); // Jeder Speichervorgang schreibt den .htaccess-Block neu und testet // ihn -- so bleibt die Datei immer mit den sichtbaren Einstellungen // synchron, unabhaengig davon, aus welchem Tab gespeichert wurde. $result = Wp360_Speed_Optimizer_Htaccess::apply( $settings ); wp_send_json_success( array( 'settings' => $settings, 'test' => $result['test'], ) ); } public static function test() { self::check_request(); $test = Wp360_Speed_Optimizer_Htaccess::self_test(); update_option( Wp360_Speed_Optimizer_Htaccess::OPTION_LAST_TEST, $test, false ); wp_send_json_success( array( 'test' => $test ) ); } public static function restore() { self::check_request(); $test = Wp360_Speed_Optimizer_Htaccess::restore_backup(); wp_send_json_success( array( 'test' => $test ) ); } }