{"id":6719,"date":"2026-04-10T12:48:44","date_gmt":"2026-04-10T10:48:44","guid":{"rendered":"https:\/\/www.irenelauretti.com\/?page_id=6719"},"modified":"2026-04-10T12:48:45","modified_gmt":"2026-04-10T10:48:45","slug":"lunajin","status":"publish","type":"page","link":"https:\/\/www.irenelauretti.com\/de\/lunajin\/","title":{"rendered":"LunaJin"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-1024x1024.jpg?_t=1775815001\" alt=\"\" class=\"wp-image-6720\" srcset=\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-1024x1024.jpg 1024w, https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-300x300.jpg 300w, https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-150x150.jpg 150w, https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-768x768.jpg 768w, https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App-600x600.jpg 600w, https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg 1080w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center is-style-info has-custom-weight\" style=\"font-weight:bold;font-size:29px\"><strong>Der aktuelle Programmierer f\u00fchrt<\/strong><br><strong>die App LunaJin nicht mehr weiter<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center is-style-info has-custom-weight\" style=\"font-weight:bold;font-size:30px\">Er wird die App aus den beiden AppStores l\u00f6schen <br>und nicht wie von mir gew\u00fcnscht an einen anderen Programmierer \u00fcbergeben.<\/p>\n\n\n\n<p class=\"has-text-align-center is-style-info has-custom-weight\" style=\"font-weight:bold;font-size:30px\"><strong>Leider sind mir die H\u00e4nde gebunden!<\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center is-style-info has-custom-weight\" style=\"font-weight:bold;font-size:30px\">Es wird in K\u00fcrze eine neue App von mir und mit neuen Programmierern geben.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center is-style-info has-custom-weight\" style=\"font-weight:bold;font-size:30px\">Sobald neue Informationen verf\u00fcgbar sind,<br>werde ich sie hier ver\u00f6ffentlichen<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<center>\n<div id=\"mc_embed_shell\">\n      <link href=\"\/\/cdn-images.mailchimp.com\/embedcode\/classic-061523.css\" rel=\"stylesheet\" type=\"text\/css\">\n  <style type=\"text\/css\">\n        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}\n        \/* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.\n           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. *\/\n<\/style>\n<div id=\"mc_embed_signup\">\n    <form action=\"https:\/\/irenelauretti.us7.list-manage.com\/subscribe\/post?u=c88ac5ba51767a822d8b5e5ef&amp;id=8b341c560e&amp;f_id=007593e4f0\" method=\"post\" id=\"mc-embedded-subscribe-form\" name=\"mc-embedded-subscribe-form\" class=\"validate\" target=\"_blank\">\n        <div id=\"mc_embed_signup_scroll\"><h2>Trage die f\u00fcr Updates zu Irenes App per Mail hier ein<\/h2>\n            <div class=\"indicates-required\"><span class=\"asterisk\">*<\/span> Angaben erforderlich<\/div>\n            <div class=\"mc-field-group\"><label for=\"mce-EMAIL\">Email Address <span class=\"asterisk\">*<\/span><\/label><input type=\"email\" name=\"EMAIL\" class=\"required email\" id=\"mce-EMAIL\" required=\"\" value=\"\"><\/div><div class=\"mc-field-group\"><label for=\"mce-NAME\">Name <\/label><input type=\"text\" name=\"NAME\" class=\" text\" id=\"mce-NAME\" value=\"\"><\/div>\n        <div id=\"mce-responses\" class=\"clear foot\">\n            <div class=\"response\" id=\"mce-error-response\" style=\"display: none;\"><\/div>\n            <div class=\"response\" id=\"mce-success-response\" style=\"display: none;\"><\/div>\n        <\/div>\n    <div aria-hidden=\"true\" style=\"position: absolute; left: -5000px;\">\n        \/* real people should not fill this in and expect good things &#8211; do not remove this or risk form bot signups *\/\n        <input type=\"text\" name=\"b_c88ac5ba51767a822d8b5e5ef_8b341c560e\" tabindex=\"-1\" value=\"\">\n    <\/div>\n        <div class=\"optionalParent\">\n            <div class=\"clear foot\">\n                <input type=\"submit\" name=\"subscribe\" id=\"mc-embedded-subscribe\" class=\"button\" value=\"Subscribe\">\n                <p style=\"margin: 0px auto;\"><a href=\"http:\/\/eepurl.com\/jfS3-k\" title=\"Mailchimp \u2013 Einfaches, schnelles E-Mail-Marketing\"><span style=\"display: inline-block; background-color: transparent; border-radius: 4px;\"><img decoding=\"async\" class=\"refferal_badge\" src=\"https:\/\/digitalasset.intuit.com\/render\/content\/dam\/intuit\/mc-fe\/en_us\/images\/intuit-mc-rewards-text-dark.svg\" alt=\"Intuit Mailchimp\" style=\"width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;\"><\/span><\/a><\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/form>\n<\/div>\n<script type=\"text\/javascript\" src=\"\/\/s3.amazonaws.com\/downloads.mailchimp.com\/js\/mc-validate.js\"><\/script><script type=\"text\/javascript\">(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='NAME';ftypes[1]='text';}(jQuery));var $mcj = jQuery.noConflict(true);\n    \/\/ SMS Phone Multi-Country Functionality\n    if(!window.MC) {\n      window.MC = {};\n    }\n    window.MC.smsPhoneData = {\n      defaultCountryCode: 'GB',\n      programs: [],\n      smsProgramDataCountryNames: []\n    };\n\n    function getCountryUnicodeFlag(countryCode) {\n       return countryCode.toUpperCase().replace(\/.\/g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397))\n    };\n\n    \/\/ HTML sanitization function to prevent XSS\n    function sanitizeHtml(str) {\n      if (typeof str !== 'string') return '';\n      return str\n        .replace(\/&\/g, '&amp;')\n        .replace(\/<\/g, '&lt;')\n        .replace(\/>\/g, '&gt;')\n        .replace(\/\"\/g, '&quot;')\n        .replace(\/'\/g, '&#x27;')\n        .replace(\/\\\/\/g, '&#x2F;');\n    }\n\n    \/\/ URL sanitization function to prevent javascript: and data: URLs\n    function sanitizeUrl(url) {\n      if (typeof url !== 'string') return '';\n      const trimmedUrl = url.trim().toLowerCase();\n      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {\n        return '#';\n      }\n      return url;\n    }\n\n    const getBrowserLanguage = () => {\n      if (!window?.navigator?.language?.split('-')[1]) {\n        return window?.navigator?.language?.toUpperCase();\n      }\n      return window?.navigator?.language?.split('-')[1];\n    };\n\n    \n    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return null;\n      }\n\n      const browserLanguage = getBrowserLanguage();\n\n      if (browserLanguage) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === browserLanguage,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }\n\n      if (defaultCountryCode) {\n        const foundProgram = smsProgramData.find(\n          (program) => program?.countryCode === defaultCountryCode,\n        );\n        if (foundProgram) {\n          return foundProgram;\n        }\n      }\n\n      return smsProgramData[0];\n    }\n\n    function updateSmsLegalText(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const programs = window?.MC?.smsPhoneData?.programs;\n      if (!programs || !Array.isArray(programs)) {\n        return;\n      }\n      \n      const program = programs.find(program => program?.countryCode === countryCode);\n      if (!program || !program.requiredTemplate) {\n        return;\n      }\n    \n      \n      const legalTextElement = document.querySelector('#legal-text-' + fieldName);\n      if (!legalTextElement) {\n        return;\n      }\n      \n      \/\/ Remove HTML tags and clean up the text\n      const divRegex = new RegExp('<\/?[div][^>]*>', 'gi');\n      const fullAnchorRegex = new RegExp('<a.*?<\/a>', 'g');\n      const anchorRegex = new RegExp('<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\/a>');\n      \n      const template = program.requiredTemplate.replace(divRegex, '');\n      \n      \n\n      legalTextElement.textContent = '';\n      const parts = template.split(\/(<a href=\".*?\" target=\".*?\">.*?<\\\/a>)\/g);\n      parts.forEach(function(part) {\n        if (!part) {\n          return;\n        }\n        const anchorMatch = part.match(\/<a href=\"(.*?)\" target=\"(.*?)\">(.*?)<\\\/a>\/);\n        if (anchorMatch) {\n          const linkElement = document.createElement('a');\n          linkElement.href = sanitizeUrl(anchorMatch[1]);\n          linkElement.target = sanitizeHtml(anchorMatch[2]);\n          linkElement.textContent = sanitizeHtml(anchorMatch[3]);\n          legalTextElement.appendChild(linkElement);\n        } else {\n          legalTextElement.appendChild(document.createTextNode(part));\n        }\n      });\n          \n    }\n\n    function generateDropdownOptions(smsProgramData) {\n      if (!smsProgramData || smsProgramData.length === 0) {\n        return '';\n      }\n\n      var programs = false\n        ? smsProgramData.filter(function(p, i, arr) {\n            return arr.findIndex(function(q) { return q.countryCode === p.countryCode; }) === i;\n          })\n        : smsProgramData;\n      \n      return programs.map(program => {\n        const flag = getCountryUnicodeFlag(program.countryCode);\n        const countryName = getCountryName(program.countryCode);\n        const callingCode = program.countryCallingCode || '';\n        \/\/ Sanitize all values to prevent XSS\n        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');\n        const sanitizedCountryName = sanitizeHtml(countryName || '');\n        const sanitizedCallingCode = sanitizeHtml(callingCode || '');\n        return '<option value=\"' + sanitizedCountryCode + '\">' + sanitizedCountryName + ' ' + sanitizedCallingCode + '<\/option>';\n      }).join('');\n    }\n\n    function getCountryName(countryCode) {\n      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {\n        for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {\n          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {\n            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;\n          }\n        }\n      }\n      return countryCode;\n    }\n\n    function getDefaultPlaceholder(countryCode) {\n      if (!countryCode || typeof countryCode !== 'string') {\n        return '+1 000 000 0000'; \/\/ Default US placeholder\n      }\n      \n            var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n\n      const selectedPlaceholder = mockPlaceholders.find(function(item) {\n        return item &#038;&#038; item.countryCode === countryCode;\n      });\n      \n      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;\n    }\n\n    function updatePlaceholder(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      const phoneInput = document.querySelector('#mce-' + fieldName);\n      if (!phoneInput) {\n        return;\n      }\n      \n      const placeholder = getDefaultPlaceholder(countryCode);\n      if (placeholder) {\n        phoneInput.placeholder = placeholder;\n      }\n    }\n\n    function updateCountryCodeInstruction(countryCode, fieldName) {\n      updatePlaceholder(countryCode, fieldName);\n      \n    }\n\n    function getDefaultHelpText(countryCode) {\n      var mockPlaceholders = [\n        {\n          countryCode: 'US',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the US country code +1 before the phone number',\n        },\n        {\n          countryCode: 'GB',\n          placeholder: '+44 0000 000000',\n          helpText: 'Include the GB country code +44 before the phone number',\n        },\n        {\n          countryCode: 'CA',\n          placeholder: '+1 000 000 0000',\n          helpText: 'Include the CA country code +1 before the phone number',\n        },\n        {\n          countryCode: 'AU',\n          placeholder: '+61 000 000 000',\n          helpText: 'Include the AU country code +61 before the phone number',\n        },\n        {\n          countryCode: 'DE',\n          placeholder: '+49 000 0000000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die DE-L\u00e4ndervorwahl +49 ein',\n        },\n        {\n          countryCode: 'FR',\n          placeholder: '+33 0 00 00 00 00',\n          helpText: 'Incluez le code pays FR +33 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'ES',\n          placeholder: '+34 000 000 000',\n          helpText: 'Incluya el c\u00f3digo de pa\u00eds ES +34 antes del n\u00famero de tel\u00e9fono',\n        },\n        {\n          countryCode: 'NL',\n          placeholder: '+31 0 00000000',\n          helpText: 'Voeg de NL-landcode +31 toe v\u00f3\u00f3r het telefoonnummer',\n        },\n        {\n          countryCode: 'BE',\n          placeholder: '+32 000 00 00 00',\n          helpText: 'Incluez le code pays BE +32 avant le num\u00e9ro de t\u00e9l\u00e9phone',\n        },\n        {\n          countryCode: 'CH',\n          placeholder: '+41 00 000 00 00',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die CH-L\u00e4ndervorwahl +41 ein',\n        },\n        {\n          countryCode: 'AT',\n          placeholder: '+43 000 000 0000',\n          helpText: 'F\u00fcgen Sie vor der Telefonnummer die AT-L\u00e4ndervorwahl +43 ein',\n        },\n        {\n          countryCode: 'IE',\n          placeholder: '+353 00 000 0000',\n          helpText: 'Include the IE country code +353 before the phone number',\n        },\n        {\n          countryCode: 'IT',\n          placeholder: '+39 000 000 0000',\n          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',\n        },\n      ];\n      \n      if (!countryCode || typeof countryCode !== 'string') {\n        return mockPlaceholders[0].helpText;\n      }\n      \n      const selectedHelpText = mockPlaceholders.find(function(item) {\n          return item &#038;&#038; item.countryCode === countryCode;\n        });\n        \n        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;\n    }\n\n    function setDefaultHelpText(countryCode) {\n      const helpTextSpan = document.querySelector('#help-text');\n      if (!helpTextSpan) {\n        return;\n      }\n\n        \n    }\n\n    function updateHelpTextCountryCode(countryCode, fieldName) {\n      if (!countryCode || !fieldName) {\n        return;\n      }\n      \n      setDefaultHelpText(countryCode);\n    }\n\n    function initializeSmsPhoneDropdown(fieldName) {\n      if (!fieldName || typeof fieldName !== 'string') {\n        return;\n      }\n      \n      const dropdown = document.querySelector('#country-select-' + fieldName);\n      const displayFlag = document.querySelector('#flag-display-' + fieldName);\n      \n      if (!dropdown || !displayFlag) {\n        return;\n      }\n\n      const smsPhoneData = window.MC?.smsPhoneData;\n      if (smsPhoneData &#038;&#038; smsPhoneData.programs &#038;&#038; Array.isArray(smsPhoneData.programs)) {\n        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);\n      }\n\n      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);\n      if (defaultProgram &#038;&#038; defaultProgram.countryCode) {\n        dropdown.value = defaultProgram.countryCode;\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');\n        }\n        \n        updateSmsLegalText(defaultProgram.countryCode, fieldName);\n        updatePlaceholder(defaultProgram.countryCode, fieldName);\n        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);\n      }\n\n     \n      var smsNotRequiredRemoveCountryCodeEnabled = true;\n      var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"NAME\":{\"name\":\"NAME\",\"label\":\"Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n      var isRequired = smsField ? smsField.required : false;\n      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n      \n      var phoneInput = document.querySelector('#mce-' + fieldName);\n      if (phoneInput &#038;&#038; defaultProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n        phoneInput.value = defaultProgram.countryCallingCode;\n      }\n      \n\n\n      displayFlag?.addEventListener('click', function(e) {\n        dropdown.focus();\n      });\n\n\n      dropdown?.addEventListener('change', function() {\n        const selectedCountry = this.value;\n        \n        if (!selectedCountry || typeof selectedCountry !== 'string') {\n          return;\n        }\n        \n        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);\n        if (flagSpan) {\n          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);\n          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');\n        }\n\n         \n        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {\n          return program &#038;&#038; program.countryCode === selectedCountry;\n        });\n\n        var smsNotRequiredRemoveCountryCodeEnabled = true;\n        var smsField = Object.values({\"EMAIL\":{\"name\":\"EMAIL\",\"label\":\"Email Address\",\"helper_text\":\"\",\"type\":\"email\",\"required\":true,\"audience_field_name\":\"Email Address\",\"merge_id\":0,\"help_text_enabled\":false,\"enabled\":true,\"order\":0,\"field_type\":\"merge\"},\"NAME\":{\"name\":\"NAME\",\"label\":\"Name\",\"helper_text\":\"\",\"type\":\"text\",\"required\":false,\"audience_field_name\":\"Name\",\"merge_id\":1,\"help_text_enabled\":false,\"enabled\":true,\"order\":1,\"field_type\":\"merge\"}}).find(function(f) { return f.name === fieldName &#038;&#038; f.type === 'smsphone'; });\n        var isRequired = smsField ? smsField.required : false;\n        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;\n        \n        var phoneInput = document.querySelector('#mce-' + fieldName);\n        if (phoneInput &#038;&#038; selectedProgram.countryCallingCode &#038;&#038; shouldAppendCountryCode) {\n          phoneInput.value = selectedProgram.countryCallingCode;\n        }\n        \n        \n        updateSmsLegalText(selectedCountry, fieldName);\n        updatePlaceholder(selectedCountry, fieldName);\n        updateCountryCodeInstruction(selectedCountry, fieldName);\n      });\n    }\n\n    document.addEventListener('DOMContentLoaded', function() {\n      const smsPhoneFields = document.querySelectorAll('[id^=\"country-select-\"]');\n      \n      smsPhoneFields.forEach(function(dropdown) {\n        const fieldName = dropdown?.id.replace('country-select-', '');\n        initializeSmsPhoneDropdown(fieldName);\n      });\n    });\n    <\/script><\/div>\n<\/center>\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der aktuelle Programmierer f\u00fchrtdie App LunaJin nicht mehr weiter Er wird die App aus den beiden AppStores l\u00f6schen und nicht wie von mir gew\u00fcnscht an einen anderen Programmierer \u00fcbergeben. Leider sind mir die H\u00e4nde gebunden! Es wird in K\u00fcrze eine neue App von mir und mit neuen Programmierern geben. Sobald neue Informationen verf\u00fcgbar sind,werde ich [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":6720,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","omw_enable_modal_window":"enable","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-6719","page","type-page","status-publish","has-post-thumbnail","hentry","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>LunaJin - irenelauretti.com<\/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:\/\/www.irenelauretti.com\/de\/lunajin\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"LunaJin - irenelauretti.com\" \/>\n<meta name=\"twitter:description\" content=\"Der aktuelle Programmierer f\u00fchrtdie App LunaJin nicht mehr weiter Er wird die App aus den beiden AppStores l\u00f6schen und nicht wie von mir gew\u00fcnscht an einen anderen Programmierer \u00fcbergeben. Leider sind mir die H\u00e4nde gebunden! Es wird in K\u00fcrze eine neue App von mir und mit neuen Programmierern geben. Sobald neue Informationen verf\u00fcgbar sind,werde ich [&hellip;]\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"1\u00a0Minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/\",\"url\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/\",\"name\":\"LunaJin - irenelauretti.com\",\"isPartOf\":{\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.irenelauretti.com\/lunajin\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg\",\"datePublished\":\"2026-04-10T10:48:44+00:00\",\"dateModified\":\"2026-04-10T10:48:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\/\/www.irenelauretti.com\/de\/lunajin\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/#primaryimage\",\"url\":\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg\",\"contentUrl\":\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg\",\"width\":1080,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/lunajin\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\/\/www.irenelauretti.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LunaJin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#website\",\"url\":\"https:\/\/www.irenelauretti.com\/de\/\",\"name\":\"irenelauretti.com\",\"description\":\"Autorin Mystikerin Heilerin Vision\u00e4rin\",\"publisher\":{\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.irenelauretti.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#organization\",\"name\":\"irenelauretti.com\",\"url\":\"https:\/\/www.irenelauretti.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/2013\/08\/Logo_with.png\",\"contentUrl\":\"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/2013\/08\/Logo_with.png\",\"width\":180,\"height\":113,\"caption\":\"irenelauretti.com\"},\"image\":{\"@id\":\"https:\/\/www.irenelauretti.com\/de\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LunaJin - irenelauretti.com","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.irenelauretti.com\/de\/lunajin\/","twitter_card":"summary_large_image","twitter_title":"LunaJin - irenelauretti.com","twitter_description":"Der aktuelle Programmierer f\u00fchrtdie App LunaJin nicht mehr weiter Er wird die App aus den beiden AppStores l\u00f6schen und nicht wie von mir gew\u00fcnscht an einen anderen Programmierer \u00fcbergeben. Leider sind mir die H\u00e4nde gebunden! Es wird in K\u00fcrze eine neue App von mir und mit neuen Programmierern geben. Sobald neue Informationen verf\u00fcgbar sind,werde ich [&hellip;]","twitter_image":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"1\u00a0Minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.irenelauretti.com\/de\/lunajin\/","url":"https:\/\/www.irenelauretti.com\/de\/lunajin\/","name":"LunaJin - irenelauretti.com","isPartOf":{"@id":"https:\/\/www.irenelauretti.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.irenelauretti.com\/de\/lunajin\/#primaryimage"},"image":{"@id":"https:\/\/www.irenelauretti.com\/lunajin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg","datePublished":"2026-04-10T10:48:44+00:00","dateModified":"2026-04-10T10:48:45+00:00","breadcrumb":{"@id":"https:\/\/www.irenelauretti.com\/de\/lunajin\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/www.irenelauretti.com\/de\/lunajin\/"]]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.irenelauretti.com\/de\/lunajin\/#primaryimage","url":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg","contentUrl":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/App.jpg","width":1080,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.irenelauretti.com\/de\/lunajin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/www.irenelauretti.com\/de\/"},{"@type":"ListItem","position":2,"name":"LunaJin"}]},{"@type":"WebSite","@id":"https:\/\/www.irenelauretti.com\/de\/#website","url":"https:\/\/www.irenelauretti.com\/de\/","name":"irenelauretti.com","description":"Autorin Mystikerin Heilerin Vision\u00e4rin","publisher":{"@id":"https:\/\/www.irenelauretti.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.irenelauretti.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.irenelauretti.com\/de\/#organization","name":"irenelauretti.com","url":"https:\/\/www.irenelauretti.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.irenelauretti.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/2013\/08\/Logo_with.png","contentUrl":"https:\/\/www.irenelauretti.com\/wp-content\/uploads\/2013\/08\/Logo_with.png","width":180,"height":113,"caption":"irenelauretti.com"},"image":{"@id":"https:\/\/www.irenelauretti.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/pages\/6719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/comments?post=6719"}],"version-history":[{"count":4,"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/pages\/6719\/revisions"}],"predecessor-version":[{"id":6724,"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/pages\/6719\/revisions\/6724"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/media\/6720"}],"wp:attachment":[{"href":"https:\/\/www.irenelauretti.com\/de\/wp-json\/wp\/v2\/media?parent=6719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}