InfiniteWP Client - Version 1.3.11

Version Description

  • Improvement: using wp_get_theme() instead of get_current_theme() which is deprecated in WordPress
  • Fix: IWP failed to recognise the error from WP v4.0
  • Fix: Restoring backup for second time
  • Fix: $HTTP_RAW_POST_DATA is made global, which is conflicting with other plugin
  • Fix: Install a plugin/theme from Install > My Computer from panel having IP and different port number
  • Fix: Install a plugin/theme from Install > My Computer from panel protected by basic http authentication
  • Fix: Google Webmaster Redirection not working with a few themes
  • Fix: Bug fixes
Download this release

Release Info

Developer infinitewp
Plugin Icon 128x128 InfiniteWP Client
Version 1.3.11
Comparing to
See all releases

Code changes from version 1.3.10 to 1.3.11

addons/file_editor/file_editor.class.php CHANGED
@@ -198,11 +198,12 @@ function iwp_mmb_direct_to_any_copy($source, $destination, $overwrite = false, $
198
  }else{
199
  $fileContent = gzinflate($fileContent);
200
  }
201
- if (!$this->is_server_writable()) {
202
- return array(
203
- 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_FTP_details_file_editor_upload'
204
- );
205
- }
 
206
 
207
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
208
  ob_start();
198
  }else{
199
  $fileContent = gzinflate($fileContent);
200
  }
201
+
202
+ if (!$this->is_server_writable()) {
203
+ return array(
204
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_FTP_details_file_editor_upload'
205
+ );
206
+ }
207
 
208
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
209
  ob_start();
backup.class.multicall.php CHANGED
@@ -2241,7 +2241,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
2241
  global $wpdb;
2242
  $table_name = $wpdb->base_prefix . "iwp_backup_status";
2243
 
2244
- $rows = $wpdb->get_row($wpdb->prepare("SELECT * FROM ".$table_name." WHERE historyID = %d", $ID), ARRAY_A);
2245
 
2246
  return $rows;
2247
 
@@ -2523,7 +2523,7 @@ function task_now($task_name){
2523
  } else {
2524
  $result = false;
2525
  }
2526
- return $result; // true if $backup_file iz zipped successfully, false if error is occured in zip process
2527
  }
2528
 
2529
 
@@ -2836,13 +2836,12 @@ function iwp_mmb_direct_to_any_copy($source, $destination, $overwrite = false, $
2836
 
2837
  /////////////////// dev ////////////////////////
2838
 
2839
-
2840
- if (!$this->is_server_writable()) {
2841
- return array(
2842
- 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_details'
2843
- );
2844
- }
2845
-
2846
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
2847
  ob_start();
2848
  if (false === ($creds = request_filesystem_credentials($url, '', false, ABSPATH, null) ) ) {
@@ -3868,7 +3867,7 @@ function ftp_backup($historyID,$args = '')
3868
  if(!$ret || $ret == FTP_FAILED)
3869
  {
3870
  return array(
3871
- 'error' => 'FTP upload Error. ftp_nb_fput(): Append/Restart not permitted.',
3872
  'partial' => 1, 'error_code' => 'ftp_nb_fput_not_permitted_error'
3873
  );
3874
  }
@@ -5279,7 +5278,7 @@ function ftp_backup($historyID,$args = '')
5279
  }
5280
  }catch (Exception $e){
5281
  print "An error occurred: " . $e->getMessage();
5282
- return array('error' => $e->getMessage(), 'error_code' => 'google_error_occured_list_results');
5283
  }
5284
 
5285
  //create sub folder by site name
2241
  global $wpdb;
2242
  $table_name = $wpdb->base_prefix . "iwp_backup_status";
2243
 
2244
+ $rows = $wpdb->get_row($wpdb->prepare("SELECT * FROM ".$table_name." WHERE historyID = %d ORDER BY ID DESC LIMIT 1", $ID), ARRAY_A);
2245
 
2246
  return $rows;
2247
 
2523
  } else {
2524
  $result = false;
2525
  }
