403Webshell
Server IP : 172.67.75.225  /  Your IP : 216.73.216.185
Web Server : nginx/1.27.1
System : Linux us-1 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User : vinodai ( 3134)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /storage/v1396/bewellpeptide/public_html/wp-content/themes/bewell-theme/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /storage/v1396/bewellpeptide/public_html/wp-content/themes/bewell-theme/assets/js/bewell.js
/**
 * BeWell Theme — bewell.js
 * Handles: age gate, mobile menu, sticky header, cart updates
 */
(function () {
  'use strict';

  // ── Age Gate ────────────────────────────────────────────────────────────────
  var ageGate = document.getElementById('bw-age-gate');
  var ageConfirm = document.getElementById('bw-age-confirm');

  if (ageGate && ageConfirm) {
    ageConfirm.addEventListener('click', function () {
      var nonce = ageConfirm.dataset.nonce || '';

      // Optimistic hide
      ageGate.style.opacity = '0';
      ageGate.style.transition = 'opacity .3s';
      setTimeout(function () { ageGate.style.display = 'none'; }, 320);

      // Persist via AJAX (if WP is available)
      if (window.bewellData && window.bewellData.ajaxUrl) {
        var fd = new FormData();
        fd.append('action', 'bewell_age_confirm');
        fd.append('nonce', nonce);
        fetch(window.bewellData.ajaxUrl, { method: 'POST', body: fd });
      }

      // Fallback cookie (JS-only)
      var d = new Date();
      d.setFullYear(d.getFullYear() + 1);
      document.cookie = 'bewell_age=1; expires=' + d.toUTCString() + '; path=/; SameSite=Lax';
    });

    // Close on overlay click
    var overlay = ageGate.querySelector('.bw-age-gate__overlay');
    if (overlay) {
      overlay.addEventListener('click', function (e) {
        if (e.target === overlay) {
          ageGate.style.opacity = '0';
          ageGate.style.transition = 'opacity .3s';
          setTimeout(function () { ageGate.style.display = 'none'; }, 320);
          var d = new Date();
          d.setFullYear(d.getFullYear() + 1);
          document.cookie = 'bewell_age=1; expires=' + d.toUTCString() + '; path=/; SameSite=Lax';
        }
      });
    }
  }

  // ── Mobile Menu Toggle ──────────────────────────────────────────────────────
  var mobileToggle = document.getElementById('bw-mobile-toggle');
  var primaryNav   = document.getElementById('bw-primary-nav');

  if (mobileToggle && primaryNav) {
    mobileToggle.addEventListener('click', function () {
      var isOpen = primaryNav.classList.toggle('open');
      mobileToggle.classList.toggle('open', isOpen);
      mobileToggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
    });

    // Close on outside click
    document.addEventListener('click', function (e) {
      if (!primaryNav.contains(e.target) && !mobileToggle.contains(e.target)) {
        primaryNav.classList.remove('open');
        mobileToggle.classList.remove('open');
        mobileToggle.setAttribute('aria-expanded', 'false');
      }
    });
  }

  // ── Sticky Header Shadow ────────────────────────────────────────────────────
  var header = document.getElementById('bw-site-header');
  if (header) {
    var onScroll = function () {
      if (window.scrollY > 10) {
        header.classList.add('scrolled');
      } else {
        header.classList.remove('scrolled');
      }
    };
    window.addEventListener('scroll', onScroll, { passive: true });
    onScroll();
  }

  // ── Marquee: pause on hover ─────────────────────────────────────────────────
  var marqueeTrack = document.querySelector('.bw-marquee__track');
  if (marqueeTrack) {
    marqueeTrack.addEventListener('mouseenter', function () {
      marqueeTrack.style.animationPlayState = 'paused';
    });
    marqueeTrack.addEventListener('mouseleave', function () {
      marqueeTrack.style.animationPlayState = 'running';
    });
  }

  // ── Newsletter form: basic UX feedback ─────────────────────────────────────
  var nlForm = document.querySelector('.bw-newsletter__form');
  if (nlForm) {
    nlForm.addEventListener('submit', function (e) {
      e.preventDefault();
      var btn = nlForm.querySelector('button[type="submit"]');
      if (btn) {
        btn.textContent = '✓ Subscribed!';
        btn.disabled = true;
        btn.style.background = '#1a7f3c';
        btn.style.borderColor = '#1a7f3c';
      }
    });
  }

  // ── Contact / Partner forms: basic UX feedback ──────────────────────────────
  document.querySelectorAll('.bw-form').forEach(function (form) {
    form.addEventListener('submit', function (e) {
      // Let WP process the form normally; just add a loading state
      var btn = form.querySelector('button[type="submit"]');
      if (btn) {
        btn.textContent = 'Sending…';
        btn.disabled = true;
      }
    });
  });

  // ── WooCommerce cart count live update (fragments) ───────────────────────────
  // WooCommerce fires 'wc_fragments_refreshed' after cart updates
  document.body.addEventListener('wc_fragments_refreshed', function () {
    // The count fragment is already handled by WooCommerce fragments via PHP
    // This is a hook in case custom count updates are needed
  });

})();

Youez - 2016 - github.com/yon3zu
LinuXploit