PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.20
Shortcodes and extra features for Phlox theme v2.17.20
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-system-check.php 6 months ago class-auxin-cli-commands.php 5 months ago class-auxin-license-activation.php 6 months ago class-auxin-notices.php 3 years ago class-auxin-upgrader-ajax-handlers.php 1 year ago class-auxin-upgrader-plugin.php 2 years ago class-auxin-upgrader-prepare.php 3 years ago class-auxin-upgrader-theme.php 3 years ago
class-auxin-upgrader-plugin.php
142 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
59 $this->update_count = count($plugins);
60 $this->update_current = 0;
61 foreach ( $plugins as $plugin ) {
62 $this->update_current++;
63 $this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true);
64
65 // Fix VC issue with auto update
66 if( $plugin === 'js_composer/js_composer.php' ) {
67 add_filter( 'upgrader_pre_download', '__return_false', 9999);
68 }
69
70 if( $plugin === 'LayerSlider/layerslider.php' ) {
71 add_filter( 'upgrader_pre_download', '__return_false', 9999);
72 }
73
74 if ( !isset( $this->update_list->response[ $plugin ] ) ) {
75 $this->skin->set_result('up_to_date');
76 $this->skin->before();
77 $this->skin->feedback('up_to_date');
78 $this->skin->after();
79 $results[$plugin] = true;
80 continue;
81 }
82
83 // Get the URL to the zip file.
84 $r = $this->update_list->response[ $plugin ];
85
86 $this->skin->plugin_active = is_plugin_active($plugin);
87
88
89 $r = apply_filters( 'auxin_modify_package_before_upgrade', $r );
90
91 $result = $this->run( array(
92 'package' => $r['package'],
93 'destination' => WP_PLUGIN_DIR,
94 'clear_destination' => true,
95 'clear_working' => true,
96 'is_multi' => true,
97 'hook_extra' => array(
98 'plugin' => $plugin
99 )
100 ) );
101
102 $results[$plugin] = $this->result;
103
104 // Prevent credentials auth screen from displaying multiple times
105 if ( false === $result )
106 break;
107 } //end foreach $plugins
108
109 $this->maintenance_mode(false);
110
111 // Force refresh of plugin update information.
112 $this->clean_plugins_cache( $parsed_args['clear_update_cache'] );
113
114 $this->skin->bulk_footer();
115
116 $this->skin->footer();
117
118 // Cleanup our hooks, in case something else does a upgrade on this connection.
119 remove_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'));
120
121 return $results;
122 }
123
124 /**
125 * Clears the Plugins cache used by get_plugins() and by default, the Plugin Update cache.
126 *
127 * @param bool $clear_update_cache Whether to clear the Plugin updates cache
128 */
129 private function clean_plugins_cache( $clear_update_cache = true ) {
130 if ( $clear_update_cache === true ){
131 auxin_delete_transient( 'auxin_update_plugins' );
132 } elseif( $clear_update_cache === 'last_checked' ){
133 // This will remove 'last_checked' value for list refresh
134 if( isset( $this->update_list->last_checked ) ) {
135 unset( $this->update_list->last_checked );
136 }
137 auxin_set_transient( 'auxin_update_plugins', $this->update_list );
138 }
139 wp_cache_delete( 'plugins', 'plugins' );
140 }
141
142 }