WP Live Chat Support - Version 8.1.6

Version Description

= 8.1.x = Huge update with over 300 changes that include: Bugfixes, Vulnerability Fixes & Plugin Security, Plugin Optimization & Rebranding Updates. We suggest you remove any existing installations of this plugin and install 8.1.x fresh.

Download this release

Release Info

Developer WP-LiveChat
Plugin Icon 128x128 WP Live Chat Support
Version 8.1.6
Comparing to
See all releases

Code changes from version 8.1.5 to 8.1.6

changelog.txt CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  = 8.1.5 - 2019-12-18 =
2
  * Bugfix: edit trigger adds extra quotes and alters html code
3
  * Bugfix: default visitor name cannot be empty
1
+ = 8.1.6 - 2020-01-16 =
2
+ * Bugfix: more optimizations to avoid lots of 403 errors when PHP session expires
3
+ * Bugfix: custom style color picker adds an extra # breaking color code
4
+ * Improvement: improved performance in some timed events
5
+
6
  = 8.1.5 - 2019-12-18 =
7
  * Bugfix: edit trigger adds extra quotes and alters html code
8
  * Bugfix: default visitor name cannot be empty
config.php CHANGED
@@ -7,7 +7,7 @@ if ( ! defined( 'ABSPATH' ) ) {
7
  exit;
8
  }
9
 
10
- define('WPLC_PLUGIN_VERSION', "8.1.5");
11
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
12
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
13
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
7
  exit;
8
  }
9
 
10
+ define('WPLC_PLUGIN_VERSION', "8.1.6");
11
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
12
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
13
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
includes/settings_page.php CHANGED
@@ -1017,25 +1017,25 @@ $wplc_settings = wplc_get_options();
1017
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1018
  <td width='200' valign='top'><?php _e("Palette Color 1",'wp-live-chat-support')?>:</td>
1019
  <td>
1020
- <input id="wplc_settings_color1" name="wplc_settings_color1" type="color" value="<?php if (isset($wplc_settings_color1)) { echo $wplc_settings_color1; } else { echo '0596d4'; } ?>" />
1021
  </td>
1022
  </tr>
1023
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1024
  <td width='200' valign='top'><?php _e("Palette Color 2",'wp-live-chat-support')?>:</td>
1025
  <td>
1026
- <input id="wplc_settings_color2" name="wplc_settings_color2" type="color" value="<?php if (isset($wplc_settings_color2)) { echo $wplc_settings_color2; } else { echo 'FFFFFF'; } ?>" />
1027
  </td>
1028
  </tr>
1029
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1030
  <td width='200' valign='top'><?php _e("Palette Color 3",'wp-live-chat-support')?>:</td>
1031
  <td>
1032
- <input id="wplc_settings_color3" name="wplc_settings_color3" type="color" value="<?php if (isset($wplc_settings_color3)) { echo $wplc_settings_color3; } else { echo 'EEEEEE'; } ?>" />
1033
  </td>
1034
  </tr>
1035
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1036
  <td width='200' valign='top'><?php _e("Palette Color 4",'wp-live-chat-support')?>:</td>
1037
  <td>
1038
- <input id="wplc_settings_color4" name="wplc_settings_color4" type="color" value="<?php if (isset($wplc_settings_color4)) { echo $wplc_settings_color4; } else { echo '373737'; } ?>" />
1039
  </td>
1040
  </tr>
1041
 
1017
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1018
  <td width='200' valign='top'><?php _e("Palette Color 1",'wp-live-chat-support')?>:</td>
1019
  <td>
1020
+ <input id="wplc_settings_color1" name="wplc_settings_color1" type="color" value="#<?php if (isset($wplc_settings_color1)) { echo $wplc_settings_color1; } else { echo '0596d4'; } ?>" />
1021
  </td>
1022
  </tr>
1023
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1024
  <td width='200' valign='top'><?php _e("Palette Color 2",'wp-live-chat-support')?>:</td>
1025
  <td>
1026
+ <input id="wplc_settings_color2" name="wplc_settings_color2" type="color" value="#<?php if (isset($wplc_settings_color2)) { echo $wplc_settings_color2; } else { echo 'FFFFFF'; } ?>" />
1027
  </td>
1028
  </tr>
1029
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1030
  <td width='200' valign='top'><?php _e("Palette Color 3",'wp-live-chat-support')?>:</td>