2526
+ return $result; // true if $backup_file iz zipped successfully, false if error is occurred in zip process
2527
  }
2528
 
2529
 
2836
 
2837
  /////////////////// dev ////////////////////////
2838
 
2839
+ if (!$this->is_server_writable()) {
2840
+ return array(
2841
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_details'
2842
+ );
2843
+ }
2844
+
 
2845
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
2846
  ob_start();
2847
  if (false === ($creds = request_filesystem_credentials($url, '', false, ABSPATH, null) ) ) {
3867
  if(!$ret || $ret == FTP_FAILED)
3868
  {
3869
  return array(
3870
+ 'error' => "FTP upload Error. ftp_nb_fput(): Append/Restart not permitted. This feature is required for multi-call backup upload via FTP to work. Please contact your WP site's hosting provider and ask them to fix the problem. You can try dropbox, Amazon S3 or Google Driver as an alternative to it.",
3871
  'partial' => 1, 'error_code' => 'ftp_nb_fput_not_permitted_error'
3872
  );
3873
  }
5278
  }
5279
  }catch (Exception $e){
5280
  print "An error occurred: " . $e->getMessage();
5281
+ return array('error' => $e->getMessage(), 'error_code' => 'google_error_occurred_list_results');
5282
  }
5283
 
5284
  //create sub folder by site name
backup.class.singlecall.php CHANGED
@@ -853,7 +853,7 @@ function delete_task_now($task_name){
853
  $result = false;
854
  }
855
 
856
- return $result; // true if $backup_file iz zipped successfully, false if error is occured in zip process
857
  }
858
 
859
  /**
@@ -895,7 +895,7 @@ function delete_task_now($task_name){
895
  } else {
896
  $result = false;
897
  }
898
- return $result; // true if $backup_file iz zipped successfully, false if error is occured in zip process
899
  }
900
 
901
 
@@ -1353,12 +1353,12 @@ function iwp_mmb_direct_to_any_copy($source, $destination, $overwrite = false, $
1353
 
1354
  /////////////////// dev ////////////////////////
1355
 
1356
-
1357
- if (!$this->is_server_writable()) {
1358
- return array(
1359
- 'error' => 'Failed, please add FTP details', 'error_code' => 'failes_add_ftp_details'
1360
- );
1361
- }
1362
 
1363
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
1364
  ob_start();
@@ -3309,7 +3309,7 @@ function ftp_backup($args)
3309
  global $wpdb;
3310
  $table_name = $wpdb->base_prefix . "iwp_backup_status";
3311
 
3312
- $rows = $wpdb->get_row($wpdb->prepare("SELECT * FROM ".$table_name." WHERE historyID = %d", $ID), ARRAY_A);
3313
 
3314
  $return = unserialize($rows['taskResults']);
3315
 
853
  $result = false;
854
  }
855
 
856
+ return $result; // true if $backup_file iz zipped successfully, false if error is occurred in zip process
857
  }
858
 
859
  /**
895
  } else {
896
  $result = false;
897
  }
898
+ return $result; // true if $backup_file iz zipped successfully, false if error is occurred in zip process
899
  }
900
 
901
 
1353
 
1354
  /////////////////// dev ////////////////////////
1355
 
1356
+ if (!$this->is_server_writable()) {
1357
+ return array(
1358
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_details'
1359
+ );
1360
+ }
1361
+
1362
 
1363
  $url = wp_nonce_url('index.php?page=iwp_no_page','iwp_fs_cred');
1364
  ob_start();
3309
  global $wpdb;
3310
  $table_name = $wpdb->base_prefix . "iwp_backup_status";
3311
 
3312
+ $rows = $wpdb->get_row($wpdb->prepare("SELECT * FROM ".$table_name." WHERE historyID = %d ORDER BY ID DESC LIMIT 1", $ID), ARRAY_A);
3313
 
3314
  $return = unserialize($rows['taskResults']);
3315
 
core.class.php CHANGED
@@ -760,13 +760,13 @@ class IWP_MMB_Core extends IWP_MMB_Helper
760
  @include_once ABSPATH . 'wp-admin/includes/template.php';
761
  @include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
762
  @include_once ABSPATH . 'wp-admin/includes/screen.php';
763
-
764
- if (!$this->is_server_writable()) {
765
- return array(
766
- 'error' => 'Failed. please add FTP details for automatic upgrades.', 'error_code' => 'automatic_upgrade_failed_add_ftp_details'
767
- );
768
- }
769
-
770
  ob_start();
771
  @unlink(dirname(__FILE__));
772
  $upgrader = new Plugin_Upgrader();
760
  @include_once ABSPATH . 'wp-admin/includes/template.php';
761
  @include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
762
  @include_once ABSPATH . 'wp-admin/includes/screen.php';
763
+
764
+ if (!$this->is_server_writable()) {
765
+ return array(
766
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'automatic_upgrade_failed_add_ftp_details'
767
+ );
768
+ }
769
+
770
  ob_start();
771
  @unlink(dirname(__FILE__));
772
  $upgrader = new Plugin_Upgrader();
init.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: InfiniteWP - Client
4
  Plugin URI: http://infinitewp.com/
5
  Description: This is the client plugin of InfiniteWP that communicates with the InfiniteWP Admin panel.
6
  Author: Revmakx
7
- Version: 1.3.10
8
  Author URI: http://www.revmakx.com
9
  */
