PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.5.8
Shortcodes and extra features for Phlox theme v2.5.8
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / admin / includes / classes / class-auxin-upgrader-plugin.php
auxin-elements / admin / includes / classes Last commit date
class-auxels-plugin-check-update.php 6 years ago class-auxin-dashboard-notice.php 7 years ago class-auxin-license-activation.php 7 years ago class-auxin-notices.php 6 years ago class-auxin-upgrader-ajax-handlers.php 7 years ago class-auxin-upgrader-http-api.php 6 years ago class-auxin-upgrader-plugin.php 7 years ago class-auxin-upgrader-prepare.php 6 years ago class-auxin-upgrader-theme.php 7 years ago
class-auxin-upgrader-plugin.php
143 lines
1 <?php
2
3 class Auxin_Upgrader_Plugin extends Plugin_Upgrader {
4
5 protected $update_list;
6
7 /**
8 * Bulk upgrade several plugins at once.
9 *
10 * @param array $plugins Array of the basename paths of the plugins' main files.
11 * @param array $args {
12 * Optional. Other arguments for upgrading several plugins at once. Default empty array.
13 *
14 * @type bool $clear_update_cache Whether to clear the plugin updates cache if successful.
15 * Default true.
16 * }
17 * @return array|false An array of results indexed by plugin file, or false if unable to connect to the filesystem.
18 */
19 public function start_upgrade( $plugins, $args = array() ) {
20
21 $defaults = array(
22 'clear_update_cache' => true,
23 );
24 $parsed_args = wp_parse_args( $args, $defaults );
25
26 $this->init();
27 $this->bulk = true;
28 $this->upgrade_strings();
29
30 $this->update_list = auxin_get_transient( 'auxin_update_plugins' );
31
32 add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
33
34 $this->skin->header();
35
36 // Connect to the Filesystem first.
37 $res = $this->fs_connect( array(WP_CONTENT_DIR, WP_PLUGIN_DIR) );
38 if ( ! $res ) {
39 $this->skin->footer();
40 return false;
41 }
42
43 $this->skin->bulk_header();
44
45 /*
46 * Only start maintenance mode if:
47 * - running Multisite and there are one or more plugins specified, OR
48 * - a plugin with an update available is currently active.
49 * @TODO: For multisite, maintenance mode should only kick in for individual sites if at all possible.
50 */
51 $maintenance = ( is_multisite() && ! empty( $plugins ) );
52 foreach ( $plugins as $plugin )
53 $maintenance = $maintenance || ( is_plugin_active( $plugin ) && isset( $this->update_list->response[ $plugin ] ) );
54 if ( $maintenance )
55 $this->maintenance_mode(true);
56
57 $results = array();
58 $api_request = new Auxin_Upgrader_Http_Api;
59
60 $this->update_count = count($plugins);
61 $this->update_current = 0;
62 foreach ( $plugins as $plugin ) {
63 $this->update_current++;
64 $this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true);
65
66 // Fix VC issue with auto update
67 if( $plugin === 'js_composer/js_composer.php' ) {
68 add_filter( 'upgrader_pre_download', '__return_false', 9999);
69 }
70
71 if ( !isset( $this->update_list->response[ $plugin ] ) ) {
72 $this->skin->set_result('up_to_date');
73 $this->skin->before();
74 $this->skin->feedback('up_to_date');
75 $this->skin->after();
76 $results[$plugin] = true;
77 continue;
78 }
79
80 // Get the URL to the zip file.
81 $r = $this->update_list->response[ $plugin ];
82
83 $this->skin->plugin_active = is_plugin_active($plugin);
84
85 if( ! wp_http_validate_url( $r['package'] ) && $r['package'] == 'AUXIN_GET_DOWNLOAD_URL' ){
86 $downlaod_link = $api_request->get_download_link( $r['slug'] );
87 if( ! is_wp_error( $downlaod_link ) ){
88 $r['package'] = $downlaod_link;
89 }
90 }
91
92 $result = $this->run( array(
93 'package' => $r['package'],
94 'destination' => WP_PLUGIN_DIR,
95 'clear_destination' => true,
96 'clear_working' => true,
97 'is_multi' => true,
98 'hook_extra' => array(
99 'plugin' => $plugin
100 )
101 ) );
102
103 $results[$plugin] = $this->result;
104
105 // Prevent credentials auth screen from displaying multiple times
106 if ( false === $result )
107 break;
108 } //end foreach $plugins
109
110 $this->maintenance_mode(false);
111
112 // Force refresh of plugin update information.
113 $this->clean_plugins_cache( $parsed_args['clear_update_cache'] );
114
115 $this->skin->bulk_footer();
116
117 $this->skin->footer();
118
119 // Cleanup our hooks, in case something else does a upgrade on this connection.
120 remove_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'));
121
122 return $results;
123 }
124
125 /**
126 * Clears the Plugins cache used by get_plugins() and by default, the Plugin Update cache.
127 *
128 * @param bool $clear_update_cache Whether to clear the Plugin updates cache
129 */
130 private function clean_plugins_cache( $clear_update_cache = true ) {
131 if ( $clear_update_cache === true ){
132 auxin_delete_transient( 'auxin_update_plugins' );
133 } elseif( $clear_update_cache === 'last_checked' ){
134 // This will remove 'last_checked' value for list refresh
135 if( isset( $this->update_list->last_checked ) ) {
136 unset( $this->update_list->last_checked );
137 }
138 auxin_set_transient( 'auxin_update_plugins', $this->update_list );
139 }
140 wp_cache_delete( 'plugins', 'plugins' );
141 }
142
143 }