{"id":5986,"date":"2026-08-18T08:47:04","date_gmt":"2026-08-18T05:47:04","guid":{"rendered":"https:\/\/studiotidhar.com\/?page_id=5986"},"modified":"2026-08-18T15:37:58","modified_gmt":"2026-08-18T12:37:58","slug":"%d7%a1%d7%93%d7%a0%d7%90%d7%95%d7%aa","status":"publish","type":"page","link":"https:\/\/studiotidhar.com\/en\/%d7%a1%d7%93%d7%a0%d7%90%d7%95%d7%aa\/","title":{"rendered":"\u05e1\u05d3\u05e0\u05d0\u05d5\u05ea"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5986\" class=\"elementor elementor-5986\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c09a370 e-flex e-con-boxed e-con e-parent\" data-id=\"c09a370\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-e43cbd2 e-flex e-con-boxed e-con e-child\" data-id=\"e43cbd2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e12a7a7 elementor-widget elementor-widget-heading\" data-id=\"e12a7a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u05d7\u05d5\u05d2\u05d9\u05dd<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f538e67 elementor-widget elementor-widget-html\" data-id=\"f538e67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Rubik:wght@400;500;700&display=swap\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@supabase\/supabase-js@2\/dist\/umd\/supabase.min.js\"><\/script>\n\n<!-- \u05e2\u05d9\u05e6\u05d5\u05d1 (CSS) -->\n<style>\n#studio-app * { box-sizing: border-box; margin: 0; padding: 0; }\n#studio-app { font-family: 'Rubik', Arial, sans-serif; background: #ECECEC; color: #1A1A1A; min-height: 100vh; direction: rtl; text-align: right; }\n\n\/* \u2014 TOAST \u2014 *\/\n#studio-app .toast { position: fixed; top: 16px; left: 50%; transform: translateX(-50%); padding: 11px 20px; border-radius: 10px; font-size: 13px; font-weight: 600; z-index: 999; box-shadow: 0 4px 16px rgba(0,0,0,.12); max-width: 360px; text-align: center; opacity: 0; pointer-events: none; transition: opacity .25s; }\n#studio-app .toast-show { opacity: 1; pointer-events: auto; }\n#studio-app .toast-ok { background: #EDF5ED; color: #3B7A3B; border: 1px solid #A8D5A8; }\n#studio-app .toast-warn { background: #FEF3E2; color: #8B5E00; border: 1px solid #E5C070; }\n#studio-app .toast-err { background: #FDECEC; color: #C0392B; border: 1px solid #E8A8A8; }\n\n\/* \u2014 HEADER \u2014 *\/\n#studio-app .header { background: #1A1A1A; color: #fff; padding: 12px 20px; display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 10; box-shadow: 0 2px 8px rgba(0,0,0,.15); }\n#studio-app .header h1 { font-size: 16px; font-weight: 700; letter-spacing: 0.5px; }\n#studio-app .hdr-right { display: flex; align-items: center; gap: 10px; }\n#studio-app .pill-user { background: rgba(255,255,255,.12); color: #fff; font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 20px; }\n#studio-app .btn-sm-out { background: transparent; border: 1px solid rgba(255,255,255,.3); color: #ccc; font-size: 11px; padding: 3px 9px; border-radius: 6px; cursor: pointer; transition: all .2s; }\n#studio-app .btn-sm-out:hover { background: rgba(255,255,255,.1); color: #fff; }\n\n\/* \u2014 LAYOUT \u2014 *\/\n#studio-app .container { max-width: 600px; margin: 0 auto; padding: 20px 16px; }\n\n\/* \u2014 CARDS & FORMS \u2014 *\/\n#studio-app .card { background: #fff; border-radius: 12px; padding: 20px; margin-bottom: 16px; box-shadow: 0 2px 10px rgba(0,0,0,.04); border: 1px solid #E5E5E5; }\n#studio-app .card-title { font-size: 15px; font-weight: 700; margin-bottom: 14px; color: #1A1A1A; border-bottom: 2px solid #F0F0F0; padding-bottom: 8px; display: flex; justify-content: space-between; align-items: center; }\n\n#studio-app .form-group { margin-bottom: 12px; }\n#studio-app .form-group label { display: block; font-size: 12px; font-weight: 600; color: #555; margin-bottom: 4px; }\n#studio-app .input-txt { width: 100%; padding: 10px 12px; font-size: 14px; border: 1px solid #CCC; border-radius: 8px; outline: none; transition: border .2s; font-family: inherit; }\n#studio-app .input-txt:focus { border-color: #1A1A1A; }\n\n#studio-app .btn-primary { width: 100%; background: #1A1A1A; color: #fff; border: none; padding: 12px; font-size: 14px; font-weight: 700; border-radius: 8px; cursor: pointer; transition: background .2s; font-family: inherit; }\n#studio-app .btn-primary:hover { background: #333; }\n\n\/* \u2014 MY BOOKINGS & ACTIONS \u2014 *\/\n#studio-app .my-bookings-list { margin-bottom: 12px; font-size: 13px; color: #333; }\n#studio-app .my-booking-item { padding: 8px 0; border-bottom: 1px dashed #EEE; font-weight: 500; }\n#studio-app .my-booking-item:last-child { border-bottom: none; }\n#studio-app .action-btns { display: flex; gap: 8px; margin-top: 12px; }\n#studio-app .btn-action { flex: 1; padding: 10px; font-size: 12px; font-weight: 700; border-radius: 8px; border: 1px solid #1A1A1A; background: #fff; color: #1A1A1A; cursor: pointer; transition: all .2s; text-align: center; text-decoration: none; display: flex; align-items: center; justify-content: center; gap: 4px; }\n#studio-app .btn-action:hover { background: #1A1A1A; color: #fff; }\n#studio-app .btn-wa { background: #25D366; color: #fff; border-color: #25D366; }\n#studio-app .btn-wa:hover { background: #1EBE5D; color: #fff; }\n\n\/* \u2014 SESSION ITEMS \u2014 *\/\n#studio-app .session-card { background: #fff; border-radius: 10px; padding: 16px; margin-bottom: 12px; border: 1px solid #E0E0E0; display: flex; justify-content: space-between; align-items: center; }\n#studio-app .session-info .date { font-weight: 700; font-size: 14px; color: #1A1A1A; }\n#studio-app .session-info .time { font-size: 12px; color: #666; margin-top: 2px; }\n#studio-app .session-info .spots { font-size: 11px; color: #27AE60; font-weight: 600; margin-top: 4px; }\n#studio-app .session-info .spots.full { color: #E74C3C; }\n\n#studio-app .btn-book { background: #1A1A1A; color: #fff; border: none; padding: 8px 16px; font-size: 12px; font-weight: 600; border-radius: 6px; cursor: pointer; }\n#studio-app .btn-book:disabled { background: #CCC; cursor: not-allowed; }\n#studio-app .btn-cancel { background: #FFF; color: #C0392B; border: 1px solid #E8A8A8; padding: 8px 16px; font-size: 12px; font-weight: 600; border-radius: 6px; cursor: pointer; }\n#studio-app .btn-locked { background: #F8F9FA; color: #999; border: 1px solid #E0E0E0; padding: 6px 12px; font-size: 11px; border-radius: 6px; text-align: center; }\n\n\/* \u2014 UTILS \u2014 *\/\n#studio-app .hidden { display: none !important; }\n<\/style>\n\n<!-- \u05de\u05d1\u05e0\u05d4 \u05d4\u05e2\u05de\u05d5\u05d3 (HTML) -->\n<div id=\"studio-app\">\n  <div id=\"toast\" class=\"toast\"><\/div>\n\n  <header class=\"header\">\n    <h1>\u05e1\u05d8\u05d5\u05d3\u05d9\u05d5 \u05ea\u05d3\u05d4\u05e8<\/h1>\n    <div class=\"hdr-right\">\n      <span id=\"hdrUserPill\" class=\"pill-user hidden\"><\/span>\n      <button id=\"btnLogout\" class=\"btn-sm-out hidden\" onclick=\"appLogout()\">\u05d9\u05e6\u05d9\u05d0\u05d4<\/button>\n    <\/div>\n  <\/header>\n\n  <!-- \u05de\u05e1\u05da \u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea -->\n  <div id=\"viewLogin\" class=\"container\">\n    <div class=\"card\">\n      <div class=\"card-title\">\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05ea\u05dc\u05de\u05d9\u05d3\u05d4<\/div>\n      <div class=\"form-group\">\n        <label>\u05de\u05e1\u05e4\u05e8 \u05d8\u05dc\u05e4\u05d5\u05df<\/label>\n        <input type=\"text\" id=\"loginId\" class=\"input-txt\" placeholder=\"\u05d4\u05db\u05e0\u05d9\u05e1\u05d9 \u05de\u05e1\u05e4\u05e8 \u05d8\u05dc\u05e4\u05d5\u05df...\">\n      <\/div>\n      <div class=\"form-group\">\n        <label>\u05e9\u05dd \u05de\u05dc\u05d0 (\u05e2\u05d1\u05d5\u05e8 \u05ea\u05dc\u05de\u05d9\u05d3\u05d4 \u05d7\u05d3\u05e9\u05d4)<\/label>\n        <input type=\"text\" id=\"loginName\" class=\"input-txt\" placeholder=\"\u05d4\u05db\u05e0\u05d9\u05e1\u05d9 \u05e9\u05dd \u05de\u05dc\u05d0...\">\n      <\/div>\n      <button class=\"btn-primary\" onclick=\"appLogin()\">\u05db\u05e0\u05d9\u05e1\u05d4<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u05de\u05e1\u05da \u05e8\u05d0\u05e9\u05d9 -->\n  <div id=\"viewMain\" class=\"container hidden\">\n\n    <!-- \u05db\u05e8\u05d8\u05d9\u05e1\u05d9\u05d9\u05d4: \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05dc\u05d9 -->\n    <div id=\"myBookingsCard\" class=\"card\">\n      <div class=\"card-title\">\u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05e0\u05e8\u05e9\u05de\u05ea \u05d0\u05dc\u05d9\u05d4\u05dd \ud83d\udccc<\/div>\n      <div id=\"myBookingsList\" class=\"my-bookings-list\"><\/div>\n      <div id=\"myBookingsActions\" class=\"action-btns hidden\">\n        <button class=\"btn-action\" onclick=\"copyMySchedule()\">\ud83d\udccb \u05d4\u05e2\u05ea\u05e7\u05ea \u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd<\/button>\n        <a id=\"btnWaShare\" class=\"btn-action btn-wa\" target=\"_blank\">\ud83d\udcac \u05e9\u05dc\u05d9\u05d7\u05d4 \u05d1\u05d5\u05d5\u05d0\u05d8\u05e1\u05d0\u05e4<\/a>\n      <\/div>\n    <\/div>\n\n    <!-- \u05db\u05e8\u05d8\u05d9\u05e1\u05d9\u05d9\u05d4: \u05db\u05dc \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd -->\n    <div class=\"card\">\n      <div class=\"card-title\">\u05d4\u05e8\u05e9\u05de\u05d4 \u05dc\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05d4\u05e7\u05e8\u05d5\u05d1\u05d9\u05dd<\/div>\n      <div id=\"sessionsList\">\u05d8\u05d5\u05e2\u05df \u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd...<\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<!-- \u05dc\u05d5\u05d2\u05d9\u05e7\u05d4 \u05d5\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc-Supabase (JS) -->\n<script>\nvar SUPABASE_URL = 'https:\/\/viovaqgsplkaxvmzggtk.supabase.co';\nvar SUPABASE_KEY = 'sb_publishable_f7xnly8Yi9qL655DNzv90Q_Gzab31Az';\n\nvar db = null;\nvar currentStudent = null; \/\/ { phone, name }\nvar myBookedClassesDetails = [];\n\nfunction initSupabase() {\n  if (SUPABASE_URL && typeof supabase !== 'undefined') {\n    db = supabase.createClient(SUPABASE_URL, SUPABASE_KEY);\n  }\n}\n\nif (document.readyState === 'loading') {\n  document.addEventListener('DOMContentLoaded', initSupabase);\n} else {\n  initSupabase();\n}\n\nfunction showToast(msg, type) {\n  var t = document.getElementById('toast');\n  if (!t) return;\n  t.className = 'toast toast-' + (type || 'ok') + ' toast-show';\n  t.innerText = msg;\n  setTimeout(function() { t.className = 'toast'; }, 3000);\n}\n\nasync function appLogin() {\n  var phoneInput = document.getElementById('loginId').value.trim();\n  var nameInput = document.getElementById('loginName').value.trim();\n\n  if (!phoneInput) return showToast('\u05e0\u05d0 \u05dc\u05d4\u05d6\u05d9\u05df \u05de\u05e1\u05e4\u05e8 \u05d8\u05dc\u05e4\u05d5\u05df', 'warn');\n\n  try {\n    var { data: student } = await db.from('students').select('*').eq('phone', phoneInput).single();\n\n    if (!student) {\n      var newName = nameInput || '\u05ea\u05dc\u05de\u05d9\u05d3\u05d4';\n      var { data: created, error: createErr } = await db.from('students')\n        .insert([{ phone: phoneInput, name: newName }])\n        .select().single();\n\n      if (createErr) throw createErr;\n      currentStudent = created;\n    } else {\n      currentStudent = student;\n    }\n\n    document.getElementById('hdrUserPill').innerText = currentStudent.name + ' (' + currentStudent.phone + ')';\n    document.getElementById('hdrUserPill').classList.remove('hidden');\n    document.getElementById('btnLogout').classList.remove('hidden');\n    document.getElementById('viewLogin').classList.add('hidden');\n    document.getElementById('viewMain').classList.remove('hidden');\n\n    showToast('\u05e9\u05dc\u05d5\u05dd ' + currentStudent.name + '!');\n    await loadClasses();\n\n  } catch (err) {\n    console.error(err);\n    showToast('\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea: ' + (err.message || '\u05d5\u05d3\u05d0\u05d9 \u05e9\u05d4\u05e8\u05e6\u05ea \u05d0\u05ea \u05e7\u05d5\u05d3 \u05d4-SQL \u05d1-Supabase'), 'err');\n  }\n}\n\nfunction appLogout() {\n  currentStudent = null;\n  myBookedClassesDetails = [];\n  document.getElementById('hdrUserPill').classList.add('hidden');\n  document.getElementById('btnLogout').classList.add('hidden');\n  document.getElementById('viewMain').classList.add('hidden');\n  document.getElementById('viewLogin').classList.remove('hidden');\n}\n\nasync function loadClasses() {\n  var listEl = document.getElementById('sessionsList');\n  listEl.innerHTML = '\u05d8\u05d5\u05e2\u05df \u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd...';\n  \n  if (!db || !currentStudent) return;\n\n  try {\n    \/\/ \u05e9\u05dc\u05d9\u05e4\u05ea \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd\n    var { data: classes, error: classErr } = await db.from('classes').select('*').order('date_time', { ascending: true });\n    if (classErr) throw classErr;\n\n    \/\/ \u05e9\u05dc\u05d9\u05e4\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d5\u05ea \u05e9\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05ea\n    var { data: myBookings } = await db.from('bookings').select('class_id').eq('phone', currentStudent.phone);\n    var bookedClassIds = (myBookings || []).map(b => b.class_id);\n\n    \/\/ \u05e9\u05dc\u05d9\u05e4\u05ea \u05e1\u05da \u05d4\u05d4\u05e8\u05e9\u05de\u05d5\u05ea \u05dc\u05db\u05dc \u05e9\u05d9\u05e2\u05d5\u05e8\n    var { data: allBookings } = await db.from('bookings').select('class_id');\n\n    \/\/ \u05e9\u05de\u05d9\u05e8\u05ea \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05ea \u05e8\u05e9\u05d5\u05de\u05d4 \u05d0\u05dc\u05d9\u05d4\u05dd\n    myBookedClassesDetails = (classes || []).filter(c => bookedClassIds.includes(c.id));\n    renderMyBookingsCard();\n\n    if (!classes || classes.length === 0) {\n      listEl.innerHTML = '\u05d0\u05d9\u05df \u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e7\u05e8\u05d5\u05d1\u05d9\u05dd \u05db\u05e8\u05d2\u05e2.';\n      return;\n    }\n\n    var now = new Date();\n    var html = '';\n\n    classes.forEach(function(cls) {\n      var count = (allBookings || []).filter(b => b.class_id === cls.id).length;\n      var spotsLeft = cls.max_capacity - count;\n      var isBooked = bookedClassIds.includes(cls.id);\n      \n      var dt = new Date(cls.date_time);\n      var hoursUntilClass = (dt - now) \/ (1000 * 60 * 60);\n\n      var dateStr = dt.toLocaleDateString('he-IL', { weekday: 'long', day: 'numeric', month: 'numeric' });\n      var timeStr = dt.toLocaleTimeString('he-IL', { hour: '2-digit', minute: '2-digit' });\n\n      html += '<div class=\"session-card\">';\n      html += '  <div class=\"session-info\">';\n      html += '    <div class=\"date\">' + cls.title + ' - ' + dateStr + '<\/div>';\n      html += '    <div class=\"time\">\u05e9\u05e2\u05d4: ' + timeStr + '<\/div>';\n      html += '    <div class=\"spots ' + (spotsLeft <= 0 ? 'full' : '') + '\">\u05e0\u05e9\u05d0\u05e8\u05d5 ' + spotsLeft + ' \u05de\u05e7\u05d5\u05de\u05d5\u05ea \u05de\u05ea\u05d5\u05da ' + cls.max_capacity + '<\/div>';\n      html += '  <\/div>';\n      \n      if (isBooked) {\n        if (hoursUntilClass < 24) {\n          html += '  <div class=\"btn-locked\">\u05e0\u05e2\u05d5\u05dc \u05dc\u05d1\u05d9\u05d8\u05d5\u05dc<br>(\u05e4\u05d7\u05d5\u05ea \u05de-24 \u05e9\u05e2\\')<\/div>';\n        } else {\n          html += '  <button class=\"btn-cancel\" onclick=\"cancelBooking(' + cls.id + ')\">\u05d1\u05d9\u05d8\u05d5\u05dc \u05d4\u05e8\u05e9\u05de\u05d4<\/button>';\n        }\n      } else if (spotsLeft <= 0) {\n        html += '  <button class=\"btn-book\" disabled>\u05de\u05dc\u05d0<\/button>';\n      } else {\n        html += '  <button class=\"btn-book\" onclick=\"bookClass(' + cls.id + ')\">\u05d4\u05e8\u05e9\u05de\u05d4<\/button>';\n      }\n      html += '<\/div>';\n    });\n\n    listEl.innerHTML = html;\n  } catch (err) {\n    console.error(err);\n    listEl.innerHTML = '\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d8\u05e2\u05d9\u05e0\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd: ' + (err.message || '\u05d5\u05d3\u05d0\u05d9 \u05e9\u05d4\u05e8\u05e6\u05ea \u05d0\u05ea \u05e7\u05d5\u05d3 \u05d4-SQL \u05d1-Supabase');\n  }\n}\n\nfunction renderMyBookingsCard() {\n  var listEl = document.getElementById('myBookingsList');\n  var actionsEl = document.getElementById('myBookingsActions');\n  var waBtn = document.getElementById('btnWaShare');\n\n  if (myBookedClassesDetails.length === 0) {\n    listEl.innerHTML = '<span style=\"color:#777; font-size:13px;\">\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05e0\u05e8\u05e9\u05de\u05ea \u05dc\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd. \u05d1\u05d7\u05e8\u05d9 \u05e9\u05d9\u05e2\u05d5\u05e8 \u05de\u05d4\u05e8\u05e9\u05d9\u05de\u05d4 \u05dc\u05de\u05d8\u05d4 \u05dc\u05d4\u05e8\u05e9\u05de\u05d4!<\/span>';\n    actionsEl.classList.add('hidden');\n    return;\n  }\n\n  actionsEl.classList.remove('hidden');\n  var html = '';\n  var textSummary = '\u05d4\u05d9\u05d9, \u05d4\u05e0\u05d4 \u05de\u05d5\u05e2\u05d3\u05d9 \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05dc\u05d9 \u05d1\u05e1\u05d8\u05d5\u05d3\u05d9\u05d5 \u05ea\u05d3\u05d4\u05e8:\\n';\n\n  myBookedClassesDetails.forEach(function(cls) {\n    var dt = new Date(cls.date_time);\n    var dateStr = dt.toLocaleDateString('he-IL', { weekday: 'long', day: 'numeric', month: 'numeric' });\n    var timeStr = dt.toLocaleTimeString('he-IL', { hour: '2-digit', minute: '2-digit' });\n\n    var itemText = cls.title + ' | ' + dateStr + ' \u05d1\u05e9\u05e2\u05d4 ' + timeStr;\n    html += '<div class=\"my-booking-item\">\ud83d\uddd3\ufe0f ' + itemText + '<\/div>';\n    textSummary += '\u2022 ' + itemText + '\\n';\n  });\n\n  listEl.innerHTML = html;\n\n  var encodedText = encodeURIComponent(textSummary);\n  waBtn.href = 'https:\/\/api.whatsapp.com\/send?text=' + encodedText;\n}\n\nfunction copyMySchedule() {\n  if (myBookedClassesDetails.length === 0) return;\n\n  var textSummary = '\u05d4\u05d9\u05d9, \u05d4\u05e0\u05d4 \u05de\u05d5\u05e2\u05d3\u05d9 \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05dc\u05d9 \u05d1\u05e1\u05d8\u05d5\u05d3\u05d9\u05d5 \u05ea\u05d3\u05d4\u05e8:\\n';\n  myBookedClassesDetails.forEach(function(cls) {\n    var dt = new Date(cls.date_time);\n    var dateStr = dt.toLocaleDateString('he-IL', { weekday: 'long', day: 'numeric', month: 'numeric' });\n    var timeStr = dt.toLocaleTimeString('he-IL', { hour: '2-digit', minute: '2-digit' });\n    textSummary += '\u2022 ' + cls.title + ' | ' + dateStr + ' \u05d1\u05e9\u05e2\u05d4 ' + timeStr + '\\n';\n  });\n\n  navigator.clipboard.writeText(textSummary).then(function() {\n    showToast('\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05d4\u05d5\u05e2\u05ea\u05e7\u05d4 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4!');\n  }).catch(function() {\n    showToast('\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea', 'warn');\n  });\n}\n\nasync function bookClass(classId) {\n  try {\n    var { error: bookErr } = await db.from('bookings').insert([{ phone: currentStudent.phone, class_id: classId }]);\n    if (bookErr) throw bookErr;\n\n    showToast('\u05e0\u05e8\u05e9\u05de\u05ea \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4!');\n    await loadClasses();\n\n  } catch (err) {\n    showToast('\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05e8\u05e9\u05de\u05d4: ' + err.message, 'err');\n  }\n}\n\nasync function cancelBooking(classId) {\n  try {\n    var { error: delErr } = await db.from('bookings').delete().eq('phone', currentStudent.phone).eq('class_id', classId);\n    if (delErr) throw delErr;\n\n    showToast('\u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4');\n    await loadClasses();\n\n  } catch (err) {\n    showToast('\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d1\u05d9\u05d8\u05d5\u05dc: ' + err.message, 'err');\n  }\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u05d7\u05d5\u05d2\u05d9\u05dd \u05e1\u05d8\u05d5\u05d3\u05d9\u05d5 \u05ea\u05d3\u05d4\u05e8 \u05d9\u05e6\u05d9\u05d0\u05d4 \u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05ea\u05dc\u05de\u05d9\u05d3\u05d4 \u05de\u05e1\u05e4\u05e8 \u05d8\u05dc\u05e4\u05d5\u05df \u05e9\u05dd \u05de\u05dc\u05d0 (\u05e2\u05d1\u05d5\u05e8 \u05ea\u05dc\u05de\u05d9\u05d3\u05d4 \u05d7\u05d3\u05e9\u05d4) \u05db\u05e0\u05d9\u05e1\u05d4 \u05d4\u05e9\u05d9\u05e2\u05d5\u05e8\u05d9\u05dd \u05e9\u05e0\u05e8\u05e9\u05de\u05ea \u05d0\u05dc\u05d9\u05d4\u05dd \ud83d\udccc \ud83d\udccb \u05d4\u05e2\u05ea\u05e7\u05ea [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5986","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/pages\/5986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/comments?post=5986"}],"version-history":[{"count":40,"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/pages\/5986\/revisions"}],"predecessor-version":[{"id":6037,"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/pages\/5986\/revisions\/6037"}],"wp:attachment":[{"href":"https:\/\/studiotidhar.com\/en\/wp-json\/wp\/v2\/media?parent=5986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}