jQuery(document).ready(function ($) { const category = $('#timetics-filter-category'); const staff = $('#timetics-filter-staff'); const url = timetics.site_url + '/wp-json/timetics/v1/appointments/filter'; const meetinContainer = $('.tt-meeting-list-wrapper'); $(category).on('change', function (e) { e.preventDefault(); $.ajax({ url: url, method: 'GET', data: { category: $(this).val() }, success: function (res) { if (Array.isArray(res.data.items)) { const meetings_markup = prepare_items(res.data.items); meetinContainer.html(meetings_markup); } } }); }); $(staff).on('change', function (e) { e.preventDefault(); $.ajax({ url: url, method: 'GET', data: { staff_id: $(this).val() }, success: function (res) { if (Array.isArray(res.data.items)) { const meetings_markup = prepare_items(res.data.items); meetinContainer.html(meetings_markup); } } }); }); /** * Prepare meeting itesm * * @return string */ function prepare_items(items) { if ( items.length < 1 ) { return `
No meetings found
`; } const meetings = items.map(item => { const staffs = preapare_staff(item.staff); return `Meeting description