1031
  <td>
1032
+ <input id="wplc_settings_color3" name="wplc_settings_color3" type="color" value="#<?php if (isset($wplc_settings_color3)) { echo $wplc_settings_color3; } else { echo 'EEEEEE'; } ?>" />
1033
  </td>
1034
  </tr>
1035
  <tr class='wplc_custom_pall_rows' style='<?php echo (($wplc_theme == 'theme-6') ? '' : 'display:none;'); ?>' >
1036
  <td width='200' valign='top'><?php _e("Palette Color 4",'wp-live-chat-support')?>:</td>
1037
  <td>
1038
+ <input id="wplc_settings_color4" name="wplc_settings_color4" type="color" value="#<?php if (isset($wplc_settings_color4)) { echo $wplc_settings_color4; } else { echo '373737'; } ?>" />
1039
  </td>
1040
  </tr>
1041
 
includes/shortcodes.php CHANGED
@@ -28,6 +28,6 @@ function wplc_live_chat_box_shortcode($atts, $content = null)
28
 
29
  $output = '<div class="wplc_live_chat_support_shortcode wplc_' . esc_attr($atts['style']) . '">';
30
  $output .= $wplc_chat_box_content;
31
- $output .= '</div">';
32
  return $output;
33
  }
28
 
29
  $output = '<div class="wplc_live_chat_support_shortcode wplc_' . esc_attr($atts['style']) . '">';
30
  $output .= $wplc_chat_box_content;
31
+ $output .= '</div>';
32
  return $output;
33
  }
js/wplc_admin_editor.js CHANGED
@@ -57,10 +57,11 @@ function getText(elem) {
57
  }
58
 
59
  }
60
-
61
  setInterval(function() {
62
  getText(document.getElementById("wplc_admin_chatmsg"));
63
  }, 1000);
 
64
 
65
  function niftyTextEdit(insertContent){
66
  checkSelection = false;
57
  }
58
 
59
  }
60
+ /*
61
  setInterval(function() {
62
  getText(document.getElementById("wplc_admin_chatmsg"));
63
  }, 1000);
64
+ */
65
 
66
  function niftyTextEdit(insertContent){
67
  checkSelection = false;
js/wplc_choose.js CHANGED
@@ -61,7 +61,8 @@ jQuery(document).ready(function() {
61
  }
62
  } catch(e) {
63
  // probably session expired, try force reload
64
- document.location.reload();
 
65
  }
66
  // todo: update dropdown agent list in admin menu
67
  }
@@ -137,6 +138,9 @@ function wplc_ma_update_agent_transient(data) {
137
  jQuery.event.trigger({type: "wplc_switchery_changed", response:response, ndata:data});
138
  }
139
  }
 
 
 
140
  });
141
  }
142
 
@@ -172,9 +176,11 @@ function wplc_ma_update_admin_bar() {
172
  user_id: wplc_admin_strings.user_id
173
  };
174
  jQuery.post(ajaxurl, data, function(response) {
175
- if (response) {
176
- jQuery.event.trigger({type: "wplc_agent_online_changed", response: response, ndata:data});
177
- }
 
 
178
  });
179
  }
180
 
@@ -183,4 +189,4 @@ function wplc_ma_parse_active_count_from_container(){
183
  return parseInt(jQuery("#wplc_ma_online_agents_count").text());
184
  }
185
 
186
- setInterval(function() {wplc_ma_update_admin_bar();}, 30000); // force update agent count - for offline agents
61
  }
62
  } catch(e) {
63
  // probably session expired, try force reload
64
+ window.onbeforeunload = null;
65
+ window.location.reload();
66
  }
67
  // todo: update dropdown agent list in admin menu
68
  }
138
  jQuery.event.trigger({type: "wplc_switchery_changed", response:response, ndata:data});
139
  }
140
  }
141
+ }).fail(function(e){
142
+ window.onbeforeunload = null;
143
+ window.location.reload();
144
  });
145
  }
146
 
176
  user_id: wplc_admin_strings.user_id
177
  };
178
  jQuery.post(ajaxurl, data, function(response) {
179
+ setTimeout(function() {wplc_ma_update_admin_bar();}, 30000); // force update agent count - for offline agents
180
+ jQuery.event.trigger({type: "wplc_agent_online_changed", response: response, ndata:data});
181
+ }).fail(function(e) {
182
+ window.onbeforeunload = null;
183
+ window.location.reload();
184
  });
