Make WordPress Core

Ticket #43481: 43481.3.diff

File 43481.3.diff, 21.0 KB (added by xkon, 7 years ago)

moves everything into existing privacy.php

  • src/wp-admin/menu.php

     
    256256        $submenu['tools.php'][5]  = array( __( 'Available Tools' ), 'edit_posts', 'tools.php' );
    257257        $submenu['tools.php'][10] = array( __( 'Import' ), 'import', 'import.php' );
    258258        $submenu['tools.php'][15] = array( __( 'Export' ), 'export', 'export.php' );
     259        $submenu['tools.php'][20] = array( __( 'Privacy' ), 'manage_options', 'privacy.php' );
    259260if ( is_multisite() && ! is_main_site() ) {
    260261        $submenu['tools.php'][25] = array( __( 'Delete Site' ), 'delete_site', 'ms-delete-site.php' );
    261262}
  • src/wp-admin/privacy.php

     
    1111
    1212$title = __( 'Privacy' );
    1313
    14 list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
     14$referer = wp_get_referer();
    1515
    16 include( ABSPATH . 'wp-admin/admin-header.php' );
     16if ( preg_match( '#/wp-admin/about.php$#', $referer ) ||
     17     preg_match( '#/wp-admin/credits.php$#', $referer ) ||
     18     preg_match( '#/wp-admin/freedoms.php$#', $referer )  )  {
     19
     20        include( ABSPATH . 'wp-admin/admin-header.php' );
     21
     22        list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
     23
    1724?>
    18 <div class="wrap about-wrap full-width-layout">
     25        <div class="wrap about-wrap full-width-layout">
    1926
    20 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
     27        <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
    2128
    22 <p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s will smooth your design workflow and keep you safe from coding errors.' ), $display_version ); ?></p>
     29        <p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s will smooth your design workflow and keep you safe from coding errors.' ), $display_version ); ?></p>
    2330
    24 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
     31        <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
    2532
    26 <h2 class="nav-tab-wrapper wp-clearfix">
    27         <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
    28         <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
    29         <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
    30         <a href="privacy.php" class="nav-tab nav-tab-active"><?php _e( 'Privacy' ); ?></a>
    31 </h2>
     33        <h2 class="nav-tab-wrapper wp-clearfix">
     34                <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
     35                <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
     36                <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
     37                <a href="privacy.php" class="nav-tab nav-tab-active"><?php _e( 'Privacy' ); ?></a>
     38        </h2>
    3239
    33 <div class="about-wrap-content">
    34         <p class="about-description"><?php _e( 'From time to time, your WordPress site may send data to WordPress.org &#8212; including, but not limited to &#8212; the version of WordPress you are using, and a list of installed plugins and themes.' ); ?></p>
     40        <div class="about-wrap-content">
     41                <p class="about-description"><?php _e( 'From time to time, your WordPress site may send data to WordPress.org &#8212; including, but not limited to &#8212; the version of WordPress you are using, and a list of installed plugins and themes.' ); ?></p>
    3542
    36         <p><?php printf( __( 'This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the <a href="%s">WordPress.org stats page</a>.' ), 'https://wordpress.org/about/stats/' ); ?></p>
     43                <p><?php printf( __( 'This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the <a href="%s">WordPress.org stats page</a>.' ), 'https://wordpress.org/about/stats/' ); ?></p>
    3744
    38         <p><?php printf( __( 'We take privacy and transparency very seriously. To learn more about what data we collect, and how we use it, please visit <a href="%s">WordPress.org/about/privacy</a>.' ), 'https://wordpress.org/about/privacy/' ); ?></p>
    39 </div>
     45                <p><?php printf( __( 'We take privacy and transparency very seriously. To learn more about what data we collect, and how we use it, please visit <a href="%s">WordPress.org/about/privacy</a>.' ), 'https://wordpress.org/about/privacy/' ); ?></p>
     46        </div>
    4047
    41 </div>
    42 <?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
     48        </div>
     49        <script>
     50                ( function( $ ) {
     51                        $( document ).ready( function() {
     52                                $( '#menu-tools' ).removeClass( 'wp-menu-open' ).removeClass( 'wp-has-current-submenu' ).addClass( 'wp-not-current-submenu' );
     53                                $( '#menu-tools a.wp-has-submenu' ).removeClass( 'wp-menu-open' ).removeClass( 'wp-has-current-submenu' ).addClass( 'wp-not-current-submenu' );
     54                                $( '#menu-tools li.current' ).removeClass( 'current' );
     55                        });
     56                })( jQuery )
     57        </script>
     58<?php
     59} else {
     60
     61        get_current_screen()->add_help_tab( array(
     62                'id'      => 'privacy',
     63                'title'   => __( 'Privacy' ),
     64                'content' => '<p>' . __( 'This page provides tools with which you can manage your user\'s personal data and site\'s privacy policy.' ) . '</p>',
     65        ) );
     66
     67        get_current_screen()->set_help_sidebar(
     68                '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
     69                '<p>' . __( '<a href="#">Documentation on privacy</a>' ) . '</p>'
     70        );
     71
     72        include( ABSPATH . 'wp-admin/admin-header.php' );
     73
     74        ?>
     75        <!-- PAGE WRAP -->
     76        <div class="wrap">
     77                <h1><?php echo esc_html( $title ); ?></h1>
     78
     79                <!-- TAB PANEL MENU -->
     80                <div class="nav-tab-wrapper wp-clearfix">
     81                        <a href="#" class="nav-tab nav-tab-active" data-tab="privacy-tools"><?php _e( 'Tools' ); ?></a>
     82                        <a href="#" class="nav-tab" data-tab="privacy-requests"><?php _e( 'Requests' ); ?></a>
     83                        <a href="#" class="nav-tab" data-tab="privacy-information"><?php _e( 'Privacy Policy Information' ); ?></a>
     84                </div>
     85
     86
     87                <div class="tabs">
     88                        <!-- TAB Tools -->
     89                        <div class="tab privacy-tools">
     90                                <div class="tools-row create-page">
     91                                        <h2><?php _e( 'Set up a Privacy Policy Page' ); ?></h2>
     92                                        <form action="#" id="" method="POST">
     93                                                <p class="description"><?php _e( 'You can either select one of your existing Pages to use as a <code>Privacy Policy Page</code> or you can create a new one!' ); ?></p>
     94                                                <p>
     95                                                        <label for="privacy-policy-page"><?php _e( 'Select an existing Page:' ); ?></label>
     96                                                        <select name="privacy-policy-page" id="privacy-policy-page">
     97                                                                <option value="0">— Select —</option>
     98                                                                <option class="level-0" value="2">Sample Page</option>
     99                                                        </select>
     100                                                        <input type="submit" class="button button-primary button-save" value="<?php esc_html_e( 'Save' ); ?>">
     101                                                        <input type="submit" class="button button-primary button-create" value="<?php esc_html_e( 'Create Page' ); ?>">
     102                                                </p>
     103                                        </form>
     104                                </div>
     105                                <div class="tools-row export-data">
     106                                        <h3><?php _e( 'Export Data' ); ?></h3>
     107                                        <form action="#" id="" method="POST">
     108                                                <p class="description"><?php _e( 'You can export a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically export their Data as well.' ); ?></p>
     109                                                <p>
     110                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     111                                                        <input type="text" name="email" id="email" value="">
     112                                                        <input type="submit" class="button button-primary" value="<?php _e( 'Export' ); ?>">
     113                                                </p>
     114                                        </form>
     115                                </div>
     116                                <div class="tools-row anonymize-data">
     117                                        <h3><?php _e( 'Anonymize Data' ); ?></h3>
     118                                        <form action="#" id="" method="POST">
     119                                                <p class="description"><?php _e( 'You can anonymize a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically anonymize their Data as well.' ); ?></p>
     120                                                <div class="notice notice-error inline">
     121                                                        <p><?php _e( 'Caution: You will <code>NOT</code> be able to undo this action.' ); ?></p>
     122                                                </div>
     123                                                <p>
     124                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     125                                                        <input type="text" name="email" id="email" value="">
     126                                                        <input type="submit" class="button button-primary" value="<?php _e( 'Anonymize' ); ?>">
     127                                                </p>
     128                                        </form>
     129                                </div>
     130                                <div class="tools-row delete-data">
     131                                        <h3><?php _e( 'Delete Data' ); ?></h3>
     132                                        <form action="#" id="" method="POST">
     133                                                <p class="description"><?php _e( 'You can delete a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically delete their Data as well.' ); ?></p>
     134                                                <div class="notice notice-error inline">
     135                                                        <p>
     136                                                                <?php _e( 'Caution: You will <code>NOT</code> be able to undo this action.' ); ?>
     137                                                        </p>
     138                                                </div>
     139                                                <p>
     140                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     141                                                        <input type="text" name="email" id="email" value="">
     142                                                        <input type="submit" class="button button-primary" value="<?php _e( 'Delete' ); ?>">
     143                                                </p>
     144                                        </form>
     145                                </div>
     146                                <div class="information-section">
     147                                        <h2><?php _e( 'General Information - What you can do with this new Tools section' ); ?></h2>
     148                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     149                                        <br/><br/>
     150                                        Ut porta velit nec sodales lobortis. Morbi blandit nunc in quam dictum accumsan. Nunc efficitur non neque at sodales. Duis pellentesque bibendum arcu eget congue. Nulla tincidunt ornare nibh, id dapibus odio lobortis vel. In finibus vulputate urna ac gravida. Proin eu molestie sem, nec feugiat nunc. In scelerisque sollicitudin odio nec fringilla. Etiam ornare orci nisl, at vestibulum ipsum fringilla vitae. Sed finibus ipsum ac ligula convallis, in efficitur massa efficitur.
     151                                        <br/><br/>
     152                                        Pellentesque libero leo, dignissim sed faucibus eget, egestas ac purus. Vivamus pellentesque erat non orci ornare congue. Suspendisse varius nulla in lorem finibus, nec sollicitudin felis porta. Sed commodo, ante sit amet lobortis varius, ex est accumsan risus, a viverra sem sapien eu ante. Aenean ut finibus ligula. Cras sed dignissim ligula, et eleifend est. Donec id justo dapibus, feugiat tortor at, euismod risus. Nunc dignissim lorem nulla, at iaculis nunc lobortis vitae. Mauris sit amet sapien mattis, auctor ex sed, volutpat massa. Donec ex odio, convallis vitae metus in, viverra rutrum nibh. Aenean congue eros ac egestas mattis.
     153                                        <br/><br/>
     154                                        Nulla in orci ultrices, semper odio non, varius nunc. Nulla nec purus magna. Vivamus cursus bibendum nibh, a iaculis lectus mattis vitae. Suspendisse eu accumsan tellus. Curabitur aliquet est ligula, eu imperdiet ex tincidunt in. Nunc in odio accumsan, congue tortor scelerisque, gravida est. Proin quis finibus lectus. Quisque convallis auctor arcu non tristique. Phasellus accumsan leo odio, sed blandit nisi laoreet eu. Nullam lobortis odio neque, sed rutrum nibh sollicitudin id.
     155                                </div>
     156                        </div>
     157                        <!-- TAB Requests -->
     158                        <div class="tab privacy-requests">
     159
     160                                <?php
     161                                // Requests come from wp_options as an array of users.
     162                                // If user is registered, use an array similar to WP_User, otherwise just the user email.
     163                                $requests = array(
     164                                        array(
     165                                                'ID' => 1,
     166                                                'full_name' => 'Fernando Claussen',
     167                                                'email' => 'test@test.com',
     168                                                'date' => '2018/03/07',
     169                                                'type' => 'Delete',
     170                                        ),
     171                                        array(
     172                                                'ID' => 2,
     173                                                'full_name' => 'Donald Trump',
     174                                                'email' => 'test@test.com',
     175                                                'date' => '2018/03/03',
     176                                                'type' => 'Anonymize',
     177                                        ),
     178                                );
     179
     180                                $delete_requests = array_filter( $requests, function( $item ) {
     181                                        return $item['type'] == 'Delete';
     182                                });
     183
     184                                $anonymize_requests = array_filter( $requests, function( $item ) {
     185                                        return $item['type'] == 'Anonymize';
     186                                });
     187                                ?>
     188
     189                                <?php if ( ! empty( $delete_requests ) ): ?>
     190                                        <h2><?php _e( 'Deletion Requests' ); ?></h2>
     191                                        <table class="widefat">
     192                                                <thead>
     193                                                <tr>
     194                                                        <th><?php esc_attr_e( 'ID' ); ?></th>
     195                                                        <th><?php esc_attr_e( 'Full Name' ); ?></th>
     196                                                        <th><?php esc_attr_e( 'Email' ); ?></th>
     197                                                        <th><?php esc_attr_e( 'Date of Request' ); ?></th>
     198                                                        <th><?php esc_attr_e( 'Review' ); ?></th>
     199                                                        <th><?php esc_attr_e( 'Action' ); ?></th>
     200                                                </tr>
     201                                                </thead>
     202                                                <tbody>
     203                                                <?php foreach ($delete_requests as $request ): ?>
     204                                                        <tr>
     205                                                                <td><?php echo esc_html( $request['ID'] ) ?></td>
     206                                                                <td><?php echo esc_html( $request['full_name'] ); ?></td>
     207                                                                <td><?php echo esc_html( $request['email'] ); ?></td>
     208                                                                <td><?php echo esc_html( $request['date'] ); ?></td>
     209                                                                <td>
     210                                                                        <button class="button"><?php _e( 'Review Request' ); ?></button>
     211                                                                </td>
     212                                                                <td>
     213                                                                        <button class="button button-primary"><?php _e( 'Delete User' ); ?></button>
     214                                                                </td>
     215                                                        </tr>
     216                                                <?php endforeach; ?>
     217                                                </tbody>
     218                                        </table>
     219                                <?php endif ?>
     220                                <?php if ( ! empty( $anonymize_requests ) ): ?>
     221                                        <h2><?php _e( 'Anonymize Requests' ); ?></h2>
     222                                        <table class="widefat">
     223                                                <thead>
     224                                                <tr>
     225                                                        <th><?php esc_attr_e( 'ID' ); ?></th>
     226                                                        <th><?php esc_attr_e( 'Full Name' ); ?></th>
     227                                                        <th><?php esc_attr_e( 'Email' ); ?></th>
     228                                                        <th><?php esc_attr_e( 'Date of Request' ); ?></th>
     229                                                        <th><?php esc_attr_e( 'Review' ); ?></th>
     230                                                        <th><?php esc_attr_e( 'Action' ); ?></th>
     231                                                </tr>
     232                                                </thead>
     233                                                <tbody>
     234                                                <?php foreach ($anonymize_requests as $request ): ?>
     235                                                        <tr>
     236                                                                <td><?php echo esc_html( $request['ID'] ) ?></td>
     237                                                                <td><?php echo esc_html( $request['full_name'] ); ?></td>
     238                                                                <td><?php echo esc_html( $request['email'] ); ?></td>
     239                                                                <td><?php echo esc_html( $request['date'] ); ?></td>
     240                                                                <td>
     241                                                                        <button class="button"><?php _e( 'Review Request' ); ?></button>
     242                                                                </td>
     243                                                                <td>
     244                                                                        <button class="button button-primary"><?php _e( 'Anonymize User' ); ?></button>
     245                                                                </td>
     246                                                        </tr>
     247                                                <?php endforeach; ?>
     248                                                </tbody>
     249                                        </table>
     250                                <?php endif ?>
     251                        </div>
     252                        <!-- TAB Privacy Policy Information -->
     253                        <div class="tab privacy-information">
     254                                <div id="contextual-help-wrap" class="hidden" tabindex="-1" aria-label="Contextual Help Tab" style="display: block;">
     255                                        <div id="contextual-help-back"></div>
     256                                        <div id="contextual-help-columns">
     257                                                <div class="contextual-help-tabs">
     258                                                        <ul>
     259                                                                <li id="tab-link-core" class="active">
     260                                                                        <a href="#tab-panel-core">Core</a>
     261                                                                </li>
     262                                                                <li id="tab-link-plugin1">
     263                                                                        <a href="#tab-panel-plugin1">Plugin 1</a>
     264                                                                </li>
     265                                                                <li id="tab-link-plugin2">
     266                                                                        <a href="#tab-panel-plugin2">Plugin 2</a>
     267                                                                </li>
     268                                                        </ul>
     269                                                </div>
     270                                                <div class="contextual-help-tabs-wrap">
     271                                                        <div id="tab-panel-core" class="help-tab-content active">
     272                                                                <h2>Core</h2>
     273                                                                <h3>Privacy Policy</h3>
     274                                                                <p>
     275                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     276                                                                </p>
     277                                                                <h3>Cookies</h3>
     278                                                                <p>
     279                                                                        _one _two _three _cookies _in _the _jar
     280                                                                </p>
     281                                                                <h3>Data</h3>
     282                                                                <p>
     283                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     284                                                                </p>
     285                                                        </div>
     286                                                        <div id="tab-panel-plugin1" class="help-tab-content">
     287                                                                <h2>Plugin 1</h2>
     288                                                                <h3>Privacy Policy</h3>
     289                                                                <p>
     290                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     291                                                                </p>
     292                                                                <h3>Cookies</h3>
     293                                                                <p>
     294                                                                        _one _two _three _cookies _in _the _jar
     295                                                                </p>
     296                                                        </div>
     297                                                        <div id="tab-panel-plugin2" class="help-tab-content">
     298                                                                <h2>Plugin 2</h2>
     299                                                                <h3>Cookies</h3>
     300                                                                <p>
     301                                                                        _one _two _three _cookies _in _the _jar
     302                                                                </p>
     303                                                                <h3>Data</h3>
     304                                                                <p>
     305                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     306                                                                </p>
     307                                                        </div>
     308                                                </div>
     309                                        </div>
     310                                </div>
     311                        </div>
     312                </div>
     313        </div>
     314        <script>
     315                ( function( $ ){
     316                        $( document ).ready( function() {
     317
     318
     319                                function changePageSelectorButton() {
     320                                        var privacy_page_id = $('#privacy-policy-page').val();
     321                                        if ( privacy_page_id == 0 ) {
     322                                                $('.button-save').addClass('hidden');
     323                                                $('.button-save').siblings().removeClass('hidden');
     324                                        } else {
     325                                                $('.button-create').addClass('hidden');
     326                                                $('.button-create').siblings().removeClass('hidden');
     327                                        }
     328                                }
     329
     330                                changePageSelectorButton();
     331
     332                                $('#privacy-policy-page').change(function() {
     333                                        changePageSelectorButton();
     334                                });
     335
     336
     337                                $('.nav-tab').on('click', function( e ){
     338                                        e.preventDefault();
     339
     340                                        var target = '.' + $(this).data('tab');
     341                                        $( target ).show();
     342                                        $( target ).siblings().hide();
     343                                        $( this ).addClass( 'nav-tab-active' );
     344                                        $( this ).siblings().removeClass( 'nav-tab-active' )
     345                                });
     346
     347                                $( '.tab:eq(0)' ).siblings().css( 'display', 'none' );
     348                        });
     349                })( jQuery )
     350        </script>
     351        <style>
     352                body.privacy-php .nav-tab {
     353                        background: #ccc;
     354                }
     355
     356                body.privacy-php .tabs {
     357                        margin-top: 20px;
     358                }
     359
     360                body.privacy-php .nav-tab-active {
     361                        border-bottom: 1px solid #f1f1f1;
     362                        background: #f1f1f1;
     363                        color: #000;
     364                        font-weight: 700;
     365                }
     366
     367                body.privacy-php .information-section {
     368                        background: #f6fbfd;
     369                        padding: 20px;
     370                }
     371
     372                body.privacy-php #contextual-help-wrap {
     373                        background: #fff;
     374                }
     375
     376                body.privacy-php #contextual-help-back {
     377                        right: 0;
     378                }
     379
     380                body.privacy-php .tools-row {
     381                        background: #fff;
     382                        padding: 10px;
     383                        margin-bottom: 20px;
     384                }
     385
     386                body.privacy-php .tab.privacy-tools {
     387                        display: block;
     388                }
     389
     390                @media (min-width: 1024px) {
     391
     392                        body.privacy-php .tools-row {
     393                                margin-bottom: 0;
     394                        }
     395
     396                        body.privacy-php .tab.privacy-tools {
     397                                display: grid;
     398                                grid-gap: 20px;
     399                                grid-template-columns: [col1-start] calc( 100% - 420px )  [col2-start] 400px  [col2-end];
     400                                grid-template-rows: [row1-start] auto [row2-start] auto [row3-start] auto [row4-start] auto [row4-end];
     401                        }
     402
     403                        body.privacy-php .tab.privacy-tools .create-page {
     404                                grid-column: col1-start;
     405                                grid-row: row1-start ;
     406                        }
     407
     408                        body.privacy-php .tab.privacy-tools .export-data {
     409                                grid-column: col1-start;
     410                                grid-row: row2-start ;
     411                        }
     412
     413                        body.privacy-php .tab.privacy-tools .anonymize-data {
     414                                grid-column: col1-start;
     415                                grid-row: row3-start ;
     416                        }
     417
     418                        body.privacy-php .tab.privacy-tools .delete-data {
     419                                grid-column: col1-start;
     420                                grid-row: row4-start ;
     421                        }
     422
     423                        body.privacy-php .tab.privacy-tools .information-section {
     424                                grid-column: col2-start;
     425                                grid-row: row1-start / row4-end ;
     426                        }
     427                }
     428
     429        </style>
     430<?php
     431}
     432
     433include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>