2016-05-10 07:11:30 -04:00
|
|
|
<?php
|
|
|
|
/**
|
2016-05-10 07:31:28 -04:00
|
|
|
* Upgrader API: Theme_Installer_Skin class
|
2016-05-10 07:11:30 -04:00
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
* @subpackage Upgrader
|
2016-05-10 07:31:28 -04:00
|
|
|
* @since 4.6.0
|
2016-05-10 07:11:30 -04:00
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Theme Installer Skin for the WordPress Theme Installer.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
2016-05-13 16:59:27 -04:00
|
|
|
* @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
|
2016-07-09 09:45:33 -04:00
|
|
|
*
|
|
|
|
* @see WP_Upgrader_Skin
|
2016-05-10 07:11:30 -04:00
|
|
|
*/
|
|
|
|
class Theme_Installer_Skin extends WP_Upgrader_Skin {
|
|
|
|
public $api;
|
|
|
|
public $type;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param array $args
|
|
|
|
*/
|
2017-11-30 18:11:00 -05:00
|
|
|
public function __construct( $args = array() ) {
|
|
|
|
$defaults = array(
|
|
|
|
'type' => 'web',
|
|
|
|
'url' => '',
|
|
|
|
'theme' => '',
|
|
|
|
'nonce' => '',
|
|
|
|
'title' => '',
|
|
|
|
);
|
|
|
|
$args = wp_parse_args( $args, $defaults );
|
2016-05-10 07:11:30 -04:00
|
|
|
|
|
|
|
$this->type = $args['type'];
|
2017-11-30 18:11:00 -05:00
|
|
|
$this->api = isset( $args['api'] ) ? $args['api'] : array();
|
2016-05-10 07:11:30 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
parent::__construct( $args );
|
2016-05-10 07:11:30 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
public function before() {
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( ! empty( $this->api ) ) {
|
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 13:13:59 -04:00
|
|
|
$this->upgrader->strings['process_success'] = sprintf(
|
|
|
|
$this->upgrader->strings['process_success_specific'],
|
|
|
|
$this->api->name,
|
|
|
|
$this->api->version
|
|
|
|
);
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*/
|
|
|
|
public function after() {
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( empty( $this->upgrader->result['destination_name'] ) ) {
|
2016-05-10 07:11:30 -04:00
|
|
|
return;
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
|
|
|
|
$theme_info = $this->upgrader->theme_info();
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( empty( $theme_info ) ) {
|
2016-05-10 07:11:30 -04:00
|
|
|
return;
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
$name = $theme_info->display( 'Name' );
|
2016-05-10 07:11:30 -04:00
|
|
|
$stylesheet = $this->upgrader->result['destination_name'];
|
|
|
|
$template = $theme_info->get_template();
|
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
$activate_link = add_query_arg(
|
|
|
|
array(
|
|
|
|
'action' => 'activate',
|
|
|
|
'template' => urlencode( $template ),
|
|
|
|
'stylesheet' => urlencode( $stylesheet ),
|
2018-08-16 21:51:36 -04:00
|
|
|
),
|
|
|
|
admin_url( 'themes.php' )
|
2017-11-30 18:11:00 -05:00
|
|
|
);
|
2016-05-10 07:11:30 -04:00
|
|
|
$activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
|
|
|
|
|
|
|
|
$install_actions = array();
|
|
|
|
|
|
|
|
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 13:13:59 -04:00
|
|
|
$customize_url = add_query_arg(
|
2017-10-09 12:04:48 -04:00
|
|
|
array(
|
2017-11-30 18:11:00 -05:00
|
|
|
'theme' => urlencode( $stylesheet ),
|
2017-10-09 12:04:48 -04:00
|
|
|
'return' => urlencode( admin_url( 'web' === $this->type ? 'theme-install.php' : '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 13:13:59 -04:00
|
|
|
|
|
|
|
$install_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' ),
|
|
|
|
/* translators: %s: theme name */
|
|
|
|
sprintf( __( 'Live Preview “%s”' ), $name )
|
|
|
|
);
|
2016-05-10 07:11:30 -04: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 13:13:59 -04:00
|
|
|
|
|
|
|
$install_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' ),
|
|
|
|
/* translators: %s: theme name */
|
|
|
|
sprintf( __( 'Activate “%s”' ), $name )
|
|
|
|
);
|
2016-05-10 07:11:30 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( is_network_admin() && current_user_can( 'manage_network_themes' ) ) {
|
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 13:13:59 -04:00
|
|
|
$install_actions['network_enable'] = sprintf(
|
|
|
|
'<a href="%s" target="_parent">%s</a>',
|
|
|
|
esc_url( wp_nonce_url( 'themes.php?action=enable&theme=' . urlencode( $stylesheet ), 'enable-theme_' . $stylesheet ) ),
|
|
|
|
__( 'Network Enable' )
|
|
|
|
);
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( $this->type == 'web' ) {
|
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 13:13:59 -04:00
|
|
|
$install_actions['themes_page'] = sprintf(
|
|
|
|
'<a href="%s" target="_parent">%s</a>',
|
|
|
|
self_admin_url( 'theme-install.php' ),
|
|
|
|
__( 'Return to Theme Installer' )
|
|
|
|
);
|
2017-11-30 18:11:00 -05:00
|
|
|
} elseif ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) ) {
|
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 13:13:59 -04:00
|
|
|
$install_actions['themes_page'] = sprintf(
|
|
|
|
'<a href="%s" target="_parent">%s</a>',
|
|
|
|
self_admin_url( 'themes.php' ),
|
|
|
|
__( 'Return to Themes page' )
|
|
|
|
);
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( ! $this->result || is_wp_error( $this->result ) || is_network_admin() || ! current_user_can( 'switch_themes' ) ) {
|
2016-05-10 07:11:30 -04:00
|
|
|
unset( $install_actions['activate'], $install_actions['preview'] );
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
|
|
|
|
/**
|
2016-05-22 14:01:30 -04:00
|
|
|
* Filters the list of action links available following a single theme installation.
|
2016-05-10 07:11:30 -04:00
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*
|
2018-03-22 16:27:32 -04:00
|
|
|
* @param string[] $install_actions Array of theme action links.
|
2016-05-10 07:11:30 -04:00
|
|
|
* @param object $api Object containing WordPress.org API theme data.
|
|
|
|
* @param string $stylesheet Theme directory name.
|
|
|
|
* @param WP_Theme $theme_info Theme object.
|
|
|
|
*/
|
|
|
|
$install_actions = apply_filters( 'install_theme_complete_actions', $install_actions, $this->api, $stylesheet, $theme_info );
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( ! empty( $install_actions ) ) {
|
|
|
|
$this->feedback( implode( ' | ', (array) $install_actions ) );
|
|
|
|
}
|
2016-05-10 07:11:30 -04:00
|
|
|
}
|
|
|
|
}
|