糖心原创

(see the * 'adobe' handle in functions.php — no async, no defer), so a page-load * Target offer has already set `data-hdr` by the time this runs. * * An answer that lands after this point is inert rather than acted on: * `apply()` finds the prune settled and does nothing, so the visitor * keeps the nav they were served instead of watching it change. That is * the deliberate trade-off — a late activity collects no data, but no * visitor ever sees the wrong nav or waits for the right one. */ (function () { var VARIANTS = ["a","b","c"]; var DEFAULT = "a"; var root = document.documentElement; var settled = false; function valid(v) { return VARIANTS.indexOf(v) !== -1; } function prune(active) { if (settled) return; settled = true; var list = document.querySelectorAll('#site-header > .header-variant'); for (var i = 0; i < list.length; i++) { if (list[i].getAttribute('data-header-variant') !== active) { list[i].parentNode.removeChild(list[i]); } } root.setAttribute('data-hdr', active); // Read by the Adobe Analytics client to attribute the test. root.setAttribute('data-hdr-active', active); if (typeof window.initHeaderNav === 'function') window.initHeaderNav(); /** * `variant` is set before the event so late listeners can tell * "already done" from "not yet". main.js is enqueued in the footer * and therefore always misses the event itself. */ window.medalliaNav.variant = active; document.dispatchEvent(new CustomEvent('medallia:nav-ready', { detail: { variant: active } })); } window.medalliaNav = { variant: null, apply: function (v) { if (valid(v)) prune(v); } }; // `?hv=` sets this server-side; a Target offer in the blocking // embed sets it before the body is parsed. var pre = root.getAttribute('data-hdr'); if (valid(pre)) { prune(pre); return; } /** * Carried forward from an earlier pageview. Read client-side, never in * PHP: WP Engine does not vary its page-cache key on arbitrary cookies, * so server-side personalisation here would serve the first anonymous * visitor's variant to everyone. */ var m = document.cookie.match(/(?:^|; )medallia_nav_variant=([^;]*)/); if (m && valid(m[1])) { prune(m[1]); return; } prune(DEFAULT); })();

Guide

10 Customer Service Email Templates Every Agent Needs

Get expertly crafted templates that will arm your agents with the perfect foundation for reply to any customer ticket they receive and help them keep empathy at the heart of their responses.

Download the ebook now for templates on how to respond when a customer:

  • has a question about company policies,
  • doesn’t get their order on time,
  • found a bug on your website or in your product,
  • has a bad experience over the phone or via chat,
  • …and so much more!

Download Your Free eBook

Oops… looks like we're having trouble. Please refresh the page and try again.

medallia-logo
The form cannot be displayed at this time. Please connect with us via our website chat.

Related Resources