Search code examples
javascriptwordpresspluginsdrift

wordpress plugin JS disable


Im trying to get this wordpress plugin (DRIFT Web chat) to disappear out of work hours so it shows in the hours of 09:00am (GMT) and 17:00PM (GMT) but I cannot seem to get it to work!

<script> var enableDisable = function(){var GMT_hours = new Date().getGMTHours() ;
    if (GMT_hours > 08 && GMT_hours < 16){
        document.getElementById('checktime').disabled = false;
    }
    else
    {
        document.getElementById('checktime').disabled = true;} }; setInterval(enableDisable, 1000*60); enableDisable(); var t = window.driftt = window.drift = window.driftt || [];if (!t.init) {
    if (t.invoked) return void (window.console && console.error && console.error("Drift snippet included twice."));
    t.invoked = !0, t.methods = [ "identify", "config", "track", "reset" "debug", "show", "ping", "page", "hide", "off", "on" ], 
    t.factory = function(e) {
      return function() {
        var n = Array.prototype.slice.call(arguments);
        return n.unshift(e), t.push(n), t;
      };
    }, t.methods.forEach(function(e) {
      t[e] = t.factory(e);
    }), t.load = function(t) {
      var e = 3e5, n = Math.ceil(new Date() / e) * e, o = document.createElement("script");
      o.type = "text/javascript", o.async = !0, o.crossorigin = "anonymous", o.src = "https://js.driftt.com/include/" + n + "/" + t + ".js";
      var i = document.getElementsByTagName("script")[0];
      i.parentNode.insertBefore(o, i);};} }(); drift.SNIPPET_VERSION = '0.3.1'; drift.load('n72gzwytbesr');
</script>

PLEASE HELP! Below are some screenshots if that helps...

ScreenShot 1

ScreenShot 2

ScreenShot 3

This is the code given from DRIFT directly...

<!-- Start of Async Drift Code --> 
<script> "use strict"; !function() { var t = window.driftt = window.drift = window.driftt || []; if (!t.init) {
if (t.invoked) return void (window.console && console.error && console.error("Drift snippet included twice."));
t.invoked = !0, t.methods = [ "identify", "config", "track", "reset", "debug", "show", "ping", "page", "hide", "off", "on" ], 
t.factory = function(e) {
  return function() {
    var n = Array.prototype.slice.call(arguments);
    return n.unshift(e), t.push(n), t;
  };
}, t.methods.forEach(function(e) {
  t[e] = t.factory(e);
}), t.load = function(t) {
  var e = 3e5, n = Math.ceil(new Date() / e) * e, o = document.createElement("script");
  o.type = "text/javascript", o.async = !0, o.crossorigin = "anonymous", o.src = "https://js.driftt.com/include/" + n + "/" + t + ".js";
  var i = document.getElementsByTagName("script")[0];
  i.parentNode.insertBefore(o, i); }; } }();drift.SNIPPET_VERSION = '0.3.1'; drift.load('n72gzwytbesr');
</script>
<!-- End of Async Drift Code -->

Solution

  • Whilst it is possible to do this using only javascript it would be easier to do with PHP.

    In the plugins file includes/embed.php change this:

            echo "<!-- Start Drift By WP-Plugin: Drift -->\n";
        echo $drift_tag;
        echo"<!-- end: Drift Code. -->\n";
    

    to this:

          if(date("Hi") < 1700 && date("Hi") > 900){
        echo "<!-- Start Drift By WP-Plugin: Drift -->\n";
        echo $drift_tag;
        echo"<!-- end: Drift Code. -->\n";}
    

    This will stop any additional JS from being embedded from Drift at all, instead of simply just not loading the embed but still loading the JS.