Files
jachty.pkmp.com.pl/test-add-booking.php
2026-05-06 00:18:37 +02:00

138 lines
4.3 KiB
PHP

<?php
/**
* Test helper — dodaje / usuwa testową rezerwację, żeby zobaczyć podzielone dni.
*
* Uzycie (po wgraniu na FTP do roota WP):
* /test-add-booking.php?action=add&yacht=maja&start=2026-05-21&end=2026-05-24&token=YACHT_TEST_2026
* /test-add-booking.php?action=remove&token=YACHT_TEST_2026
* /test-add-booking.php?action=list&token=YACHT_TEST_2026
*
* Po zakonczeniu testow USUN ten plik z FTP.
*/
// Bootstrap WordPress.
$wp_load = __DIR__ . '/wp-load.php';
if ( ! file_exists( $wp_load ) ) {
die( 'wp-load.php not found — wrzuc plik do roota WordPressa.' );
}
require $wp_load;
// Token zabezpieczajacy — tylko my znamy.
$expected_token = 'YACHT_TEST_2026';
if ( ! isset( $_GET['token'] ) || $_GET['token'] !== $expected_token ) {
status_header( 403 );
die( 'Brak / zly token.' );
}
header( 'Content-Type: text/plain; charset=utf-8' );
$action = isset( $_GET['action'] ) ? sanitize_key( $_GET['action'] ) : 'list';
// Marker ktory pozwoli odnalezc nasze testowe rezerwacje.
$test_marker = '_yacht_test_booking_marker';
$test_marker_value = 'PAUL_TEST_09_01';
if ( 'add' === $action ) {
$yacht_slug = isset( $_GET['yacht'] ) ? sanitize_title( $_GET['yacht'] ) : '';
$start = isset( $_GET['start'] ) ? sanitize_text_field( $_GET['start'] ) : '';
$end = isset( $_GET['end'] ) ? sanitize_text_field( $_GET['end'] ) : '';
if ( ! $yacht_slug || ! $start || ! $end ) {
die( 'Wymagane: ?action=add&yacht=<slug>&start=YYYY-MM-DD&end=YYYY-MM-DD' );
}
$yacht_post = get_page_by_path( $yacht_slug, OBJECT, 'yacht' );
if ( ! $yacht_post ) {
// Sprobuj po tytule, jesli slug nie pasuje.
$candidates = get_posts( array(
'post_type' => 'yacht',
's' => $yacht_slug,
'numberposts' => 1,
) );
$yacht_post = $candidates ? $candidates[0] : null;
}
if ( ! $yacht_post ) {
echo "Nie znaleziono jachtu '{$yacht_slug}'. Dostepne jachty:\n";
$all = get_posts( array( 'post_type' => 'yacht', 'numberposts' => -1 ) );
foreach ( $all as $y ) {
echo " - ID={$y->ID}, slug={$y->post_name}, title={$y->post_title}\n";
}
exit;
}
$booking_id = \YachtBooking\Booking::create( array(
'yacht_id' => $yacht_post->ID,
'start_date' => $start,
'end_date' => $end,
'customer_name' => 'TEST PAUL',
'customer_email' => 'test@example.com',
'customer_phone' => '000000000',
'status' => 'confirmed',
'total_price' => 0,
) );
if ( ! $booking_id ) {
die( 'Booking::create zwrocilo false.' );
}
// Marker, zeby latwo odnalezc i usunac.
update_post_meta( $booking_id, $test_marker, $test_marker_value );
// Zapisz dni jako booked w wp_yacht_availability.
\YachtBooking\Availability::mark_as_booked( $yacht_post->ID, $start, $end, $booking_id );
echo "OK — utworzono testowa rezerwacje:\n";
echo " booking_id = {$booking_id}\n";
echo " yacht = {$yacht_post->post_title} (ID={$yacht_post->ID})\n";
echo " termin = {$start} -> {$end}\n";
echo "\nOdwiedz strone kalendarza (hard reload Ctrl+F5) i zobacz podzielone dni.\n";
echo "Aby usunac: /test-add-booking.php?action=remove&token={$expected_token}\n";
exit;
}
if ( 'remove' === $action ) {
$bookings = get_posts( array(
'post_type' => 'yacht_booking',
'numberposts' => -1,
'post_status' => 'any',
'meta_key' => $test_marker,
'meta_value' => $test_marker_value,
) );
if ( ! $bookings ) {
die( 'Brak testowych rezerwacji do usuniecia.' );
}
foreach ( $bookings as $b ) {
\YachtBooking\Availability::clear_booking_availability( $b->ID );
wp_delete_post( $b->ID, true );
echo "Usunieto booking_id={$b->ID}\n";
}
echo "Gotowe. Mozesz teraz USUNAC plik test-add-booking.php z FTP.\n";
exit;
}
if ( 'list' === $action ) {
$bookings = get_posts( array(
'post_type' => 'yacht_booking',
'numberposts' => -1,
'post_status' => 'any',
'meta_key' => $test_marker,
'meta_value' => $test_marker_value,
) );
echo "Testowe rezerwacje (marker {$test_marker_value}):\n";
if ( ! $bookings ) {
echo " (brak)\n";
}
foreach ( $bookings as $b ) {
$yacht_id = \YachtBooking\Booking::get_yacht_id( $b->ID );
$start = \YachtBooking\Booking::get_start_date( $b->ID );
$end = \YachtBooking\Booking::get_end_date( $b->ID );
echo " - ID={$b->ID}, yacht_id={$yacht_id}, {$start} -> {$end}\n";
}
exit;
}
die( "Nieznana akcja '{$action}'. Dozwolone: add | remove | list" );