This commit is contained in:
2026-05-07 14:57:59 +02:00
parent c4a485e530
commit 811069a25c
35 changed files with 2980 additions and 30 deletions

View File

@@ -89,6 +89,13 @@ class Admin {
check_admin_referer( 'yacht_booking_save_global_ical' );
$import_url = isset( $_POST['global_ical_import_url'] ) ? esc_url_raw( wp_unslash( $_POST['global_ical_import_url'] ) ) : '';
update_option( 'yacht_booking_global_ical_import_url', $import_url );
$sync_mode = isset( $_POST['ical_sync_mode'] ) ? sanitize_text_field( wp_unslash( $_POST['ical_sync_mode'] ) ) : 'per_yacht';
if ( ! in_array( $sync_mode, array( 'per_yacht', 'global' ), true ) ) {
$sync_mode = 'per_yacht';
}
update_option( 'yacht_booking_ical_sync_mode', $sync_mode );
wp_safe_redirect( admin_url( 'admin.php?page=yacht-bookings-settings&tab=google-calendar&global_ical_saved=1' ) );
exit;
}
@@ -1242,6 +1249,7 @@ class Admin {
$global_import_url = (string) get_option( 'yacht_booking_global_ical_import_url', '' );
$global_export_url = \YachtBooking\Integrations\ICal\ICal_Feed::get_global_feed_url();
$last_global_run = (string) get_option( 'yacht_booking_global_ical_last_import', '' );
$ical_sync_mode = Settings::get_ical_sync_mode();
?>
<div class="card" style="margin-top: 30px;">
<h3><?php esc_html_e( 'Globalna synchronizacja iCal (jeden wspólny kalendarz)', 'yacht-booking' ); ?></h3>
@@ -1284,6 +1292,27 @@ class Admin {
<form method="post" action="">
<?php wp_nonce_field( 'yacht_booking_save_global_ical' ); ?>
<table class="form-table">
<tr>
<th scope="row">
<label for="ical_sync_mode"><?php esc_html_e( 'Tryb synchronizacji iCal', 'yacht-booking' ); ?></label>
</th>
<td>
<select name="ical_sync_mode" id="ical_sync_mode">
<option value="per_yacht" <?php selected( $ical_sync_mode, 'per_yacht' ); ?>>
<?php esc_html_e( 'Per jacht — dopasowanie po prefiksie SUMMARY', 'yacht-booking' ); ?>
</option>
<option value="global" <?php selected( $ical_sync_mode, 'global' ); ?>>
<?php esc_html_e( 'Wspólny kalendarz — wszystkie eventy bez filtrowania', 'yacht-booking' ); ?>
</option>
</select>
<p class="description">
<?php esc_html_e( 'Per jacht: importowane są tylko eventy z prefiksem nazwy jachtu w tytule (format: "Nazwa jachtu - opis"). Eventy bez dopasowania są ignorowane. Tworzą blokady dostępności.', 'yacht-booking' ); ?>
</p>
<p class="description">
<?php esc_html_e( 'Wspólny kalendarz: importowane są wszystkie eventy bez wyjątku, jako wspólne wydarzenia kalendarza. NIE blokują dostępności poszczególnych jachtów. Pokazywane na widgecie zbiorczym "wszystkie jachty".', 'yacht-booking' ); ?>
</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="global_ical_import_url"><?php esc_html_e( 'iCal Import URL', 'yacht-booking' ); ?></label>