2026-04-01 13:58:27 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
/**
|
2026-04-01 17:30:10 +02:00
|
|
|
|
* Template: Mi cuenta – Reservar una reunión
|
2026-04-01 13:58:27 +02:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
|
|
|
|
|
|
|
|
wp_enqueue_style( 'woodoo-frontend' );
|
|
|
|
|
|
wp_enqueue_script( 'woodoo-frontend' );
|
|
|
|
|
|
wp_localize_script( 'woodoo-frontend', 'WooDooCalendar', [
|
|
|
|
|
|
'nonce' => wp_create_nonce( 'woodoo_calendar' ),
|
|
|
|
|
|
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
|
|
|
|
|
'i18n' => [
|
2026-04-01 17:30:10 +02:00
|
|
|
|
'loading' => 'Cargando…',
|
|
|
|
|
|
'no_slots' => 'No hay horarios disponibles para este día.',
|
|
|
|
|
|
'select_slot' => 'Selecciona un horario',
|
|
|
|
|
|
'booking' => 'Reservando…',
|
|
|
|
|
|
'book_btn' => 'Confirmar reserva',
|
|
|
|
|
|
'cancel_confirm' => '¿Cancelar esta reunión?',
|
|
|
|
|
|
'cancelling' => 'Cancelando…',
|
|
|
|
|
|
'cancelled' => 'Reunión cancelada.',
|
|
|
|
|
|
'error' => 'Ha ocurrido un error. Inténtalo de nuevo.',
|
2026-04-01 13:58:27 +02:00
|
|
|
|
],
|
|
|
|
|
|
] );
|
2026-04-01 17:30:10 +02:00
|
|
|
|
|
|
|
|
|
|
$duration_mins = (int) get_option( 'woodoo_meeting_duration', 30 );
|
2026-04-01 13:58:27 +02:00
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="woodoo-calendar-wrap">
|
|
|
|
|
|
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<!-- ── Próximas reuniones ─────────────────────────────────────────── -->
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<div class="woodoo-section">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<h3>Tus próximas reuniones</h3>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<div id="woodoo-meetings-list">
|
|
|
|
|
|
<?php if ( empty( $upcoming ) ) : ?>
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<p class="woodoo-empty">No tienes reuniones programadas.</p>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<?php else : ?>
|
|
|
|
|
|
<div class="woodoo-meetings-grid">
|
|
|
|
|
|
<?php foreach ( $upcoming as $event ) :
|
|
|
|
|
|
$start_ts = strtotime( $event['start'] );
|
|
|
|
|
|
$end_ts = strtotime( $event['stop'] );
|
2026-04-01 17:30:10 +02:00
|
|
|
|
|
|
|
|
|
|
$meses = [ '', 'ene', 'feb', 'mar', 'abr', 'may', 'jun',
|
|
|
|
|
|
'jul', 'ago', 'sep', 'oct', 'nov', 'dic' ];
|
|
|
|
|
|
$mes = $meses[ (int) gmdate( 'n', $start_ts ) ];
|
2026-04-01 13:58:27 +02:00
|
|
|
|
?>
|
|
|
|
|
|
<div class="woodoo-meeting-card" data-event-id="<?php echo esc_attr( $event['id'] ); ?>">
|
|
|
|
|
|
<div class="woodoo-meeting-card__date">
|
|
|
|
|
|
<span class="woodoo-meeting-card__day"><?php echo esc_html( gmdate( 'd', $start_ts ) ); ?></span>
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<span class="woodoo-meeting-card__month"><?php echo esc_html( $mes ); ?></span>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="woodoo-meeting-card__info">
|
|
|
|
|
|
<strong><?php echo esc_html( $event['name'] ); ?></strong>
|
|
|
|
|
|
<span class="woodoo-meeting-card__time">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<?php echo esc_html( gmdate( 'H:i', $start_ts ) . ' – ' . gmdate( 'H:i', $end_ts ) ); ?>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</span>
|
|
|
|
|
|
<?php if ( ! empty( $event['videocall_location'] ) ) : ?>
|
|
|
|
|
|
<a href="<?php echo esc_url( $event['videocall_location'] ); ?>"
|
2026-04-01 17:30:10 +02:00
|
|
|
|
target="_blank" rel="noopener"
|
|
|
|
|
|
class="woodoo-meeting-card__video">
|
|
|
|
|
|
Unirse a la videollamada
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</a>
|
|
|
|
|
|
<?php elseif ( ! empty( $event['location'] ) ) : ?>
|
|
|
|
|
|
<span class="woodoo-meeting-card__loc">
|
|
|
|
|
|
<?php echo esc_html( $event['location'] ); ?>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<?php endif; ?>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="woodoo-meeting-card__actions">
|
|
|
|
|
|
<button class="woodoo-cancel-meeting woodoo-btn woodoo-btn--sm woodoo-btn--outline"
|
|
|
|
|
|
data-event-id="<?php echo esc_attr( $event['id'] ); ?>">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
Cancelar
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<?php endforeach; ?>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<?php endif; ?>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<!-- ── Reservar nueva reunión ─────────────────────────────────────── -->
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<div class="woodoo-section">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<h3>Reservar una nueva reunión</h3>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<p class="woodoo-desc">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
Las reuniones tienen una duración de <?php echo esc_html( $duration_mins ); ?> minutos.
|
|
|
|
|
|
Selecciona una fecha para ver la disponibilidad.
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="woodoo-booking-form">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="woodoo-field">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<label for="woodoo-booking-date">Selecciona una fecha</label>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<input type="date"
|
|
|
|
|
|
id="woodoo-booking-date"
|
|
|
|
|
|
name="booking_date"
|
|
|
|
|
|
min="<?php echo esc_attr( gmdate( 'Y-m-d', strtotime( '+1 day' ) ) ); ?>"
|
|
|
|
|
|
max="<?php echo esc_attr( gmdate( 'Y-m-d', strtotime( '+60 days' ) ) ); ?>">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="woodoo-slots-wrap" style="display:none;">
|
|
|
|
|
|
<div class="woodoo-field">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<label>Horarios disponibles</label>
|
|
|
|
|
|
<div id="woodoo-slots-grid" class="woodoo-slots-grid"></div>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="woodoo-booking-confirm" style="display:none;">
|
|
|
|
|
|
<div class="woodoo-field">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<label for="woodoo-booking-notes">Notas (opcional)</label>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<textarea id="woodoo-booking-notes" name="notes" rows="3"
|
2026-04-01 17:30:10 +02:00
|
|
|
|
placeholder="¿De qué te gustaría hablar?"></textarea>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="woodoo-selected-slot-display">
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<strong>Seleccionado:</strong>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
<span id="woodoo-selected-slot-label"></span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<button id="woodoo-book-btn" class="woodoo-btn woodoo-btn--primary" disabled>
|
2026-04-01 17:30:10 +02:00
|
|
|
|
Confirmar reserva
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div id="woodoo-booking-success" class="woodoo-notice woodoo-success" style="display:none;"></div>
|
2026-04-01 17:30:10 +02:00
|
|
|
|
<div id="woodoo-booking-error" class="woodoo-notice woodoo-error" style="display:none;"></div>
|
2026-04-01 13:58:27 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|