{"id":87,"date":"2022-05-25T02:07:41","date_gmt":"2022-05-25T02:07:41","guid":{"rendered":"http:\/\/sw-themes.com\/porto_dummy\/?post_type=porto_builder&#038;p=87"},"modified":"2026-03-24T01:03:57","modified_gmt":"2026-03-24T07:03:57","slug":"custom-footer","status":"publish","type":"porto_builder","link":"https:\/\/tzlogistica.com\/en\/?porto_builder=custom-footer","title":{"rendered":"Custom Footer"},"content":{"rendered":"<section class=\"wpb-content-wrapper\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row top-row fondo-bg-foo vc_custom_1721811474869 no-padding porto_stretch_css stretch_row_content_css vc_row-has-fill porto-inner-container\"><div class=\"porto-wrap-container container\"><div class=\"row align-items-center\"><div class=\"vc_column_container col-md-3\"><div class=\"wpb_wrapper vc_column-inner\">\r\n\t<div class=\"wpb_single_image wpb_content_element vc_align_center   logofo wpb_custom_81a4f7ef9830bf958462581aa01150fb\"><div class=\"wpb_wrapper\">\r\n\t\t\t\r\n\t\t\t<a href=\"https:\/\/tzlogistica.com\/en\/\" target=\"_self\"><div class=\"vc_single_image-wrapper   vc_box_border_grey\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/tzlogistica.com\/wp-content\/uploads\/2022\/05\/logo-tz-flecha.webp\" class=\"vc_single_image-img attachment-full\" alt=\"\" title=\"logo tz arrow\" srcset=\"https:\/\/tzlogistica.com\/wp-content\/uploads\/2022\/05\/logo-tz-flecha.webp 500w, https:\/\/tzlogistica.com\/wp-content\/uploads\/2022\/05\/logo-tz-flecha-400x400.webp 400w, https:\/\/tzlogistica.com\/wp-content\/uploads\/2022\/05\/logo-tz-flecha-367x367.webp 367w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/div><\/a>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div><\/div><div class=\"vc_column_container col-md-6\"><div class=\"wpb_wrapper vc_column-inner\">\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<ul class=\"contenedor-enlaces\">\n  <li class=\"enlace\"><a href=\"https:\/\/tzlogistica.com\/en\/\">Start<\/a><\/li>\n  <li class=\"enlace\"><a href=\"https:\/\/tzlogistica.com\/en\/nosotros\/\">About Us<\/a><\/li>\n  <li class=\"enlace\"><a href=\"https:\/\/tzlogistica.com\/en\/equipo\/\">Team<\/a><\/li>\n  <li class=\"enlace\"><a href=\"https:\/\/tzlogistica.com\/en\/news\/\">Blog<\/a><\/li>\n  <li class=\"enlace\"><a href=\"https:\/\/tzlogistica.com\/en\/contacto\/\">Contact<\/a><\/li>\n<\/ul>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_column_container col-md-3\"><div class=\"wpb_wrapper vc_column-inner\"><div class=\"share-links wpb_custom_fe867886a9d5a7ef9b1e9058027ab7f1\">\t\t<a target=\"_blank\"  rel=\"nofollow noopener noreferrer\" class=\"share-facebook\" href=\"https:\/\/www.facebook.com\/TZlogistica\" title=\"Facebook\"><\/a>\r\n\t\t\t\t<a target=\"_blank\"  rel=\"nofollow noopener noreferrer\" class=\"share-instagram\" href=\"https:\/\/www.instagram.com\/tzlogistica\/\" title=\"Instagram\"><\/a>\r\n\t\t\t\t<a target=\"_blank\"  rel=\"nofollow noopener noreferrer\" class=\"share-linkedin\" href=\"https:\/\/www.linkedin.com\/in\/jorge-zozaya\/\" title=\"LinkedIn\"><\/a>\r\n\t\t<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><div class=\"vc_row wpb_row row top-row\"><div class=\"vc_column_container col-md-12\"><div class=\"wpb_wrapper vc_column-inner\">\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div id=\"wa-widget-container\"\n     class=\"wa-widget-closed\"\n     data-wa-phone=\"5219992761590\"\n     data-wa-autoshow=\"5000\"\n     data-wa-widget-name=\"whatsapp_widget\"\n     data-wa-track-prefix=\"wa\">\n\n  <!-- Bot\u00f3n flotante -->\n  <button id=\"wa-btn-toggle\" class=\"wa-btn-shadow\" type=\"button\" aria-label=\"Open or close WhatsApp chat\">\n    <i class=\"fa-brands fa-whatsapp wa-fa-icon\" aria-hidden=\"true\"><\/i>\n    <span class=\"wa-notification-badge\" id=\"wa-badge\">1<\/span>\n  <\/button>\n\n  <!-- Ventana de chat -->\n  <div id=\"wa-chat-window\" aria-label=\"WhatsApp chat\" aria-hidden=\"true\">\n    <div class=\"wa-header\">\n      <div class=\"wa-header-info\">\n        <span class=\"wa-avatar\" aria-hidden=\"true\">\n          <i class=\"fa-brands fa-whatsapp\"><\/i>\n        <\/span>\n        <div class=\"wa-header-text\">\n          <div class=\"wa-title\">WhatsApp Support<\/div>\n          <div class=\"wa-subtitle\">They usually respond within 1 hour.<\/div>\n        <\/div>\n      <\/div>\n      <button id=\"wa-btn-close\" type=\"button\" aria-label=\"Close chat\">\u00d7<\/button>\n    <\/div>\n\n    <div id=\"wa-chat-body\"><\/div>\n\n    <div class=\"wa-footer\">\n      <input type=\"text\" id=\"wa-input\" placeholder=\"Write your name...\" autocomplete=\"off\">\n      <button id=\"wa-btn-send\" type=\"button\" aria-label=\"Send message\">\n        <svg viewbox=\"0 0 24 24\" width=\"20\" height=\"20\" aria-hidden=\"true\">\n          <path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"><\/path>\n        <\/svg>\n      <\/button>\n    <\/div>\n\n    <div class=\"wa-credit-wrap\">\n      <a class=\"wa-credit-link\" href=\"https:\/\/kanzansio.digital\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\n        by KanZansio.Digital\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  #wa-widget-container,\n  #wa-widget-container * {\n    box-sizing: border-box;\n  }\n\n  #wa-widget-container {\n    position: fixed;\n    bottom: 20px;\n    left: 20px;\n    z-index: 99999;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n  }\n\n  #wa-btn-toggle {\n    width: 60px;\n    height: 60px;\n    border: 0;\n    border-radius: 50%;\n    background: #25d366;\n    color: #fff;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.18);\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    position: relative;\n    transition: transform 0.2s ease, box-shadow 0.2s ease;\n    -webkit-tap-highlight-color: transparent;\n  }\n\n  #wa-btn-toggle:hover,\n  #wa-btn-toggle:focus-visible {\n    transform: scale(1.05);\n    box-shadow: 0 8px 24px rgba(0,0,0,0.2);\n    outline: none;\n  }\n\n  .wa-fa-icon {\n    font-size: 33px;\n    line-height: 1;\n    pointer-events: none;\n  }\n\n  .wa-notification-badge {\n    position: absolute;\n    top: -2px;\n    right: -2px;\n    width: 20px;\n    height: 20px;\n    border-radius: 50%;\n    background: #ff3b30;\n    color: #fff;\n    font-size: 11px;\n    font-weight: 700;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    border: 2px solid #fff;\n  }\n\n  #wa-chat-window {\n    position: absolute;\n    bottom: 78px;\n    left: 0;\n    width: 320px;\n    max-width: min(320px, calc(100vw - 32px));\n    height: 420px;\n    max-height: min(420px, calc(100vh - 120px));\n    background: #e5ddd5;\n    border-radius: 14px;\n    box-shadow: 0 12px 40px rgba(0,0,0,0.18);\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n    transform: translateY(16px) scale(0.98);\n    transform-origin: bottom left;\n    transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;\n  }\n\n  .wa-widget-open #wa-chat-window {\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n    transform: translateY(0) scale(1);\n  }\n\n  .wa-header {\n    background: #075e54;\n    color: #fff;\n    padding: 14px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n  }\n\n  .wa-header-info {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    min-width: 0;\n  }\n\n  .wa-avatar {\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: rgba(255,255,255,0.16);\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 20px;\n    flex: 0 0 auto;\n  }\n\n  .wa-header-text {\n    min-width: 0;\n  }\n\n  .wa-title {\n    font-weight: 700;\n    font-size: 16px;\n    line-height: 1.2;\n  }\n\n  .wa-subtitle {\n    font-size: 12px;\n    opacity: 0.85;\n    margin-top: 2px;\n  }\n\n  #wa-btn-close {\n    border: 0;\n    background: transparent;\n    color: #fff;\n    font-size: 28px;\n    line-height: 1;\n    cursor: pointer;\n    padding: 0 4px;\n    flex: 0 0 auto;\n  }\n\n  #wa-chat-body {\n    flex: 1;\n    padding: 15px;\n    overflow-y: auto;\n    background-image: url('https:\/\/user-images.githubusercontent.com\/15075759\/28719144-86dc0f70-73b1-11e7-911d-60d70fcded21.png');\n    background-color: #e5ddd5;\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n  }\n\n  .wa-msg {\n    max-width: 82%;\n    padding: 8px 12px;\n    border-radius: 8px;\n    font-size: 14px;\n    line-height: 1.45;\n    box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);\n    word-break: break-word;\n  }\n\n  .wa-msg-agent {\n    align-self: flex-start;\n    background: #fff;\n    border-top-left-radius: 0;\n  }\n\n  .wa-msg-user {\n    align-self: flex-end;\n    background: #dcf8c6;\n    border-top-right-radius: 0;\n  }\n\n  .wa-msg-meta {\n    margin-top: 4px;\n    font-size: 10px;\n    color: #7d7d7d;\n    text-align: right;\n  }\n\n  .wa-typing {\n    align-self: flex-start;\n    background: #fff;\n    border-top-left-radius: 0;\n    display: inline-flex;\n    align-items: center;\n    gap: 4px;\n    min-height: 38px;\n  }\n\n  .wa-typing-dot {\n    width: 7px;\n    height: 7px;\n    border-radius: 50%;\n    background: #9aa0a6;\n    opacity: 0.45;\n    animation: waTypingBounce 1.2s infinite ease-in-out;\n  }\n\n  .wa-typing-dot:nth-child(2) {\n    animation-delay: 0.15s;\n  }\n\n  .wa-typing-dot:nth-child(3) {\n    animation-delay: 0.3s;\n  }\n\n  @keyframes waTypingBounce {\n    0%, 80%, 100% {\n      transform: translateY(0);\n      opacity: 0.35;\n    }\n    40% {\n      transform: translateY(-3px);\n      opacity: 0.95;\n    }\n  }\n\n  .wa-credit-wrap {\n    padding: 6px 12px 4px;\n    background: #f7f7f7;\n    border-top: 1px solid rgba(0,0,0,0.06);\n    text-align: center;\n  }\n\n  .wa-credit-link {\n    color: #667781;\n    font-size: 11px;\n    line-height: 1.2;\n    text-decoration: none;\n    transition: color 0.2s ease;\n  }\n\n  .wa-credit-link:hover,\n  .wa-credit-link:focus-visible {\n    color: #075e54;\n    text-decoration: underline;\n    outline: none;\n  }\n\n  .wa-footer {\n    background: #f0f0f0;\n    padding: 10px;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  #wa-input {\n    flex: 1;\n    min-width: 0;\n    border: 0;\n    outline: none;\n    border-radius: 20px;\n    padding: 10px 14px;\n    font-size: 14px;\n  }\n\n  #wa-btn-send {\n    border: 0;\n    background: transparent;\n    cursor: pointer;\n    padding: 4px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  #wa-btn-send svg {\n    fill: #666;\n    display: block;\n  }\n\n  @media (max-width: 480px) {\n    #wa-widget-container {\n      left: 16px;\n      bottom: 16px;\n    }\n\n    #wa-chat-window {\n      width: min(320px, calc(100vw - 32px));\n      height: min(420px, calc(100vh - 110px));\n    }\n  }\n<\/style>\n\n<script>\n(() => {\n  const root = document.getElementById('wa-widget-container');\n  if (!root || root.dataset.waInit === '1') return;\n  root.dataset.waInit = '1';\n\n  injectFontAwesome();\n\n  const phone = String(root.dataset.waPhone || '').replace(\/\\D\/g, '');\n  const autoShowMs = Math.max(Number(root.dataset.waAutoshow || 5000), 0);\n  const widgetName = String(root.dataset.waWidgetName || 'whatsapp_widget').trim() || 'whatsapp_widget';\n  const trackPrefix = (String(root.dataset.waTrackPrefix || 'wa').trim().toLowerCase().replace(\/[^a-z0-9_]\/g, '')) || 'wa';\n  if (!phone) {\n    console.warn('WA Widget: falta data-wa-phone');\n    return;\n  }\n\n  const KEY_SENT = 'wa_widget_sent_v4';\n  const KEY_AUTOSHOW = 'wa_autoshown_v4';\n\n  const $ = (selector) => root.querySelector(selector);\n  const ui = {\n    toggle: $('#wa-btn-toggle'),\n    close: $('#wa-btn-close'),\n    body: $('#wa-chat-body'),\n    input: $('#wa-input'),\n    send: $('#wa-btn-send'),\n    badge: $('#wa-badge'),\n    window: $('#wa-chat-window')\n  };\n\n  if (!ui.toggle || !ui.close || !ui.body || !ui.input || !ui.send || !ui.window) {\n    console.warn('WA Widget: faltan elementos requeridos en el DOM');\n    return;\n  }\n\n  const TEXTS = {\n    welcome: 'Hola, es un gusto verte aqu\u00ed.',\n    askName: 'Para poder ayudarte, \u00bfnos dar\u00edas tu nombre?',\n    askEmail: '\u00bfPodr\u00edas indicarnos un correo electr\u00f3nico? (Opcional)',\n    placeholderName: 'Escribe tu nombre...',\n    placeholderEmail: 'ejemplo@correo.com',\n    handoff: 'Perfecto, te redirijo a WhatsApp para continuar...'\n  };\n\n  let step = 'name';\n  let name = '';\n  let email = '';\n  let autoShowTimer = null;\n  let messageQueue = Promise.resolve();\n  let typingNode = null;\n\n  function injectFontAwesome() {\n    if (document.getElementById('wa-fontawesome-cdn')) return;\n    const link = document.createElement('link');\n    link.id = 'wa-fontawesome-cdn';\n    link.rel = 'stylesheet';\n    link.href = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.2\/css\/all.min.css';\n    link.referrerPolicy = 'no-referrer';\n    document.head.appendChild(link);\n  }\n\n  function getTrackingEventName(action) {\n    return `${trackPrefix}_${action}`;\n  }\n\n  function pushTracking(action, extra = {}) {\n    try {\n      window.dataLayer = window.dataLayer || [];\n      window.dataLayer.push({\n        event: getTrackingEventName(action),\n        widget_name: widgetName,\n        widget_channel: 'whatsapp',\n        widget_location: 'floating',\n        lead_step: step,\n        ...extra\n      });\n    } catch (_) {}\n  }\n\n  function nowTime() {\n    const d = new Date();\n    return `${d.getHours()}:${String(d.getMinutes()).padStart(2, '0')}`;\n  }\n\n  function addMsg(kind, text) {\n    const wrap = document.createElement('div');\n    wrap.className = `wa-msg wa-msg-${kind}`;\n\n    const txt = document.createElement('div');\n    txt.textContent = text;\n\n    const meta = document.createElement('div');\n    meta.className = 'wa-msg-meta';\n    meta.textContent = nowTime();\n\n    wrap.appendChild(txt);\n    wrap.appendChild(meta);\n    ui.body.appendChild(wrap);\n    ui.body.scrollTop = ui.body.scrollHeight;\n  }\n\n  function wait(ms) {\n    return new Promise((resolve) => window.setTimeout(resolve, ms));\n  }\n\n  function getTypingDelay(text, opts = {}) {\n    const clean = String(text || '').trim();\n    const base = opts.base ?? 450;\n    const perChar = opts.perChar ?? 22;\n    const max = opts.max ?? 2200;\n    const jitter = Math.floor(Math.random() * 220);\n    return Math.min(max, base + (clean.length * perChar) + jitter);\n  }\n\n  function showTyping() {\n    hideTyping();\n    typingNode = document.createElement('div');\n    typingNode.className = 'wa-msg wa-typing';\n    typingNode.setAttribute('aria-label', 'Escribiendo');\n    typingNode.innerHTML = '<span class=\"wa-typing-dot\"><\/span><span class=\"wa-typing-dot\"><\/span><span class=\"wa-typing-dot\"><\/span>';\n    ui.body.appendChild(typingNode);\n    ui.body.scrollTop = ui.body.scrollHeight;\n  }\n\n  function hideTyping() {\n    if (typingNode && typingNode.parentNode) {\n      typingNode.parentNode.removeChild(typingNode);\n    }\n    typingNode = null;\n  }\n\n  function queueAgentMessage(text, opts = {}) {\n    messageQueue = messageQueue.then(async () => {\n      if (!root.classList.contains('wa-widget-open')) return;\n      const preDelay = opts.preDelay ?? 0;\n      if (preDelay > 0) await wait(preDelay);\n      if (!root.classList.contains('wa-widget-open')) return;\n      showTyping();\n      await wait(getTypingDelay(text, opts));\n      hideTyping();\n      if (!root.classList.contains('wa-widget-open')) return;\n      addMsg('agent', text);\n    });\n    return messageQueue;\n  }\n\n  function agent(text, opts) {\n    return queueAgentMessage(text, opts);\n  }\n\n  function user(text) {\n    hideTyping();\n    addMsg('user', text);\n  }\n\n  function looksLikeEmail(value) {\n    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(value);\n  }\n\n  function isSkip(value) {\n    const s = String(value || '').trim().toLowerCase();\n    return s === '' || ['no', 'nop', 'no gracias', 'prefiero no', 'prefiero no decirlo', 'no deseo', 'no quiero'].includes(s);\n  }\n\n  function buildWaUrl(message) {\n    const base = `https:\/\/wa.me\/${phone}`;\n    return message ? `${base}?text=${encodeURIComponent(message)}` : base;\n  }\n\n  function storageGet(key, source) {\n    try {\n      return source.getItem(key);\n    } catch (_) {\n      return null;\n    }\n  }\n\n  function storageSet(key, value, source) {\n    try {\n      source.setItem(key, value);\n    } catch (_) {}\n  }\n\n  function alreadySent() {\n    return storageGet(KEY_SENT, localStorage) === '1';\n  }\n\n  function markSent() {\n    storageSet(KEY_SENT, '1', localStorage);\n  }\n\n  function buildMessage() {\n    const parts = [`Hola, mi nombre es ${name}.`];\n    if (email) parts.push(`Mi correo es ${email}.`);\n    parts.push('Quisiera informaci\u00f3n.');\n    return parts.join(' ');\n  }\n\n  function hideBadge() {\n    if (ui.badge) ui.badge.style.display = 'none';\n  }\n\n  function clearAutoShow() {\n    if (autoShowTimer) {\n      clearTimeout(autoShowTimer);\n      autoShowTimer = null;\n    }\n  }\n\n  function openChat(source = 'manual') {\n    clearAutoShow();\n    root.classList.add('wa-widget-open');\n    root.classList.remove('wa-widget-closed');\n    ui.window.setAttribute('aria-hidden', 'false');\n    hideBadge();\n\n    pushTracking('widget_open', {\n      open_source: source,\n      already_sent: alreadySent()\n    });\n\n    if (!ui.body.children.length) {\n      messageQueue = Promise.resolve();\n      agent(TEXTS.welcome, { base: 700, perChar: 18, max: 1700 });\n      agent(TEXTS.askName, { preDelay: 240, base: 900, perChar: 24, max: 2200 }).then(() => {\n        ui.body.dataset.waAskedName = '1';\n      });\n    }\n\n    window.setTimeout(() => {\n      ui.input.focus({ preventScroll: true });\n    }, 30);\n  }\n\n  function closeChat() {\n    if (root.classList.contains('wa-widget-open')) {\n      pushTracking('widget_close', {\n        already_sent: alreadySent()\n      });\n    }\n\n    root.classList.remove('wa-widget-open');\n    root.classList.add('wa-widget-closed');\n    ui.window.setAttribute('aria-hidden', 'true');\n  }\n\n  function reset() {\n    step = 'name';\n    name = '';\n    email = '';\n    messageQueue = Promise.resolve();\n    hideTyping();\n    ui.body.replaceChildren();\n    delete ui.body.dataset.waAskedName;\n    ui.input.value = '';\n    ui.input.type = 'text';\n    ui.input.placeholder = TEXTS.placeholderName;\n  }\n\n  function openWA(message, extra = {}) {\n    const url = buildWaUrl(message);\n\n    pushTracking('whatsapp_redirect', {\n      lead_completed: true,\n      email_provided: Boolean(email),\n      ...extra\n    });\n\n    markSent();\n\n    const win = window.open(url, '_blank', 'noopener,noreferrer');\n    if (!win) {\n      window.setTimeout(() => {\n        window.location.href = url;\n      }, 120);\n      return;\n    }\n  }\n\n  async function onSend() {\n    const raw = ui.input.value || '';\n    const text = raw.trim();\n    if (!text) return;\n\n    user(text);\n    ui.input.value = '';\n\n    if (step === 'name') {\n      name = text;\n      pushTracking('lead_name_submitted', {\n        lead_step_completed: 'name'\n      });\n      step = 'email';\n      ui.input.type = 'email';\n      ui.input.placeholder = TEXTS.placeholderEmail;\n      await agent(TEXTS.askEmail, { base: 850, perChar: 24, max: 2100, preDelay: 260 });\n      window.setTimeout(() => ui.input.focus({ preventScroll: true }), 30);\n      return;\n    }\n\n    if (step === 'email') {\n      email = !isSkip(text) && looksLikeEmail(text) ? text : '';\n      pushTracking('lead_email_submitted', {\n        lead_step_completed: 'email',\n        email_provided: Boolean(email)\n      });\n      await agent(TEXTS.handoff, { base: 650, perChar: 20, max: 1700, preDelay: 220 });\n      pushTracking('lead_handoff_ready', {\n        email_provided: Boolean(email)\n      });\n      window.setTimeout(() => {\n        openWA(buildMessage(), {\n          trigger_source: 'widget_handoff',\n          email_provided: Boolean(email)\n        });\n        closeChat();\n        reset();\n      }, 260);\n    }\n  }\n\n  function toggleChat() {\n    if (alreadySent()) {\n      pushTracking('returning_click', {\n        already_sent: true\n      });\n      openWA('Hola, quisiera informaci\u00f3n.', {\n        trigger_source: 'returning_click'\n      });\n      return;\n    }\n\n    if (root.classList.contains('wa-widget-open')) {\n      closeChat();\n    } else {\n      openChat('manual');\n    }\n  }\n\n  ui.toggle.addEventListener('click', toggleChat);\n  ui.close.addEventListener('click', (event) => {\n    event.preventDefault();\n    closeChat();\n  });\n  ui.send.addEventListener('click', onSend);\n  ui.input.addEventListener('keydown', (event) => {\n    if (event.key === 'Enter') {\n      event.preventDefault();\n      onSend();\n    }\n  });\n\n  if (!alreadySent()) {\n    if (storageGet(KEY_AUTOSHOW, sessionStorage) !== '1') {\n      autoShowTimer = window.setTimeout(() => {\n        if (!root.classList.contains('wa-widget-open')) {\n          openChat('auto');\n        }\n        storageSet(KEY_AUTOSHOW, '1', sessionStorage);\n      }, autoShowMs);\n    }\n  } else {\n    hideBadge();\n  }\n})();\n<\/script>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div>\n<\/section>","protected":false},"author":1,"featured_media":0,"template":"","porto_builder_type":[5],"class_list":["post-87","porto_builder","type-porto_builder","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.12 (Yoast SEO v20.12) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Custom Footer - Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tzlogistica.com\/en\/?porto_builder=custom-footer\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom Footer\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tzlogistica.com\/en\/?porto_builder=custom-footer\" \/>\n<meta property=\"og:site_name\" content=\"Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TZlogistica\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-24T07:03:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tzlogistica.com\/wp-content\/uploads\/2024\/07\/bodegas-personal-tz.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1980\" \/>\n\t<meta property=\"og:image:height\" content=\"1011\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/tzlogistica.com\/?porto_builder=custom-footer\",\"url\":\"https:\/\/tzlogistica.com\/?porto_builder=custom-footer\",\"name\":\"Custom Footer - Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica\",\"isPartOf\":{\"@id\":\"https:\/\/tzlogistica.com\/#website\"},\"datePublished\":\"2022-05-25T02:07:41+00:00\",\"dateModified\":\"2026-03-24T07:03:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/tzlogistica.com\/?porto_builder=custom-footer#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/tzlogistica.com\/?porto_builder=custom-footer\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/tzlogistica.com\/?porto_builder=custom-footer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/tzlogistica.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom Footer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/tzlogistica.com\/#website\",\"url\":\"https:\/\/tzlogistica.com\/\",\"name\":\"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO\",\"description\":\"Soluciones integrales de log\u00edstica, almacenamiento y distribuci\u00f3n en el sureste de M\u00e9xico. Optimizamos tu operaci\u00f3n con eficiencia y control.\",\"publisher\":{\"@id\":\"https:\/\/tzlogistica.com\/#organization\"},\"alternateName\":\"Log\u00edstica TZ - LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/tzlogistica.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/tzlogistica.com\/#organization\",\"name\":\"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO\",\"alternateName\":\"Log\u00edstica TZ - Servicios de log\u00edstica y transporte\",\"url\":\"https:\/\/tzlogistica.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/tzlogistica.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/tzlogistica.com\/wp-content\/uploads\/2023\/03\/logoTZ-1.png\",\"contentUrl\":\"https:\/\/tzlogistica.com\/wp-content\/uploads\/2023\/03\/logoTZ-1.png\",\"width\":550,\"height\":550,\"caption\":\"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO\"},\"image\":{\"@id\":\"https:\/\/tzlogistica.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/TZlogistica\",\"https:\/\/www.instagram.com\/tzlogistica\/\",\"https:\/\/www.linkedin.com\/in\/jorge-zozaya\/\"],\"publishingPrinciples\":\"https:\/\/tzlogistica.com\/nosotros\/\",\"ownershipFundingInfo\":\"https:\/\/tzlogistica.com\/equipo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Custom Footer - Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tzlogistica.com\/en\/?porto_builder=custom-footer","og_locale":"en_US","og_type":"article","og_title":"Custom Footer","og_url":"https:\/\/tzlogistica.com\/en\/?porto_builder=custom-footer","og_site_name":"Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica","article_publisher":"https:\/\/www.facebook.com\/TZlogistica","article_modified_time":"2026-03-24T07:03:57+00:00","og_image":[{"width":1980,"height":1011,"url":"https:\/\/tzlogistica.com\/wp-content\/uploads\/2024\/07\/bodegas-personal-tz.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tzlogistica.com\/?porto_builder=custom-footer","url":"https:\/\/tzlogistica.com\/?porto_builder=custom-footer","name":"Custom Footer - Log\u00edstica, Almacenamiento y Distribuci\u00f3n en el Sureste de M\u00e9xico | TZ Log\u00edstica","isPartOf":{"@id":"https:\/\/tzlogistica.com\/#website"},"datePublished":"2022-05-25T02:07:41+00:00","dateModified":"2026-03-24T07:03:57+00:00","breadcrumb":{"@id":"https:\/\/tzlogistica.com\/?porto_builder=custom-footer#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tzlogistica.com\/?porto_builder=custom-footer"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tzlogistica.com\/?porto_builder=custom-footer#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tzlogistica.com\/"},{"@type":"ListItem","position":2,"name":"Custom Footer"}]},{"@type":"WebSite","@id":"https:\/\/tzlogistica.com\/#website","url":"https:\/\/tzlogistica.com\/","name":"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO","description":"Soluciones integrales de log\u00edstica, almacenamiento y distribuci\u00f3n en el sureste de M\u00e9xico. Optimizamos tu operaci\u00f3n con eficiencia y control.","publisher":{"@id":"https:\/\/tzlogistica.com\/#organization"},"alternateName":"Log\u00edstica TZ - LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tzlogistica.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/tzlogistica.com\/#organization","name":"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO","alternateName":"Log\u00edstica TZ - Servicios de log\u00edstica y transporte","url":"https:\/\/tzlogistica.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/tzlogistica.com\/#\/schema\/logo\/image\/","url":"https:\/\/tzlogistica.com\/wp-content\/uploads\/2023\/03\/logoTZ-1.png","contentUrl":"https:\/\/tzlogistica.com\/wp-content\/uploads\/2023\/03\/logoTZ-1.png","width":550,"height":550,"caption":"LOGISTICA INTEGRAL EN EL SURESTE DE M\u00c9XICO. ALMACENAMIENTO Y TRANSPORTE A LA MEDIDA. OPTIMIZA TU CADENA DE SUMINISTRO"},"image":{"@id":"https:\/\/tzlogistica.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TZlogistica","https:\/\/www.instagram.com\/tzlogistica\/","https:\/\/www.linkedin.com\/in\/jorge-zozaya\/"],"publishingPrinciples":"https:\/\/tzlogistica.com\/nosotros\/","ownershipFundingInfo":"https:\/\/tzlogistica.com\/equipo\/"}]}},"_links":{"self":[{"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/porto_builder\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/porto_builder"}],"about":[{"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/types\/porto_builder"}],"author":[{"embeddable":true,"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/media?parent=87"}],"wp:term":[{"taxonomy":"porto_builder_type","embeddable":true,"href":"https:\/\/tzlogistica.com\/en\/wp-json\/wp\/v2\/porto_builder_type?post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}