[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Upgrader API: Theme_Upgrader_Skin class 4 * 5 * @package WordPress 6 * @subpackage Upgrader 7 * @since 4.6.0 8 */ 9 10 /** 11 * Theme Upgrader Skin for WordPress Theme Upgrades. 12 * 13 * @since 2.8.0 14 * @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php. 15 * 16 * @see WP_Upgrader_Skin 17 */ 18 class Theme_Upgrader_Skin extends WP_Upgrader_Skin { 19 20 /** 21 * Holds the theme slug in the Theme Directory. 22 * 23 * @since 2.8.0 24 * 25 * @var string 26 */ 27 public $theme = ''; 28 29 /** 30 * Constructor. 31 * 32 * Sets up the theme upgrader skin. 33 * 34 * @since 2.8.0 35 * 36 * @param array $args Optional. The theme upgrader skin arguments to 37 * override default options. Default empty array. 38 */ 39 public function __construct( $args = array() ) { 40 $defaults = array( 41 'url' => '', 42 'theme' => '', 43 'nonce' => '', 44 'title' => __( 'Update Theme' ), 45 ); 46 $args = wp_parse_args( $args, $defaults ); 47 48 $this->theme = $args['theme']; 49 50 parent::__construct( $args ); 51 } 52 53 /** 54 * Performs an action following a single theme update. 55 * 56 * @since 2.8.0 57 */ 58 public function after() { 59 $this->decrement_update_count( 'theme' ); 60 61 $update_actions = array(); 62 $theme_info = $this->upgrader->theme_info(); 63 if ( $theme_info ) { 64 $name = $theme_info->display( 'Name' ); 65 $stylesheet = $this->upgrader->result['destination_name']; 66 $template = $theme_info->get_template(); 67 68 $activate_link = add_query_arg( 69 array( 70 'action' => 'activate', 71 'template' => urlencode( $template ), 72 'stylesheet' => urlencode( $stylesheet ), 73 ), 74 admin_url( 'themes.php' ) 75 ); 76 $activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet ); 77 78 $customize_url = add_query_arg( 79 array( 80 'theme' => urlencode( $stylesheet ), 81 'return' => urlencode( admin_url( 'themes.php' ) ), 82 ), 83 admin_url( 'customize.php' ) 84 ); 85 86 if ( get_stylesheet() === $stylesheet ) { 87 if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { 88 $update_actions['preview'] = sprintf( 89 '<a href="%s" class="hide-if-no-customize load-customize">' . 90 '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', 91 esc_url( $customize_url ), 92 __( 'Customize' ), 93 /* translators: Hidden accessibility text. %s: Theme name. */ 94 sprintf( __( 'Customize “%s”' ), $name ) 95 ); 96 } 97 } elseif ( current_user_can( 'switch_themes' ) ) { 98 if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { 99 $update_actions['preview'] = sprintf( 100 '<a href="%s" class="hide-if-no-customize load-customize">' . 101 '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', 102 esc_url( $customize_url ), 103 __( 'Live Preview' ), 104 /* translators: Hidden accessibility text. %s: Theme name. */ 105 sprintf( __( 'Live Preview “%s”' ), $name ) 106 ); 107 } 108 109 $update_actions['activate'] = sprintf( 110 '<a href="%s" class="activatelink">' . 111 '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', 112 esc_url( $activate_link ), 113 _x( 'Activate', 'theme' ), 114 /* translators: Hidden accessibility text. %s: Theme name. */ 115 sprintf( _x( 'Activate “%s”', 'theme' ), $name ) 116 ); 117 } 118 119 if ( ! $this->result || is_wp_error( $this->result ) || is_network_admin() ) { 120 unset( $update_actions['preview'], $update_actions['activate'] ); 121 } 122 } 123 124 $update_actions['themes_page'] = sprintf( 125 '<a href="%s" target="_parent">%s</a>', 126 self_admin_url( 'themes.php' ), 127 __( 'Go to Themes page' ) 128 ); 129 130 /** 131 * Filters the list of action links available following a single theme update. 132 * 133 * @since 2.8.0 134 * 135 * @param string[] $update_actions Array of theme action links. 136 * @param string $theme Theme directory name. 137 */ 138 $update_actions = apply_filters( 'update_theme_complete_actions', $update_actions, $this->theme ); 139 140 if ( ! empty( $update_actions ) ) { 141 $this->feedback( implode( ' | ', (array) $update_actions ) ); 142 } 143 } 144 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Thu Nov 21 08:20:01 2024 | Cross-referenced by PHPXref |