diff --git a/includes/admin/pages/page-settings.php b/includes/admin/pages/page-settings.php index 33610a7..96629bf 100644 --- a/includes/admin/pages/page-settings.php +++ b/includes/admin/pages/page-settings.php @@ -11,6 +11,8 @@ function mystat_settings_page() { @@ -55,6 +57,28 @@ function mystat_register_settings() { 'mystat-privacy-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() { @@ -92,4 +116,23 @@ function mystat_sanitize_privacy_options( $input ) { $sanitized_input['radius'] = abs( intval( $input['radius'] ) ); } return $sanitized_input; +} + +function mystat_api_section_callback() { + echo '
Ustawienia związane z integracją wtyczki z zewnętrznymi aplikacjami, np. mobilnymi.
'; +} + +function mystat_render_enable_api_field() { + $options = get_option( 'mystat_api_options' ); + $checked = isset( $options['enable_api'] ) && $options['enable_api'] ? 'checked' : ''; + echo ""; + echo '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.
'; +} + +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; } \ No newline at end of file diff --git a/moje-statystyki.php b/moje-statystyki.php index 9cffe17..b4bbe60 100644 --- a/moje-statystyki.php +++ b/moje-statystyki.php @@ -44,9 +44,11 @@ add_action( 'admin_init', 'mystat_admin_init_setup' ); add_action( 'admin_enqueue_scripts', 'mystat_enqueue_admin_styles' ); // --- 3. REST API --- -require_once MYSTAT_PLUGIN_DIR . 'includes/admin/pages/routes.php'; -add_action( 'rest_api_init', 'mystat_register_rest_routes' ); - +$api_options = get_option( 'mystat_api_options' ); +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 --- require_once MYSTAT_PLUGIN_DIR . 'includes/frontend/assets.php';