The WP Remote WordPress Plugin - Version 2.6.5

Version Description

Download this release

Release Info

Developer danielbachhuber
Plugin Icon 128x128 The WP Remote WordPress Plugin
Version 2.6.5
Comparing to
See all releases

Code changes from version 2.6.4 to 2.6.5

CONTRIBUTING.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Contribution guidelines ##
2
+
3
+ ## Workflow ##
4
+
5
+ * Develop on a feature branch and send a pull request for review.
6
+ * Assign the pull request to one of the following contacts:
7
+ * Primary: Daniel Bachhuber [@danielbachhuber](https://github.com/danielbachhuber)
8
+ * Secondary:
9
+
10
+ ## Coding Standards ##
11
+
12
+ Please follow these recommendations
13
+ [http://codex.wordpress.org/WordPress_Coding_Standards](http://codex.wordpress.org/WordPress_Coding_Standards)
plugin.php CHANGED
@@ -3,7 +3,7 @@
3
  /*
4
  Plugin Name: WP Remote
5
  Description: Manage your WordPress site with <a href="https://wpremote.com/">WP Remote</a>. <strong>Deactivate to clear your API Key.</strong>
6
- Version: 2.6.4
7
  Author: Human Made Limited
8
  Author URI: http://hmn.md/
9
  */
@@ -62,18 +62,6 @@ if ( version_compare( get_bloginfo( 'version' ), '3.1', '>=' ) ) {
62
 
63
  }
64
 
65
- // Don't include when doing a core update
66
- if ( empty( $_GET['action'] ) || $_GET['action'] != 'do-core-upgrade' ) :
67
-
68
- require_once ( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
69
-
70
- // Custom upgrader skins
71
- require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-plugin-upgrader-skin.php';
72
- require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-theme-upgrader-skin.php';
73
- require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-core-upgrader-skin.php';
74
-
75
- endif;
76
-
77
  /**
78
  * Get a needed URL on the WP Remote site
79
  *
@@ -177,6 +165,8 @@ function _wprp_upgrade_core() {
177
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
178
  include_once ( ABSPATH . 'wp-admin/includes/upgrade.php' );
179
  include_once ( ABSPATH . 'wp-includes/update.php' );
 
 
180
 
181
  // check for filesystem access
182
  if ( ! _wpr_check_filesystem_access() )
3
  /*
4
  Plugin Name: WP Remote
5
  Description: Manage your WordPress site with <a href="https://wpremote.com/">WP Remote</a>. <strong>Deactivate to clear your API Key.</strong>
6
+ Version: 2.6.5
7
  Author: Human Made Limited
8
  Author URI: http://hmn.md/
9
  */
62
 
63
  }
64
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  /**
66
  * Get a needed URL on the WP Remote site
67
  *
165
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
166
  include_once ( ABSPATH . 'wp-admin/includes/upgrade.php' );
167
  include_once ( ABSPATH . 'wp-includes/update.php' );
168
+ require_once ( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
169
+ require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-core-upgrader-skin.php';
170
 
171
  // check for filesystem access
172
  if ( ! _wpr_check_filesystem_access() )
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: humanmade, willmot, joehoyle, danielbachhuber, mattheu, pauldewouters, cuvelier, tcrsavage
3
  Tags: wpremote, remote administration, multiple wordpress
4
  Requires at least: 3.0
5
- Tested up to: 3.6.1
6
- Stable tag: 2.6.4
7
 
8
  WP Remote is a free web app that enables you to easily manage all of your WordPress powered sites from one place.
9
 
@@ -29,8 +29,20 @@ You can email us at support@wpremote.com for support.
29
  2. Activate the plugin.
30
  3. Sign up for an account at wpremote.com and add your site.
31
 
 
 
 
 
 
 
32
  == Changelog ==
33
 
 
 
 
 
 
 
34
  #### 2.6.4 (2 October 2013)
35
 
36
  * Misc API improvements for Premium.
@@ -134,4 +146,8 @@ You can email us at support@wpremote.com for support.
134
 
135
  * Start keeping a changelog of plugin changes
136
  * Pass home_url, site_url and admin_url to WP Remote instead of guessing at them, fixes issues with the urls being wrong for non-standard WordPress installs
137
- * Better error message when you have the wrong API key entered.
 
 
 
 
2
  Contributors: humanmade, willmot, joehoyle, danielbachhuber, mattheu, pauldewouters, cuvelier, tcrsavage
3
  Tags: wpremote, remote administration, multiple wordpress
4
  Requires at least: 3.0
5
+ Tested up to: 3.7
6
+ Stable tag: 2.6.5
7
 
8
  WP Remote is a free web app that enables you to easily manage all of your WordPress powered sites from one place.
9
 
29
  2. Activate the plugin.
30
  3. Sign up for an account at wpremote.com and add your site.
31
 
32
+ == Screenshots ==
33
+
34
+ 1. The WP Remote dashboard at wpremote.com
35
+ 2. See all of the plugins and themes needing update across all Sites in one view.
36
+ 3. Download nightly Automatic Backups (Premium feature).
37
+
38
  == Changelog ==
39
 
40
+ #### 2.6.5 (23 October 2013)
41
+
42
+ * Incorporated a more reliable plugin re-activation process after update.
43
+ * Bug fix: Properly delete backup folders for failed backups. Users may want to look inside of `/wp-content/` for any folders named as `*-backups`. If they were created by WP Remote, they can be safely deleted.
44
+ * Bug fix: Log the proper fields in history when a new user is created.
45
+
46
  #### 2.6.4 (2 October 2013)
47
 
48
  * Misc API improvements for Premium.
146
 
147
  * Start keeping a changelog of plugin changes
148
  * Pass home_url, site_url and admin_url to WP Remote instead of guessing at them, fixes issues with the urls being wrong for non-standard WordPress installs
149
+ * Better error message when you have the wrong API key entered.
150
+
151
+ ## Contribution guidelines ##
152
+
153
+ see https://github.com/humanmade/WP-Remote-WordPress-Plugin/blob/master/CONTRIBUTING.md
screenshot-1.png CHANGED
Binary file
screenshot-2.png ADDED
Binary file
screenshot-3.png ADDED
Binary file
wprp.backups.php CHANGED
@@ -147,19 +147,7 @@ class WPRP_Backups extends WPRP_HM_Backup {
147
  */
148
  public function cleanup() {
149
 
150
- $zips = glob( $this->get_path() . '/*.zip' );
151
-
152
- // Remove any .zip files
153
- foreach ( $zips as $zip )
154
- unlink( $zip );
155
-
156
- if ( file_exists( trailingslashit( $this->get_path() ) . 'index.html' ) )
157
- unlink( trailingslashit( $this->get_path() ) . 'index.html' );
158
-
159
- if ( file_exists( trailingslashit( $this->get_path() ) . '.htaccess' ) )
160
- unlink( trailingslashit( $this->get_path() ) . '.htaccess' );
161
-
162
- rmdir( $this->get_path() );
163
 
164
  delete_option( 'wprp_backup_path' );
165
 
@@ -325,7 +313,7 @@ class WPRP_Backups extends WPRP_HM_Backup {
325
  $contents[] = '';
326
  $contents[] = '<IfModule mod_rewrite.c>';
327
  $contents[] = 'RewriteEngine On';
328
- $contents[] = 'RewriteCond %{QUERY_STRING} !key=' . WPRP_SECURE_KEY;
329
  $contents[] = 'RewriteRule (.*) - [F]';
330
  $contents[] = '</IfModule>';
331
  $contents[] = '';
147
  */
148
  public function cleanup() {
149
 
150
+ $this->rmdir_recursive( $this->get_path() );
 
 
 
 
 
 
 
 
 
 
 
 
151
 
152
  delete_option( 'wprp_backup_path' );
153
 
313
  $contents[] = '';
314
  $contents[] = '<IfModule mod_rewrite.c>';
315
  $contents[] = 'RewriteEngine On';
316
+ $contents[] = 'RewriteCond %{QUERY_STRING} !key=' . $this->key();
317
  $contents[] = 'RewriteRule (.*) - [F]';
318
  $contents[] = '</IfModule>';
319
  $contents[] = '';
wprp.hm.backup.php CHANGED
@@ -170,6 +170,10 @@ class WPRP_HM_Backup {
170
  if ( array_intersect( array( 'shell_exec', 'escapeshellarg', 'escapeshellcmd' ), array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) )
171
  return false;
172
 
 
 
 
 
173
  // Can we issue a simple echo command?
174
  if ( ! @shell_exec( 'echo backupwordpress' ) )
175
  return false;
@@ -501,7 +505,8 @@ class WPRP_HM_Backup {
501
  '/Program Files/MySQL/MySQL Server 5.4/bin/mysqldump',
502
  '/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump',
503
  '/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump',
504
- '/Program Files/MySQL/MySQL Server 4.1/bin/mysqldump'
 
505
  );
506
 
507
  // Find the one which works
@@ -562,7 +567,8 @@ class WPRP_HM_Backup {
562
 
563
  // List of possible zip locations
564
  $zip_locations = array(
565
- '/usr/bin/zip'
 
566
  );
567
 
568
  // Find the one which works
170
  if ( array_intersect( array( 'shell_exec', 'escapeshellarg', 'escapeshellcmd' ), array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) )
171
  return false;
172
 
173
+ // Functions can also be disabled via suhosin
174
+ if ( array_intersect( array( 'shell_exec', 'escapeshellarg', 'escapeshellcmd' ), array_map( 'trim', explode( ',', @ini_get( 'suhosin.executor.func.blacklist' ) ) ) ) )
175
+ return false;
176
+
177
  // Can we issue a simple echo command?
178
  if ( ! @shell_exec( 'echo backupwordpress' ) )
179
  return false;
505
  '/Program Files/MySQL/MySQL Server 5.4/bin/mysqldump',
506
  '/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump',
507
  '/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump',
508
+ '/Program Files/MySQL/MySQL Server 4.1/bin/mysqldump',
509
+ '/opt/local/bin/mysqldump',
510
  );
511
 
512
  // Find the one which works
567
 
568
  // List of possible zip locations
569
  $zip_locations = array(
570
+ '/usr/bin/zip',
571
+ '/opt/local/bin/zip',
572
  );
573
 
574
  // Find the one which works
wprp.log.php CHANGED
@@ -51,22 +51,25 @@ class WPRP_Log {
51
 
52
  public function action_user_register( $user_id ) {
53
 
54
- $user = get_userdata();
55
 
56
  // we are only interested in administators
57
- if ( ! array_intersect( $user->roles, array( 'administrator' ) ) )
58
  return;
59
 
60
  $this->add_item( array(
61
- 'type' => 'user',
62
- 'action' => 'create',
63
- 'remote_user' => array( 'user_login' => $user->user_login, 'display_name' => $user->display_name ),
 
 
 
64
  ));
65
  }
66
 
67
  public function action_profile_updated( $user_id, $old_user_data ) {
68
 
69
- $user_data = get_userdata( $user_id );
70
 
71
  // we are only interested in administators
72
  if ( ! array_intersect( $user_data->roles, array( 'administrator' ) ) )
@@ -79,6 +82,7 @@ class WPRP_Log {
79
  'action' => 'email-update',
80
  'old_email' => $old_user_data->user_email,
81
  'new_email' => $user_data->user_email,
 
82
  ));
83
  }
84
 
@@ -86,6 +90,7 @@ class WPRP_Log {
86
  $this->add_item( array(
87
  'type' => 'user',
88
  'action' => 'password-update',
 
89
  ));
90
  }
91
  }
@@ -96,7 +101,8 @@ class WPRP_Log {
96
  'type' => 'theme',
97
  'action' => 'switch',
98
  'old_theme' => $old_theme,
99
- 'new_theme' => $new_theme
 
100
  ));
101
  }
102
 
51
 
52
  public function action_user_register( $user_id ) {
53
 
54
+ $new_user = get_user_by( 'id', $user_id );
55
 
56
  // we are only interested in administators
57
+ if ( ! array_intersect( $new_user->roles, array( 'administrator' ) ) )
58
  return;
59
 
60
  $this->add_item( array(
61
+ 'type' => 'user',
62
+ 'action' => 'create',
63
+ 'user_login' => $new_user->user_login,
64
+ 'display_name' => $new_user->display_name,
65
+ 'role' => $new_user->roles[0],
66
+ /** remote_user is added in the `add_item()` method **/
67
  ));
68
  }
69
 
70
  public function action_profile_updated( $user_id, $old_user_data ) {
71
 
72
+ $user_data = get_user_by( 'id', $user_id );
73
 
74
  // we are only interested in administators
75
  if ( ! array_intersect( $user_data->roles, array( 'administrator' ) ) )
82
  'action' => 'email-update',
83
  'old_email' => $old_user_data->user_email,
84
  'new_email' => $user_data->user_email,
85
+ /** remote_user is added in the `add_item()` method **/
86
  ));
87
  }
88
 
90
  $this->add_item( array(
91
  'type' => 'user',
92
  'action' => 'password-update',
93
+ /** remote_user is added in the `add_item()` method **/
94
  ));
95
  }
