{"id":3744,"date":"2024-10-13T13:58:51","date_gmt":"2024-10-13T11:58:51","guid":{"rendered":"https:\/\/www.bensariworkshop.com\/jaskolcze-ogony\/"},"modified":"2026-02-28T18:03:42","modified_gmt":"2026-02-28T17:03:42","slug":"dovetails","status":"publish","type":"page","link":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/","title":{"rendered":"Dovetails"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3744\" class=\"elementor elementor-3744 elementor-1254\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6fc9e4a elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"6fc9e4a\" 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-fb4c919\" data-id=\"fb4c919\" 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-7e67fbd elementor-widget elementor-widget-heading\" data-id=\"7e67fbd\" 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\">Dovetail Joint Carpentry Courses<\/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-451d30e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"451d30e\" 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-450d269\" data-id=\"450d269\" 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-d48ce9a elementor-widget elementor-widget-heading\" data-id=\"d48ce9a\" 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\">Course | Carpentry Workshop<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-28b3b17 elementor-widget elementor-widget-heading\" data-id=\"28b3b17\" 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\">Dovetails<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e83cea2 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e83cea2\" 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>A two-day dovetail carpentry course will prepare you to properly execute woodworking joints, enabling you to independently build beautiful and durable boxes, drawers, or furniture structures.<\/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-0989998 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0989998\" 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-95ca9b7\" data-id=\"95ca9b7\" 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-749621d elementor-widget__width-initial elementor-widget elementor-widget-video\" data-id=\"749621d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=f1GFhI3-R3s&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-d59ca66\" data-id=\"d59ca66\" 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-ee00009 elementor-widget elementor-widget-heading\" data-id=\"ee00009\" 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\">Dovetails | Program<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f43806 elementor-widget elementor-widget-heading\" data-id=\"0f43806\" 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-039939c elementor-widget elementor-widget-text-editor\" data-id=\"039939c\" 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 dovetail carpentry course lasts 16 hours (2 days x 8 hours). During the course, you will independently create a wooden box using dovetail joints.<\/p><p>I will teach you how to plan the work for preparing all the components (lid, sides, and bottom), and how to ensure the correct geometry of the dovetail joints to achieve an aesthetically pleasing final result. Thanks to this, you will be able to make a beautiful and durable wooden box on your own.<\/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-3bf19a6 elementor-widget elementor-widget-text-editor\" data-id=\"3bf19a6\" 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 carpentry course lasts 16 hours (2 days x 8 hours) plus lunch breaks \u2013 we provide a hot meal.<\/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-38cccc4 elementor-widget elementor-widget-shortcode\" data-id=\"38cccc4\" 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\">Dovetails<\/span><br \/>Next date: <span id=\"nearestDate\">23.05.2026<\/span><br \/>Price: <span id=\"coursePrice\">1650<\/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-a8ab13e e-flex e-con-boxed e-con e-parent\" data-id=\"a8ab13e\" 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-0464799 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"0464799\" 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-39831f2 elementor-widget elementor-widget-button\" data-id=\"39831f2\" 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-bbf4c4e e-flex e-con-boxed e-con e-parent\" data-id=\"bbf4c4e\" 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\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc414e5 elementor-widget elementor-widget-heading\" data-id=\"fc414e5\" 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\">Dovetails | Reservation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1dafa92 elementor-widget elementor-widget-heading\" data-id=\"1dafa92\" 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-1ca82a7 elementor-widget elementor-widget-shortcode\" data-id=\"1ca82a7\" 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=\"1254\">[{\"date\":\"2026-09-19\",\"slots\":6},{\"date\":\"2026-08-08\",\"slots\":4},{\"date\":\"2026-07-04\",\"slots\":3},{\"date\":\"2026-05-23\",\"slots\":1}]<\/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-56c6bf6 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"56c6bf6\" 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\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d55be1f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d55be1f\" 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-500e53f\" data-id=\"500e53f\" 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-364d3b6 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=\"364d3b6\" 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\tTom is a carpenter with exceptional experience and dedication to his craft. His passion is contagious, and his attention to detail and precision are world-class.\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\">Andreas<\/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\tThe perfect place for those wanting to learn the technique of working with traditional woodworking tools. Tom\u2019s inspiring presence completes the magic of this place.\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\">Patryk<\/span><span class=\"elementor-testimonial__title\">Kluczbork<\/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\tI left the workshop feeling energized, with a huge appetite for more carpentry training.\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\">Anna<\/span><span class=\"elementor-testimonial__title\">Przechlewo<\/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-22b0df3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"22b0df3\" 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-5c17afe\" data-id=\"5c17afe\" 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-22a800b elementor-widget elementor-widget-heading\" data-id=\"22a800b\" 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\">Looking for a gift idea?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a14fde elementor-widget elementor-widget-heading\" data-id=\"8a14fde\" 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 the gift of unforgettable moments.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35cfdf3 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"35cfdf3\" 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-5f9dd99 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"5f9dd99\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>Do you know a craft enthusiast and don\u2019t know what to give them for their birthday? Check out our course offerings and give a voucher for selected carpentry workshops or any amount.<\/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-43cc91f e-flex e-con-boxed e-con e-parent\" data-id=\"43cc91f\" 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-9e4809d elementor-align-center elementor-widget elementor-widget-button\" data-id=\"9e4809d\" 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\">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\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75613a0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75613a0\" 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-bde4484\" data-id=\"bde4484\" 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-1db1e1a elementor-widget elementor-widget-heading\" data-id=\"1db1e1a\" 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\">Want more?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-07536b4 elementor-widget elementor-widget-heading\" data-id=\"07536b4\" 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-7e116ac elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"7e116ac\" 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-8d9921e e-flex e-con-boxed e-con e-parent\" data-id=\"8d9921e\" 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-adb416b elementor-widget elementor-widget-button\" data-id=\"adb416b\" 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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Dovetail Joint Carpentry Courses Course | Carpentry Workshop A two-day dovetail carpentry course will prepare you to properly execute woodworking joints, enabling you to independently build beautiful and durable boxes, drawers, or furniture structures. https:\/\/www.youtube.com\/watch?v=f1GFhI3-R3s Program The dovetail carpentry course lasts 16 hours (2 days x 8 hours). During the course, you will independently create [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3212,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[26],"class_list":["post-3744","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>Carpentry Courses Dovetail Joints - Bensari Workshop<\/title>\n<meta name=\"description\" content=\"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \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\/dovetails\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Carpentry Courses Dovetail Joints - Bensari Workshop\" \/>\n<meta property=\"og:description\" content=\"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \u2714\ufe0f Sign up now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bensariworkshop.com\/en\/dovetails\/\" \/>\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:03:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2024\/11\/bensari-workshop-szkolenie-stolarskie.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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\\\/dovetails\\\/\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/\",\"name\":\"Carpentry Courses Dovetail Joints - Bensari Workshop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/bensari-workshop-szkolenie-stolarskie.jpg\",\"datePublished\":\"2024-10-13T11:58:51+00:00\",\"dateModified\":\"2026-02-28T17:03:42+00:00\",\"description\":\"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \u2714\ufe0f Sign up now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/bensari-workshop-szkolenie-stolarskie.jpg\",\"contentUrl\":\"https:\\\/\\\/www.bensariworkshop.com\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/bensari-workshop-szkolenie-stolarskie.jpg\",\"width\":900,\"height\":600,\"caption\":\"Kurs tworzenia po\u0142\u0105cze\u0144 typu jask\u00f3\u0142czy ogon \u2014 jedno z najbardziej estetycznych i trwa\u0142ych rozwi\u0105za\u0144 w rzemio\u015ble stolarskim.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/dovetails\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/www.bensariworkshop.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dovetails\"}]},{\"@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":"Carpentry Courses Dovetail Joints - Bensari Workshop","description":"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \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\/dovetails\/","og_locale":"en_US","og_type":"article","og_title":"Carpentry Courses Dovetail Joints - Bensari Workshop","og_description":"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \u2714\ufe0f Sign up now!","og_url":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/","og_site_name":"Bensari Workshop","article_publisher":"https:\/\/www.facebook.com\/BensariWorkshop","article_modified_time":"2026-02-28T17:03:42+00:00","og_image":[{"width":900,"height":600,"url":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2024\/11\/bensari-workshop-szkolenie-stolarskie.jpg","type":"image\/jpeg"}],"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\/dovetails\/","url":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/","name":"Carpentry Courses Dovetail Joints - Bensari Workshop","isPartOf":{"@id":"https:\/\/www.bensariworkshop.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/#primaryimage"},"image":{"@id":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2024\/11\/bensari-workshop-szkolenie-stolarskie.jpg","datePublished":"2024-10-13T11:58:51+00:00","dateModified":"2026-02-28T17:03:42+00:00","description":"Bensari Workshop \u27a4 Dovetail Joint Carpentry Courses. 2 days of practical training in proper execution \u2714\ufe0f Sign up now!","breadcrumb":{"@id":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bensariworkshop.com\/en\/dovetails\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/#primaryimage","url":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2024\/11\/bensari-workshop-szkolenie-stolarskie.jpg","contentUrl":"https:\/\/www.bensariworkshop.com\/wp-content\/uploads\/2024\/11\/bensari-workshop-szkolenie-stolarskie.jpg","width":900,"height":600,"caption":"Kurs tworzenia po\u0142\u0105cze\u0144 typu jask\u00f3\u0142czy ogon \u2014 jedno z najbardziej estetycznych i trwa\u0142ych rozwi\u0105za\u0144 w rzemio\u015ble stolarskim."},{"@type":"BreadcrumbList","@id":"https:\/\/www.bensariworkshop.com\/en\/dovetails\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/www.bensariworkshop.com\/en\/"},{"@type":"ListItem","position":2,"name":"Dovetails"}]},{"@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\/3744","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=3744"}],"version-history":[{"count":11,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages\/3744\/revisions"}],"predecessor-version":[{"id":4416,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/pages\/3744\/revisions\/4416"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/media\/3212"}],"wp:attachment":[{"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/media?parent=3744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bensariworkshop.com\/en\/wp-json\/wp\/v2\/categories?post=3744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}