{"id":3649,"date":"2024-08-23T13:14:07","date_gmt":"2024-08-23T11:14:07","guid":{"rendered":"https:\/\/www.bensariworkshop.com\/czopy-i-gniazda\/"},"modified":"2026-02-28T18:07:16","modified_gmt":"2026-02-28T17:07:16","slug":"tenons-and-mortises","status":"publish","type":"page","link":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/","title":{"rendered":"Mortise and tenon"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3649\" class=\"elementor elementor-3649 elementor-441\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2f930032 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"2f930032\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-272a6c94\" data-id=\"272a6c94\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-13e3fce8 elementor-widget elementor-widget-heading\" data-id=\"13e3fce8\" 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<h1 class=\"elementor-heading-title elementor-size-default\">Woodworking Joint Courses<br \/> Tenon and Mortise Techniques<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c571142 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c571142\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ea50c24\" data-id=\"ea50c24\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d5ae75f elementor-widget elementor-widget-heading\" data-id=\"d5ae75f\" 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\"><p data-start=\"0\" data-end=\"35\"><strong data-start=\"0\" data-end=\"33\">Course | Woodworking WorkshoP<\/strong><\/p><\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6ba551 elementor-widget elementor-widget-heading\" data-id=\"b6ba551\" 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\">Mortise and tenon<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e46c2b elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"3e46c2b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"\" data-start=\"64\" data-end=\"202\">The two-day woodworking course on tenon and mortise joints is the most demanding and knowledge-packed course we offer in our workshop.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3dd2e3a5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3dd2e3a5\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-5550ece8\" data-id=\"5550ece8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0627749 elementor-widget__width-initial elementor-widget elementor-widget-video\" data-id=\"0627749\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/OiXCoBQy8no?si=QkcaLtZAJ6VJkzWx&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-3a99be7\" data-id=\"3a99be7\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c56dcf8 elementor-widget elementor-widget-heading\" data-id=\"c56dcf8\" 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\">Mortise and tenon | Program<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46e0b34 elementor-widget elementor-widget-heading\" data-id=\"46e0b34\" 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\">Program<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37b66a9 elementor-widget elementor-widget-text-editor\" data-id=\"37b66a9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">The two-day carpentry course lasts 16 hours (2 days x 8 hours), and the training program is carried out through the hands-on creation of a cutting board.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d046bd elementor-widget elementor-widget-text-editor\" data-id=\"9d046bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">The first day of the course requires a high level of physical activity. During the sessions, you will prepare all the elements of the cutting board, create tenons, mortises, and grooves.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5dc463 elementor-widget elementor-widget-text-editor\" data-id=\"b5dc463\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The second day will be more relaxed, focusing on precise craftsmanship: you&#8217;ll align tenons and mortises, fit the board&#8217;s ends, make your own drawbore pins, install them in the board, and shape it to its final form.<\/p><p>The carpentry course lasts 16 hours (2 days x 8 hours), plus lunch breaks \u2013 we provide a hot meal.<\/p><p><strong>Weekend courses start at 9:00 AM.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-acbced5 elementor-widget elementor-widget-shortcode\" data-id=\"acbced5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">Course name: <span id=\"courseName\">Mortise and tenon<\/span><br \/>Next date: <span id=\"nearestDate\">06.06.2026<\/span><br \/>Price: <span id=\"coursePrice\">1550<\/span> z\u0142<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-290fc00 e-flex e-con-boxed e-con e-parent\" data-id=\"290fc00\" 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-bc9acc4 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"bc9acc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#zapisz-sie-section\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Enroll now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08be8b3 elementor-widget elementor-widget-button\" data-id=\"08be8b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#zapisz-sie-section\" id=\"buyAsGiftBtn\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Buy as a gift<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-36f6cbf e-con-full e-flex e-con e-parent\" data-id=\"36f6cbf\" data-element_type=\"container\" data-e-type=\"container\" id=\"zapisz-sie-section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b7f419 elementor-widget elementor-widget-heading\" data-id=\"1b7f419\" 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\">Mortise and tenon | Reservation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3e62c1 elementor-widget elementor-widget-heading\" data-id=\"d3e62c1\" 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\">Sign Up for the Course<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-36c0022 elementor-widget elementor-widget-shortcode\" data-id=\"36c0022\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"nextSlotsContainer\" style=\"display: none;\" data-post-id=\"441\">[{\"date\":\"2026-08-22\",\"slots\":0},{\"date\":\"2026-07-18\",\"slots\":2},{\"date\":\"2026-06-06\",\"slots\":2}]<\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-97b8a4b elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"97b8a4b\" 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<script>\n  window.addEventListener(\"DOMContentLoaded\", (event) => {\n    const cenaKursu = Number(document.getElementById(\"coursePrice\").innerText);\n    const nazwaKursu = document.getElementById(\"courseName\").innerText;\n\n    const buyAsGiftBtn = document.getElementById(\"buyAsGiftBtn\");\n    const P24form = document.getElementById(\"P24form\");\n    let z24_nazwa = document.getElementById(\"z24_nazwa\");\n    let k24_nazwa = document.getElementById(\"k24_nazwa\");\n    let z24_kwota = document.getElementById(\"z24_kwota\");\n    let z24_opis = document.getElementById(\"z24_opis\");\n    const name = document.getElementById(\"name\");\n    const lastName = document.getElementById(\"lastName\");\n    const k24_email = document.getElementById(\"k24_email\");\n    const tel = document.getElementById(\"tel\");\n    const peopleAmount = document.getElementById(\"peopleAmount\");\n    const giftCard = document.getElementById(\"giftCard\");\n    const osobaPodarowana = document.getElementById(\"osobaPodarowana\");\n    const osobaPodarowanaContainer = document.getElementById(\n      \"osobaPodarowanaContainer\"\n    );\n    const nextAvailableDatesSelect =\n      document.getElementById(\"nextAvailableDates\");\n    const nextSlotsContainer = document.getElementById(\"nextSlotsContainer\");\n    const errorMessage = document.createElement(\"p\");\n    const buyNowBtn = document.getElementById(\"buyNowBtn\");\n    const payByTransferBtn = document.getElementById(\"buyNowBtnPrzelew\");\n    errorMessage.style.color = \"red\";\n    errorMessage.style.display = \"none\";\n    peopleAmount.parentNode.appendChild(errorMessage);\n\n    let nameValue = name ? name.value : \"\";\n    let lastNameValue = lastName ? lastName.value : \"\";\n    let selectedDate = \"\";\n    let slotsData = [];\n\n    if (nextSlotsContainer) {\n      try {\n        \/\/ Extract and parse the JSON string from the container\n        const rawJSON = nextSlotsContainer.innerText.trim();\n\n        \/\/ Parse the JSON directly\n        const slotsArray = JSON.parse(rawJSON);\n\n        \/\/ Filter valid dates and populate the dropdown\n        if (Array.isArray(slotsArray)) {\n          slotsArray.forEach((slot) => {\n            if (slot.date) {\n              const dateObj = new Date(slot.date);\n              if (!isNaN(dateObj.getTime())) {\n                const option = document.createElement(\"option\");\n                option.value = slot.date;\n                option.textContent = `${dateObj.toLocaleDateString(\n                  \"pl-PL\"\n                )} - Free slots: ${slot.slots}`;\n                option.dataset.slots = slot.slots; \/\/ Store available slots as a data attribute\n                nextAvailableDatesSelect.appendChild(option);\n              }\n            }\n          });\n        } else {\n          console.error(\"Slots data is not an array.\");\n        }\n      } catch (error) {\n        console.error(\"Error parsing next-slots JSON:\", error.message);\n      }\n    } else {\n      console.error(\"No next slots container found.\");\n    }\n\n    nextAvailableDatesSelect.addEventListener(\"change\", (e) => {\n      selectedDate = e.target.value; \/\/ Update selectedDate with the selected value\n      validateTicketAmount();\n    });\n\n    peopleAmount.addEventListener(\"input\", () => {\n      validateTicketAmount();\n    });\n\n    function validateTicketAmount() {\n      const selectedOption =\n        nextAvailableDatesSelect.options[\n          nextAvailableDatesSelect.selectedIndex\n        ];\n      const availableSlots = selectedOption\n        ? parseInt(selectedOption.dataset.slots)\n        : 0;\n      const ticketsRequested = parseInt(peopleAmount.value, 10) || 1;\n\n      if (ticketsRequested > availableSlots) {\n        errorMessage.textContent = `Nie mo\u017cna kupi\u0107 wi\u0119cej ni\u017c ${availableSlots} bilet\u00f3w.`;\n        errorMessage.style.display = \"block\";\n        buyNowBtn.disabled = true;\n        payByTransferBtn.disabled = true;\n      } else {\n        errorMessage.style.display = \"none\";\n        buyNowBtn.disabled = false;\n        payByTransferBtn.disabled = false;\n      }\n    }\n\n    validateTicketAmount();\n\n    const urlContainsGift = () => {\n      \/\/ Check if the URL contains #zapisz-sie-section and ?gift\n      if (window.location.hash.includes(\"#zapisz-sie-section\")) {\n        \/\/ Extract the fragment and query-like parameter after #\n        const fragment = window.location.hash.split(\"?\")[0]; \/\/ '#zapisz-sie-section'\n        const query = window.location.hash.split(\"?\")[1]; \/\/ 'gift' (if exists)\n\n        \/\/ Scroll to the section if the fragment exists\n        scrollToSection(fragment.replace(\"#\", \"\"));\n\n        \/\/ Check if the 'gift' part exists in the query\n        if (query === \"gift\") {\n          giftCard.checked = true;\n          triggerGiftCardChange(); \/\/ Trigger the change event manually\n        }\n      }\n    };\n\n    window.addEventListener(\"pageshow\", (event) => {\n      const form = document.getElementById(\"P24form\");\n      if (form) {\n        form.reset();\n        urlContainsGift();\n      }\n    });\n\n    \/\/ Function to update the button text\n    function updateButtonPrice() {\n      const numberOfPeople = peopleAmount.value || 1; \/\/ Default to 1 if no value is provided\n      const totalPrice = cenaKursu * numberOfPeople;\n      buyNowBtn.value = `PROCEED TO PURCHASE WITH PRZELEWY24 (${totalPrice} z\u0142)`;\n    }\n\n    \/\/ Checkbox checked when \"kupuj\u0119 na prezent\" is clicked\n    buyAsGiftBtn.addEventListener(\"click\", () => {\n      giftCard.checked = true;\n      triggerGiftCardChange();\n    });\n\n    \/\/ Function to manually trigger the 'change' event on the giftCard checkbox\n    function triggerGiftCardChange() {\n      const event = new Event(\"change\");\n      giftCard.dispatchEvent(event);\n    }\n\n    \/\/ Initially set the correct price\n    updateButtonPrice();\n\n    \/\/ Add event listener to update the price whenever the number of people changes\n    peopleAmount.addEventListener(\"input\", updateButtonPrice);\n\n    \/\/ Toggle visibility and requirement of \"osobaPodarowana\" field based on \"giftCard\" checkbox\n    giftCard.addEventListener(\"change\", () => {\n      if (giftCard.checked) {\n        nextAvailableDatesSelect.removeAttribute(\"required\");\n        osobaPodarowanaContainer.style.display = \"block\";\n        osobaPodarowana.required = true;\n        nextAvailableDatesContainer.style.display = \"none\";\n      } else {\n        nextAvailableDatesSelect.setAttribute(\"required\", \"true\");\n        osobaPodarowanaContainer.style.display = \"none\";\n        osobaPodarowana.required = false;\n        nextAvailableDatesContainer.style.display = \"block\";\n      }\n    });\n\n    \/\/ Initially hide the \"osobaPodarowana\" field\n    osobaPodarowanaContainer.style.display = \"none\";\n    osobaPodarowana.required = false;\n\n    P24form.addEventListener(\"change\", (e) => {\n      if (e.target.id === \"name\") {\n        nameValue = e.target.value;\n      } else if (e.target.id === \"lastName\") {\n        lastNameValue = e.target.value;\n      }\n\n      const isGiftCard = giftCard.checked;\n      const telValue = tel.value;\n      const osobaPodarowanaValue = osobaPodarowana.value;\n      const mailValue = k24_email.value;\n\n      \/\/ Calculate the total price based on the number of people\n      const numberOfPeople = peopleAmount.value || 1;\n      const totalPrice = cenaKursu * numberOfPeople;\n\n      \/\/ Set z24_nazwa\n      if (isGiftCard) {\n        z24_nazwa.value = `Zam\u00f3wienie Gift Card. Klient: ${nameValue} ${lastNameValue}.`;\n      } else {\n        z24_nazwa.value = `Zam\u00f3wienie ${nazwaKursu}. Klient: ${nameValue} ${lastNameValue}.`;\n      }\n\n      \/\/ Set z24_opis\n      if (isGiftCard) {\n        z24_opis.value = `Zam\u00f3wiony Gift Card na: ${nazwaKursu}. Zamawia: ${nameValue} ${lastNameValue}. Numer telefonu: ${telValue}. Email: ${mailValue}. Osoba obdarowana: ${osobaPodarowanaValue}.  Ilo\u015b\u0107 bilet\u00f3w: ${numberOfPeople}`;\n      } else {\n        z24_opis.value = `Zam\u00f3wiony kurs: ${nazwaKursu}. Wybrany termin: ${selectedDate}. Zamawia: ${nameValue} ${lastNameValue}. Numer telefonu: ${telValue}. Email: ${mailValue}. Ilo\u015b\u0107 bilet\u00f3w: ${numberOfPeople}`;\n      }\n\n      z24_kwota.value = totalPrice * 100; \/\/ Use the updated totalPrice here\n      k24_nazwa.value = `${nameValue} ${lastNameValue}`;\n      k24_email.value = mailValue;\n    });\n\n    P24form.addEventListener(\"submit\", async (e) => {\n      e.preventDefault();\n\n      const isGiftCard = giftCard.checked;\n      const formData = new FormData(P24form);\n      const params = new URLSearchParams();\n\n      formData.forEach((value, key) => {\n        params.append(key, removeDiacritics(value));\n      });\n\n      if (!isGiftCard) {\n        const selectedDate = nextAvailableDatesSelect.value;\n        const peopleAmount =\n          parseInt(document.getElementById(\"peopleAmount\").value, 10) || 1;\n        const postId =\n          document.getElementById(\"nextSlotsContainer\").dataset.postId;\n\n        \/\/ Validate fields\n        if (!selectedDate) {\n          alert(\"Prosz\u0119 wybra\u0107 dat\u0119\");\n          return;\n        }\n\n        if (!postId) {\n          console.error(\"Post ID is missing.\");\n          return;\n        }\n\n        \/\/ Prepare data object\n        const data = {\n          action: \"update_course_slots\",\n          post_id: postId,\n          date: selectedDate,\n          peopleAmount: peopleAmount,\n        };\n\n        \/\/ Make the AJAX request\n        try {\n          const response = await fetch(ajaxurl, {\n            method: \"POST\",\n            headers: {\n              \"Content-Type\": \"application\/x-www-form-urlencoded\",\n            },\n            body: new URLSearchParams(data),\n          });\n\n          const result = await response.json();\n          \/\/ if (result.success) {\n          \/\/     alert(\"Booking successful! Slots updated.\");\n          \/\/     window.location.reload();\n          \/\/ } else {\n          \/\/     alert(result.data.message || \"An error occurred.\");\n          \/\/ }\n        } catch (error) {\n          console.error(\"\u274c Error updating course slots:\", error);\n        }\n      }\n\n      \/\/ **Send Email using a Separate FormData**\n      const emailFormData = new FormData();\n      emailFormData.append(\"action\", \"send_form_email\");\n\n      \/\/ Copy values from the original formData\n      formData.forEach((value, key) => {\n        emailFormData.append(key, value);\n      });\n      emailFormData.append(\"name\", name.value || \"\");\n      emailFormData.append(\"lastName\", lastName.value || \"\");\n      emailFormData.append(\"tel\", tel.value || \"\");\n\n      try {\n        const emailResponse = await fetch(ajaxurl, {\n          method: \"POST\",\n          body: emailFormData,\n        });\n\n        const emailResult = await emailResponse.json();\n      } catch (error) {\n        console.error(\"\u274c AJAX error while sending email:\", error);\n      }\n\n      \/\/ Log the GET parameters before form submission\n      const urlWithParams = `${P24form.action}?${params.toString()}`;\n\n      P24form.submit(); \/\/ Uncomment to submit the form\n    });\n\n    buyNowBtnPrzelew.addEventListener(\"click\", async (e) => {\n      const isGiftCard = giftCard.checked;\n      const formData = new FormData(P24form);\n      const emailFormData = new FormData();\n\n      emailFormData.append(\"action\", \"send_form_email\");\n\n      formData.forEach((value, key) => {\n        emailFormData.append(key, value);\n      });\n\n      emailFormData.append(\"name\", name.value || \"\");\n      emailFormData.append(\"lastName\", lastName.value || \"\");\n      emailFormData.append(\"tel\", tel.value || \"\");\n      emailFormData.append(\"buttonClicked\", \"Przelew\");\n\n      \/\/ \u2705 Decrease slots \u2014 same logic as in P24 form\n      if (!isGiftCard) {\n        const selectedDate = nextAvailableDatesSelect.value;\n        const peopleAmount =\n          parseInt(document.getElementById(\"peopleAmount\").value, 10) || 1;\n        const postId =\n          document.getElementById(\"nextSlotsContainer\").dataset.postId;\n\n        if (selectedDate && postId) {\n          const data = {\n            action: \"update_course_slots\",\n            post_id: postId,\n            date: selectedDate,\n            peopleAmount: peopleAmount,\n          };\n\n          try {\n            await fetch(ajaxurl, {\n              method: \"POST\",\n              headers: { \"Content-Type\": \"application\/x-www-form-urlencoded\" },\n              body: new URLSearchParams(data),\n            });\n          } catch (error) {\n            console.error(\n              \"\u274c Error updating slots for traditional transfer:\",\n              error\n            );\n          }\n        }\n      }\n\n      \/\/ \u2705 Send email\n      try {\n        const emailResponse = await fetch(ajaxurl, {\n          method: \"POST\",\n\n          body: emailFormData,\n        });\n\n        const emailResult = await emailResponse.json();\n      } catch (error) {\n        console.error(\"\u274c AJAX error while sending email:\", error);\n      }\n\n      \/\/ Przekierowanie do strony przelewu\n      window.open(\n        \"https:\/\/www.bensariworkshop.com\/en\/pay-by-bank-transfer\/\",\n        \"_blank\"\n      );\n    });\n\n    function removeDiacritics(input) {\n      var output = \"\";\n      var normalized = input.normalize(\"NFD\");\n      var i = 0;\n      var j = 0;\n\n      while (i < input.length) {\n        output += normalized[j];\n        j += input[i] == normalized[j] ? 1 : 2;\n        i++;\n      }\n\n      return output.replace(\/[\\u0300-\\u036f]\/g, \"\");\n    }\n\n    \/\/ Function to scroll to the section by ID\n    function scrollToSection(id) {\n      const section = document.getElementById(id);\n      if (section) {\n        section.scrollIntoView({ behavior: \"smooth\" });\n      }\n    }\n    \/\/ Check if the URL contains #zapisz-sie-section and ?gift\n    urlContainsGift();\n  });\n<\/script>\n\n<div class=\"form-container\">\n  <form\n    id=\"P24form\"\n    method=\"get\"\n    action=\"https:\/\/sklep.przelewy24.pl\/zakup.php\"\n    accept-charset=\"ISO-8859-2\"\n  >\n    <input type=\"hidden\" name=\"z24_id_sprzedawcy\" value=\"214325\" \/>\n    <input type=\"hidden\" name=\"z24_crc\" value=\"22181420b38c1c1e\" \/>\n    <input\n      type=\"hidden\"\n      name=\"z24_return_url\"\n      value=\"http:\/\/www.bensariworkshop.com\/\"\n    \/>\n    <input type=\"hidden\" name=\"z24_language\" value=\"pl\" \/>\n    <input type=\"hidden\" name=\"z24_nazwa\" id=\"z24_nazwa\" value=\"pl\" \/>\n    <input type=\"hidden\" name=\"k24_nazwa\" id=\"k24_nazwa\" value=\"pl\" \/>\n    <input type=\"hidden\" name=\"z24_kwota\" id=\"z24_kwota\" \/>\n    <input type=\"hidden\" name=\"z24_opis\" id=\"z24_opis\" maxlength=\"500\" \/>\n\n    <div class=\"form-group\">\n      <div class=\"checkbox-container\">\n        <label\n          ><input type=\"checkbox\" name=\"giftCard\" id=\"giftCard\" \/>Check if you\n          are ordering a Gift Card as a present.<\/label\n        >\n      <\/div>\n\n      <div style=\"display: flex; gap: 6px\">\n        <div style=\"width: 100%\">\n          <label for=\"name\">Name:<sup title=\"required field\">*<\/sup><\/label>\n          <input type=\"text\" id=\"name\" required=\"\" placeholder=\"Your Name\" \/>\n        <\/div>\n        <div style=\"width: 100%\">\n          <label for=\"lastName\"\n            >Surname:<sup title=\"required field\">*<\/sup><\/label\n          >\n          <input\n            type=\"text\"\n            id=\"lastName\"\n            required=\"\"\n            placeholder=\"Your Surname\"\n          \/>\n        <\/div>\n      <\/div>\n\n      <label for=\"k24_email\">Email:<sup title=\"required field\">*<\/sup><\/label>\n      <input\n        type=\"email\"\n        id=\"k24_email\"\n        name=\"k24_email\"\n        required=\"\"\n        placeholder=\"Your email\"\n      \/>\n\n      <div id=\"nextAvailableDatesContainer\">\n        <label for=\"nextAvailableDates\"\n          >Select the nearest date:<sup title=\"required field\">*<\/sup><\/label\n        >\n        <select id=\"nextAvailableDates\" name=\"nextAvailableDate\" required>\n          <option value=\"\" disabled selected>Choose a slot<\/option>\n        <\/select>\n      <\/div>\n\n      <div id=\"osobaPodarowanaContainer\">\n        <label for=\"osobaPodarowana\"\n          >Name and surname of the recipient:<sup title=\"required field\"\n            >*<\/sup\n          ><\/label\n        >\n        <input\n          type=\"text\"\n          id=\"osobaPodarowana\"\n          placeholder=\"Name and surname of the recipient\"\n        \/>\n      <\/div>\n\n      <label for=\"tel\">Phone Number:<sup title=\"required field\">*<\/sup><\/label>\n      <input\n        type=\"tel\"\n        id=\"tel\"\n        pattern=\"^\\+?[0-9]{9,15}$\"\n        required\n        placeholder=\"Your Phone Number\"\n      \/>\n    <\/div>\n    <div class=\"form-group\">\n      <label for=\"peopleAmount\"\n        >How many tickets are you buying?<sup title=\"required field\"\n          >*<\/sup\n        ><\/label\n      >\n      <input\n        type=\"number\"\n        name=\"peopleAmount\"\n        id=\"peopleAmount\"\n        placeholder=\"For how many people are you buying the course?\"\n        value=\"1\"\n        required=\"required\"\n        aria-required=\"true\"\n        min=\"1\"\n        max=\"50\"\n      \/>\n    <\/div>\n\n    <div class=\"checkbox-container\">\n      <label\n        ><input\n          type=\"checkbox\"\n          name=\"agreement\"\n          id=\"zgoda_regulamin\"\n          required=\"\"\n        \/><sup style=\"color: red\">*&nbsp;<\/sup> I have read and agree to the\n        <a\n          href=\"https:\/\/www.bensariworkshop.com\/en\/s-projects-basic-1\/\"\n          rel=\"nofollow\"\n          >terms and conditions<\/a\n        >.<\/label\n      >\n      <label\n        ><input\n          type=\"checkbox\"\n          name=\"agreement\"\n          id=\"zgoda_klauzula_pierwsza\"\n          required=\"\"\n        \/><sup style=\"color: red\">*&nbsp;<\/sup> I consent to the processing of\n        <a\n          href=\"https:\/\/www.bensariworkshop.com\/en\/s-projects-basic-2\/\"\n          rel=\"nofollow\"\n          >my personal data.<\/a\n        ><\/label\n      >\n      <label\n        ><input\n          type=\"checkbox\"\n          name=\"agreement\"\n          id=\"zgoda_klauzula_trzecia\"\n          required=\"\"\n        \/><sup style=\"color: red\">*&nbsp;<\/sup> I accept the waiver of the right\n        to withdraw if the course starts within 14 days from the date of\n        payment.<\/label\n      >\n    <\/div>\n\n    <input\n      type=\"submit\"\n      id=\"buyNowBtn\"\n      value=\"Proceed to purchase with Przelewy24\"\n    \/>\n    <a><input\n        type=\"button\"\n        id=\"buyNowBtnPrzelew\"\n        value=\"Pay by traditional bank transfer\"\n    \/><\/a>\n  <\/form>\n<\/div>\n\n<style>\n  #buyNowBtn:disabled,\n  #buyNowBtnPrzelew[disabled],\n  a[href*=\"zaplac-przelewem\"] input:disabled,\n  a[href*=\"zaplac-przelewem\"] input[disabled] {\n    background-color: #ccc !important; \/* Grey out the button *\/\n    color: #666 !important; \/* Dim the text *\/\n    cursor: not-allowed !important; \/* Change cursor to indicate it's disabled *\/\n    border: 1px solid #aaa !important; \/* Adjust border color *\/\n    opacity: 0.6; \/* Reduce opacity *\/\n  }\n  .form-container {\n    padding: 20px;\n    max-width: 100%;\n  }\n  .form-group {\n    margin-bottom: 15px;\n  }\n  .form-group label {\n    display: flow;\n    margin-bottom: 10px;\n    color: #000;\n  }\n  .form-group label:not(:first-child),\n  #osobaPodarowanaContainer,\n  #nextAvailableDatesContainer {\n    margin-top: 10px;\n  }\n  .form-group input[type=\"text\"],\n  .form-group input[type=\"tel\"],\n  .form-group input[type=\"email\"],\n  .form-group input[type=\"number\"],\n  .form-group textarea,\n  .form-group select {\n    width: 100%;\n    padding: 10px;\n    border: 1px solid #cccccc;\n    box-sizing: border-box;\n    font-size: 14px;\n    background-color: #fff;\n    color: #333333;\n  }\n  .form-group textarea {\n    resize: vertical;\n  }\n  .form-container input[type=\"submit\"] {\n    background-color: var(--e-global-color-accent);\n    color: var(--e-global-color-secondary);\n    font-weight: var(--e-global-typography-accent-font-weight);\n    padding: 15px;\n    border: 1px solid #333;\n    font-size: 16px;\n    cursor: pointer;\n    width: 100%;\n    box-sizing: border-box;\n    text-transform: uppercase;\n    margin-top: 10px;\n  }\n  .form-container input[type=\"submit\"]:hover {\n    background-color: #fff;\n    color: #333;\n  }\n  .form-container input[type=\"button\"] {\n    color: var(--e-global-color-secondary);\n    font-weight: var(--e-global-typography-accent-font-weight);\n    padding: 15px;\n    border: 1px solid #333;\n    font-size: 16px;\n    cursor: pointer;\n    width: 100%;\n    box-sizing: border-box;\n    text-transform: uppercase;\n    margin-top: 10px;\n  }\n  @media only screen and (max-width: 500px) {\n    .form-container input[type=\"submit\"],\n    .form-container input[type=\"button\"] {\n      font-size: 13px;\n    }\n  }\n  @media only screen and (max-width: 370px) {\n    .form-container input[type=\"submit\"],\n    .form-container input[type=\"button\"] {\n      font-size: 12px;\n    }\n  }\n  .checkbox-container {\n    display: flex;\n    flex-direction: column;\n    row-gap: 10px;\n    padding: 10px 0;\n  }\n  .checkbox-container p {\n    font-size: 18px;\n    margin-bottom: 5px;\n    font-weight: bold;\n    color: #000;\n    line-height: normal;\n  }\n  .checkbox-container label {\n    display: flow;\n    align-items: center;\n    margin-bottom: 4px;\n    font-weight: normal;\n    color: #000;\n    line-height: 25px;\n  }\n  .checkbox-container label a {\n    text-decoration: underline;\n    color: #000;\n  }\n  .checkbox-container input[type=\"checkbox\"] {\n    margin-right: 10px;\n    transform: scale(1.5);\n  }\n  .checkbox-container input[type=\"checkbox\"]:before {\n    color: #8b448b;\n  }\n  .form-container sup {\n    color: red;\n    margin-left: 3px;\n    cursor: help;\n  }\n  .kwota {\n    font-size: 23px;\n    color: #000;\n  }\n  .toggle-text {\n    color: red;\n    cursor: pointer;\n    margin-left: 5px;\n  }\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-484bb683 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"484bb683\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-556edac5\" data-id=\"556edac5\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-35f1d906 elementor-testimonial--skin-default elementor-testimonial--layout-image_inline elementor-testimonial--align-center elementor-arrows-yes elementor-pagination-type-bullets elementor-widget elementor-widget-testimonial-carousel\" data-id=\"35f1d906\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;show_arrows&quot;:&quot;yes&quot;,&quot;pagination&quot;:&quot;bullets&quot;,&quot;speed&quot;:500,&quot;autoplay&quot;:&quot;yes&quot;,&quot;autoplay_speed&quot;:5000,&quot;loop&quot;:&quot;yes&quot;,&quot;pause_on_hover&quot;:&quot;yes&quot;,&quot;pause_on_interaction&quot;:&quot;yes&quot;,&quot;space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]}}\" data-widget_type=\"testimonial-carousel.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper\">\n\t\t\t\t\t<div class=\"elementor-main-swiper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Slides\">\n\t\t\t\t<div class=\"swiper-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t\"Vast knowledge of tools and materials. Tom\u2019s furniture speaks for itself.\"\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\">Adam<\/span><span class=\"elementor-testimonial__title\">Wroc\u0142aw<\/span><\/cite>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t\"Great workshop, great instructor, and a result that exceeded all expectations. A wonderful experience.\"\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\">Micha\u0142<\/span><span class=\"elementor-testimonial__title\">Wroc\u0142aw<\/span><\/cite>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-testimonial\">\n\t\t\t\t\t\t\t<div class=\"elementor-testimonial__content\">\n\t\t\t\t\t<div class=\"elementor-testimonial__text\">\n\t\t\t\t\t\t\"An incredible learning experience from the workshop. Tom isn\u2019t just any carpenter \u2013 he\u2019s a world-class master.\"\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-testimonial__footer\">\n\t\t\t\t\t\t\t\t<cite class=\"elementor-testimonial__cite\"><span class=\"elementor-testimonial__name\">Wojtek<\/span><span class=\"elementor-testimonial__title\">Wroc\u0142aw<\/span><\/cite>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-prev\" role=\"button\" tabindex=\"0\" aria-label=\"Previous\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-left\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"elementor-swiper-button elementor-swiper-button-next\" role=\"button\" tabindex=\"0\" aria-label=\"Next\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-eicon-chevron-right\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-pagination\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-12fadd8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"12fadd8\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0eb93ad\" data-id=\"0eb93ad\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-50920a9 elementor-widget elementor-widget-heading\" data-id=\"50920a9\" 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\">Give someone a unique gift<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4beda02 elementor-widget elementor-widget-heading\" data-id=\"4beda02\" 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\">Give a workshop voucher as a gift<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31ef085 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"31ef085\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Looking for a unique gift idea for a woodworking enthusiast? Check out our range of courses and give a voucher for a specific workshop or any chosen amount.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-206438b e-flex e-con-boxed e-con e-parent\" data-id=\"206438b\" 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-476b76a elementor-align-center elementor-widget elementor-widget-button\" data-id=\"476b76a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Kupuj\u0119 na prezent<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f5bede1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f5bede1\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-422fd0c\" data-id=\"422fd0c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-18c6a75 elementor-widget elementor-widget-heading\" data-id=\"18c6a75\" 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\">\nWant more?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd94554 elementor-widget elementor-widget-heading\" data-id=\"fd94554\" 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\">Get to know our workshop<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c19cd64 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"c19cd64\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-736c088 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"736c088\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>Step into the world of craftsmanship and discover the creator within you. Explore our educational offerings and learn from the best.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1d4e524 e-flex e-con-boxed e-con e-parent\" data-id=\"1d4e524\" 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-b38420d elementor-widget elementor-widget-button\" data-id=\"b38420d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.bensariworkshop.com\/en\/school\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Get to know our school<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-d93d0bc e-flex e-con-boxed e-con e-parent\" data-id=\"d93d0bc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\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>Woodworking Joint Courses Tenon and Mortise Techniques Course | Woodworking WorkshoP The two-day woodworking course on tenon and mortise joints is the most demanding and knowledge-packed course we offer in our workshop. https:\/\/youtu.be\/OiXCoBQy8no?si=QkcaLtZAJ6VJkzWx Program The two-day carpentry course lasts 16 hours (2 days x 8 hours), and the training program is carried out through the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3263,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[26],"class_list":["post-3649","page","type-page","status-publish","has-post-thumbnail","hentry","category-upcoming-courses"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop<\/title>\n<meta name=\"description\" content=\"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop\" \/>\n<meta property=\"og:description\" content=\"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/\" \/>\n<meta property=\"og:site_name\" content=\"Bensari Workshop\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BensariWorkshop\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-28T17:07:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2025\/03\/czopy-i-gniazda-kurs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"788\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/\",\"name\":\"Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/czopy-i-gniazda-kurs.png\",\"datePublished\":\"2024-08-23T11:14:07+00:00\",\"dateModified\":\"2026-02-28T17:07:16+00:00\",\"description\":\"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/czopy-i-gniazda-kurs.png\",\"contentUrl\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/czopy-i-gniazda-kurs.png\",\"width\":940,\"height\":788,\"caption\":\"Mortise-and-Tenon\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/tenons-and-mortises\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mortise and tenon\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#website\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/\",\"name\":\"Bensari Workshop\",\"description\":\"Pracownia i kursy stolarskie Bensari Workshop\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bensariworkshop.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#organization\",\"name\":\"Bensari Workshop\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/logo-696x696-1.png\",\"contentUrl\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/logo-696x696-1.png\",\"width\":696,\"height\":696,\"caption\":\"Bensari Workshop\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/BensariWorkshop\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bensari-workshop\\\/\",\"https:\\\/\\\/medium.com\\\/@bensariworkshop\",\"https:\\\/\\\/substack.com\\\/@tombensari\",\"https:\\\/\\\/www.reddit.com\\\/user\\\/BensariWorkshop\\\/\",\"https:\\\/\\\/www.instagram.com\\\/bensari_workshop\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@tombensariworkshop\",\"https:\\\/\\\/github.com\\\/tombensariworkshop-web\",\"https:\\\/\\\/www.finewoodworking.com\\\/author\\\/tom-bensari\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop","description":"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/","og_locale":"en_US","og_type":"article","og_title":"Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop","og_description":"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!","og_url":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/","og_site_name":"Bensari Workshop","article_publisher":"https:\/\/www.facebook.com\/BensariWorkshop","article_modified_time":"2026-02-28T17:07:16+00:00","og_image":[{"width":940,"height":788,"url":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2025\/03\/czopy-i-gniazda-kurs.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/","url":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/","name":"Wood Joinery Courses: Tenons and Mortises \u2013 Bensari Workshop","isPartOf":{"@id":"https:\/\/www.bensariworkshop.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/#primaryimage"},"image":{"@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2025\/03\/czopy-i-gniazda-kurs.png","datePublished":"2024-08-23T11:14:07+00:00","dateModified":"2026-02-28T17:07:16+00:00","description":"Bensari Workshop \u27a4 Courses on basic woodworking joints using tenon and mortise. 2 days of hands-on training \u2714\ufe0f Sign up now!","breadcrumb":{"@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/#primaryimage","url":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2025\/03\/czopy-i-gniazda-kurs.png","contentUrl":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2025\/03\/czopy-i-gniazda-kurs.png","width":940,"height":788,"caption":"Mortise-and-Tenon"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bensariworkshop.com\/en\/tenons-and-mortises\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/www.bensariworkshop.com\/en\/"},{"@type":"ListItem","position":2,"name":"Mortise and tenon"}]},{"@type":"WebSite","@id":"https:\/\/www.bensariworkshop.com\/#website","url":"https:\/\/www.bensariworkshop.com\/","name":"Bensari Workshop","description":"Pracownia i kursy stolarskie Bensari Workshop","publisher":{"@id":"https:\/\/www.bensariworkshop.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bensariworkshop.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bensariworkshop.com\/#organization","name":"Bensari Workshop","url":"https:\/\/www.bensariworkshop.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bensariworkshop.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2026\/01\/logo-696x696-1.png","contentUrl":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2026\/01\/logo-696x696-1.png","width":696,"height":696,"caption":"Bensari Workshop"},"image":{"@id":"https:\/\/www.bensariworkshop.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BensariWorkshop","https:\/\/www.linkedin.com\/company\/bensari-workshop\/","https:\/\/medium.com\/@bensariworkshop","https:\/\/substack.com\/@tombensari","https:\/\/www.reddit.com\/user\/BensariWorkshop\/","https:\/\/www.instagram.com\/bensari_workshop\/","https:\/\/www.youtube.com\/@tombensariworkshop","https:\/\/github.com\/tombensariworkshop-web","https:\/\/www.finewoodworking.com\/author\/tom-bensari"]}]}},"_links":{"self":[{"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages\/3649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/comments?post=3649"}],"version-history":[{"count":30,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages\/3649\/revisions"}],"predecessor-version":[{"id":4410,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages\/3649\/revisions\/4410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/media\/3263"}],"wp:attachment":[{"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/media?parent=3649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/categories?post=3649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}