WordPress.org

Make WordPress Core

Ticket #32668: 32668.3.diff

File 32668.3.diff, 1.5 KB (added by SergeyBiryukov, 4 years ago)
  • src/wp-admin/themes.php

     
    300300
    301301<?php
    302302$can_delete = current_user_can( 'delete_themes' );
     303$can_install = current_user_can( 'install_themes' );
    303304?>
    304305<table>
    305306        <tr>
     
    308309                <?php if ( $can_delete ) { ?>
    309310                        <td></td>
    310311                <?php } ?>
     312                <?php if ( $can_install ) { ?>
     313                        <td></td>
     314                <?php } ?>
    311315        </tr>
    312316        <?php foreach ( $broken_themes as $broken_theme ) : ?>
    313317                <tr>
     
    325329                                <td><a href="<?php echo esc_url( $delete_url ); ?>" class="button button-secondary delete-theme"><?php _e( 'Delete' ); ?></a></td>
    326330                                <?php
    327331                        }
     332
     333                        if ( $can_install && 'theme_no_parent' === $broken_theme->errors()->get_error_code() ) {
     334                                $parent_theme_name = $broken_theme->get( 'Template' );
     335                                $parent_theme = themes_api( 'theme_information', array( 'slug' => urlencode( $parent_theme_name ) ) );
     336
     337                                if ( ! is_wp_error( $parent_theme ) ) {
     338                                        $install_url = add_query_arg( array(
     339                                                'action' => 'install-theme',
     340                                                'theme'  => urlencode( $parent_theme_name ),
     341                                        ), admin_url( 'update.php' ) );
     342                                        $install_url = wp_nonce_url( $install_url, 'install-theme_' . $parent_theme_name );
     343                                        ?>
     344                                        <td><a href="<?php echo esc_url( $install_url ); ?>" class="button button-secondary install-theme"><?php _e( 'Install Parent Theme' ); ?></a></td>
     345                                        <?php
     346                                }
     347                        }
    328348                        ?>
    329349                </tr>
    330350        <?php endforeach; ?>