← All changes
|
vendor/codeinwp/themeisle-sdk/src/Modules/Rollback.php
+4
-37
4.0.5
→
3.5.0
View file →
| @@ -12,9 +12,8 @@ | ||
| 12 | 12 | namespace ThemeisleSDK\Modules; |
| 13 | 13 | |
| 14 | 14 | // Exit if accessed directly. |
| 15 | 15 | use ThemeisleSDK\Common\Abstract_Module; |
| 16 | -use ThemeisleSDK\Loader; | |
| 17 | 16 | use ThemeisleSDK\Product; |
| 18 | 17 | |
| 19 | 18 | if ( ! defined( 'ABSPATH' ) ) { |
| 20 | 19 | exit; |
| @@ -98,9 +97,9 @@ | ||
| 98 | 97 | * @return array Array of versions. |
| 99 | 98 | */ |
| 100 | 99 | private function get_api_versions() { |
| 101 | 100 | |
| 102 | - $cache_key = $this->product->get_cache_key(); | |
| 101 | + $cache_key = $this->product->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->product->get_version() ) . 'versions'; | |
| 103 | 102 | $cache_versions = get_transient( $cache_key ); |
| 104 | 103 | if ( false === $cache_versions ) { |
| 105 | 104 | $versions = $this->get_remote_versions(); |
| 106 | 105 | set_transient( $cache_key, $versions, 5 * DAY_IN_SECONDS ); |
| @@ -120,10 +119,10 @@ | ||
| 120 | 119 | $url = $this->get_versions_api_url(); |
| 121 | 120 | if ( empty( $url ) ) { |
| 122 | 121 | return []; |
| 123 | 122 | } |
| 124 | - $response = function_exists( 'vip_safe_wp_remote_get' ) | |
| 125 | - ? vip_safe_wp_remote_get( $url ) | |
| 123 | + $response = function_exists( 'wp_remote_get_wp_remote_get' ) | |
| 124 | + ? wp_remote_get_wp_remote_get( $url ) | |
| 126 | 125 | : wp_remote_get( $url ); //phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.wp_remote_get_wp_remote_get |
| 127 | 126 | if ( is_wp_error( $response ) ) { |
| 128 | 127 | return array(); |
| 129 | 128 | } |
| @@ -184,9 +183,9 @@ | ||
| 184 | 183 | $version = $this->get_rollback(); |
| 185 | 184 | if ( empty( $version ) ) { |
| 186 | 185 | return $links; |
| 187 | 186 | } |
| 188 | - $links[] = '<a href="' . wp_nonce_url( admin_url( 'admin-post.php?action=' . $this->product->get_key() . '_rollback' ), $this->product->get_key() . '_rollback' ) . '">' . sprintf( apply_filters( $this->product->get_key() . '_rollback_label', Loader::$labels['rollback']['cta'] ), $version['version'] ) . '</a>'; | |
| 187 | + $links[] = '<a href="' . wp_nonce_url( admin_url( 'admin-post.php?action=' . $this->product->get_key() . '_rollback' ), $this->product->get_key() . '_rollback' ) . '">' . sprintf( apply_filters( $this->product->get_key() . '_rollback_label', 'Rollback to v%s' ), $version['version'] ) . '</a>'; | |
| 189 | 188 | |
| 190 | 189 | return $links; |
| 191 | 190 | } |
| 192 | 191 | |
| @@ -284,24 +283,8 @@ | ||
| 284 | 283 | $theme = $folder . '/style.css'; |
| 285 | 284 | $nonce = 'upgrade-theme_' . $theme; |
| 286 | 285 | $url = 'update.php?action=upgrade-theme&theme=' . urlencode( $theme ); |
| 287 | 286 | |
| 288 | - /** | |
| 289 | - * The rollback will attach a temporary theme for the rollback to the transient. | |
| 290 | - * However, when executing the upgrade for the attached theme we need to change the slug to the original theme slug. | |
| 291 | - * This is because it will use the slug to create a temp folder for the theme used during the upgrade. | |
| 292 | - */ | |
| 293 | - add_filter( | |
| 294 | - 'upgrader_package_options', | |
| 295 | - function ( $options ) use ( $folder, $theme ) { | |
| 296 | - if ( isset( $options['hook_extra']['theme'] ) && $options['hook_extra']['theme'] === $theme && isset( $options['hook_extra']['temp_backup']['slug'] ) ) { | |
| 297 | - $options['hook_extra']['temp_backup']['slug'] = $folder; | |
| 298 | - } | |
| 299 | - | |
| 300 | - return $options; | |
| 301 | - } | |
| 302 | - ); | |
| 303 | - | |
| 304 | 287 | $upgrader = new \Theme_Upgrader( new \Theme_Upgrader_Skin( compact( 'title', 'nonce', 'url', 'theme' ) ) ); |
| 305 | 288 | $upgrader->upgrade( $theme ); |
| 306 | 289 | delete_transient( $this->product->get_key() . '_warning_rollback' ); |
| 307 | 290 | wp_die( |
| @@ -391,27 +374,11 @@ | ||
| 391 | 374 | ); |
| 392 | 375 | } |
| 393 | 376 | |
| 394 | 377 | /** |
| 395 | - * Fires after the option has been updated. | |
| 396 | - * | |
| 397 | - * @param mixed $old_value The old option value. | |
| 398 | - * @param mixed $value The new option value. | |
| 399 | - * @param string $option Option name. | |
| 400 | - */ | |
| 401 | - public function update_active_plugins_action( $old_value, $value, $option ) { | |
| 402 | - delete_site_transient( 'update_plugins' ); | |
| 403 | - wp_cache_delete( 'plugins', 'plugins' ); | |
| 404 | - } | |
| 405 | - | |
| 406 | - /** | |
| 407 | 378 | * Set the rollback hook. Strangely, this does not work if placed in the ThemeIsle_SDK_Rollback class, so it is being called from there instead. |
| 408 | 379 | */ |
| 409 | 380 | public function add_hooks() { |
| 410 | 381 | add_action( 'admin_post_' . $this->product->get_key() . '_rollback', array( $this, 'start_rollback' ) ); |
| 411 | 382 | add_action( 'admin_footer', array( $this, 'add_footer' ) ); |
| 412 | - | |
| 413 | - // This hook will be invoked after the plugin activation. | |
| 414 | - // We use this to force an update of the cache so that Update is present immediate after a rollback. | |
| 415 | - add_action( 'update_option_active_plugins', array( $this, 'update_active_plugins_action' ), 10, 3 ); | |
| 416 | 383 | } |
| 417 | 384 | } |