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-theme.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-theme.php
137 lines
1 <?php
2
3 class Auxin_Upgrader_Theme extends Theme_Upgrader {
4
5 protected $update_list;
6
7 /**
8 * Upgrade several themes at once.
9 *
10 * @param array $themes The theme slugs.
11 * @param array $args {
12 * Optional. Other arguments for upgrading several themes at once. Default empty array.
13 *
14 * @type bool $clear_update_cache Whether to clear the update cache if successful.
15 * Default true.
16 * }
17 * @return array[]|false An array of results, or false if unable to connect to the filesystem.
18 */
19 public function start_upgrade( $themes, $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_themes' );
31
32 add_filter('upgrader_pre_install', array($this, 'current_before'), 10, 2);
33 add_filter('upgrader_post_install', array($this, 'current_after'), 10, 2);
34 add_filter('upgrader_clear_destination', array($this, 'delete_old_theme'), 10, 4);
35
36 $this->skin->header();
37
38 // Connect to the Filesystem first.
39 $res = $this->fs_connect( array(WP_CONTENT_DIR) );
40 if ( ! $res ) {
41 $this->skin->footer();
42 return false;
43 }
44
45 $this->skin->bulk_header();
46
47 // Only start maintenance mode if:
48 // - running Multisite and there are one or more themes specified, OR
49 // - a theme with an update available is currently in use.
50 // @TODO: For multisite, maintenance mode should only kick in for individual sites if at all possible.
51 $maintenance = ( is_multisite() && ! empty( $themes ) );
52 foreach ( $themes as $theme )
53 $maintenance = $maintenance || $theme == get_stylesheet() || $theme == get_template();
54 if ( $maintenance )
55 $this->maintenance_mode(true);
56
57 $results = array();
58
59 $this->update_count = count($themes);
60 $this->update_current = 0;
61 foreach ( $themes as $theme ) {
62 $this->update_current++;
63
64 $this->skin->theme_info = $this->theme_info($theme);
65
66 if ( !isset( $this->update_list->response[ $theme ] ) ) {
67 $this->skin->set_result(true);
68 $this->skin->before();
69 $this->skin->feedback( 'up_to_date' );
70 $this->skin->after();
71 $results[ $theme ] = true;
72 continue;
73 }
74
75 // Get the URL to the zip file
76 $r = $this->update_list->response[ $theme ];
77
78 $r = apply_filters( 'auxin_modify_package_before_upgrade', $r );
79
80
81 $result = $this->run( array(
82 'package' => $r['package'],
83 'destination' => get_theme_root( $theme ),
84 'clear_destination' => true,
85 'clear_working' => true,
86 'is_multi' => true,
87 'hook_extra' => array(
88 'theme' => $theme
89 ),
90 ) );
91
92 $results[$theme] = $this->result;
93
94 // Prevent credentials auth screen from displaying multiple times
95 if ( false === $result )
96 break;
97 } //end foreach $themes
98
99 $this->maintenance_mode(false);
100
101 // Refresh the Theme Update information
102 $this->clean_themes_cache( $parsed_args['clear_update_cache'] );
103
104 $this->skin->bulk_footer();
105
106 $this->skin->footer();
107
108 // Cleanup our hooks, in case something else does a upgrade on this connection.
109 remove_filter('upgrader_pre_install', array($this, 'current_before'));
110 remove_filter('upgrader_post_install', array($this, 'current_after'));
111 remove_filter('upgrader_clear_destination', array($this, 'delete_old_theme'));
112
113 return $results;
114 }
115
116 /**
117 * Clears the cache held by get_theme_roots() and WP_Theme.
118 *
119 * @param bool $clear_update_cache Whether to clear the Theme updates cache
120 */
121 private function clean_themes_cache( $clear_update_cache = true ) {
122 if ( $clear_update_cache === true ){
123 auxin_delete_transient( 'auxin_update_themes' );
124 } elseif( $clear_update_cache === 'last_checked' ){
125 // This will remove 'last_checked' value for list refresh
126 if( isset( $this->update_list->last_checked ) ) {
127 unset( $this->update_list->last_checked );
128 }
129 auxin_set_transient( 'auxin_update_themes', $this->update_list );
130 }
131 search_theme_directories( true );
132 foreach ( wp_get_themes( array( 'errors' => null ) ) as $theme ){
133 $theme->cache_delete();
134 }
135 }
136
137 }