Troubleshooting EngageBox

Published in EngageBox
Updated 11 Dec, 2020

Here's a troubleshooting guide to help you identify and fix issues with the EngageBox extension.

Detecting Javascript Errors

View your site using Chrome or Firefox and press F12 to open up the Developer Tools. Then click on the "Console" tab which shows any Javascript errors that your site may be experiencing. If there is an error, it will include a filename and line number. If the filename is within a plugin, try deactivating that plugin and reload the page. This first step is critical, so don’t overlook it.

Look for multiple instances of jQuery

This issue concerns only EngageBox 3.x versions

Right click on your page and select "view source." With the source opened, use the search feature of your browser (often CTRL + F) to search for ‘jQuery’ without the single quotes. Paging through the results, look for multiple instances of jQuery.js, jQuery.1.4.0.js, jQuery.1.8.3.min.js, or something similar. If you locate numerous inclusions of jQuery, you have probably uncovered the cause of your issues. Try to find which extensions are making the calls and deactivating them one by one. Once you find the culprit, feel free to email their support team asking them to fix their poor coding choices.

Other Things to Check

Here's a list of things to check when a box is not showing up.

  • Be sure the System - EngageBox Plugin is installed and enabled.
  • Be sure it is published
  • Be sure you assigned it to the correct pages
  • Be sure you've set the correct "Access Level"
    • If set to "Registered" you need to login
    • If set to "Guest" you need to log out
  • If the Trigger Point is set to on Scroll Depth, make sure you've scrolled the page down enough
  • If the Trigger Point is set to on Element Visibility, make sure the Trigger Element exists on the page
  • Be sure you are logged-in as a Super User if Test Mode is enabled.
  • Be sure you've set an appropriate Trigger Delay in milliseconds
  • Clear your cache if caching is enabled
  • If you're using a cache plugin that caches the whole page output such as Page Cache, Page Cache Extended or jSGCache try disabling it
  • If your site is on Offline Mode, make sure the Enable on Offline Mode option is enabled
  • If you are using JCH Optimize System Plugin try to disable the Combine Javascript Files or the Minify Javascript option.
  • In case you're experiencing a Javascript Error try disabling the Load Legacy Script option found in the extension configuration page.
  • Check the Developer Releases section if there's a release candidate available that fixes your issue.

Known Behavior Issues

Here's a list of known issues that you may experience.

Plugin shortcodes remain unparsed

If you have plugins installed that use special code (shortcodes) such as Sourcerer or Google Maps and you want to use them within your box, make sure the Content Prepare option found in the extension's configuration page is enabled. In case the shortcode remains still unparsed, you'll probably need to re-order the EngageBox System Plugin before the plugin the parses the shortcode via the Plugins Manager.

Popup suddenly stopped showing up

If you accidentally clicked on the popup's close button, then a cookie stored on your browser is preventing the appearance of the box. Clear Your Browser's Cookies

The popup keeps showing up and ignores the "After Close Stay Hidden" and/or the "Limit Impressions" options

This is likely to happen for the reasons below:

  • You're seeing an outdated version of the page because it's cached by a cache plugin like System - Page Cache, JotCache, Recache or jSGCache. These cache plugins are causing unexpected and random results on the front-end and it is recommended to be disabled. Instead use the Cache Settings available in the Global Configuration page.
  • Test Mode is enabled: While the popup is on Test Mode, the cookie that is meant to be stored in the visitor's browser to hide the popup, it doesn't get created. This happens to help you test the popup faster, the main reason behind the Test Mode.
  • Your site is not using an SSL: To determine how many times a user has seen a popup, EngageBox is using the cookie nrid to uniquely identify a user. That cookie is using the Secure Flag option which requires the site to be running under https (SSL certificate) in order to be stored in the visitor's browser. If that cookie is missing, EngageBox is unable to decide whether the popup should be displayed to the visitor or not.
  • The Statistics option is disabled either in the extension's configuration page or in the popup's settings in the advanced tab. (Affects the Limit Impressions feature only)
  • A Javascript error is preventing the AJAX request responsible to track the popup impressions from being executed.

I am getting random device-detection results

This problem is probably caused by a Cache plugin such as Page Cache or JotCache. Enabling any of these plugins on your website you are more likely to get random inaccurate Device-Detection results because of the page cache. Try to disable these plugins from the Joomla! Plugin Manager.

The JavaScript Events API calls don't work

If you're using EngageBox 4.x you will need to wrap your code with the onReady method

EngageBox.onReady(function() {
    // your code goes here
});

If you're using EngageBox 3.x you will need to wrap your code with the jQuery self-enclosure

jQuery(function($) {
	// your code goes here
});

Find more details about the JavaScript Events API

PHP Fatal error: Cannot redeclare class Mobile_Detect

EngageBox is using Mobile_Detect, a lightweight PHP library for detecting visitor's device type. To avoid conflicts and PHP errors, the Mobile_Detect library is only loaded if it's not loaded by another extension already. However, there are many Joomla extensions out there which don't make this check, as a result, the following PHP fatal error.

Fatal error: Cannot redeclare class Mobile_Detect in /home/../Mobile_Detect.php on line X

Possible solution: Go to Joomla Plugins Manager and find the EngageBox System Plugin. Then try to re-order it at the end. If the problem persists, please contact the extension's support team and ask them to fix their poor coding.

The Ajax Interface component is missing or is not enabled

It happens sometimes the core Ajax Interface component is missing from your Joomla! installation, however the files are still there. Here's how you can fix it. Go to Extensions -> Manage -> Discover and click on the Discover button. You should see the Ajax Interface component in the list which you can then install.

If the previous step doesn't help, download and install the Ajax Interface component installation zip file from this link.

I see no options in the Content tab

Joomla v3.7 introduced a bug on a mechanism (showOn) which was being used by EngageBox to display vital components like the form fields in the Content tab.

EngageBox Missing Editor

This issue affects only EngageBox v3.2.3 and below versions and the solution to this problem is to update to a most recent version of EngageBox. 

The <script> code changes to <s-cript> on save

This is added due to RSFirewall or any similar extension you might have installed. You should add an exception for EngageBox.

Read more details here.

Why do my boxes not appear correctly when LiteSpeed Cache plugin is enabled?

If you use the LiteSpeed Cache plugin, your boxes may not appear correctly and may sometimes not display at all.

To overcome this issues there are a few things you can do to get EngageBox to start working correctly:

  • Try reordering the LiteSpeed Cache plugin and move it at the end of your Plugins via Extensions > Plugins
  • Try excluding the URLs where the boxes are supposed to appear via the LiteSpeed Cache settings
  • Make sure you are using the latest version of LiteSpeed Cache plugin

Contact Support

If you have progressed through the previous steps but have not been able to resolve your issue, then you are ready to reach out for support. Here’s how to help our support team provide the best possible assistance:

  • Please be specific as to both the problem and your desired functionality for EngageBox, and provide any URL(s) being discussed.
  • Please be concise. If you have multiple questions or a longer message, consider using bullets or numbers to help keep your questions clear and distinct.

Log into your account first and then submit a support ticket through this form.