Skip to content

Commit 97612a2

Browse files
committed
Update snippet if domain updated
1 parent c40997a commit 97612a2

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

src/app/code/community/Zendesk/Zendesk/Model/Observer.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,21 @@ public function saveConfig(Varien_Event_Observer $observer)
9797
Mage::getModel('core/config')->saveConfig('contacts/email/recipient_email', $oldEmail, $scope, $scopeId);
9898
}
9999
}
100+
101+
// If the zendesk domain is not found in the web widget snippet (wrapped with quotes), generate it again
102+
$zDomain = Mage::getStoreConfig('zendesk/general/domain', $storeCode);
103+
$widgetSnippet = Mage::getStoreConfig('zendesk/frontend_features/web_widget_code_snippet', $storeCode);
104+
$escapedDomain = str_replace('.', '\.', $zDomain);
105+
$pattern = "/['\"]{$escapedDomain}['\"]/isu";
106+
if(preg_match($pattern, $widgetSnippet) < 1) {
107+
$webWidgetSnippet=<<<EOJS
108+
<!-- Start of Zendesk Widget script -->
109+
<script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("//assets.zendesk.com/embeddable_framework/main.js","{$zDomain}");/*]]>*/</script>
110+
<!-- End of Zendesk Widget script -->
111+
EOJS;
112+
113+
Mage::getModel('core/config')->saveConfig('zendesk/frontend_features/web_widget_code_snippet', $webWidgetSnippet);
114+
}
100115
}
101116

102117
public function addTicketButton(Varien_Event_Observer $event)

0 commit comments

Comments
 (0)