Enable/Disable REST URLs
This commit is contained in:
@@ -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() {
|
||||||
@@ -92,4 +116,23 @@ function mystat_sanitize_privacy_options( $input ) {
|
|||||||
$sanitized_input['radius'] = abs( intval( $input['radius'] ) );
|
$sanitized_input['radius'] = abs( intval( $input['radius'] ) );
|
||||||
}
|
}
|
||||||
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
@@ -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';
|
||||||
|
|||||||
Reference in New Issue
Block a user