WordPress.org

Make WordPress Core

Ticket #41316: 41316.17.diff

File 41316.17.diff, 20.1 KB (added by pento, 4 years ago)
  • src/wp-admin/css/common.css

    diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css
    index ac3a7c6b65..8613e822e7 100644
    a b img.emoji { 
    764764
    765765/* @todo can we combine these into a class or use an existing dashicon one? */
    766766.welcome-panel .welcome-panel-close:before,
     767.try-gutenberg-panel .try-gutenberg-panel-close:before,
    767768.tagchecklist .ntdelbutton .remove-tag-icon:before,
    768769#bulk-titles div a:before,
    769770.notice-dismiss:before {
  • src/wp-admin/css/dashboard.css

    diff --git a/src/wp-admin/css/dashboard.css b/src/wp-admin/css/dashboard.css
    index f64cc92422..798a6b14bf 100644
    a b  
    9898}
    9999
    100100/* Welcome Panel */
    101 .welcome-panel {
     101.welcome-panel,
     102.try-gutenberg-panel {
    102103        position: relative;
    103104        overflow: auto;
    104105        margin: 16px 0;
     
    110111        line-height: 2.1em;
    111112}
    112113
    113 .welcome-panel h2 {
     114.welcome-panel h2,
     115.try-gutenberg-panel h2 {
    114116        margin: 0;
    115117        font-size: 21px;
    116118        font-weight: 400;
     
    122124        font-size: 16px;
    123125}
    124126
    125 .welcome-panel li {
     127.try-gutenberg-panel h3 {
     128        margin: 17px 0 0;
     129        font-size: 16px;
     130}
     131
     132.welcome-panel li,
     133.try-gutenberg-panel li {
    126134        font-size: 14px;
    127135}
    128136
    129 .welcome-panel p {
     137.welcome-panel p,
     138.try-gutenberg-panel p {
    130139        color: #72777c;
    131140}
    132141
    133 .welcome-panel a {
     142.welcome-panel a,
     143.try-gutenberg-action a {
    134144        text-decoration: none;
    135145}
    136146
    137 .welcome-panel .about-description {
     147.welcome-panel .about-description,
     148.try-gutenberg-panel .about-description {
    138149        font-size: 16px;
    139150        margin: 0;
    140151}
    141152
    142 .welcome-panel .welcome-panel-close {
     153.try-gutenberg-panel-content hr {
     154        margin: 20px -23px 0 -23px;
     155        border-top: 1px solid #f3f4f5;
     156        border-bottom: none;
     157}
     158
     159.welcome-panel .welcome-panel-close,
     160.try-gutenberg-panel .try-gutenberg-panel-close {
    143161        position: absolute;
     162        z-index: 10;
    144163        top: 10px;
    145164        right: 10px;
    146165        padding: 10px 15px 10px 21px;
     
    149168        text-decoration: none;
    150169}
    151170
    152 .welcome-panel .welcome-panel-close:before {
     171.welcome-panel .welcome-panel-close:before,
     172.try-gutenberg-panel .try-gutenberg-panel-close:before {
    153173        position: absolute;
    154174        top: 8px;
    155175        left: 0;
     
    164184        white-space: normal;
    165185}
    166186
    167 .welcome-panel-content {
    168         margin-left: 13px;
     187.welcome-panel-content,
     188.try-gutenberg-panel-content {
     189        margin: 0 13px;
    169190        max-width: 1500px;
    170191}
    171192
     193.try-gutenberg-panel img {
     194        margin-top: 23px;
     195        width: calc( 100% - 40px );
     196        border: 1px solid #f3f4f5;
     197}
     198
     199.try-gutenberg-panel .install-now.updating-message:before,
     200.try-gutenberg-panel .install-now.updated-message:before {
     201        margin-top: 11px;
     202}
     203
    172204.welcome-panel .welcome-panel-column-container {
    173205        clear: both;
    174206        position: relative;
     
    180212        float: left;
    181213}
    182214
     215.try-gutenberg-panel .try-gutenberg-panel-column > * {
     216        padding-right: 40px;
     217}
     218
    183219.ie8 .welcome-panel .welcome-panel-column {
    184220        min-width: 230px;
    185221}
     
    188224        width: 36%;
    189225}
    190226
     227.try-gutenberg-panel .try-gutenberg-panel-column-container {
     228        display: grid;
     229        grid-template-columns: 36% 32% 32%;
     230        margin-bottom: 13px;
     231}
     232
     233.try-gutenberg-panel .try-gutenberg-panel-column:not(.try-gutenberg-panel-image-column) {
     234        display: grid;
     235        grid-template-rows: 45px auto 100px;
     236}
     237
    191238.welcome-panel-column p.hide-if-no-customize {
    192239        margin-top: 10px;
    193240}
    194241
    195 .welcome-panel-column p {
     242.welcome-panel-column p,
     243.try-gutenberg-panel-column p {
    196244        margin-top: 7px;
    197245        color: #444;
    198246}
     
    202250}
    203251
    204252.welcome-panel .welcome-panel-column ul {
    205         margin: 0.8em 1em 1em 0;
     253                margin: 0.8em 1em 1em 0;
    206254}
    207255
    208256.welcome-panel .welcome-panel-column li {
    a.rsswidget { 
    12071255        }
    12081256}
    12091257
     1258@media screen and (max-width: 1024px) {
     1259        .try-gutenberg-panel .try-gutenberg-panel-column-container {
     1260                grid-template-columns: 50% 50%;
     1261        }
     1262
     1263        .try-gutenberg-panel .try-gutenberg-panel-image-column {
     1264                display: none;
     1265        }
     1266}
     1267
    12101268@media screen and (max-width: 870px) {
    12111269        .welcome-panel .welcome-panel-column,
    12121270        .welcome-panel .welcome-panel-column:first-child {
    a.rsswidget { 
    12151273                width: 100%;
    12161274        }
    12171275
     1276        .try-gutenberg-panel .try-gutenberg-panel-column-container {
     1277                grid-template-columns: 100%;
     1278        }
     1279
    12181280        .welcome-panel .welcome-panel-column li {
    12191281                display: inline-block;
    12201282                margin-right: 13px;
    a.rsswidget { 
    12231285        .welcome-panel .welcome-panel-column ul {
    12241286                margin: 0.4em 0 0;
    12251287        }
    1226 
    12271288}
    12281289
    12291290@media screen and ( max-width: 782px ) {
    a.rsswidget { 
    12661327/* Smartphone */
    12671328@media screen and (max-width: 600px) {
    12681329        /* Keep the close icon from overlapping the Welcome text. */
    1269         .welcome-panel .welcome-panel-close {
     1330        .welcome-panel .welcome-panel-close,
     1331        .try-gutenberg-panel .try-gutenberg-panel-close {
    12701332                overflow: hidden;
    12711333                text-indent: 40px;
    12721334                white-space: nowrap;
    a.rsswidget { 
    12781340        }
    12791341
    12801342        /* Make the close icon larger for tappability. */
    1281         .welcome-panel .welcome-panel-close:before {
     1343        .welcome-panel .welcome-panel-close:before,
     1344        .try-gutenberg-panel .try-gutenberg-panel-close:before {
    12821345                font-size: 20px;
    12831346                top: 5px;
    12841347                left: -35px;
  • src/wp-admin/includes/ajax-actions.php

    diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php
    index 8fb348c6d3..eb14c51f69 100644
    a b function wp_ajax_update_welcome_panel() { 
    14841484        wp_die( 1 );
    14851485}
    14861486
     1487/**
     1488 * Ajax handler for updating whether to display the Try Gutenberg panel.
     1489 *
     1490 * @since 4.9.6
     1491 */
     1492function wp_ajax_update_try_gutenberg_panel() {
     1493        check_ajax_referer( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce' );
     1494
     1495        update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', empty( $_POST['visible'] ) ? 0 : 1 );
     1496
     1497        wp_die( 1 );
     1498}
     1499
    14871500/**
    14881501 * Ajax handler for retrieving menu meta boxes.
    14891502 *
  • src/wp-admin/includes/class-wp-screen.php

    diff --git a/src/wp-admin/includes/class-wp-screen.php b/src/wp-admin/includes/class-wp-screen.php
    index 0146b56cbf..84cbd9164f 100644
    a b final class WP_Screen { 
    10201020                                        update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
    10211021                                } else {
    10221022                                        $welcome_checked = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
    1023                                         if ( 2 == $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
     1023                                        if ( '' === $welcome_checked ) {
     1024                                                $welcome_checked = '1';
     1025                                        }
     1026                                        if ( '2' === $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
    10241027                                                $welcome_checked = false;
    10251028                                        }
    10261029                                }
    final class WP_Screen { 
    10281031                                echo '<input type="checkbox" id="wp_welcome_panel-hide"' . checked( (bool) $welcome_checked, true, false ) . ' />';
    10291032                                echo _x( 'Welcome', 'Welcome panel' ) . "</label>\n";
    10301033                        }
     1034
     1035                        if ( 'dashboard' === $this->id && has_action( 'try_gutenberg_panel' ) ) {
     1036                                if ( isset( $_GET['try_gutenberg'] ) ) {
     1037                                        $try_gutenberg_checked = empty( $_GET['try_gutenberg'] ) ? 0 : 1;
     1038                                        update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', $try_gutenberg_checked );
     1039                                } else {
     1040                                        $try_gutenberg_checked = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
     1041                                        if ( '' === $try_gutenberg_checked ) {
     1042                                                $try_gutenberg_checked = '1';
     1043                                        }
     1044                                        if ( '2' === $try_gutenberg_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
     1045                                                $try_gutenberg_checked = false;
     1046                                        }
     1047                                }
     1048                                echo '<label for="wp_try_gutenberg_panel-hide">';
     1049                                echo '<input type="checkbox" id="wp_try_gutenberg_panel-hide"' . checked( (bool) $try_gutenberg_checked, true, false ) . ' />';
     1050                                echo __( 'New Editor' ) . "</label>\n";
     1051                        }
    10311052                ?>
    10321053                </fieldset>
    10331054                <?php
  • src/wp-admin/includes/dashboard.php

    diff --git a/src/wp-admin/includes/dashboard.php b/src/wp-admin/includes/dashboard.php
    index fa1d2ffad4..f791da440e 100644
    a b function wp_welcome_panel() { 
    16191619        </div>
    16201620        <?php
    16211621}
     1622
     1623/**
     1624 * Displays a Try Gutenberg Panel, to introduce people to Gutenberg
     1625 *
     1626 * @since 4.9.6
     1627 */
     1628function wp_try_gutenberg_panel() {
     1629        $plugins = get_plugins();
     1630        $action = $url = $classes = '';
     1631        $classic_action = $classic_url = $classic_classes = '';
     1632
     1633        if ( current_user_can( 'install_plugins' ) ) {
     1634                if ( empty( $plugins['gutenberg/gutenberg.php'] ) ) {
     1635                        $action = __( 'Install Gutenberg' );
     1636                        $url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=gutenberg' ), 'install-plugin_gutenberg' );
     1637                        $classes = ' install-now';
     1638                } else if ( is_plugin_inactive( 'gutenberg/gutenberg.php' ) ) {
     1639                        $action = __( 'Activate Gutenberg' );
     1640                        $url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=gutenberg/gutenberg.php&from=try-gutenberg' ), 'activate-plugin_gutenberg/gutenberg.php' );
     1641                        $classes = ' activate-now';
     1642                }
     1643
     1644                if ( empty( $plugins['classic-editor/classic-editor.php'] ) ) {
     1645                        $classic_action = __( 'Install the Classic Editor' );
     1646                        $classic_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=classic-editor' ), 'install-plugin_classic-editor' );
     1647                        $classic_classes = ' install-now';
     1648                } else if ( is_plugin_inactive( 'classic-editor/classic-editor.php' ) ) {
     1649                        $classic_action = __( 'Activate the Classic Editor' );
     1650                        $classic_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php&from=try-gutenberg' ), 'activate-plugin_classic-editor/classic-editor.php' );
     1651                        $classic_classes = ' activate-now';
     1652                } else {
     1653                        $classic_action = __( 'The Classic Editor is activated' );
     1654                        $classic_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php&from=try-gutenberg' ), 'activate-plugin_classic-editor/classic-editor.php' );;
     1655                        $classic_classes = ' button-disabled install-now updated-message';
     1656                }
     1657        }
     1658
     1659        if ( current_user_can( 'edit_posts' ) && is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
     1660                $action = __( 'Try Gutenberg' );
     1661                $url = admin_url( 'admin.php?page=gutenberg' );
     1662        }
     1663
     1664        ?>
     1665        <div class="try-gutenberg-panel-content">
     1666                <h2><?php _e( 'A new, modern publishing experience is coming soon.' ); ?></h2>
     1667
     1668                <p class="about-description"><?php _e( "Take your words, media, and layout in new directions with Gutenberg, the WordPress editor we're currently building." ); ?></p>
     1669
     1670                <hr />
     1671
     1672                <div class="try-gutenberg-panel-column-container">
     1673                        <div class="try-gutenberg-panel-column try-gutenberg-panel-image-column">
     1674                                <picture>
     1675                                        <source srcset="about:blank" media="(max-width: 1024px)">
     1676                                        <img src="https://s.w.org/images/core/gutenberg-screenshot.png?<?php echo date( 'Ymd' ); ?>" alt="<?php esc_attr_e( 'Screenshot from the Gutenberg interface' ); ?>" />
     1677                                </picture>
     1678                        </div>
     1679                        <div class="try-gutenberg-panel-column plugin-card-gutenberg">
     1680
     1681                                <h3><?php _e( 'Test the new editor today.' ); ?></h3>
     1682
     1683                                <p>
     1684                                        <?php _e( "You can take Gutenberg for a spin (and share your feedback, if you’d like) before we officially release it, by installing it as a plugin." ); ?>
     1685                                        <?php
     1686                                                printf(
     1687                                                        /* translators: 1: Gutenberg call for testing handbook link, 2: Gutenberg GitHub repository issues link, 3: Gutenberg GitHub repository CONTRIBUTING.md link */
     1688                                                        __( 'You can help by <a href="%1$s">testing</a>, <a href="%2$s">filing bugs</a>, or contributing on the <a href="%3$s">GitHub repository</a>.' ),
     1689                                                        'https://make.wordpress.org/test/handbook/call-for-testing/gutenberg-testing/',
     1690                                                        'https://github.com/WordPress/gutenberg/issues',
     1691                                                        'https://github.com/WordPress/gutenberg/blob/master/CONTRIBUTING.md'
     1692                                                );
     1693                                        ?>
     1694                                </p>
     1695
     1696                                        <?php if ( $action ) { ?>
     1697                                                <div class="try-gutenberg-action">
     1698                                                        <p><a class="button button-primary button-hero<?php echo $classes; ?>" href="<?php echo esc_url( $url ); ?>" data-name="<?php esc_attr_e( 'Gutenberg' ); ?>" data-slug="gutenberg"><?php echo $action; ?></a></p>
     1699                                                        <p>
     1700                                                                <?php
     1701                                                                        printf(
     1702                                                                                /* translators: Link to https://wordpress.org/gutenberg/ */
     1703                                                                                __( '<a href="%s">Learn more about Gutenberg</a>' ),
     1704                                                                                'https://wordpress.org/gutenberg/'
     1705                                                                        );
     1706                                                                ?>
     1707                                                        </p>
     1708                                                </div>
     1709                                        <?php } ?>
     1710                        </div>
     1711
     1712                        <div class="try-gutenberg-panel-column plugin-card-classic-editor">
     1713
     1714                                <h3><?php _e( 'Not quite ready?' ); ?></h3>
     1715
     1716                                <p>
     1717                                        <?php _e( 'The new editor will be enabled by default in the next major release of WordPress. If you’re not sure how compatible your current themes and plugins are, we’ve got you covered.' ); ?>
     1718                                        <?php
     1719                                                printf(
     1720                                                        /* translators: Link to the Classic Editor plugin page */
     1721                                                        __( 'Install the <a href="%s">Classic Editor plugin</a> to keep using the current editor until you’re ready to make the switch.' ),
     1722                                                        'http://wordpress.org/plugins/classic-editor'
     1723                                                );
     1724                                        ?>
     1725                                </p>
     1726
     1727                                <?php if ( $classic_action ) { ?>
     1728                                        <div class="try-gutenberg-action">
     1729                                                <p><a class="button button-secondary button-hero<?php echo $classic_classes; ?>" href="<?php echo esc_url( $classic_url ); ?>" data-name="<?php esc_attr_e( 'Classic Editor' ); ?>" data-slug="classic-editor"><?php echo $classic_action; ?></a></p>
     1730                                        </div>
     1731                                <?php } ?>
     1732                        </div>
     1733                </div>
     1734        </div>
     1735        <?php
     1736}
  • src/wp-admin/index.php

    diff --git a/src/wp-admin/index.php b/src/wp-admin/index.php
    index 783a43b23f..f005388ba2 100644
    a b include( ABSPATH . 'wp-admin/admin-header.php' ); 
    103103<div class="wrap">
    104104        <h1><?php echo esc_html( $title ); ?></h1>
    105105
     106<?php if ( has_action( 'try_gutenberg_panel' ) ) :
     107        $classes = 'try-gutenberg-panel';
     108
     109        $option = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
     110        // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
     111        $hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email !== get_option( 'admin_email' ) );
     112        if ( $hide )
     113                $classes .= ' hidden'; ?>
     114
     115        <div id="try-gutenberg-panel" class="<?php echo esc_attr( $classes ); ?>">
     116                <?php wp_nonce_field( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce', false ); ?>
     117                <a class="try-gutenberg-panel-close" href="<?php echo esc_url( admin_url( '?try_gutenberg=0' ) ); ?>" aria-label="<?php esc_attr_e( 'Dismiss the Try Gutenberg panel' ); ?>"><?php _e( 'Dismiss' ); ?></a>
     118                <?php
     119                /**
     120                 * Add content to the Try Gutenberg panel on the admin dashboard.
     121                 *
     122                 * To remove the Try Gutenberg panel, use remove_action():
     123                 *
     124                 *     remove_action( 'try_gutenberg_panel', 'wp_try_gutenberg_panel' );
     125                 *
     126                 * @since 4.9.6
     127                 */
     128                do_action( 'try_gutenberg_panel' );
     129                ?>
     130        </div>
     131<?php endif; ?>
    106132<?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
    107133        $classes = 'welcome-panel';
    108134
    109135        $option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
    110136        // 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
    111         $hide = 0 == $option || ( 2 == $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
     137        $hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
    112138        if ( $hide )
    113139                $classes .= ' hidden'; ?>
    114140
  • src/wp-admin/js/dashboard.js

    diff --git a/src/wp-admin/js/dashboard.js b/src/wp-admin/js/dashboard.js
    index a6b56c37ef..2ae6455244 100644
    a b jQuery(document).ready( function($) { 
    3131                updateWelcomePanel( this.checked ? 1 : 0 );
    3232        });
    3333
     34        var tryGutenbergPanel = $( '#try-gutenberg-panel' ),
     35                tryGutenbergPanelHide = $('#wp_try_gutenberg_panel-hide'),
     36                updateTryGutenbergPanel, installGutenbergSuccess;
     37
     38        updateTryGutenbergPanel = function( visible ) {
     39                $.post( ajaxurl, {
     40                        action: 'update-try-gutenberg-panel',
     41                        visible: visible,
     42                        trygutenbergpanelnonce: $( '#trygutenbergpanelnonce' ).val()
     43                });
     44        };
     45
     46        installGutenbergSuccess = function( response ) {
     47                response.activateUrl += '&from=try-gutenberg';
     48                response.activateLabel = wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName );
     49                wp.updates.installPluginSuccess( response );
     50        };
     51
     52        if ( tryGutenbergPanel.hasClass( 'hidden' ) && tryGutenbergPanelHide.prop( 'checked' ) ) {
     53                tryGutenbergPanel.removeClass( 'hidden' );
     54        }
     55
     56        $( '.try-gutenberg-panel-close, .try-gutenberg-panel-dismiss a', tryGutenbergPanel ).click( function( e ) {
     57                e.preventDefault();
     58                tryGutenbergPanel.addClass( 'hidden' );
     59                updateTryGutenbergPanel( 0 );
     60                $('#wp_try_gutenberg_panel-hide').prop( 'checked', false );
     61        });
     62
     63        tryGutenbergPanelHide.click( function() {
     64                tryGutenbergPanel.toggleClass( 'hidden', ! this.checked );
     65                updateTryGutenbergPanel( this.checked ? 1 : 0 );
     66        });
     67
     68        tryGutenbergPanel.on( 'click', '.install-now', function( e ) {
     69                e.preventDefault();
     70                var args = {
     71                        slug: $( e.target ).data( 'slug' ),
     72                        success: installGutenbergSuccess
     73                };
     74                wp.updates.installPlugin( args );
     75        } );
     76
    3477        // These widgets are sometimes populated via ajax
    3578        ajaxWidgets = ['dashboard_primary'];
    3679
  • src/wp-admin/js/updates.js

    diff --git a/src/wp-admin/js/updates.js b/src/wp-admin/js/updates.js
    index 22229a6f51..a39ceeadeb 100644
    a b  
    585585
    586586                $message
    587587                        .removeClass( 'updating-message' )
    588                         .addClass( 'updated-message installed button-disabled' )
     588                        .addClass( 'updated-message installed' )
    589589                        .attr( 'aria-label', wp.updates.l10n.pluginInstalledLabel.replace( '%s', response.pluginName ) )
    590590                        .text( wp.updates.l10n.pluginInstalled );
    591591
     592                if ( $message.hasClass( 'button-primary' ) ) {
     593                        $message.addClass( 'button-primary-disabled' );
     594                } else {
     595                        $message.addClass( 'button-disabled' );
     596                }
     597
    592598                wp.a11y.speak( wp.updates.l10n.installedMsg, 'polite' );
    593599
    594600                $document.trigger( 'wp-plugin-install-success', response );
     
    597603                        setTimeout( function() {
    598604
    599605                                // Transform the 'Install' button into an 'Activate' button.
    600                                 $message.removeClass( 'install-now installed button-disabled updated-message' ).addClass( 'activate-now button-primary' )
     606                                $message.removeClass( 'install-now installed button-primary-disabled button-secondary-disabled button-disabled updated-message' )
     607                                        .addClass( 'activate-now' )
    601608                                        .attr( 'href', response.activateUrl )
    602609                                        .attr( 'aria-label', wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName ) )
    603                                         .text( wp.updates.l10n.activatePlugin );
     610                                        .text( response.activateLabel || wp.updates.l10n.activatePlugin );
    604611                        }, 1000 );
    605612                }
    606613        };
  • src/wp-admin/plugins.php

    diff --git a/src/wp-admin/plugins.php b/src/wp-admin/plugins.php
    index b92a7964e6..50e4114503 100644
    a b if ( $action ) { 
    6565                                wp_redirect( self_admin_url("import.php?import=" . str_replace('-importer', '', dirname($plugin))) ); // overrides the ?error=true one above and redirects to the Imports page, stripping the -importer suffix
    6666                        } else if ( isset($_GET['from']) && 'press-this' == $_GET['from'] ) {
    6767                                wp_redirect( self_admin_url( "press-this.php") );
     68                        } else if ( isset( $_GET['from'] ) && 'try-gutenberg' == $_GET['from'] ) {
     69                                if ( 'gutenberg/gutenberg.php' === $plugin ) {
     70                                        wp_redirect( self_admin_url( "admin.php?page=gutenberg" ) );
     71                                } else {
     72                                        wp_redirect( self_admin_url() );
     73                                }
    6874                        } else {
    6975                                wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above
    7076                        }
  • src/wp-includes/default-filters.php

    diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php
    index e012beb182..fb8af82daf 100644
    a b add_action( 'transition_post_status', '_transition_post_status', 
    318318add_action( 'transition_post_status',     '_update_term_count_on_transition_post_status', 10, 3 );
    319319add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          );
    320320add_action( 'admin_init',                 'send_frame_options_header',               10, 0 );
     321add_action( 'try_gutenberg_panel',        'wp_try_gutenberg_panel'                         );
    321322add_action( 'welcome_panel',              'wp_welcome_panel'                               );
    322323
    323324// Privacy