MP_Calculator_Enqueue::iframe_additional_script()

Additional script for iframe.

Contents


Source Source

File: mortgage-platform/Inc/Calculators/MortgageCalculator/MP_Calculator_Enqueue.php

	protected static function iframe_additional_script() {
		$ajax_url = admin_url( 'admin-ajax.php' );
		$nonce    = wp_create_nonce( MortgagePlatform::$prefix . 'nonce' );
		?>

        <script>

          var form = window.parent.document.querySelector('#mortgageCalculatorIframe')
          var data = []

          var arr = [
            'mortgageamount',
            'languages',
            'mortgageamount_default',
            'interestrate',
            'interestrate_default',
            'downpayment',
            'downpayment_default',
            'term',
            'termyears',
            'termmonths',
            'term_default',
            'button_text',
            'button_reset_text',
            'type_style',
            'primary_color',
            'fonts',
            'type_inputs',
            'rounded_elements',
            'slider_for_input',
            'type_slyder',
          ]

          if (form) checkDataset()

          function checkDataset () {

            arr.forEach(function (i) {
              if (Object.keys(form.dataset).length !== 0) {
                if (form.dataset[i] !== undefined) {
                  data[i] = form.dataset[i]
                }
              }
            })

            var script = document.querySelector('#mortgageCalculatorIframe script')

            if (data['type_style'] === 'fullpage') {
              var cssMortgagecalculatorFullpage = document.createElement('link')
              cssMortgagecalculatorFullpage.rel = 'stylesheet'
              cssMortgagecalculatorFullpage.type = 'text/css'
              cssMortgagecalculatorFullpage.href = '<?php echo esc_url( plugins_url( '../assets/css/fullpage.min.css', __FILE__ ) ); ?>'
              document.querySelector('body').appendChild(cssMortgagecalculatorFullpage)
            }

            if (data['type_style'] === 'darktheme') {
              var cssMortgagecalculatorFullpage = document.createElement('link')
              cssMortgagecalculatorFullpage.rel = 'stylesheet'
              cssMortgagecalculatorFullpage.type = 'text/css'
              cssMortgagecalculatorFullpage.href = '<?php echo esc_url( plugins_url( '../assets/css/darktheme.min.css', __FILE__ ) ); ?>'
              document.querySelector('body').appendChild(cssMortgagecalculatorFullpage)
            }

            var xhr = new XMLHttpRequest()
            var body = ''
            for (var key in data) {
              body += key + '=' + data[key] + '&'
            }

            xhr.open('POST',
              '<?php echo esc_url( $ajax_url ); ?>?action=iframe_mortgagecalculator&nonce=<?php echo esc_attr( $nonce ); ?>',
              true)
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')

            xhr.onreadystatechange = function () {
              if (xhr.readyState !== 4) return

              if (xhr.readyState === 4 && xhr.status === 200) {
                var responseBody = xhr.responseText
                var div = document.createElement('div')
                div.innerHTML = responseBody
                document.querySelector('body').appendChild(div)
                mortgageCalculator.init()

              } else {
                //console.log(xhr.statusText);
              }
            }

            xhr.send(body)
          }

          setTimeout(function () {
            parent.postMessage(Number(document.body.scrollHeight), '*')
          }, 4000)
        </script>
		<?php
	}

Top ↑

Changelog Changelog

Changelog
Version Description
1.0.0 Introduced.