{"id":13,"date":"2025-04-15T12:03:51","date_gmt":"2025-04-15T12:03:51","guid":{"rendered":"https:\/\/kind-gould.89-117-59-167.plesk.page\/?page_id=13"},"modified":"2025-04-15T12:03:51","modified_gmt":"2025-04-15T12:03:51","slug":"test","status":"publish","type":"page","link":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/","title":{"rendered":"Test"},"content":{"rendered":"<style>\r\n\/* --- Styling (unver\u00e4ndert) --- *\/\r\nbody {font-family: 'Segoe UI', Tahoma, sans-serif; max-width: 800px; margin: 20px auto; padding: 15px; background: #f8f9fa; color: #333;}\r\nh1 { color: #34b67a; text-align: center; margin-bottom: 25px;}\r\nh2 { margin: 20px 0 10px 0; font-size: 1.3em;}\r\n.box { background: #fff; border: 1px solid #ccc; padding: 20px; margin-bottom: 20px; border-radius: 8px;}\r\n.smoothie {background: #f0fadc;} .soup {background: #e6f7f0;} .bowl {background: #fdeaf1;}\r\n.row { display: grid; grid-template-columns: 3fr 1fr auto; gap: 12px; align-items: end; }\r\n@media(max-width:600px){.row{grid-template-columns:1fr;}}\r\nselect,input[type=\"number\"],input[type=\"text\"],input[type=\"email\"],input[type=\"tel\"] { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 5px;}\r\nbutton { padding: 10px; border: none; border-radius: 5px; color: white; font-weight: bold; cursor: pointer; }\r\n.smoothie .row button {background: #66a80f;} .soup .row button {background: #34b67a;} .bowl .row button {background: #d81b60;} .submit-btn {background: #e83e8c;}\r\n.count { background: #dc3545; color: white; padding: 2px 8px; border-radius: 12px; margin-left: 8px;}\r\n.remove-btn { background: #ccc; border-radius: 50%; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; }\r\ntable {width:100%; border-collapse:collapse;} th,td {border-bottom:1px solid #ddd; padding:8px;}\r\n.empty { padding: 10px; color: #777; }\r\n<\/style>\r\n\r\n<h1>Daisy Food Bestellformular<\/h1>\r\n<form id=\"orderForm\">\r\n  <div class=\"box smoothie\">\r\n    <h2>Smoothies<\/h2>\r\n    <div class=\"row\">\r\n      <div><label for=\"smoothie\">Smoothie:<\/label><select id=\"smoothie\"><\/select><\/div>\r\n      <div><label>Menge:<\/label><input type=\"number\" id=\"smoothieQty\" value=\"1\" min=\"1\"><\/div>\r\n      <div><button type=\"button\" id=\"addSmoothieBtn\">Hinzuf\u00fcgen<\/button><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"box soup\">\r\n    <h2>Suppen<\/h2>\r\n    <div class=\"row\">\r\n      <div><label for=\"soup\">Suppe:<\/label><select id=\"soup\"><\/select><\/div>\r\n      <div><label>Menge:<\/label><input type=\"number\" id=\"soupQty\" value=\"1\" min=\"1\"><\/div>\r\n      <div><button type=\"button\" id=\"addSoupBtn\">Hinzuf\u00fcgen<\/button><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"box bowl\">\r\n    <h2>Bowls<\/h2>\r\n    <div class=\"row\">\r\n      <div><label for=\"bowl\">Bowl:<\/label><select id=\"bowl\"><\/select><\/div>\r\n      <div><label>Menge:<\/label><input type=\"number\" id=\"bowlQty\" value=\"1\" min=\"1\"><\/div>\r\n      <div><button type=\"button\" id=\"addBowlBtn\">Hinzuf\u00fcgen<\/button><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"box\">\r\n    <h2>Warenkorb <span id=\"count\" class=\"count\" style=\"display:none;\">0<\/span><\/h2>\r\n    <div id=\"cart\"><div class=\"empty\">Ihr Warenkorb ist leer<\/div><\/div>\r\n  <\/div>\r\n  <div class=\"box\">\r\n    <h2>Kundeninformation<\/h2>\r\n    <label>Vorname:<br><input type=\"text\" id=\"firstName\" required><\/label><br>\r\n    <label>Nachname:<br><input type=\"text\" id=\"lastName\" required><\/label><br>\r\n    <label>E-Mail:<br><input type=\"email\" id=\"email\" required><\/label><br>\r\n    <label>Telefon:<br><input type=\"tel\" id=\"phone\"><\/label><br>\r\n    <label>Adresse:<br><input type=\"text\" id=\"address\" required><\/label><br><br>\r\n    <button type=\"submit\" class=\"submit-btn\">Bestellung absenden<\/button>\r\n  <\/div>\r\n<\/form>\r\n\r\n<script>\r\n\/\/ Warten bis das DOM geladen ist (sicherer als 'load')\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  \/\/ Produkte und AJAX URL aus dem globalen Objekt holen (von wp_localize_script)\r\n  const products = window.daisyFormData.products || [];\r\n  const ajaxUrl = window.daisyFormData.ajax_url;\r\n\r\n  if (!ajaxUrl) {\r\n      console.error(\"Daisy Form Error: AJAX URL nicht gefunden. wp_localize_script funktioniert m\u00f6glicherweise nicht korrekt.\");\r\n      \/\/ Optional: Fehlermeldung im Frontend anzeigen\r\n      \/\/ return;\r\n  }\r\n\r\n  if (!products.length) {\r\n      console.error(\"Daisy Form: Keine Produktdaten gefunden oder fehlerhaftes CSV.\");\r\n      \/\/ Optional: Fehlermeldung im Frontend anzeigen, wenn Produkte essentiell sind\r\n      \/\/ document.getElementById('orderForm').innerHTML = '<p style=\"color: red;\">Fehler: Produktdaten konnten nicht geladen werden.<\/p>';\r\n      \/\/ return; \/\/ Nur stoppen, wenn das Formular ohne Produkte nutzlos ist\r\n  }\r\n\r\n  const cart = [];\r\n  const getEl = id => document.getElementById(id);\r\n  const cartEl = getEl('cart');\r\n  const countEl = getEl('count');\r\n  const selectors = {\r\n      smoothie: getEl('smoothie'),\r\n      soup: getEl('soup'),\r\n      bowl: getEl('bowl')\r\n  };\r\n\r\n  function populate() {\r\n    if (!products.length) return; \/\/ Nicht ausf\u00fchren, wenn keine Produkte da sind\r\n\r\n    Object.entries(selectors).forEach(([type, el]) => {\r\n      if(!el) {\r\n         console.warn(`Daisy Form: Selector-Element f\u00fcr Typ \"${type}\" nicht gefunden.`);\r\n         return; \/\/ Sicherstellen, dass das Element existiert\r\n      }\r\n      el.innerHTML = '<option value=\"\">-- Bitte w\u00e4hlen --<\/option>'; \/\/ Standard-Option\r\n      products.filter(p => p.type === type).forEach(p => {\r\n        const o = document.createElement('option');\r\n        o.value = p.id;\r\n        o.textContent = p.name; \/\/ textContent ist sicherer als innerHTML hier\r\n        el.appendChild(o);\r\n      });\r\n    });\r\n  }\r\n\r\n  function updateCart() {\r\n    if (!cartEl || !countEl) return; \/\/ Stellen sicher, dass Cart-Elemente existieren\r\n\r\n    const cartIsEmpty = cart.length === 0;\r\n    cartEl.innerHTML = cartIsEmpty ? '<div class=\"empty\">Ihr Warenkorb ist leer<\/div>'\r\n                       : `<table><thead><tr><th>Produkt<\/th><th>Menge<\/th><th><\/th><\/tr><\/thead><tbody>` +\r\n                         cart.map((item, i) => `<tr><td>${escapeHtml(item.name)}<br><small>${escapeHtml(item.id)}<\/small><\/td><td>${item.qty}<\/td><td><button type=\"button\" class=\"remove-btn\" data-index=\"${i}\">\ud83d\uddd1\ufe0f<\/button><\/td><\/tr>`).join('') +\r\n                         `<\/tbody><\/table>`;\r\n    countEl.textContent = cart.reduce((s, i) => s + i.qty, 0);\r\n    countEl.style.display = cartIsEmpty ? 'none' : 'inline-block';\r\n\r\n    \/\/ Event Listener f\u00fcr Entfernen-Buttons (neu hinzuf\u00fcgen nach jeder Aktualisierung)\r\n    cartEl.querySelectorAll('.remove-btn').forEach(btn => {\r\n      btn.onclick = (e) => {\r\n          \/\/ Verwende currentTarget f\u00fcr den Button, an den der Listener angeh\u00e4ngt wurde\r\n          const indexToRemove = parseInt(e.currentTarget.getAttribute('data-index'), 10);\r\n          removeItem(indexToRemove);\r\n      };\r\n    });\r\n  }\r\n\r\n   function removeItem(index) { \/\/ Interne Methode\r\n       if (index >= 0 && index < cart.length) {\r\n           cart.splice(index, 1);\r\n           updateCart();\r\n       }\r\n   }\r\n\r\n  function addItem(type) {\r\n    const sel = selectors[type];\r\n    if(!sel) {\r\n        console.error(`Daisy Form: Select-Element f\u00fcr Typ \"${type}\" nicht gefunden.`);\r\n        return;\r\n    }\r\n    const qtyInput = getEl(type + 'Qty');\r\n    if (!qtyInput) {\r\n         console.error(`Daisy Form: Mengen-Input f\u00fcr Typ \"${type}\" nicht gefunden.`);\r\n         return;\r\n    }\r\n    const qty = parseInt(qtyInput.value || 1, 10);\r\n    const id = sel.value;\r\n    const p = products.find(prod => prod.id === id);\r\n\r\n    if (!p) {\r\n        alert('Bitte w\u00e4hlen Sie ein Produkt aus.');\r\n        return;\r\n    }\r\n    if (isNaN(qty) || qty <= 0) { \/\/ \u00dcberpr\u00fcfe auch auf NaN\r\n        alert('Bitte geben Sie eine g\u00fcltige Menge (gr\u00f6\u00dfer als 0) an.');\r\n        return;\r\n    }\r\n\r\n    const existing = cart.find(item => item.id === id);\r\n    if (existing) {\r\n      existing.qty += qty;\r\n    } else {\r\n      \/\/ Nur die wirklich ben\u00f6tigten Daten im Warenkorb speichern\r\n      cart.push({ id: p.id, name: p.name, qty: qty });\r\n    }\r\n    updateCart();\r\n    sel.value = ''; \/\/ Auswahl zur\u00fccksetzen\r\n    qtyInput.value = 1; \/\/ Menge zur\u00fccksetzen\r\n  }\r\n\r\n  \/\/ Funktion zum Escapen von HTML, um XSS zu vermeiden (DOM-basierte Methode)\r\n  function escapeHtml(unsafe) {\r\n    \/\/ Nur Strings bearbeiten, ansonsten leeren String zur\u00fcckgeben\r\n    if (typeof unsafe !== 'string') {\r\n      console.warn(\"escapeHtml wurde mit einem Nicht-String aufgerufen:\", unsafe);\r\n      return '';\r\n    }\r\n    \/\/ Erzeuge ein tempor\u00e4res div-Element im Speicher (wird nicht zur Seite hinzugef\u00fcgt)\r\n    const div = document.createElement('div');\r\n    \/\/ Setze den unsicheren String als Textinhalt.\r\n    \/\/ Der Browser wandelt dabei gef\u00e4hrliche Zeichen (<, >, &, \", ') automatisch\r\n    \/\/ in ihre HTML-Entit\u00e4ten (<, >, &, \", ') um.\r\n    div.textContent = unsafe;\r\n    \/\/ Gib den Inhalt des divs zur\u00fcck. Dieser enth\u00e4lt nun den sicher escaped HTML-String.\r\n    return div.innerHTML;\r\n  }\r\n\r\n  \/\/ Event Listener f\u00fcr Hinzuf\u00fcgen-Buttons\r\n  const addSmoothieBtn = getEl('addSmoothieBtn');\r\n  if (addSmoothieBtn) {\r\n      addSmoothieBtn.onclick = () => addItem('smoothie');\r\n  } else {\r\n      console.warn(\"Daisy Form: Button 'addSmoothieBtn' nicht gefunden.\");\r\n  }\r\n\r\n  const addSoupBtn = getEl('addSoupBtn');\r\n  if (addSoupBtn) {\r\n      addSoupBtn.onclick = () => addItem('soup');\r\n  } else {\r\n      console.warn(\"Daisy Form: Button 'addSoupBtn' nicht gefunden.\");\r\n  }\r\n\r\n  const addBowlBtn = getEl('addBowlBtn');\r\n  if (addBowlBtn) {\r\n      addBowlBtn.onclick = () => addItem('bowl');\r\n  } else {\r\n      console.warn(\"Daisy Form: Button 'addBowlBtn' nicht gefunden.\");\r\n  }\r\n\r\n\r\n  \/\/ Formular-Submit-Handler\r\n  const orderForm = getEl('orderForm');\r\n  if (orderForm) {\r\n      orderForm.onsubmit = e => {\r\n        e.preventDefault(); \/\/ Verhindert das Standard-Formular-Senden\r\n\r\n        if (cart.length === 0) {\r\n            alert('Ihr Warenkorb ist leer. Bitte f\u00fcgen Sie Produkte hinzu.');\r\n            return; \/\/ Stoppt die Funktion hier\r\n        }\r\n\r\n        const firstNameEl = getEl('firstName');\r\n        const lastNameEl = getEl('lastName');\r\n        const emailEl = getEl('email');\r\n        const phoneEl = getEl('phone');\r\n        const addressEl = getEl('address');\r\n\r\n        \/\/ Hole Werte und trimme sie, pr\u00fcfe ob Elemente existieren\r\n        const firstName = firstNameEl ? firstNameEl.value.trim() : '';\r\n        const lastName = lastNameEl ? lastNameEl.value.trim() : '';\r\n        const email = emailEl ? emailEl.value.trim() : '';\r\n        const phone = phoneEl ? phoneEl.value.trim() : ''; \/\/ Telefon ist optional\r\n        const address = addressEl ? addressEl.value.trim() : '';\r\n\r\n        \/\/ Validierung (Client-Seite)\r\n        if (!firstName || !lastName || !email || !address) {\r\n            alert('Bitte f\u00fcllen Sie alle Pflichtfelder aus (Vorname, Nachname, E-Mail, Adresse).');\r\n            return;\r\n        }\r\n        \/\/ Einfache E-Mail Validierung (RegEx)\r\n        if (!\/^\\S+@\\S+\\.\\S+$\/.test(email)) {\r\n             alert('Bitte geben Sie eine g\u00fcltige E-Mail-Adresse ein.');\r\n             return;\r\n        }\r\n\r\n        \/\/ Deaktiviere Button, um doppeltes Senden zu verhindern\r\n        const submitButton = orderForm.querySelector('.submit-btn');\r\n        let originalButtonText = 'Bestellung absenden'; \/\/ Standardtext\r\n        if(submitButton) {\r\n            originalButtonText = submitButton.textContent; \/\/ Speichere Originaltext\r\n            submitButton.disabled = true;\r\n            submitButton.textContent = 'Sende...';\r\n        }\r\n\r\n        \/\/ Daten f\u00fcr den Versand vorbereiten\r\n        const orderData = {\r\n          cart: cart,\r\n          firstName: firstName,\r\n          lastName: lastName,\r\n          email: email,\r\n          phone: phone,\r\n          address: address\r\n        };\r\n\r\n        \/\/ Daten senden via Fetch API\r\n        fetch(ajaxUrl, {\r\n          method: 'POST',\r\n          headers: {\r\n              'Content-Type': 'application\/x-www-form-urlencoded', \/\/ Korrekter Header f\u00fcr WP AJAX mit action im Body\r\n          },\r\n          \/\/ Wichtig: action muss im Body mitgesendet werden f\u00fcr WP AJAX!\r\n          body: `action=daisy_order_submit&data=${encodeURIComponent(JSON.stringify(orderData))}`\r\n        })\r\n        .then(res => {\r\n            if (!res.ok) { \/\/ Pr\u00fcfe auf HTTP-Fehler (z.B. 404, 500)\r\n                \/\/ Versuche, die Fehlermeldung vom Server zu bekommen, falls vorhanden\r\n                return res.text().then(text => {\r\n                   throw new Error(`HTTP error! status: ${res.status}, message: ${text || 'No server message'}`);\r\n                });\r\n            }\r\n            return res.json(); \/\/ Verarbeite die JSON-Antwort\r\n        })\r\n        .then(res => {\r\n          \/\/ Erfolg oder Fehler von der wp_send_json_* Funktion\r\n          if (res.success) {\r\n            alert('Vielen Dank! Ihre Bestellung wurde erfolgreich versendet. \u2705');\r\n            orderForm.reset(); \/\/ Formularfelder leeren\r\n            cart.length = 0;   \/\/ Warenkorb im Speicher leeren\r\n            updateCart();      \/\/ Warenkorb-Anzeige aktualisieren\r\n          } else {\r\n            \/\/ Zeige die Fehlermeldung vom Server an, falls vorhanden\r\n            const errorMessage = res.data && res.data.message ? res.data.message : 'Unbekannter Fehler.';\r\n            console.error('Fehler vom Server:', res.data);\r\n            alert(`Es gab ein Problem beim Versenden Ihrer Bestellung: ${errorMessage} \u274c`);\r\n          }\r\n        })\r\n        .catch(error => {\r\n            \/\/ Fehler bei der Netzwerkverbindung oder beim Verarbeiten der Antwort\r\n            console.error('Fetch-Fehler:', error);\r\n            alert(`Ein technischer Fehler ist aufgetreten: ${error.message}. Ihre Bestellung konnte nicht gesendet werden. \u274c`);\r\n        })\r\n        .finally(() => {\r\n            \/\/ Button wieder aktivieren und Text zur\u00fccksetzen, egal ob erfolgreich oder nicht\r\n            if(submitButton) {\r\n                submitButton.disabled = false;\r\n                submitButton.textContent = originalButtonText; \/\/ Stelle Originaltext wieder her\r\n            }\r\n        });\r\n      };\r\n  } else {\r\n      console.error(\"Daisy Form: Formular-Element mit ID 'orderForm' nicht gefunden. Das Formular kann nicht gesendet werden.\");\r\n  }\r\n\r\n  \/\/ --- Initialisierung ---\r\n  \/\/ Stelle sicher, dass die Initialisierung erst erfolgt, wenn alle Elemente bereit sind\r\n  populate();\r\n  updateCart(); \/\/ Zeigt initial \"Warenkorb ist leer\" an\r\n});\r\n<\/script>\r\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-13","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Test - Mehdics Travel<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test - Mehdics Travel\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/\" \/>\n<meta property=\"og:site_name\" content=\"Mehdics Travel\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/\",\"url\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/\",\"name\":\"Test - Mehdics Travel\",\"isPartOf\":{\"@id\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/#website\"},\"datePublished\":\"2025-04-15T12:03:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/#website\",\"url\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/\",\"name\":\"Mehdics Travel\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kind-gould.89-117-59-167.plesk.page\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test - Mehdics Travel","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:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/","og_locale":"en_US","og_type":"article","og_title":"Test - Mehdics Travel","og_url":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/","og_site_name":"Mehdics Travel","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/","url":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/","name":"Test - Mehdics Travel","isPartOf":{"@id":"https:\/\/kind-gould.89-117-59-167.plesk.page\/#website"},"datePublished":"2025-04-15T12:03:51+00:00","breadcrumb":{"@id":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kind-gould.89-117-59-167.plesk.page\/"},{"@type":"ListItem","position":2,"name":"Test"}]},{"@type":"WebSite","@id":"https:\/\/kind-gould.89-117-59-167.plesk.page\/#website","url":"https:\/\/kind-gould.89-117-59-167.plesk.page\/","name":"Mehdics Travel","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kind-gould.89-117-59-167.plesk.page\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/pages\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":1,"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/pages\/13\/revisions"}],"predecessor-version":[{"id":14,"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/pages\/13\/revisions\/14"}],"wp:attachment":[{"href":"https:\/\/kind-gould.89-117-59-167.plesk.page\/index.php\/wp-json\/wp\/v2\/media?parent=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}