185
  }
186
 
189
  return parseInt(jQuery("#wplc_ma_online_agents_count").text());
190
  }
191
 
192
+ setTimeout(function() {wplc_ma_update_admin_bar();}, 30000); // force update agent count - for offline agents
js/wplc_heartbeat.js CHANGED
@@ -4,13 +4,6 @@
4
  $(document).on('heartbeat-send', function(e, data) {
5
  data['client'] = 'wplc_heartbeat';
6
  });
7
-
8
-
9
- var wplc_set_transient = null;
10
-
11
- wplc_set_transient = setInterval(function() {
12
- wpcl_admin_set_transient();
13
- }, 60000);
14
  wpcl_admin_set_transient();
15
 
16
  function wpcl_admin_set_transient() {
@@ -21,6 +14,12 @@
21
  };
22
  if (typeof ajaxurl === "undefined" && typeof wplc_ajaxurl !== "undefined") { var ajaxurl = wplc_ajaxurl; }
23
  $.post(ajaxurl, data, function(response) {
 
 
 
 
 
 
24
  });
25
  }
26
  });
4
  $(document).on('heartbeat-send', function(e, data) {
5
  data['client'] = 'wplc_heartbeat';
6
  });
 
 
 
 
 
 
 
7
  wpcl_admin_set_transient();
8
 
9
  function wpcl_admin_set_transient() {
14
  };
15
  if (typeof ajaxurl === "undefined" && typeof wplc_ajaxurl !== "undefined") { var ajaxurl = wplc_ajaxurl; }
16
  $.post(ajaxurl, data, function(response) {
17
+ setTimeout(function() {
18
+ wpcl_admin_set_transient();
19
+ }, 60000);
20
+ }).fail(function(e){
21
+ window.onbeforeunload = null;
22
+ window.location.reload();
23
  });
24
  }
25
  });
js/wplc_ma_transient.js CHANGED
@@ -1,18 +1,20 @@
1
  jQuery(function() {
2
  /* Going online functionality used to be here */
3
- var wplc_ma_set_transient = null;
4
-
5
- wplc_ma_set_transient = setInterval(function (){wplc_ma_update_agent_transient();}, 60000);
6
- wplc_ma_update_agent_transient();
7
-
8
- function wplc_ma_update_agent_transient() {
9
  var data = {
10
  action: 'wplc_admin_set_transient',
11
  security: wplc_admin_strings.nonce,
12
  user_id: wplc_admin_strings.user_id
13
  };
14
  jQuery.post(ajaxurl, data, function(response) {
 
 
 
15
  jQuery.event.trigger({type: "wplc_agent_online_changed", response: response, ndata:data});
 
 
 
16
  });
17
  }
18
  });
1
  jQuery(function() {
2
  /* Going online functionality used to be here */
3
+ wplc_ma_timer_update_agent_transient();
4
+ function wplc_ma_timer_update_agent_transient() {
 
 
 
 
5
  var data = {
6
  action: 'wplc_admin_set_transient',
7
  security: wplc_admin_strings.nonce,
8
  user_id: wplc_admin_strings.user_id
9
  };
10
  jQuery.post(ajaxurl, data, function(response) {
11
+ setTimeout(function() {
12
+ wplc_ma_timer_update_agent_transient();
13
+ }, 60000);
14
  jQuery.event.trigger({type: "wplc_agent_online_changed", response: response, ndata:data});
15
+ }).fail(function(e){
16
+ window.onbeforeunload = null;
17
+ document.location.reload();
18
  });
19
  }
20
  });
