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