Enable/Disable REST URLs

This commit is contained in:
2026-02-08 22:34:02 +01:00
parent fa61e1d7c6
commit 0e5be7b590
2 changed files with 48 additions and 3 deletions
+43
View File
@@ -11,6 +11,8 @@ function mystat_settings_page() {
<?php <?php
settings_fields( 'mystat_privacy_settings' ); settings_fields( 'mystat_privacy_settings' );
do_settings_sections( 'mystat-privacy-section' ); do_settings_sections( 'mystat-privacy-section' );
settings_fields( 'mystat_api_settings' );
do_settings_sections( 'mystat-api-section' );
submit_button(); submit_button();
?> ?>
</form> </form>
@@ -55,6 +57,28 @@ function mystat_register_settings() {
'mystat-privacy-section', 'mystat-privacy-section',
'mystat_privacy_zone_section' 'mystat_privacy_zone_section'
); );
// API Settings
register_setting(
'mystat_api_settings',
'mystat_api_options',
'mystat_sanitize_api_options'
);
add_settings_section(
'mystat_api_section',
'Ustawienia API',
'mystat_api_section_callback',
'mystat-api-section'
);
add_settings_field(
'mystat_enable_api',
'REST API',
'mystat_render_enable_api_field',
'mystat-privacy-section',
'mystat_privacy_zone_section'
);
} }
function mystat_privacy_section_callback() { function mystat_privacy_section_callback() {
@@ -93,3 +117,22 @@ function mystat_sanitize_privacy_options( $input ) {
} }
return $sanitized_input; return $sanitized_input;
} }
function mystat_api_section_callback() {
echo '<p>Ustawienia związane z integracją wtyczki z zewnętrznymi aplikacjami, np. mobilnymi.</p>';
}
function mystat_render_enable_api_field() {
$options = get_option( 'mystat_api_options' );
$checked = isset( $options['enable_api'] ) && $options['enable_api'] ? 'checked' : '';
echo "<label><input type='checkbox' name='mystat_api_options[enable_api]' value='1' {$checked} /> Włącz REST API</label>";
echo '<p class="description">Umożliwia zewnętrznym aplikacjom (np. na Androida) komunikację z wtyczką w celu dodawania i odczytywania aktywności. Jeśli nie korzystasz z takich integracji, możesz to wyłączyć dla większego bezpieczeństwa.</p>';
}
function mystat_sanitize_api_options( $input ) {
$sanitized_input = array();
// If the checkbox is not checked, it won't be in the $input array.
// So we check for its existence to determine if it's on or off.
$sanitized_input['enable_api'] = isset( $input['enable_api'] ) ? 1 : 0;
return $sanitized_input;
}
+5 -3
View File
@@ -44,9 +44,11 @@ add_action( 'admin_init', 'mystat_admin_init_setup' );
add_action( 'admin_enqueue_scripts', 'mystat_enqueue_admin_styles' ); add_action( 'admin_enqueue_scripts', 'mystat_enqueue_admin_styles' );
// --- 3. REST API --- // --- 3. REST API ---
require_once MYSTAT_PLUGIN_DIR . 'includes/admin/pages/routes.php'; $api_options = get_option( 'mystat_api_options' );
add_action( 'rest_api_init', 'mystat_register_rest_routes' ); if ( ! empty( $api_options['enable_api'] ) ) {
require_once MYSTAT_PLUGIN_DIR . 'includes/admin/pages/routes.php';
add_action( 'rest_api_init', 'mystat_register_rest_routes' );
}
// --- 4. SHORTCODE DO WYŚWIETLANIA NA FRONCIE --- // --- 4. SHORTCODE DO WYŚWIETLANIA NA FRONCIE ---
require_once MYSTAT_PLUGIN_DIR . 'includes/frontend/assets.php'; require_once MYSTAT_PLUGIN_DIR . 'includes/frontend/assets.php';