js/wplc_node.js CHANGED
@@ -358,9 +358,10 @@ jQuery(document).on('wplc_sockets_ready', function() {
358
  tcx_end_chat_div_create();
359
  //$("#wplc_user_message_div").hide();
360
 
361
- if (typeof user_heartbeat !== "undefined")
362
  clearInterval(user_heartbeat);
363
- user_heartbeat = undefined;
 
364
  socket.disconnect({
365
  test: 'test'
366
  });
@@ -648,9 +649,11 @@ jQuery(document).on('wplc_sockets_ready', function() {
648
  jQuery("#nifty_tedit_link").click(function() {
649
  niftyTextEdit("link");
650
  });
 
651
  setInterval(function() {
652
  getText(document.getElementById("wplc_chatmsg"));
653
  }, 1000);
 
654
  /**
655
  * End of rich text functionality
656
  */
@@ -679,28 +682,20 @@ jQuery(document).on('wplc_sockets_ready', function() {
679
  console.log("[WPLC] You have been blocked from using WP Live Chat by 3CX");
680
  return;
681
  } else {
 
 
 
 
 
682
  if (typeof io !== "undefined") {
683
  wplc_set_up_query_string();
684
  socket = io.connect(WPLC_SOCKET_URI, {
685
  query: query_string,
686
  transports: ['websocket']
687
  });
688
-
689
  } else {
690
- var socketchecker = setInterval(function() {
691
- if (typeof io !== "undefined") {
692
- clearInterval(socketchecker);
693
- wplc_set_up_query_string();
694
- socket = io.connect(WPLC_SOCKET_URI, {
695
- query: query_string,
696
- transports: ['websocket']
697
- });
698
-
699
- }
700
- }, 1000);
701
  }
702
-
703
- wplc_chat_delegates();
704
  }
705
 
706
  /**
358
  tcx_end_chat_div_create();
359
  //$("#wplc_user_message_div").hide();
360
 
361
+ if (typeof user_heartbeat !== "undefined") {
362
  clearInterval(user_heartbeat);
363
+ user_heartbeat = undefined;
364
+ }
365
  socket.disconnect({
366
  test: 'test'
367
  });
649
  jQuery("#nifty_tedit_link").click(function() {
650
  niftyTextEdit("link");
651
  });
652
+ /*
653
  setInterval(function() {
654
  getText(document.getElementById("wplc_chatmsg"));
655
  }, 1000);
656
+ */
657
  /**
658
  * End of rich text functionality
659
  */
682
  console.log("[WPLC] You have been blocked from using WP Live Chat by 3CX");
683
  return;
684
  } else {
685
+ wplc_wait_for_socketio();
686
+ wplc_chat_delegates();
687
+ }
688
+
689
+ function wplc_wait_for_socketio() {
690
  if (typeof io !== "undefined") {
691
  wplc_set_up_query_string();
692
  socket = io.connect(WPLC_SOCKET_URI, {
693
  query: query_string,
694
  transports: ['websocket']
695
  });
 
696
  } else {
697
+ setTimeout(wplc_wait_for_socketio(), 100);
 
 
 
 
 
 
 
 
 
 
698
  }
 
 
699
  }
700
 
701
  /**
js/wplc_u_admin.js CHANGED
@@ -101,7 +101,8 @@ function wplc_call_to_server(data) {
101
  /* stopping due to error */
102
  wplc_run = false;
103
  if (response['error'] === 1) {
104
- location.reload();
 
105
  }
106
 
107
  }
101
  /* stopping due to error */
102
  wplc_run = false;
103
  if (response['error'] === 1) {
104
+ window.onbeforeunload = null;
105
+ window.location.reload();
106
  }
107
 
108
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: live chat, live support, chat plugin, live help, wordpress live chat, chat
4
  Requires at least: 4.6
5
  Tested up to: 5.3.1
6
  Requires PHP: 5.3
7
- Stable tag: 8.1.4
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
  Text Domain: wp-live-chat-support
@@ -184,24 +184,7 @@ Huge update with over 300 changes that include: Bugfixes, Vulnerability Fixes &
184
 
185
  == Changelog ==
186
 
187
- = 8.1.5 - 2019-12-18 =
188
- * Bugfix: edit trigger adds extra quotes and alters html code
189
- * Bugfix: default visitor name cannot be empty
190
- * Bugfix: message encryption not working properly
191
- * Bugfix: added missing numeric validation for ROI goals
192
- * Bugfix: better validation for custom fields
193
- * Bugfix: cannot enable sunday in working hour schedule
194
- * Bugfix: in some cases offline agents are displayed as online - timeout issues fixed
195
- * Bugfix: "User is browsing" notifications removed from user side - agent side only
196
- * Bugfix: custom fields default are not sent to agents
197
- * Bugfix: fixed issue with encrypted chats not displayed in history in some cases
198
- * Bugfix: some Webhooks were not working properly
199
- * Bugfix: fixed custom trigger URL parsing
200
- * Improvement: 3CX Privacy Policy is hidden when on-premise server is selected
201
- * Improvement: added separated encryption key configuration - encrypted chats are preserved for backup/restore and migration on other servers
202
- * Improvement: added absolute height for Chatbox
203
- * Improvement: added option to disable auto popup for mobile users
204
- * Improvement: removed jscolor color picker, using browser integrated
205
- * Improvement: removed "self assign chat agent" not working feature, because of lack of Wordpress privileges to work correctly
206
- * Improvement: stop polling requests when PHP agent session expires, should decrease 403 errors on WordPress server
207
- * Improvement: session handling optimizations
4
  Requires at least: 4.6
5
  Tested up to: 5.3.1
6
  Requires PHP: 5.3
7
+ Stable tag: 8.1.6
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
  Text Domain: wp-live-chat-support
184
 
185
  == Changelog ==
186
 
187
+ = 8.1.6 - 2020-01-16 =
188
+ * Bugfix: more optimizations to avoid lots of 403 errors when PHP session expires
189
+ * Bugfix: custom style color picker adds an extra # breaking color code
190
+ * Improvement: improved performance in some timed events
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wp-live-chat-support.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP-Live Chat by 3CX
4
  Plugin URI: https://www.3cx.com/wp-live-chat/
5
  Description: The easiest to use website live chat plugin. Let your visitors chat with you and increase sales conversion rates with WP-Live Chat by 3CX.
6
- Version: 8.1.5
7
  Author: 3CX
8
  Author URI: https://www.3cx.com/wp-live-chat/
9
  Domain Path: /languages
@@ -3364,10 +3364,10 @@ function wplc_head() {
3364
  $wplc_data['wplc_environment'] = wplc_force_int($_POST, 'wplc_environment', $wplc_settings, 0, 4);
3365
  $wplc_data['wplc_settings_fill'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_fill', $wplc_settings)));
3366
  $wplc_data['wplc_settings_font'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_font', $wplc_settings)));
3367
- $wplc_data['wplc_settings_color1'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color1', $wplc_settings)));
3368
- $wplc_data['wplc_settings_color2'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color2', $wplc_settings)));
3369
- $wplc_data['wplc_settings_color3'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color3', $wplc_settings)));
3370
- $wplc_data['wplc_settings_color4'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color4', $wplc_settings)));
3371
  $wplc_data['wplc_settings_enabled'] = wplc_force_int($_POST, 'wplc_settings_enabled', $wplc_settings, 1, 0, 1);
3372
  $wplc_data['wplc_powered_by_link'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_powered_by_link', $wplc_settings)));
3373
  $wplc_data['wplc_auto_pop_up'] = wplc_force_int($_POST, 'wplc_auto_pop_up', $wplc_default_settings_array, 0, 2);
3
  Plugin Name: WP-Live Chat by 3CX
4
  Plugin URI: https://www.3cx.com/wp-live-chat/
5
  Description: The easiest to use website live chat plugin. Let your visitors chat with you and increase sales conversion rates with WP-Live Chat by 3CX.
6
+ Version: 8.1.6
7
  Author: 3CX
8
  Author URI: https://www.3cx.com/wp-live-chat/
9
  Domain Path: /languages
3364
  $wplc_data['wplc_environment'] = wplc_force_int($_POST, 'wplc_environment', $wplc_settings, 0, 4);
3365
  $wplc_data['wplc_settings_fill'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_fill', $wplc_settings)));
3366
  $wplc_data['wplc_settings_font'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_font', $wplc_settings)));
3367
+ $wplc_data['wplc_settings_color1'] = str_replace('#','',stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color1', $wplc_settings))));
3368
+ $wplc_data['wplc_settings_color2'] = str_replace('#','',stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color2', $wplc_settings))));
3369
+ $wplc_data['wplc_settings_color3'] = str_replace('#','',stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color3', $wplc_settings))));
3370
+ $wplc_data['wplc_settings_color4'] = str_replace('#','',stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_settings_color4', $wplc_settings))));
3371
  $wplc_data['wplc_settings_enabled'] = wplc_force_int($_POST, 'wplc_settings_enabled', $wplc_settings, 1, 0, 1);
3372
  $wplc_data['wplc_powered_by_link'] = stripslashes(sanitize_text_field(wplc_force_string($_POST, 'wplc_powered_by_link', $wplc_settings)));
3373
  $wplc_data['wplc_auto_pop_up'] = wplc_force_int($_POST, 'wplc_auto_pop_up', $wplc_default_settings_array, 0, 2);