prefix . 'school_bookings';
// 1. Purge test bookings
if ( isset( $_POST['schoolslots_purge_test_bookings'] ) ) {
check_admin_referer( 'schoolslots_settings_nonce' );
$wpdb->query( "TRUNCATE TABLE {$t_bookings}" );
echo '
' . esc_html__( 'All bookings and test records have been purged. Statistics and capacities are reset.', 'schoolslots' ) . '
';
}
// 2. Trigger manual GDPR anonymization
if ( isset( $_POST['schoolslots_trigger_gdpr_now'] ) ) {
check_admin_referer( 'schoolslots_settings_nonce' );
if ( isset( $_POST['schoolslots_manual_gdpr_days'] ) ) {
update_option( 'schoolslots_gdpr_retention_days', max( 0, intval( $_POST['schoolslots_manual_gdpr_days'] ) ) );
}
$count = schoolslots_execute_gdpr_anonymization();
echo '' . sprintf(
/* translators: %d: number of records anonymized */
esc_html__( 'GDPR anonymization executed: Personal data in %d expired booking records has been anonymized.', 'schoolslots' ),
intval( $count )
) . '
';
}
// 3. Save global settings
if ( isset( $_POST['schoolslots_save_global_settings'] ) ) {
check_admin_referer( 'schoolslots_settings_nonce' );
if ( isset( $_POST['schoolslots_default_school_address'] ) ) {
update_option( 'schoolslots_default_school_address', sanitize_textarea_field( wp_unslash( $_POST['schoolslots_default_school_address'] ) ) );
}
if ( isset( $_POST['schoolslots_secretary_email'] ) ) {
update_option( 'schoolslots_secretary_email', sanitize_email( wp_unslash( $_POST['schoolslots_secretary_email'] ) ) );
}
if ( isset( $_POST['schoolslots_director_email'] ) ) {
update_option( 'schoolslots_director_email', sanitize_email( wp_unslash( $_POST['schoolslots_director_email'] ) ) );
}
if ( isset( $_POST['schoolslots_deputy_email'] ) ) {
update_option( 'schoolslots_deputy_email', sanitize_email( wp_unslash( $_POST['schoolslots_deputy_email'] ) ) );
}
if ( isset( $_POST['schoolslots_settings_form_type'] ) && 'general' === $_POST['schoolslots_settings_form_type'] ) {
update_option( 'schoolslots_enable_secretary_bcc', ( isset( $_POST['schoolslots_enable_secretary_bcc'] ) ? '1' : '0' ) );
}
if ( isset( $_POST['schoolslots_cancel_redirect_url'] ) ) {
update_option( 'schoolslots_cancel_redirect_url', esc_url_raw( wp_unslash( $_POST['schoolslots_cancel_redirect_url'] ) ) );
}
if ( isset( $_POST['schoolslots_gdpr_retention_days'] ) ) {
update_option( 'schoolslots_gdpr_retention_days', max( 0, intval( $_POST['schoolslots_gdpr_retention_days'] ) ) );
}
if ( isset( $_POST['schoolslots_individual_deadline_type'] ) ) {
update_option( 'schoolslots_individual_deadline_type', sanitize_text_field( wp_unslash( $_POST['schoolslots_individual_deadline_type'] ) ) );
}
if ( isset( $_POST['schoolslots_individual_deadline_time'] ) ) {
$dl_time = sanitize_text_field( wp_unslash( $_POST['schoolslots_individual_deadline_time'] ) );
update_option( 'schoolslots_individual_deadline_time', ( 5 === strlen( $dl_time ) ? $dl_time . ':00' : $dl_time ) );
}
if ( isset( $_POST['schoolslots_reminder_send_time'] ) ) {
$rem_time = sanitize_text_field( wp_unslash( $_POST['schoolslots_reminder_send_time'] ) );
update_option( 'schoolslots_reminder_send_time', substr( $rem_time, 0, 5 ) );
wp_clear_scheduled_hook( 'schoolslots_daily_morning_reminder' );
wp_schedule_event( time(), 'hourly', 'schoolslots_daily_morning_reminder' );
}
echo '' . esc_html__( 'System settings saved successfully.', 'schoolslots' ) . '
';
}
$default_fallback = __( "Central High School / Main Building\n1000 Main Street 1.", 'schoolslots' );
$retention_days = intval( get_option( 'schoolslots_gdpr_retention_days', 30 ) );
$current_bookings = (int) $wpdb->get_var( "SELECT COUNT(*) FROM {$t_bookings}" );
$ind_dl_type = get_option( 'schoolslots_individual_deadline_type', 'prev_day' );
$ind_dl_time = get_option( 'schoolslots_individual_deadline_time', '17:00:00' );
$rem_time = get_option( 'schoolslots_reminder_send_time', '07:00' );
?>