| <?php |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| class Theme_Upgrader_Skin extends WP_Upgrader_Skin { |
|
|
| |
| |
| |
| |
| |
| |
| |
| public $theme = ''; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public function __construct( $args = array() ) { |
| $defaults = array( |
| 'url' => '', |
| 'theme' => '', |
| 'nonce' => '', |
| 'title' => __( 'Update Theme' ), |
| ); |
| $args = wp_parse_args( $args, $defaults ); |
|
|
| $this->theme = $args['theme']; |
|
|
| parent::__construct( $args ); |
| } |
|
|
| |
| |
| |
| |
| |
| public function after() { |
| $this->decrement_update_count( 'theme' ); |
|
|
| $update_actions = array(); |
| $theme_info = $this->upgrader->theme_info(); |
| if ( $theme_info ) { |
| $name = $theme_info->display( 'Name' ); |
| $stylesheet = $this->upgrader->result['destination_name']; |
| $template = $theme_info->get_template(); |
|
|
| $activate_link = add_query_arg( |
| array( |
| 'action' => 'activate', |
| 'template' => urlencode( $template ), |
| 'stylesheet' => urlencode( $stylesheet ), |
| ), |
| admin_url( 'themes.php' ) |
| ); |
| $activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet ); |
|
|
| $customize_url = add_query_arg( |
| array( |
| 'theme' => urlencode( $stylesheet ), |
| 'return' => urlencode( admin_url( 'themes.php' ) ), |
| ), |
| admin_url( 'customize.php' ) |
| ); |
|
|
| if ( get_stylesheet() === $stylesheet ) { |
| if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { |
| $update_actions['preview'] = sprintf( |
| '<a href="%s" class="hide-if-no-customize load-customize">' . |
| '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', |
| esc_url( $customize_url ), |
| __( 'Customize' ), |
| |
| sprintf( __( 'Customize “%s”' ), $name ) |
| ); |
| } |
| } elseif ( current_user_can( 'switch_themes' ) ) { |
| if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { |
| $update_actions['preview'] = sprintf( |
| '<a href="%s" class="hide-if-no-customize load-customize">' . |
| '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', |
| esc_url( $customize_url ), |
| __( 'Live Preview' ), |
| |
| sprintf( __( 'Live Preview “%s”' ), $name ) |
| ); |
| } |
|
|
| $update_actions['activate'] = sprintf( |
| '<a href="%s" class="activatelink">' . |
| '<span aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>', |
| esc_url( $activate_link ), |
| _x( 'Activate', 'theme' ), |
| |
| sprintf( _x( 'Activate “%s”', 'theme' ), $name ) |
| ); |
| } |
|
|
| if ( ! $this->result || is_wp_error( $this->result ) || is_network_admin() ) { |
| unset( $update_actions['preview'], $update_actions['activate'] ); |
| } |
| } |
|
|
| $update_actions['themes_page'] = sprintf( |
| '<a href="%s" target="_parent">%s</a>', |
| self_admin_url( 'themes.php' ), |
| __( 'Go to Themes page' ) |
| ); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| $update_actions = apply_filters( 'update_theme_complete_actions', $update_actions, $this->theme ); |
|
|
| if ( ! empty( $update_actions ) ) { |
| $this->feedback( implode( ' | ', (array) $update_actions ) ); |
| } |
| } |
| } |
|
|