96
  }
101
  'type' => 'theme',
102
  'action' => 'switch',
103
  'old_theme' => $old_theme,
104
+ 'new_theme' => $new_theme,
105
+ /** remote_user is added in the `add_item()` method **/
106
  ));
107
  }
108
 
wprp.plugins.php CHANGED
@@ -9,9 +9,6 @@ function _wprp_get_plugins() {
9
 
10
  require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
11
 
12
- // Disabled 10/2/13 because buggy all the time
13
- // _wpr_add_non_extend_plugin_support_filter();
14
-
15
  // Get all plugins
16
  $plugins = get_plugins();
17
 
@@ -74,12 +71,12 @@ function _wprp_get_plugins() {
74
  function _wprp_update_plugin( $plugin ) {
75
 
76
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
 
 
77
 
78
  if ( ! _wprp_supports_plugin_upgrade() )
79
  return array( 'status' => 'error', 'error' => 'WordPress version too old for plugin upgrades' );
80
 
81
- _wpr_add_non_extend_plugin_support_filter();
82
-
83
  // check for filesystem access
84
  if ( ! _wpr_check_filesystem_access() )
85
  return array( 'status' => 'error', 'error' => 'The filesystem is not writable with the supplied credentials' );
@@ -97,52 +94,22 @@ function _wprp_update_plugin( $plugin ) {
97
  $data = ob_get_contents();
98
  ob_clean();
99
 
100
- if ( ( ! $result && ! is_null( $result ) ) || $data )
101
- return array( 'status' => 'error', 'error' => 'file_permissions_error' );
102
-
103
- elseif ( is_wp_error( $result ) )
104
- return array( 'status' => 'error', 'error' => $result->get_error_code() );
105
-
106
- if ( $skin->error )
107
- return array( 'status' => 'error', 'error' => $skin->error );
108
-
109
- // If the plugin was activited, we have to re-activate it
110
- if ( $is_active ) {
111
-
112
- // we can not use the "normal" way or lazy activating, as thet requires wpremote to be activated
113
- if ( strpos( $plugin, 'wpremote' ) !== false ) {
114
- activate_plugin( $plugin, '', false, true );
115
- return array( 'status' => 'success' );
116
- }
117
-
118
- // we do a remote request to activate, as we don't want to kill any installs
119
- $data = array( 'actions' => array( 'activate_plugin' ), 'plugin' => $plugin, 'timestamp' => (string) time() );
120
-
121
- list( $hash ) = WPR_API_Request::generate_hashes( $data );
122
-
123
- $data['wpr_verify_key'] = $hash;
124
-
125
- $args = array( 'body' => $data );
126
-
127
- $request = wp_remote_post( get_bloginfo( 'url' ), $args );
128
 
129
- if ( is_wp_error( $request ) ) {
130
- return array( 'status' => 'error', 'error' => $request->get_error_code() );
131
- }
132
 
133
- $body = wp_remote_retrieve_body( $request );
134
 
135
- if ( ! $json = @json_decode( $body ) )
136
- return array( 'status' => 'error', 'error' => 'The plugin was updated, but failed to re-activate.' );
137
 
138
- $json = $json->activate_plugin;
139
 
140
- if ( empty( $json->status ) )
141
- return array( 'status' => 'error', 'error' => 'The plugin was updated, but failed to re-activate. The activation request returned no response' );
142
 
143
- if ( $json->status != 'success' )
144
- return array( 'status' => 'error', 'error' => 'The plugin was updated, but failed to re-activate. The activation request returned response: ' . $json->status );
145
- }
 
146
 
147
  return array( 'status' => 'success' );
148
  }
@@ -266,102 +233,3 @@ function _wprp_supports_plugin_upgrade() {
266
  return class_exists( 'Plugin_Upgrader' );
267
 
268
  }
269
-
270
- function _wpr_add_non_extend_plugin_support_filter() {
271
- add_filter( 'pre_set_site_transient_update_plugins', '_wpr_add_non_extend_plugin_support' );
272
- }
273
-
274
- function _wpr_add_non_extend_plugin_support( $value ) {
275
-
276
- foreach( $non_extend_list = _wprp_get_non_extend_plugins_data() as $key => $anon_function ) {
277
-
278
- if ( ( $returned = call_user_func( $non_extend_list[$key] ) ) )
279
- $value->response[$returned->plugin_location] = $returned;
280
- }
281
-
282
- return $value;
283
-
284
- }
285
-
286
-
287
- function _wprp_get_non_extend_plugins_data() {
288
-
289
- return array(
290
- 'gravity_forms' => '_wpr_get_gravity_form_plugin_data',
291
- 'backupbuddy' => '_wpr_get_backupbuddy_plugin_data',
292
- 'tribe_events_pro' => '_wpr_get_tribe_events_pro_plugin_data'
293
- );
294
-
295
- }
296
-
297
- function _wpr_get_gravity_form_plugin_data() {
298
-
299
- if ( ! class_exists('GFCommon') || ! method_exists( 'GFCommon', 'get_version_info' ) || ! method_exists( 'RGForms', 'premium_update_push' ) )
300
- return false;
301
-
302
- $version_data = GFCommon::get_version_info();
303
- $gravity_forms_update = RGForms::premium_update_push( array() );
304
- $plugin_data = reset( $gravity_forms_update );
305
-
306
- if ( empty( $version_data['url'] ) || empty( $version_data['is_valid_key'] ) || empty( $plugin_data['new_version'] ) || empty( $plugin_data['PluginURI'] ) || empty( $plugin_data['slug'] ) )
307
- return false;
308
-
309
- return (object) array(
310
- 'plugin_location' => $plugin_data['slug'], //Not in standard structure but don't forget to include it!
311
- 'id' => 999999999,
312
- 'slug' => 'gravityforms',
313
- 'url' => $plugin_data['PluginURI'],
314
- 'package' => $version_data['url'],
315
- 'new_version' => $version_data['version']
316
- );
317
-
318
- }
319
-
320
- function _wpr_get_backupbuddy_plugin_data() {
321
-
322
- if ( !class_exists('pb_backupbuddy') )
323
- return false;
324
-
325
- if ( ! file_exists( pb_backupbuddy::plugin_path() . '/pluginbuddy/lib/updater/updater.php' ) )
326
- return false;
327
-
328
- require_once( pb_backupbuddy::plugin_path() . '/pluginbuddy/lib/updater/updater.php' );
329
- $preloader_class = 'pb_' . pb_backupbuddy::settings( 'slug' ) . '_updaterpreloader';
330
- $updater_preloader = new $preloader_class( pb_backupbuddy::settings( 'slug' ) );
331
- $updater_preloader->upgrader_register();
332
- $updater_preloader->upgrader_select();
333
-
334
- if ( !is_a( pb_backupbuddy::$_updater, 'pb_backupbuddy_updater' ) || !method_exists( pb_backupbuddy::$_updater, 'check_for_updates' ) )
335
- return false;
336
-
337
- $current_version = pb_backupbuddy::settings( 'version' );
338
- $update_data = pb_backupbuddy::$_updater->check_for_updates();
339
-
340
- if ( $update_data->key_status != 'ok' || version_compare( $update_data->new_version, $current_version, '<=' ) )
341
- return false;
342
-
343
- $update_data->plugin_location = plugin_basename( pb_backupbuddy::plugin_path() . '/backupbuddy.php' ); // needed in _wpr_add_non_extend_plugin_support()
344
-
345
- return $update_data;
346
-
347
- }
348
-
349
- function _wpr_get_tribe_events_pro_plugin_data() {
350
-
351
- if ( !class_exists( 'TribeEventsPro' ) || ! class_exists( 'PluginUpdateEngineChecker' ) )
352
- return false;
353
-
354
- $events = TribeEventsPro::instance();
355
- $updater = new PluginUpdateEngineChecker( $events->updateUrl, $events->pluginSlug, array(), plugin_basename( $events->pluginPath . 'events-calendar-pro.php' ) );
356
- $state = get_option( $updater->optionName );
357
-
358
- if ( !is_a( $state->update, 'PluginUpdateUtility' ) )
359
- return false;
360
-
361
- if ( version_compare( $state->update->version, $updater->getInstalledVersion(), '<=' ) )
362
- return false;
363
-
364
- $update_data = $state->update->toWpFormat();
365
- $update_data->plugin_location = $updater->pluginFile; // needed in _wpr_add_non_extend_plugin_support()
366
-
367
- }
9
 
10
  require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
11
 
 
 
 
12
  // Get all plugins
13
  $plugins = get_plugins();
14
 
71
  function _wprp_update_plugin( $plugin ) {
72
 
73
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
74
+ require_once ( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
75
+ require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-plugin-upgrader-skin.php';
76
 
77
  if ( ! _wprp_supports_plugin_upgrade() )
78
  return array( 'status' => 'error', 'error' => 'WordPress version too old for plugin upgrades' );
79
 
 
 
80
  // check for filesystem access
81
  if ( ! _wpr_check_filesystem_access() )
82
  return array( 'status' => 'error', 'error' => 'The filesystem is not writable with the supplied credentials' );
94
  $data = ob_get_contents();
95
  ob_clean();
96
 
97
+ if ( ! empty( $skin->error ) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
 
99
+ return array( 'status' => 'error', 'error' => $upgrader->strings[$skin->error] );
 
 
100
 
101
+ else if ( is_wp_error( $result ) )
102
 
103
+ return array( 'status' => 'error', 'error' => $result->get_error_code() );
 
104
 
105
+ else if ( ( ! $result && ! is_null( $result ) ) || $data )
106
 
107
+ return array( 'status' => 'error', 'error' => 'Unknown error updating plugin.' );
 
108
 
109
+ // If the plugin was activited, we have to re-activate it
110
+ // but if activate_plugin() fatals, then we'll just have to return 500
111
+ if ( $is_active )
112
+ activate_plugin( $plugin, '', false, true );
113
 
114
  return array( 'status' => 'success' );
115
  }
233
  return class_exists( 'Plugin_Upgrader' );
234
 
235
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
wprp.themes.php CHANGED
@@ -9,9 +9,6 @@ function _wprp_get_themes() {
9
 
10
  require_once( ABSPATH . '/wp-admin/includes/theme.php' );
11
 
12
- // Disabled 10/2/2013 because causes fatals all the time.
13
- // _wpr_add_non_extend_theme_support_filter();
14
-
15
  // Get all themes
16
  if ( function_exists( 'wp_get_themes' ) )
17
  $themes = wp_get_themes();
@@ -158,12 +155,12 @@ function _wprp_activate_theme( $theme ) {
158
  function _wprp_update_theme( $theme ) {
159
 
160
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
 
 
161
 
162
  if ( ! _wprp_supports_theme_upgrade() )
163
  return array( 'status' => 'error', 'error' => 'WordPress version too old for theme upgrades' );
164
 
165
- _wpr_add_non_extend_theme_support_filter();
166
-
167
  // check for filesystem access
168
  if ( ! _wpr_check_filesystem_access() )
169
  return array( 'status' => 'error', 'error' => 'The filesystem is not writable with the supplied credentials' );
@@ -240,55 +237,3 @@ function _wprp_supports_theme_upgrade() {
240
  return class_exists( 'Theme_Upgrader' );
241
 
242
  }
243
-
244
- function _wpr_add_non_extend_theme_support_filter() {
245
- add_filter( 'pre_set_site_transient_update_themes', '_wpr_add_non_extend_theme_support' );
246
- }
247
-
248
- function _wpr_add_non_extend_theme_support( $value ) {
249
-
250
- foreach( $non_extend_list = _wprp_get_non_extend_themes_data() as $key => $anon_function ) {
251
-
252
- if ( ( $returned = call_user_func( $non_extend_list[$key] ) ) )
253
- $value->response[ $returned['Template'] ] = $returned;
254
- }
255
-
256
- return $value;
257
-
258
- }
259
-
260
-
261
- function _wprp_get_non_extend_themes_data() {
262
-
263
- return array(
264
- 'pagelines' => '_wpr_get_pagelines_theme_data'
265
- );
266
-
267
- }
268
-
269
- function _wpr_get_pagelines_theme_data() {
270
-
271
- global $global_pagelines_settings;
272
-
273
- if ( !class_exists( 'PageLinesUpdateCheck' ) )
274
- return false;
275
-
276
- if ( defined( 'PL_CORE_VERSION' ) )
277
- $version = PL_CORE_VERSION;
278
- elseif ( defined( 'CORE_VERSION' ) )
279
- $version = CORE_VERSION;
280
- else
281
- return false;
282
-
283
- $global_pagelines_settings['disable_updates'] = true; // prevent endless loop in PageLinesUpdateCheck::pagelines_theme_check_version()
284
- $updater = new PageLinesUpdateCheck( $version );
285
- $update_data = (array) maybe_unserialize( $updater->pagelines_theme_update_check() );
286
-
287
- if ( $update_data && isset( $update_data['package'] ) && $update_data['package'] !== 'bad' ) {
288
- $update_data['Template'] = 'pagelines'; // needed in _wpr_add_non_extend_theme_support()
289
- return $update_data;
290
- }
291
-
292
- return false;
293
-
294
- }
9
 
10
  require_once( ABSPATH . '/wp-admin/includes/theme.php' );
11
 
 
 
 
12
  // Get all themes
13
  if ( function_exists( 'wp_get_themes' ) )
14
  $themes = wp_get_themes();
155
  function _wprp_update_theme( $theme ) {
156
 
157
  include_once ( ABSPATH . 'wp-admin/includes/admin.php' );
158
+ require_once ( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
159
+ require_once WPRP_PLUGIN_PATH . 'inc/class-wprp-theme-upgrader-skin.php';
160
 
161
  if ( ! _wprp_supports_theme_upgrade() )
162
  return array( 'status' => 'error', 'error' => 'WordPress version too old for theme upgrades' );
163
 
 
 
164
  // check for filesystem access
165
  if ( ! _wpr_check_filesystem_access() )
166
  return array( 'status' => 'error', 'error' => 'The filesystem is not writable with the supplied credentials' );
237
  return class_exists( 'Theme_Upgrader' );
238
 
239
  }