jQuery(document).ready(function($) { // تابع برای دریافت و نمایش روزهای آزاد function loadAvailableDays() { var nice_id = $('#nice_id').val(); var office_id = $('#office_id').val(); $.ajax({ url: ajax_object.ajax_url, type: 'POST', data: { action: 'get_available_days', nice_id: nice_id, office_id: office_id, nonce: ajax_object.nonce }, success: function(response) { if (response.success) { var daysHtml = ''; if (response.data.length > 0) { response.data.forEach(function(day) { if (day.has_remaining) { daysHtml += ''; } }); $('#available-days').html(daysHtml); } else { $('#available-days').html('

متاسفانه در حال حاضر نوبت خالی وجود ندارد.

'); } } else { $('#available-days').html('

' + response.data + '

'); } }, error: function() { $('#available-days').html('

خطا در بارگذاری روزهای آزاد.

'); } }); } // تابع برای دریافت و نمایش ساعت‌های آزاد function loadAvailableTimes(dayKey, dayInfo) { var nice_id = $('#nice_id').val(); var office_id = $('#office_id').val(); $('#selected_day_info').val(dayInfo); $('#available-times-container').show(); $('#available-times').html('

در حال بارگذاری ساعت‌های آزاد...

'); $.ajax({ url: ajax_object.ajax_url, type: 'POST', data: { action: 'get_available_times', nice_id: nice_id, office_id: office_id, day_key: dayKey, nonce: ajax_object.nonce }, success: function(response) { if (response.success) { var timesHtml = ''; if (response.data.times.length > 0) { response.data.times[0].time.forEach(function(time) { if (time.active) { timesHtml += ''; } }); $('#available-times').html(timesHtml); } else { $('#available-times').html('

برای این روز ساعت خالی وجود ندارد.

'); } } else { $('#available-times').html('

' + response.data + '

'); } }, error: function() { $('#available-times').html('

خطا در بارگذاری ساعت‌های آزاد.

'); } }); } // اجرای تابع دریافت روزهای آزاد هنگام بارگذاری صفحه loadAvailableDays(); // مدیریت کلیک روی دکمه‌های روز $('#available-days').on('click', '.day-button', function() { var dayKey = $(this).data('day-key'); var dayInfo = $(this).data('day-info'); $('.day-button').removeClass('selected'); $(this).addClass('selected'); loadAvailableTimes(dayKey, dayInfo); }); // مدیریت کلیک روی دکمه‌های ساعت $('#available-times').on('click', '.time-button', function() { var time = $(this).data('time'); $('.time-button').removeClass('selected'); $(this).addClass('selected'); $('#selected_time').val(time); $('#submit-button').show(); }); // مدیریت ارسال فرم $('#custom-appointment-form').on('submit', function(e) { e.preventDefault(); // اعتبارسنجی اولیه if (!$('#selected_day_info').val() || !$('#selected_time').val()) { alert('لطفا روز و ساعت مورد نظر خود را انتخاب کنید.'); return; } $('#submit-button').hide(); $('#loading').show(); var formData = $(this).serialize() + '&action=submit_final_appointment&nonce=' + ajax_object.nonce; $.ajax({ url: ajax_object.ajax_url, type: 'POST', data: formData, success: function(response) { $('#loading').hide(); if (response.success) { $('#appointment-container').html(response.data); } else { $('#appointment-response').html('

' + response.data + '

'); $('#submit-button').show(); } }, error: function() { $('#loading').hide(); $('#appointment-response').html('

خطا در ثبت نوبت.

'); $('#submit-button').show(); } }); }); });