jamescolin

use email personalization substitutes inside your SystemeIO thank you pages

Dec 31st, 2023 (edited)
1,444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2. /* use email personalization substitutes inside your SystemeIO thank you pages
  3. {email} - Email
  4. {first_name} - First name
  5. {surname} - Last name
  6. {street_address} - Street address
  7. {street_number} - Street number
  8. {neighborhood} - Neighborhood
  9. {postcode} - Postal code
  10. {city} - City
  11. {state} - State/Province
  12. {country} - Country
  13. {phone_number} - Phone number
  14. {company_name} - Company name
  15. {tax_number} - Tax number
  16. */
  17.  
  18. window.addEventListener("load", function() {
  19.   const regexPattern = /\{([^}]*)\}/g;
  20.   var jamesdivs = jamescontains('div', regexPattern);
  21.   jamesdivs.forEach(function(element) {
  22.     if (element.textContent.search('jamescontains') == -1) {
  23.       jamesreplace(element, regexPattern, jamesreplaceSessionValues);
  24.     }
  25.   });
  26. });
  27.  
  28. const jamesreplaceSessionValues = (match, variableName) => {
  29.   const sessionValue = sessionStorage.getItem(variableName);
  30.   return sessionValue !== null ? sessionValue : '';
  31. };
  32.  
  33. function jamescontains(selector, text) {
  34.   var elements = document.querySelectorAll(selector);
  35.   return Array.prototype.filter.call(elements, function(element) {
  36.     return RegExp(text).test(element.textContent);
  37.   });
  38. }
  39.  
  40. function jamesreplace(element, pattern, replacement) {
  41.   for (let node of element.childNodes) {
  42.     switch (node.nodeType) {
  43.       case Node.ELEMENT_NODE:
  44.         jamesreplace(node, pattern, replacement);
  45.         break;
  46.       case Node.TEXT_NODE:
  47.         node.textContent = node.textContent.replace(pattern, replacement);
  48.         break;
  49.       case Node.DOCUMENT_NODE:
  50.         jamesreplace(node, pattern, replacement);
  51.     }
  52.   }
  53. }
  54. </script>
Advertisement
Add Comment
Please, Sign In to add comment