Uname: Linux webm012.cluster130.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 8.0.30 [ PHP INFO ] PHP os: Linux
Server Ip: 145.239.37.162
Your Ip: 216.73.216.190
User: dreampi (1009562) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : marketingMixin.js
const installFacebookPixelTracking = () => {
  if (typeof window.fbq === 'undefined') {
    !(function(f, b, e, v, n, t, s) {
      if (f.fbq) return;
      n = f.fbq = function() {
        n.callMethod
          ? n.callMethod.apply(n, arguments)
          : n.queue.push(arguments);
      };
      if (!f._fbq) f._fbq = n;
      n.push = n;
      n.loaded = !0;
      n.version = '2.0';
      n.queue = [];
      t = b.createElement(e);
      t.async = !0;
      t.src = v;
      s = b.getElementsByTagName(e)[0];
      s.parentNode.insertBefore(t, s);
    })(
      window,
      document,
      'script',
      'https://connect.facebook.net/en_US/fbevents.js',
    );
  }
}

const hasAmeliaTracking = (marketing, id) => {
  if (typeof id === 'undefined' || id) {
    if (marketing.googleTag !== null || marketing.googleAnalytics !== null || marketing.facebookPixel !== null) {
      return true
    }
  }

  return false
}

const trackAmeliaData = ($this, marketing, reservation, type) => {
  Object.keys(marketing).forEach((analytics) => {
    if (marketing[analytics] === null || !window.wpAmeliaSettings[analytics].id) {
      return
    }

    let settings = window.wpAmeliaSettings[analytics].tracking[reservation]

    settings.filter(trackingEvent => trackingEvent.type === type).forEach((trackingEvent) => {
      let trackingEventProperties = {}

      let trackingEventData = {}

      switch (analytics) {
        case ('googleTag'): {
          trackingEventData = trackingEvent

          break
        }

        case ('googleAnalytics'):
        case ('facebookPixel'): {
          trackingEvent.data.forEach((item) => {
            if (item.key.trim() !== '' && item.value.trim() !== '') {
              trackingEventData[item.key] = item.value
            }
          })

          break
        }
      }

      Object.keys(trackingEventData).filter(property => analytics === 'googleAnalytics' || analytics === 'facebookPixel' || property !== 'type').forEach((property) => {
        let originalValue = trackingEventData[property]

        let itemProperties = originalValue.replace(/\s\s+/g, ' ').split('%').join('').split(' ')

        itemProperties.forEach((value) => {
          if (value && !Array.isArray(value) && !(typeof value === 'object') && value !== true) {
            let pathParts = value.split('_')

            let referenceObject = pathParts[0] === 'window' ? window : ($this === null ? window : $this.marketing)

            if (pathParts.length > 1) {
              pathParts.forEach((pathPart) => {
                if (typeof referenceObject !== 'undefined' && pathPart in referenceObject && referenceObject[pathPart] !== null) {
                  referenceObject = referenceObject[pathPart]
                } else {
                  return false
                }
              })

              if (!Array.isArray(referenceObject) && !(typeof referenceObject === 'object')) {
                if (value === 'payment_amount' &&
                  referenceObject.endsWith('.00') &&
                  analytics === 'googleTag' &&
                  property === 'value'
                ) {
                  referenceObject = parseInt(referenceObject)
                }

                originalValue = originalValue.split('%' + value + '%').join(referenceObject).trim()
              } else {
                originalValue = originalValue.split('%' + value + '%').join('').trim()
              }
            } else if (typeof referenceObject !== 'undefined' && value in referenceObject) {
              if (!Array.isArray(referenceObject[value]) && !(typeof referenceObject[value] === 'object')) {
                if (value === 'payment_amount' &&
                  referenceObject[value].endsWith('.00') &&
                  analytics === 'googleTag' &&
                  property === 'value'
                ) {
                  referenceObject[value] = parseInt(referenceObject[value])
                }

                originalValue = originalValue.split('%' + value + '%').join(referenceObject[value]).trim()
              } else {
                originalValue = originalValue.split('%' + value + '%').join('').trim()
              }
            }
          }
        })

        trackingEventProperties[property] = originalValue
      })

      switch (analytics) {
        case ('googleTag'): {
          marketing[analytics].event(
            trackingEventProperties.action,
            {
              event_category: trackingEventProperties.category,
              event_label: trackingEventProperties.label,
              value: trackingEventProperties.value
            }
          )

          break
        }

        case ('googleAnalytics'): {
          marketing[analytics].event(
            trackingEvent.event,
            trackingEventProperties
          )

          break
        }

        case ('facebookPixel'): {
          marketing[analytics].event(
            trackingEvent.event,
            trackingEventProperties
          )

          break
        }
      }
    })
  })
}

export default {
  installFacebookPixelTracking,
  hasAmeliaTracking,
  trackAmeliaData
}
© 2026 GrazzMean-Shell