InfiniteWP Client - Version 1.8.6

Version Description

  • Feb 11th 2019 =
  • Fix: Duo security plugin on WordPress site breaks the IWP client plugin connection while performing open admin action.
  • Fix: Backup is retried when it failed with error "Failed to connect to content.dropboxapi.com port 443: Connection timed out. and Could not resolve host: api.dropboxapi.com.".
  • Fix: Plugin updates count showing in plugin menu on WP admin page while hide plugin updates setting is enabled on InfiniteWP admin panel via Client Plugin Branding.
  • Fix: Phoenix backup SFTP or FTP not using the custom port.
  • Fix: FTP SSL not working on Phoenix backup.
  • Fix: Ithemes security data is not included in the client reports.
  • Fix: Backups failed with error "Database backup failed. Try to enable MySQL dump on your server.".
Download this release

Release Info

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

Code changes from version 1.8.5 to 1.8.6

addons/itheme_security/class-iwp-client-ithemes-security-class.php CHANGED
@@ -193,10 +193,10 @@ final class IWP_MMB_IThemes_Security extends IWP_MMB_Core {
193
$range_search = '';
194
if (isset($datefrom) || isset($dateto)) {
195
if (isset($datefrom)) {
196
- $range_search .= $and . "`init_timestamp`>='" . esc_sql($datefrom) . "'";
197
}
198
if (isset($dateto)) {
199
- $range_search .= $and . "`init_timestamp`<='" . esc_sql($dateto) . "'";
200
}
201
}
202
193
$range_search = '';
194
if (isset($datefrom) || isset($dateto)) {
195
if (isset($datefrom)) {
196
+ $range_search .= $and . " `init_timestamp` between '" . esc_sql($datefrom) . "'";
197
}
198
if (isset($dateto)) {
199
+ $range_search .= $and . " '" . esc_sql($dateto) . "'";
200
}
201
}
202
backup.class.multicall.php CHANGED
@@ -448,6 +448,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
448
$backupStage = 'backupDBMultiCall';
449
$this->statusLog($historyID, array('stage' => $backupStage, 'status' => 'completed', 'statusMsg' => 'backupDBCompleted','nextFunc' => 'backupDBZip', 'responseParams' => $db_final_response['success']));
450
unset($db_final_response['success']['response_data']);
451
//to continue in the same call
452
if(($db_loop_break_time - $total_time_part) > 5)
453
{
@@ -455,6 +456,7 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
455
}
456
else
457
{
458
$db_res_array = array();
459
$db_res_array['status'] = $db_final_response['success']['status'];
460
$db_res_array['backupParentHID'] = $db_final_response['success']['backupParentHID'];
@@ -625,7 +627,10 @@ class IWP_MMB_Backup_Multicall extends IWP_MMB_Core
625
$this->unlinkBackupFiles($backup_file);
626
}
627
628
- if (is_array($dropbox_result) && isset($dropbox_result['error'])) {
629
$this->unlinkBackupFiles($backup_file);
630
}
631
if($dropbox_result['status'] == 'partiallyCompleted')
448
$backupStage = 'backupDBMultiCall';
449
$this->statusLog($historyID, array('stage' => $backupStage, 'status' => 'completed', 'statusMsg' => 'backupDBCompleted','nextFunc' => 'backupDBZip', 'responseParams' => $db_final_response['success']));
450
unset($db_final_response['success']['response_data']);
451
+ delete_option('iwp_multical_db_dump_flag');
452
//to continue in the same call
453
if(($db_loop_break_time - $total_time_part) > 5)
454
{
456
}
457
else
458
{
459
+ delete_option('iwp_multical_db_dump_flag');
460
$db_res_array = array();
461
$db_res_array['status'] = $db_final_response['success']['status'];
462
$db_res_array['backupParentHID'] = $db_final_response['success']['backupParentHID'];
627
$this->unlinkBackupFiles($backup_file);
628
}
629
630
+ $dropbox_skip_errors = array('Failed to connect to content.dropboxapi.com port 443: Connection timed out',
631
+ 'Could not resolve host: api.dropboxapi.com'
632
+ );
633
+ if (is_array($dropbox_result) && isset($dropbox_result['error']) && !in_array($dropbox_result['error'], $dropbox_skip_errors)) {
634
$this->unlinkBackupFiles($backup_file);
635
}
636
if($dropbox_result['status'] == 'partiallyCompleted')
backup/backup.core.class.php CHANGED
@@ -3888,6 +3888,7 @@ CREATE TABLE $wpdb->signups (
3888
'pass' => $ftp_details['ftp_password'],
3889
'host' => $ftp_details['ftp_hostname'],
3890
'path' => $ftp_details['ftp_remote_folder'],
3891
'ftp_site_folder' => $ftp_details['ftp_site_folder'],
3892
'passive' => $ftp_details['ftp_passive']?true:false
3893
);
@@ -3896,6 +3897,13 @@ CREATE TABLE $wpdb->signups (
3896
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_sftp', $opts);
3897
}else{
3898
update_option('IWP_service', 'ftp');
3899
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ftp', $opts);
3900
}
3901
}elseif (!empty($params['account_info']['iwp_amazon_s3'])) {
3888
'pass' => $ftp_details['ftp_password'],
3889
'host' => $ftp_details['ftp_hostname'],
3890
'path' => $ftp_details['ftp_remote_folder'],
3891
+ 'port' => $ftp_details['ftp_port'],
3892
'ftp_site_folder' => $ftp_details['ftp_site_folder'],
3893
'passive' => $ftp_details['ftp_passive']?true:false
3894
);
3897
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_sftp', $opts);
3898
}else{
3899
update_option('IWP_service', 'ftp');
3900
+ if(!empty($ftp_details['ftp_ssl'])){
3901
+ $opts['host'] = $opts['host'].':'.$opts['port'];
3902
+ unset($opts['port']);
3903
+ IWP_MMB_Backup_Options::delete_iwp_backup_option('IWP_ssl_nossl');
3904
+ }else{
3905
+ IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ssl_nossl', 1);
3906
+ }
3907
IWP_MMB_Backup_Options::update_iwp_backup_option('IWP_ftp', $opts);
3908
}
3909
}elseif (!empty($params['account_info']['iwp_amazon_s3'])) {
core.class.php CHANGED
@@ -203,8 +203,13 @@ class IWP_MMB_Core extends IWP_MMB_Helper
203
'backup_downlaod' => 'iwp_mmb_backup_downlaod'
204
);
205
206
- add_action('rightnow_end', array( &$this, 'add_right_now_info' ));
207
- add_action('admin_menu', array($this,'iwp_admin_menu_actions'), 999, 1);
208
add_action('admin_init', array(&$this,'admin_actions'));
209
add_filter('deprecated_function_trigger_error', '__return_false');
210
// add_action('wp_loaded', array( &$this, 'iwp_mmb_remote_action'), 2147483650);
@@ -1021,22 +1026,40 @@ class IWP_MMB_Core extends IWP_MMB_Helper
1021
1022
function iwp_admin_menu_actions($args){
1023
//to hide all updates
1024
$replace = get_option("iwp_client_brand");
1025
- if(!empty($replace)){
1026
if(!empty($replace['hideUpdatesCPB'])){
1027
//add_filter('wp_get_update_data', array($this, 'iwp_wp_get_update_data'), 10, 2);
1028
$page = remove_submenu_page( 'index.php', 'update-core.php' );
1029
- add_filter('site_transient_update_core', array($this, 'iwp_remove_core_updates'), 10, 1);
1030
- add_filter('site_transient_update_plugins', array($this, 'iwp_remove_core_updates'), 10, 1);
1031
- add_filter('site_transient_update_themes', array($this, 'iwp_remove_core_updates'), 10, 1);
1032
}
1033
if(!empty($replace['hideFWPCPB'])){
1034
- remove_submenu_page('themes.php','theme-editor.php');
1035
- remove_submenu_page('plugins.php','plugin-editor.php');
1036
add_filter('plugin_action_links', array($this, 'iwp_client_replace_action_links'), 10, 2);
1037
}
1038
}
1039
}
1040
1041
function iwp_user_admin_url($args, $args2){
1042
//for modifying the link available in plugin's view version details link.
203
'backup_downlaod' => 'iwp_mmb_backup_downlaod'
204
);
205
206
+ add_action('rightnow_end', array( &$this, 'add_right_now_info' ));
207
+ if( $this->iwp_mmb_multisite ){
208
+ add_action('network_admin_menu', array($this,'iwp_admin_menu_actions'), 10, 1);
209
+ }else{
210
+ add_action('admin_menu', array($this,'iwp_admin_menu_actions'), 10, 1);
211
+ }
212
+ add_action('init', array($this,'iwp_cpb_hide_updates'), 10, 1);
213
add_action('admin_init', array(&$this,'admin_actions'));
214
add_filter('deprecated_function_trigger_error', '__return_false');
215
// add_action('wp_loaded', array( &$this, 'iwp_mmb_remote_action'), 2147483650);
1026
1027
function iwp_admin_menu_actions($args){
1028
//to hide all updates
1029
+ global $iwp_mmb_core;
1030
$replace = get_option("iwp_client_brand");
1031
+ if(empty($iwp_mmb_core->request_params) && !empty($replace)){
1032
if(!empty($replace['hideUpdatesCPB'])){
1033
//add_filter('wp_get_update_data', array($this, 'iwp_wp_get_update_data'), 10, 2);
1034
$page = remove_submenu_page( 'index.php', 'update-core.php' );
1035
+ add_filter('transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
1036
+ add_filter('site_transient_update_core', array($this, 'iwp_remove_core_updates'), 999999, 1);
1037
+ add_filter('site_transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
1038
+ add_filter('site_transient_update_themes', array($this, 'iwp_remove_core_updates'), 999999, 1);
1039
}
1040
if(!empty($replace['hideFWPCPB'])){
1041
+ // remove_submenu_page('themes.php','theme-editor.php');
1042
+ // remove_submenu_page('plugins.php','plugin-editor.php'); // this is old method this allows editor in direct URL
1043
+ if (!defined('DISALLOW_FILE_EDIT')) {
1044
+ define('DISALLOW_FILE_EDIT', true);
1045
+ }
1046
add_filter('plugin_action_links', array($this, 'iwp_client_replace_action_links'), 10, 2);
1047
}
1048
}
1049
}
1050
+
1051
+ function iwp_cpb_hide_updates($args){
1052
+ global $iwp_mmb_core;
1053
+ $replace = get_option("iwp_client_brand");
1054
+ if(empty($iwp_mmb_core->request_params) && !empty($replace)){
1055
+ if(!empty($replace['hideUpdatesCPB'])){
1056
+ add_filter('transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
1057
+ add_filter('site_transient_update_core', array($this, 'iwp_remove_core_updates'), 999999, 1);
1058
+ add_filter('site_transient_update_plugins', array($this, 'iwp_remove_core_updates'), 999999, 1);
1059
+ add_filter('site_transient_update_themes', array($this, 'iwp_remove_core_updates'), 999999, 1);
1060
+ }
1061
+ }
1062
+ }
1063
1064
function iwp_user_admin_url($args, $args2){
1065
//for modifying the link available in plugin's view version details link.
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.8.5
8
Author URI: http://www.revmakx.com
9
*/
10
/************************************************************
@@ -28,7 +28,7 @@ if(basename($_SERVER['SCRIPT_FILENAME']) == "init.php"):
28
exit;
29
endif;
30
if(!defined('IWP_MMB_CLIENT_VERSION'))
31
- define('IWP_MMB_CLIENT_VERSION', '1.8.5');
32
33
34
@@ -236,6 +236,9 @@ if (!function_exists ('iwp_mmb_add_readd_request')) {
236
if (!function_exists ('iwp_mmb_set_request')) {
237
function iwp_mmb_set_request(){
238
global $current_user, $iwp_mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $iwp_mmb_activities_log;
239
if (empty($iwp_mmb_core->request_params)) {
240
return false;
241
}
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.8.6
8
Author URI: http://www.revmakx.com
9
*/
10
/************************************************************
28
exit;
29
endif;
30
if(!defined('IWP_MMB_CLIENT_VERSION'))
31
+ define('IWP_MMB_CLIENT_VERSION', '1.8.6');
32
33
34
236
if (!function_exists ('iwp_mmb_set_request')) {
237
function iwp_mmb_set_request(){
238
global $current_user, $iwp_mmb_core, $new_actions, $wp_db_version, $wpmu_version, $_wp_using_ext_object_cache, $iwp_mmb_activities_log;
239
+ if (is_user_logged_in()) {
240
+ iwp_plugin_compatibility_fix();
241
+ }
242
if (empty($iwp_mmb_core->request_params)) {
243
return false;
244
}
lib/ftp.class.php CHANGED
@@ -13,7 +13,7 @@ class IWP_MMB_ftp_wrapper {
13
public $timeout = 60;
14
public $passive = true;
15
public $system_type = '';
16
- public $ssl = false;
17
public $use_server_certs = false;
18
public $disable_verify = true;
19
public $login_type = 'non-encrypted';
@@ -28,7 +28,17 @@ class IWP_MMB_ftp_wrapper {
28
public function connect() {
29
30
$time_start = time();
31
- $this->conn_id = ftp_connect($this->host, $this->port, 20);
32
33
if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
34
@@ -37,8 +47,24 @@ class IWP_MMB_ftp_wrapper {
37
ftp_pasv($this->conn_id, $this->passive);
38
$this->system_type = ftp_systype($this->conn_id);
39
return true;
40
}
41
42
if (time() - $time_start > 19) {
43
global $iwp_backup_core;
44
$iwp_backup_core->log(sprintf(__('The %s connection timed out; if you entered the server correctly, then this is usually caused by a firewall blocking the connection - you should check with your web hosting company.', 'InfiniteWP'), 'FTP'), 'error');
13
public $timeout = 60;
14
public $passive = true;
15
public $system_type = '';
16
+ public $ssl = true;
17
public $use_server_certs = false;
18
public $disable_verify = true;
19
public $login_type = 'non-encrypted';
28
public function connect() {
29
30
$time_start = time();
31
+ if (function_exists('ftp_ssl_connect') && false !== $this->ssl) {
32
+ $this->conn_id = ftp_ssl_connect($this->host, $this->port, 15);
33
+ $attempting_ssl = true;
34
+ }
35
+
36
+ if ($this->conn_id) {
37
+ $this->login_type = 'encrypted';
38
+ $this->ssl = true;
39
+ } else {
40
+ $this->conn_id = ftp_connect($this->host, $this->port, 15);
41
+ }
42
43
if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
44
47
ftp_pasv($this->conn_id, $this->passive);
48
$this->system_type = ftp_systype($this->conn_id);
49
return true;
50
+ } elseif (!empty($attempting_ssl)) {
51
+ $this->ssl = false;
52
+ $this->login_type = 'non-encrypted';
53
+ $time_start = time();
54
+ $this->conn_id = ftp_connect($this->host, $this->port, 15);
55
+ if ($this->conn_id) $result = ftp_login($this->conn_id, $this->username, $this->password);
56
+ if (!empty($result)) {
57
+ ftp_set_option($this->conn_id, FTP_TIMEOUT_SEC, $this->timeout);
58
+ ftp_pasv($this->conn_id, $this->passive);
59
+ $this->system_type = ftp_systype($this->conn_id);
60
+ return true;
61
+ } else {
62
+ // Add back the previous PHP messages
63
+
64
+ }
65
}
66
67
+ // If we got here, then we failed
68
if (time() - $time_start > 19) {
69
global $iwp_backup_core;
70
$iwp_backup_core->log(sprintf(__('The %s connection timed out; if you entered the server correctly, then this is usually caused by a firewall blocking the connection - you should check with your web hosting company.', 'InfiniteWP'), 'FTP'), 'error');
pclzip.class.php CHANGED
@@ -5308,10 +5308,10 @@ endif;
5308
5309
// ----- Go to the end of the zip file
5310
$v_size = iwp_mmb_get_file_size($this->zipname);
5311
- $disk_space = iwp_mmb_check_disk_space();
5312
- if ($disk_space != false) {
5313
- return array('error' => 'Your disk space is very low available space: '.$disk_space.'MB');
5314
- }
5315
5316
if($v_size === false)
5317
{
5308
5309
// ----- Go to the end of the zip file
5310
$v_size = iwp_mmb_get_file_size($this->zipname);
5311
+ // $disk_space = iwp_mmb_check_disk_space();
5312
+ // if ($disk_space != false) {
5313
+ // return array('error' => 'Your disk space is very low available space: '.$disk_space.'MB');
5314
+ // }
5315
5316
if($v_size === false)
5317
{
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
Contributors: infinitewp
3
Tags: admin, administration, amazon, api, authentication, automatic, dashboard, dropbox, events, integration, manage, multisite, multiple, notification, performance, s3, security, seo, stats, tracking, infinitewp, updates, backup, restore, iwp, infinite
4
Requires at least: 3.1
5
- Tested up to: 4.9.8
6
Stable tag: trunk
7
8
Install this plugin on unlimited sites and manage them all from a central dashboard.
@@ -47,6 +47,15 @@ Credits: [Vladimir Prelovac](http://prelovac.com/vladimir) for his worker plugin
47
5. One-click updates
48
49
== Changelog ==
50
= 1.8.5 - Sep 4th 2018 =
51
* Improvement: Multisite support for broken link checker plugin.
52
* Improvement: MySQL DB dump process is improved in multicall and single call backup.
2
Contributors: infinitewp
3
Tags: admin, administration, amazon, api, authentication, automatic, dashboard, dropbox, events, integration, manage, multisite, multiple, notification, performance, s3, security, seo, stats, tracking, infinitewp, updates, backup, restore, iwp, infinite
4
Requires at least: 3.1
5
+ Tested up to: 5.0.3
6
Stable tag: trunk
7
8
Install this plugin on unlimited sites and manage them all from a central dashboard.
47
5. One-click updates
48
49
== Changelog ==
50
+ = 1.8.6 - Feb 11th 2019 =
51
+ * Fix: Duo security plugin on WordPress site breaks the IWP client plugin connection while performing open admin action.
52
+ * Fix: Backup is retried when it failed with error "Failed to connect to content.dropboxapi.com port 443: Connection timed out. and Could not resolve host: api.dropboxapi.com.".
53
+ * Fix: Plugin updates count showing in plugin menu on WP admin page while hide plugin updates setting is enabled on InfiniteWP admin panel via Client Plugin Branding.
54
+ * Fix: Phoenix backup SFTP or FTP not using the custom port.
55
+ * Fix: FTP SSL not working on Phoenix backup.
56
+ * Fix: Ithemes security data is not included in the client reports.
57
+ * Fix: Backups failed with error "Database backup failed. Try to enable MySQL dump on your server.".
58
+
59
= 1.8.5 - Sep 4th 2018 =
60
* Improvement: Multisite support for broken link checker plugin.
61
* Improvement: MySQL DB dump process is improved in multicall and single call backup.