10
  /************************************************************
@@ -26,7 +26,7 @@ Author URI: http://www.revmakx.com
26
  **************************************************************/
27
 
28
  if(!defined('IWP_MMB_CLIENT_VERSION'))
29
- define('IWP_MMB_CLIENT_VERSION', '1.3.10');
30
 
31
 
32
 
@@ -201,16 +201,58 @@ if( !function_exists ('iwp_mmb_parse_request')) {
201
  }
202
  } else {
203
  //IWP_MMB_Stats::set_hit_count();
 
204
  }
205
  ob_end_clean();
206
  }
207
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  /* Main response function */
209
  if( !function_exists ( 'iwp_mmb_response' )) {
210
 
211
  function iwp_mmb_response($response = false, $success = true)
212
  {
213
  $return = array();
 
 
214
 
215
  if ((is_array($response) && empty($response)) || (!is_array($response) && strlen($response) == 0)){
216
  $return['error'] = 'Empty response.';
@@ -730,7 +772,7 @@ if( !function_exists ('iwp_mmb_get_users')) {
730
  {
731
  global $iwp_mmb_core;
732
  $iwp_mmb_core->get_user_instance();
733
- $return = $iwp_mmb_core->user_instance->get_users($params);
734
  if (is_array($return) && array_key_exists('error', $return))
735
  iwp_mmb_response($return, false);
736
  else {
@@ -1524,7 +1566,7 @@ if(!function_exists('iwp_mmb_shutdown')){
1524
  }
1525
  if ($isError){
1526
 
1527
- $response = '<span style="font-weight:700;">PHP Fatal error occured:</span> '.$error['message'].' in '.$error['file'].' on line '.$error['line'].'.';
1528
  if(stripos($error['message'], 'allowed memory size') !== false){
1529
  $response .= '<br>Try <a href="http://infinitewp.com/knowledge-base/increase-memory-limit/?utm_source=application&utm_medium=userapp&utm_campaign=kb" target="_blank">increasing the PHP memory limit</a> for this WP site.';
1530
  }
@@ -1777,10 +1819,10 @@ if (function_exists('add_action'))
1777
  add_action('init', 'iwp_mmb_plugin_actions', 99999);
1778
 
1779
  if (function_exists('add_action'))
1780
- add_action('wp_head', 'iwp_mmb_check_maintenance', 99999);
1781
 
1782
  if (function_exists('add_action'))
1783
- add_action('wp_head', 'iwp_mmb_check_redirects', 99999);
1784
 
1785
  if (function_exists('add_filter'))
1786
  add_filter('install_plugin_complete_actions','iwp_mmb_iframe_plugins_fix');
4
  Plugin URI: http://infinitewp.com/
5
  Description: This is the client plugin of InfiniteWP that communicates with the InfiniteWP Admin panel.
6
  Author: Revmakx
7
+ Version: 1.3.11
8
  Author URI: http://www.revmakx.com
9
  */
10
  /************************************************************
26
  **************************************************************/
27
 
28
  if(!defined('IWP_MMB_CLIENT_VERSION'))
29
+ define('IWP_MMB_CLIENT_VERSION', '1.3.11');
30
 
31
 
32
 
201
  }
202
  } else {
203
  //IWP_MMB_Stats::set_hit_count();
204
+ $GLOBALS['HTTP_RAW_POST_DATA'] = $HTTP_RAW_POST_DATA;
205
  }
206
  ob_end_clean();
207
  }
208
  }
209
+
210
+ if( !function_exists('iwp_mmb_convert_wperror_obj_to_arr')){
211
+ function iwp_mmb_convert_wperror_obj_to_arr($obj,$state="initial"){
212
+ $result = array();
213
+ if( is_array($obj) ){
214
+ foreach ($obj as $key => $value) {
215
+ $result[$key] = iwp_mmb_convert_wperror_obj_to_arr($value,"intermediate");
216
+ }
217
+ }elseif(is_object($obj) && is_wp_error($obj)){
218
+ $result['error_codes'] = $obj->get_error_codes();
219
+ $result['errors'] = $obj->get_error_messages();
220
+ $result['error_data'] = $obj->get_error_data();
221
+ }else{
222
+ return $obj;
223
+ }
224
+ if($state == 'initial' ){
225
+ if(is_wp_error($obj['error'])){
226
+ $errMsgTemp = $result['error']['errors'];
227
+ $errCodesTemp = $result['error']['error_codes'];
228
+ if(!empty($result['error']['error_data']) ){
229
+ $errData = ":::".$result['error']['error_data'];
230
+ }else{
231
+ $errData = '';
232
+ }
233
+
234
+ $errMsg ='';
235
+ $errCode = '';
236
+
237
+ if(count($errMsgTemp) > 1 ){$errMsg = implode("|&|",$errMsgTemp);}elseif(count($errMsgTemp) == 1){$errMsg = $errMsgTemp[0];}
238
+ if(count($errCodesTemp) > 1 ){$errCode = implode("|&|",$errCodesTemp);}elseif(count($errCodesTemp) == 1){$errCode = $errCodesTemp[0];}
239
+
240
+ $wpErr = array('error'=>$errMsg.$errData,'error_code'=>$errCode,'error_data'=>$errData);
241
+ return $wpErr;
242
+ }
243
+ }
244
+ return $result;
245
+ }
246
+ }
247
+
248
  /* Main response function */
249
  if( !function_exists ( 'iwp_mmb_response' )) {
250
 
251
  function iwp_mmb_response($response = false, $success = true)
252
  {
253
  $return = array();
254
+
255
+ $response = iwp_mmb_convert_wperror_obj_to_arr($response,'initial');
256
 
257
  if ((is_array($response) && empty($response)) || (!is_array($response) && strlen($response) == 0)){
258
  $return['error'] = 'Empty response.';
772
  {
773
  global $iwp_mmb_core;
774
  $iwp_mmb_core->get_user_instance();
775
+ $return = $iwp_mmb_core->user_instance->get_users($params);
776
  if (is_array($return) && array_key_exists('error', $return))
777
  iwp_mmb_response($return, false);
778
  else {
1566
  }
1567
  if ($isError){
1568
 
1569
+ $response = '<span style="font-weight:700;">PHP Fatal error occurred:</span> '.$error['message'].' in '.$error['file'].' on line '.$error['line'].'.';
1570
  if(stripos($error['message'], 'allowed memory size') !== false){
1571
  $response .= '<br>Try <a href="http://infinitewp.com/knowledge-base/increase-memory-limit/?utm_source=application&utm_medium=userapp&utm_campaign=kb" target="_blank">increasing the PHP memory limit</a> for this WP site.';
1572
  }
1819
  add_action('init', 'iwp_mmb_plugin_actions', 99999);
1820
 
1821
  if (function_exists('add_action'))
1822
+ add_action('template_redirect', 'iwp_mmb_check_maintenance', 99999);
1823
 
1824
  if (function_exists('add_action'))
1825
+ add_action('template_redirect', 'iwp_mmb_check_redirects', 99999);
1826
 
1827
  if (function_exists('add_filter'))
1828
  add_filter('install_plugin_complete_actions','iwp_mmb_iframe_plugins_fix');
installer.class.php CHANGED
@@ -24,6 +24,7 @@ class IWP_MMB_Installer extends IWP_MMB_Core
24
  parent::__construct();
25
  @include_once(ABSPATH . 'wp-admin/includes/file.php');
26
  @include_once(ABSPATH . 'wp-admin/includes/plugin.php');
 
27
  @include_once(ABSPATH . 'wp-admin/includes/theme.php');
28
  @include_once(ABSPATH . 'wp-admin/includes/misc.php');
29
  @include_once(ABSPATH . 'wp-admin/includes/template.php');
@@ -48,6 +49,14 @@ class IWP_MMB_Installer extends IWP_MMB_Core
48
  $wp_filesystem->delete($file);
49
  }
50
  }
 
 
 
 
 
 
 
 
51
 
52
  function install_remote_file($params)
53
  {
@@ -60,11 +69,12 @@ class IWP_MMB_Installer extends IWP_MMB_Core
60
  'error' => '<p>No files received. Internal error.</p>', 'error_code' => 'no_files_receive_internal_error'
61
  );
62
 
63
- if (!$this->is_server_writable()) {
64
- return array(
65
- 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_install_remote_file'
66
- );
67
- }
 
68
 
69
  if (defined('WP_INSTALLING') && file_exists(ABSPATH . '.maintenance'))
70
  return array(
@@ -80,7 +90,8 @@ class IWP_MMB_Installer extends IWP_MMB_Core
80
  $upgrader = new WP_Upgrader($upgrader_skin);
81
  $destination = $type == 'themes' ? WP_CONTENT_DIR . '/themes' : WP_PLUGIN_DIR;
82
  $clear_destination = isset($clear_destination) ? $clear_destination : false;
83
-
 
84
  foreach ($package as $package_url) {
85
  $key = basename($package_url);
86
  $install_info[$key] = @$upgrader->run(array(
@@ -153,14 +164,13 @@ class IWP_MMB_Installer extends IWP_MMB_Core
153
  return array(
154
  'error' => 'No upgrades passed.', 'error_code' => 'no_upgrades_passed'
155
  );
156
-
157
  if (!$this->is_server_writable()) {
158
  return array(
159
- 'error' => 'Failed. please add FTP details.', 'error_code' => 'failed_please_add_ftp_do_upgrade'
160
  );
161
  }
162
-
163
-
164
  $params = isset($params['upgrades_all']) ? $params['upgrades_all'] : $params;
165
 
166
  $core_upgrade = isset($params['wp_upgrade']) ? $params['wp_upgrade'] : array();
@@ -796,12 +806,11 @@ class IWP_MMB_Installer extends IWP_MMB_Core
796
  if(function_exists('wp_get_themes')){
797
  $all_themes = wp_get_themes();
798
  $themes = array(
799
- 'active' => array(),
800
- 'inactive' => array()
801
- );
802
-
803
  if (is_array($all_themes) && !empty($all_themes)) {
804
- $current_theme = get_current_theme();
805
 
806
  $br_a = 0;
807
  $br_i = 0;
24
  parent::__construct();
25
  @include_once(ABSPATH . 'wp-admin/includes/file.php');
26
  @include_once(ABSPATH . 'wp-admin/includes/plugin.php');
27
+ @include_once(ABSPATH . 'wp-includes/plugin.php');
28
  @include_once(ABSPATH . 'wp-admin/includes/theme.php');
29
  @include_once(ABSPATH . 'wp-admin/includes/misc.php');
30
  @include_once(ABSPATH . 'wp-admin/includes/template.php');
49
  $wp_filesystem->delete($file);
50
  }
51
  }
52
+
53
+ function bypass_url_validation($r,$url){
54
+ // $username = parse_url($url, PHP_URL_USER);
55
+ // $password = parse_url($url, PHP_URL_PASS);
56
+ // $r['headers'] = array('Authorization'=>'Basic'. base64_encode( $username . ':' . $password ) );
57
+ $r['reject_unsafe_urls'] = false;
58
+ return $r;
59
+ }
60
 
61
  function install_remote_file($params)
62
  {
69
  'error' => '<p>No files received. Internal error.</p>', 'error_code' => 'no_files_receive_internal_error'
70
  );
71
 
72
+ if (!$this->is_server_writable()) {
73
+ return array(
74
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_install_remote_file'
75
+ );
76
+ }
77
+
78
 
79
  if (defined('WP_INSTALLING') && file_exists(ABSPATH . '.maintenance'))
80
  return array(
90
  $upgrader = new WP_Upgrader($upgrader_skin);
91
  $destination = $type == 'themes' ? WP_CONTENT_DIR . '/themes' : WP_PLUGIN_DIR;
92
  $clear_destination = isset($clear_destination) ? $clear_destination : false;
93
+
94
+ add_filter( 'http_request_args',array( $this, 'bypass_url_validation' ), 10, 2 );
95
  foreach ($package as $package_url) {
96
  $key = basename($package_url);
97
  $install_info[$key] = @$upgrader->run(array(
164
  return array(
165
  'error' => 'No upgrades passed.', 'error_code' => 'no_upgrades_passed'
166
  );
167
+
168
  if (!$this->is_server_writable()) {
169
  return array(
170
+ 'error' => 'Failed, please add FTP details', 'error_code' => 'failed_please_add_ftp_do_upgrade'
171
  );
172
  }
173
+
 
174
  $params = isset($params['upgrades_all']) ? $params['upgrades_all'] : $params;
175
 
176
  $core_upgrade = isset($params['wp_upgrade']) ? $params['wp_upgrade'] : array();
806
  if(function_exists('wp_get_themes')){
807
  $all_themes = wp_get_themes();
808
  $themes = array(
809
+ 'active' => array(),
810
+ 'inactive' => array()
811
+ );
 
812
  if (is_array($all_themes) && !empty($all_themes)) {
813
+ $current_theme = wp_get_theme();
814
 
815
  $br_a = 0;
816
  $br_i = 0;
readme.txt CHANGED
@@ -48,6 +48,16 @@ Credits: [Vladimir Prelovac](http://prelovac.com/vladimir) for his worker plugin
48
 
49
  == Changelog ==
50
 
 
 
 
 
 
 
 
 
 
 
51
  = 1.3.10 =
52
  * Fix: Bug Fix - This version fixes an Open SSL bug that was introduced in v1.3.9. If you updated to v1.3.9 and are encountering connection errors, update the Client Plugin from your WP dashboards. You don't have to re-add the sites to InfiniteWP.
53
 
48
 
49
  == Changelog ==
50
 
51
+ = 1.3.11 =
52
+ * Improvement: using wp_get_theme() instead of get_current_theme() which is deprecated in WordPress
53
+ * Fix: IWP failed to recognise the error from WP v4.0
54
+ * Fix: Restoring backup for second time
55
+ * Fix: $HTTP_RAW_POST_DATA is made global, which is conflicting with other plugin
56
+ * Fix: Install a plugin/theme from Install > My Computer from panel having IP and different port number
57
+ * Fix: Install a plugin/theme from Install > My Computer from panel protected by basic http authentication
58
+ * Fix: Google Webmaster Redirection not working with a few themes
59
+ * Fix: Bug fixes
60
+
61
  = 1.3.10 =
62
  * Fix: Bug Fix - This version fixes an Open SSL bug that was introduced in v1.3.9. If you updated to v1.3.9 and are encountering connection errors, update the Client Plugin from your WP dashboards. You don't have to re-add the sites to InfiniteWP.
63