<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[43098] Add Privacy Tools admin page under the Tools menu.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/43098">43098</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/43098","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2018-05-02 02:45:22 +0000 (Wed, 02 May 2018)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Add Privacy Tools admin page under the Tools menu.

Props allendav, xkon, azaozz.
Merges <a href="https://core.trac.wordpress.org/changeset/42814">[42814]</a> to the 4.9 branch.
See <a href="https://core.trac.wordpress.org/ticket/43435">#43435</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branches49srcwpadminaboutphp">branches/4.9/src/wp-admin/about.php</a></li>
<li><a href="#branches49srcwpadmincreditsphp">branches/4.9/src/wp-admin/credits.php</a></li>
<li><a href="#branches49srcwpadminfreedomsphp">branches/4.9/src/wp-admin/freedoms.php</a></li>
<li><a href="#branches49srcwpadminmenuphp">branches/4.9/src/wp-admin/menu.php</a></li>
<li><a href="#branches49srcwpadminprivacyphp">branches/4.9/src/wp-admin/privacy.php</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#branches49">branches/4.9/</a></li>
<li><a href="#branches49srcwpadminprivacyphp">branches/4.9/src/wp-admin/privacy.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<span class="cx" style="display: block; padding: 0 10px">Index: branches/4.9
</span><span class="cx" style="display: block; padding: 0 10px">===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- branches/4.9 2018-05-02 02:37:50 UTC (rev 43097)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ branches/4.9  2018-05-02 02:45:22 UTC (rev 43098)
</ins><a id="branches49"></a>
<div class="propset"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Property changes: branches/4.9</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: svn:mergeinfo</h4></div>
<span class="cx" style="display: block; padding: 0 10px"> /branches/3.1:18031
</span><span class="cx" style="display: block; padding: 0 10px"> /branches/3.3:20543
</span><span class="cx" style="display: block; padding: 0 10px"> /branches/3.4:21757
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/trunk:18512,42132,42134,42136,42138,42140,42144,42146,42148,42150,42152-42153,42155,42157,42159,42161,42163,42169,42171,42173,42175,42177,42181,42183,42185,42187,42189,42191,42193,42199,42203,42210,42214,42220,42222,42226,42242,42244,42247,42251,42256-42261,42350,42358,42362,42364-42368,42374,42388,42390,42401,42417,42421,42423-42425,42430,42433,42437,42441,42443,42446-42447,42449,42451,42453,42457,42459,42462,42491,42521,42529,42531,42533,42536,42538,42541,42543,42545,42549,42566,42568,42570,42572,42574,42576,42579,42581-42582,42584-42585,42587-42588,42590,42592,42594-42595,42598-42599,42602,42604,42606,42611-42613,42615,42617,42624-42625,42639,42648,42652-42653,42665,42687,42711,42713,42719,42722,42739-42740,42744,42758,42791-42792,42801,42817-42818,42830,42837,42839,42841,42844,42851-42852,42860,42864,42881,42888-42889,42892-42894,42930,42964,42967,42971-42972,42977,42986-42987,42989
 ,42994,42998,43001,43004,43007-43008,43011-43012,43014-43015,43025,43027,43030,43032,43034,43036,43039,43045-43047,43056-43059,43062-43063,43065,43081,43089
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/trunk:18512,42132,42134,42136,42138,42140,42144,42146,42148,42150,42152-42153,42155,42157,42159,42161,42163,42169,42171,42173,42175,42177,42181,42183,42185,42187,42189,42191,42193,42199,42203,42210,42214,42220,42222,42226,42242,42244,42247,42251,42256-42261,42350,42358,42362,42364-42368,42374,42388,42390,42401,42417,42421,42423-42425,42430,42433,42437,42441,42443,42446-42447,42449,42451,42453,42457,42459,42462,42491,42521,42529,42531,42533,42536,42538,42541,42543,42545,42549,42566,42568,42570,42572,42574,42576,42579,42581-42582,42584-42585,42587-42588,42590,42592,42594-42595,42598-42599,42602,42604,42606,42611-42613,42615,42617,42624-42625,42639,42648,42652-42653,42665,42687,42711,42713,42719,42722,42739-42740,42744,42758,42791-42792,42801,42814,42817-42818,42830,42837,42839,42841,42844,42851-42852,42860,42864,42881,42888-42889,42892-42894,42930,42964,42967,42971-42972,42977,42986-42987
 ,42989,42994,42998,43001,43004,43007-43008,43011-43012,43014-43015,43025,43027,43030,43032,43034,43036,43039,43045-43047,43056-43059,43062-43063,43065,43081,43089
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span><a id="branches49srcwpadminaboutphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/4.9/src/wp-admin/about.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/4.9/src/wp-admin/about.php       2018-05-02 02:37:50 UTC (rev 43097)
+++ branches/4.9/src/wp-admin/about.php 2018-05-02 02:45:22 UTC (rev 43098)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -27,7 +27,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        <a href="about.php" class="nav-tab nav-tab-active"><?php _e( 'What&#8217;s New' ); ?></a>
</span><span class="cx" style="display: block; padding: 0 10px">                        <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
</span><span class="cx" style="display: block; padding: 0 10px">                        <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 <a href="freedoms.php?privacy-notice" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
</ins><span class="cx" style="display: block; padding: 0 10px">                 </h2>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                <div class="changelog point-releases">
</span></span></pre></div>
<a id="branches49srcwpadmincreditsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/4.9/src/wp-admin/credits.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/4.9/src/wp-admin/credits.php     2018-05-02 02:37:50 UTC (rev 43097)
+++ branches/4.9/src/wp-admin/credits.php       2018-05-02 02:45:22 UTC (rev 43098)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,7 +28,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
</span><span class="cx" style="display: block; padding: 0 10px">        <a href="credits.php" class="nav-tab nav-tab-active"><?php _e( 'Credits' ); ?></a>
</span><span class="cx" style="display: block; padding: 0 10px">        <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <a href="freedoms.php?privacy-notice" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
</ins><span class="cx" style="display: block; padding: 0 10px"> </h2>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> <div class="about-wrap-content">
</span></span></pre></div>
<a id="branches49srcwpadminfreedomsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/4.9/src/wp-admin/freedoms.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/4.9/src/wp-admin/freedoms.php    2018-05-02 02:37:50 UTC (rev 43097)
+++ branches/4.9/src/wp-admin/freedoms.php      2018-05-02 02:45:22 UTC (rev 43098)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -14,6 +14,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> include( ABSPATH . 'wp-admin/admin-header.php' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+$is_privacy_notice = isset( $_GET['privacy-notice'] );
+
</ins><span class="cx" style="display: block; padding: 0 10px"> ?>
</span><span class="cx" style="display: block; padding: 0 10px"> <div class="wrap about-wrap full-width-layout">
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,11 +29,22 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <h2 class="nav-tab-wrapper wp-clearfix">
</span><span class="cx" style="display: block; padding: 0 10px">        <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
</span><span class="cx" style="display: block; padding: 0 10px">        <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <a href="freedoms.php" class="nav-tab nav-tab-active"><?php _e( 'Freedoms' ); ?></a>
-       <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <a href="freedoms.php" class="nav-tab<?php if ( ! $is_privacy_notice ) { echo ' nav-tab-active'; } ?>"><?php _e( 'Freedoms' ); ?></a>
+       <a href="freedoms.php?privacy-notice" class="nav-tab<?php if ( $is_privacy_notice ) { echo ' nav-tab-active'; } ?>"><?php _e( 'Privacy' ); ?></a>
</ins><span class="cx" style="display: block; padding: 0 10px"> </h2>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php if ( $is_privacy_notice ) : ?>
+
</ins><span class="cx" style="display: block; padding: 0 10px"> <div class="about-wrap-content">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        <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>
+
+       <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>
+
+       <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>
+</div>
+
+<?php else : ?>
+<div class="about-wrap-content">
</ins><span class="cx" style="display: block; padding: 0 10px">         <p class="about-description"><?php printf( __( 'WordPress is Free and open source software, built by a distributed community of mostly volunteer developers from around the world. WordPress comes with some awesome, worldview-changing rights courtesy of its <a href="%s">license</a>, the GPL.' ), 'https://wordpress.org/about/license/' ); ?></p>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        <ol start="0">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -52,5 +66,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        <p><?php _e( 'Don&#8217;t you wish all software came with these freedoms? So do we! For more information, check out the <a href="https://www.fsf.org/">Free Software Foundation</a>.' ); ?></p>
</span><span class="cx" style="display: block; padding: 0 10px"> </div>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php endif; ?>
</ins><span class="cx" style="display: block; padding: 0 10px"> </div>
</span><span class="cx" style="display: block; padding: 0 10px"> <?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
</span></span></pre></div>
<a id="branches49srcwpadminmenuphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/4.9/src/wp-admin/menu.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/4.9/src/wp-admin/menu.php        2018-05-02 02:37:50 UTC (rev 43097)
+++ branches/4.9/src/wp-admin/menu.php  2018-05-02 02:45:22 UTC (rev 43098)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -244,6 +244,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        $submenu['tools.php'][5] = array( __('Available Tools'), 'edit_posts', 'tools.php' );
</span><span class="cx" style="display: block; padding: 0 10px">        $submenu['tools.php'][10] = array( __('Import'), 'import', 'import.php' );
</span><span class="cx" style="display: block; padding: 0 10px">        $submenu['tools.php'][15] = array( __('Export'), 'export', 'export.php' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        $submenu['tools.php'][20] = array( __( 'Privacy' ), 'manage_options', 'privacy.php' );
</ins><span class="cx" style="display: block; padding: 0 10px">         if ( is_multisite() && !is_main_site() )
</span><span class="cx" style="display: block; padding: 0 10px">                $submenu['tools.php'][25] = array( __('Delete Site'), 'delete_site', 'ms-delete-site.php' );
</span><span class="cx" style="display: block; padding: 0 10px">        if ( ! is_multisite() && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE )
</span></span></pre></div>
<a id="branches49srcwpadminprivacyphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: branches/4.9/src/wp-admin/privacy.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- branches/4.9/src/wp-admin/privacy.php     2018-05-02 02:37:50 UTC (rev 43097)
+++ branches/4.9/src/wp-admin/privacy.php       2018-05-02 02:45:22 UTC (rev 43098)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,6 +1,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Privacy administration panel.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Privacy Tools Screen.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @package WordPress
</span><span class="cx" style="display: block; padding: 0 10px">  * @subpackage Administration
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,34 +9,193 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /** WordPress Administration Bootstrap */
</span><span class="cx" style="display: block; padding: 0 10px"> require_once( dirname( __FILE__ ) . '/admin.php' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-$title = __( 'Privacy' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+if ( ! current_user_can( 'manage_options' ) ) {
+       wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) );
+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// "Borrow" xfn.js for now so we don't have to create new files.
+// wp_enqueue_script( 'xfn' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-include( ABSPATH . 'wp-admin/admin-header.php' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$action = isset( $_POST['action'] ) ? $_POST['action'] : '';
+
+if ( ! empty( $action ) ) {
+       check_admin_referer( $action );
+
+       if ( 'set-privacy-page' === $action ) {
+               $privacy_policy_page_id = isset( $_POST['page_for_privacy_policy'] ) ? (int) $_POST['page_for_privacy_policy'] : 0;
+               update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id );
+
+               add_settings_error(
+                       'page_for_privacy_policy',
+                       'page_for_privacy_policy',
+                       __( 'Privacy policy page updated successfully.' ),
+                       'updated'
+               );
+       } elseif ( 'create-privacy-page' === $action ) {
+               $privacy_policy_page_id = wp_insert_post(
+                       array(
+                               'post_title'  => __( 'Privacy Policy' ),
+                               'post_status' => 'draft',
+                               'post_type'   => 'page',
+                       ),
+                       true
+               );
+
+               if ( is_wp_error( $privacy_policy_page_id ) ) {
+                       add_settings_error(
+                               'page_for_privacy_policy',
+                               'page_for_privacy_policy',
+                               __( 'Unable to create privacy policy page.' ),
+                               'error'
+                       );
+               } else {
+                       update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id );
+                       add_settings_error(
+                               'page_for_privacy_policy',
+                               'page_for_privacy_policy',
+                               __( 'Privacy policy page created successfully.' ),
+                               'updated'
+                       );
+               }
+       }
+}
+
+// If a privacy policy page ID is available, make sure the page actually exists. If not, display a warning
+$privacy_policy_page_exists = false;
+$privacy_policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' );
+
+if ( ! empty( $privacy_policy_page_id ) ) {
+               $privacy_policy_page = get_post( $privacy_policy_page_id );
+               if ( ! $privacy_policy_page instanceof WP_Post ) {
+                       add_settings_error(
+                               'page_for_privacy_policy',
+                               'page_for_privacy_policy',
+                               __( 'The currently selected privacy policy page does not exist. Please create or select new page.' ),
+                               'warning'
+                       );
+               } else {
+                       if ( 'trash' === $privacy_policy_page->post_status ) {
+                               add_settings_error(
+                                       'page_for_privacy_policy',
+                                       'page_for_privacy_policy',
+                                       sprintf(
+                                               __( 'The currently selected privacy policy page is in the trash. Please create or select new privacy policy page or <a href="%s">restore the current page</a>.' ),
+                                               'edit.php?post_status=trash&post_type=page'
+                                       ),
+                                       'error'
+                               );
+                       } else {
+                               $privacy_policy_page_exists = true;
+                       }
+               }
+}
+
+$title = __( 'Privacy Tools' );
+
+get_current_screen()->add_help_tab( array(
+       'id'      => 'privacy',
+       'title'   => __( 'Privacy' ),
+       'content' => '<p>' . __( 'This page provides tools with which you can manage your user\'s personal data and site\'s privacy policy.' ) . '</p>',
+) );
+
+get_current_screen()->set_help_sidebar(
+       '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
+       '<p>' . __( '<a href="#">Documentation on privacy</a>' ) . '</p>'
+);
+
+require_once( ABSPATH . 'wp-admin/admin-header.php' );
+
</ins><span class="cx" style="display: block; padding: 0 10px"> ?>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<div class="wrap about-wrap full-width-layout">
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<div class="wrap">
+       <h1><?php echo esc_html( $title ); ?></h1>
+       <?php settings_errors(); ?>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <h2 class="title"><?php _e( 'Privacy policy page' ); ?></h2>
+       <table class="form-table">
+               <?php
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<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>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $privacy_policy_page_exists ) {
+                       $edit_href = add_query_arg(
+                               array(
+                                       'post'  => $privacy_policy_page_id,
+                                       'action' => 'edit',
+                               ),
+                               admin_url( 'post.php' )
+                       );
+                       $view_href = get_permalink( $privacy_policy_page_id );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 ?>
+                       <tr>
+                               <th colspan="2">
+                                       <?php
+                                       printf(
+                                               __( '<a href="%1$s">Edit</a> or <a href="%2$s">view</a> your privacy policy.' ),
+                                               $edit_href,
+                                               $view_href
+                                       );
+                                       ?>
+                               </th>
+                       </tr>
+                       <?php
+               }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<h2 class="nav-tab-wrapper wp-clearfix">
-       <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
-       <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a>
-       <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
-       <a href="privacy.php" class="nav-tab nav-tab-active"><?php _e( 'Privacy' ); ?></a>
-</h2>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         ?>
+               <tr>
+                       <th scope="row">
+                       <?php
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<div class="about-wrap-content">
-       <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>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 if ( $privacy_policy_page_exists ) {
+                               _e( 'Select another page for your privacy policy' );
+                       } else {
+                               _e( 'Select an existing privacy policy page' );
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <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>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 ?>
+                       </th>
+                       <td id="front-static-pages">
+                               <form method="post" action="">
+                                       <?php wp_nonce_field( 'set-privacy-page' ); ?>
+                                       <input type="hidden" name="action" value="set-privacy-page" />
+                                       <fieldset>
+                                               <legend class="screen-reader-text"><span><?php _e( 'Select your privacy policy page.' ); ?></span></legend>
+                                               <label for="page_for_privacy_policy">
+                                                       <?php wp_dropdown_pages(
+                                                               array(
+                                                                       'name'              => 'page_for_privacy_policy',
+                                                                       'show_option_none'  => __( '&mdash; Select &mdash;' ),
+                                                                       'option_none_value' => '0',
+                                                                       'selected'          => $privacy_policy_page_id,
+                                                                       'post_status'       => array( 'draft', 'publish' ),
+                                                               )
+                                                       );
+                                                       ?>
+                                               </label>
+                                       </fieldset>
+                                               <?php submit_button( __( 'Set Page' ) ); ?>
+                               </form>
+                       </td>
+               </tr>
+               <?php
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <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>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( ! $privacy_policy_page_exists ) {
+                       ?>
+                       <tr>
+                               <th scope="row"><?php _e( 'Create new page for your privacy policy' ); ?></th>
+                               <td>
+                                       <form method="post" action="">
+                                               <input type="hidden" name="action" value="create-privacy-page" />
+                                               <?php wp_nonce_field( 'create-privacy-page' ); ?>
+                                               <?php submit_button( __( 'Create Page' ) ); ?>
+                                       </form>
+                               </td>
+                       </tr>
+                       <?php
+               }
+
+               ?>
+       </table>
</ins><span class="cx" style="display: block; padding: 0 10px"> </div>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-</div>
-<?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+include( ABSPATH . 'wp-admin/admin-footer.php' );
</ins><span class="cx" style="display: block; padding: 0 10px">Property changes on: branches/4.9/src/wp-admin/privacy.php
</span><span class="cx" style="display: block; padding: 0 10px">___________________________________________________________________
</span></span></pre></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:eol-style</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+native
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of property
</span></div>

</body>
</html>