2016-05-10 13:11:30 +02:00
|
|
|
<?php
|
|
|
|
/**
|
2016-05-10 13:31:28 +02:00
|
|
|
* Upgrader API: Theme_Upgrader_Skin class
|
2016-05-10 13:11:30 +02:00
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
* @subpackage Upgrader
|
2016-05-10 13:31:28 +02:00
|
|
|
* @since 4.6.0
|
2016-05-10 13:11:30 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Theme Upgrader Skin for WordPress Theme Upgrades.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
2016-05-13 22:59:27 +02:00
|
|
|
* @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
|
2016-07-09 15:45:33 +02:00
|
|
|
*
|
|
|
|
* @see WP_Upgrader_Skin
|
2016-05-10 13:11:30 +02:00
|
|
|
*/
|
|
|
|
class Theme_Upgrader_Skin extends WP_Upgrader_Skin {
|
2020-07-28 13:57:03 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Holds the theme slug in the Theme Directory.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*
|
2020-10-10 21:14:04 +02:00
|
|
|
* @var string
|
2020-07-28 13:57:03 +02:00
|
|
|
*/
|
2016-05-10 13:11:30 +02:00
|
|
|
public $theme = '';
|
|
|
|
|
|
|
|
/**
|
2020-07-28 13:57:03 +02:00
|
|
|
* Constructor.
|
|
|
|
*
|
|
|
|
* Sets up the theme upgrader skin.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*
|
|
|
|
* @param array $args Optional. The theme upgrader skin arguments to
|
|
|
|
* override default options. Default empty array.
|
2016-05-10 13:11:30 +02:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
public function __construct( $args = array() ) {
|
|
|
|
$defaults = array(
|
|
|
|
'url' => '',
|
|
|
|
'theme' => '',
|
|
|
|
'nonce' => '',
|
|
|
|
'title' => __( 'Update Theme' ),
|
|
|
|
);
|
|
|
|
$args = wp_parse_args( $args, $defaults );
|
2016-05-10 13:11:30 +02:00
|
|
|
|
|
|
|
$this->theme = $args['theme'];
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
parent::__construct( $args );
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2020-07-28 13:57:03 +02:00
|
|
|
* Action to perform following a single theme update.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
2016-05-10 13:11:30 +02:00
|
|
|
*/
|
|
|
|
public function after() {
|
|
|
|
$this->decrement_update_count( 'theme' );
|
|
|
|
|
|
|
|
$update_actions = array();
|
2019-07-01 14:52:01 +02:00
|
|
|
$theme_info = $this->upgrader->theme_info();
|
|
|
|
if ( $theme_info ) {
|
2017-12-01 00:11:00 +01:00
|
|
|
$name = $theme_info->display( 'Name' );
|
2016-05-10 13:11:30 +02:00
|
|
|
$stylesheet = $this->upgrader->result['destination_name'];
|
|
|
|
$template = $theme_info->get_template();
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
$activate_link = add_query_arg(
|
|
|
|
array(
|
|
|
|
'action' => 'activate',
|
|
|
|
'template' => urlencode( $template ),
|
|
|
|
'stylesheet' => urlencode( $stylesheet ),
|
2018-08-17 03:51:36 +02:00
|
|
|
),
|
|
|
|
admin_url( 'themes.php' )
|
2017-12-01 00:11:00 +01:00
|
|
|
);
|
2016-05-10 13:11:30 +02:00
|
|
|
$activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
|
|
|
|
|
2017-10-09 18:04:48 +02:00
|
|
|
$customize_url = add_query_arg(
|
|
|
|
array(
|
2017-12-01 00:11:00 +01:00
|
|
|
'theme' => urlencode( $stylesheet ),
|
2017-10-09 18:04:48 +02:00
|
|
|
'return' => urlencode( admin_url( 'themes.php' ) ),
|
|
|
|
),
|
|
|
|
admin_url( 'customize.php' )
|
|
|
|
);
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
|
2020-05-17 11:39:11 +02:00
|
|
|
if ( get_stylesheet() === $stylesheet ) {
|
2016-05-10 13:11:30 +02:00
|
|
|
if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$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' ),
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
sprintf( __( 'Customize “%s”' ), $name )
|
|
|
|
);
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
|
|
|
} elseif ( current_user_can( 'switch_themes' ) ) {
|
|
|
|
if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) {
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$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' ),
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
sprintf( __( 'Live Preview “%s”' ), $name )
|
|
|
|
);
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
|
|
|
|
$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 ),
|
|
|
|
__( 'Activate' ),
|
2019-09-03 02:41:05 +02:00
|
|
|
/* translators: %s: Theme name. */
|
2020-07-21 18:33:05 +02:00
|
|
|
sprintf( _x( 'Activate “%s”', 'theme' ), $name )
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
);
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! $this->result || is_wp_error( $this->result ) || is_network_admin() ) {
|
2016-05-10 13:11:30 +02:00
|
|
|
unset( $update_actions['preview'], $update_actions['activate'] );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
|
|
|
|
I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.
Includes minor code layout fixes.
Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!
Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926
git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 19:13:59 +02:00
|
|
|
$update_actions['themes_page'] = sprintf(
|
|
|
|
'<a href="%s" target="_parent">%s</a>',
|
|
|
|
self_admin_url( 'themes.php' ),
|
|
|
|
__( 'Return to Themes page' )
|
|
|
|
);
|
2016-05-10 13:11:30 +02:00
|
|
|
|
|
|
|
/**
|
2016-05-22 20:01:30 +02:00
|
|
|
* Filters the list of action links available following a single theme update.
|
2016-05-10 13:11:30 +02:00
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*
|
2018-03-22 21:27:32 +01:00
|
|
|
* @param string[] $update_actions Array of theme action links.
|
|
|
|
* @param string $theme Theme directory name.
|
2016-05-10 13:11:30 +02:00
|
|
|
*/
|
|
|
|
$update_actions = apply_filters( 'update_theme_complete_actions', $update_actions, $this->theme );
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! empty( $update_actions ) ) {
|
|
|
|
$this->feedback( implode( ' | ', (array) $update_actions ) );
|
|
|
|
}
|
2016-05-10 13:11:30 +02:00
|
|
|
}
|
|
|
|
}
|