Cant add Script to X-Prpo header

Im trying to add a countdown before my header by adding this to my child functions.php but it doesn’t show up

function my_custom_script() { ?>

<?php } add_action( 'wp_head', 'my_custom_script', 999 ); Any ideas

Hello @bikerr46,

Thanks for reaching out. :slight_smile:

Please use the solution mentioned in following thread:

Thanks.

Hi, thanks for the quick response, I did what you suggest however the countdown doesn’t show, and if I try to add the script in the JS section of Cornerstone it apparently work but just in the preview in editor, as soon as I switch to live site it disappear again

Hi @bikerr46,

Please change your custom code to this:

add_action( 'wp_footer', 'x_print_footer_script' );
function x_print_footer_script(){
	?>
	<script type="text/javascript">
	jQuery(function($) {
	    var days, goLive, hours, intervalId, minutes, seconds;

	    // Your churchonline.org url
	    var churchUrl = "http://ministeriosebenezer.churchonline.org"

	    goLive = function() {
	      $("#churchonline_counter .time").hide();
	      $("#churchonline_counter .live").show();
	    };
	    loadCountdown = function(data){
	      var seconds_till;
	      $("#churchonline_counter").show();
	      if (data.response.item.isLive) {
	        return goLive();
	      } else {
	        // Parse ISO 8601 date string
	        date = data.response.item.eventStartTime.match(/^(\d{4})-0?(\d+)-0?(\d+)[T ]0?(\d+):0?(\d+):0?(\d+)Z$/)
	        dateString = date[2] + "/" + date[3] + "/" + date[1] + " " + date[4] + ":" + date[5] + ":" + date[6] + " +0000"
	        seconds_till = ((new Date(dateString)) - (new Date())) / 1000;
	        days = Math.floor(seconds_till / 86400);
	        hours = Math.floor((seconds_till % 86400) / 3600);
	        minutes = Math.floor((seconds_till % 3600) / 60);
	        seconds = Math.floor(seconds_till % 60);
	        return intervalId = setInterval(function() {
	          if (--seconds < 0) {
	            seconds = 59;
	            if (--minutes < 0) {
	              minutes = 59;
	              if (--hours < 0) {
	                hours = 23;
	                if (--days < 0) {
	                  days = 0;
	                }
	              }
	            }
	          }
	          $("#churchonline_counter .days").html((days.toString().length < 2) ? "0" + days : days);
	          $("#churchonline_counter .hours").html((hours.toString().length < 2 ? "0" + hours : hours));
	          $("#churchonline_counter .minutes").html((minutes.toString().length < 2 ? "0" + minutes : minutes));
	          $("#churchonline_counter .seconds").html((seconds.toString().length < 2 ? "0" + seconds : seconds));
	          if (seconds === 0 && minutes === 0 && hours === 0 && days === 0) {
	            goLive();
	            return clearInterval(intervalId);
	          }
	        }, 1000);
	      }
	    }
	    days = void 0;
	    hours = void 0;
	    minutes = void 0;
	    seconds = void 0;
	    intervalId = void 0;
	    eventUrl = churchUrl + "/api/v1/events/current"
	    msie = /msie/.test(navigator.userAgent.toLowerCase())
	    if (msie && window.XDomainRequest) {
	        var xdr = new XDomainRequest();
	        xdr.open("get", eventUrl);
	        xdr.onload = function() {
	          loadCountdown(jQuery.parseJSON(xdr.responseText))
	        };
	        xdr.send();
	    } else {
	      $.ajax({
	        url: eventUrl,
	        dataType: "json",
	        crossDomain: true,
	        success: function(data) {
	          loadCountdown(data);
	        },
	        error: function(xhr, ajaxOptions, thrownError) {
	          return console.log(thrownError);
	        }
	      });
	    }
	  });
	</script>	
	<?php
}

Also, please make sure the div with churchonline_counter ID is existed.

Regards!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.