diff --git a/wp-admin/credits.php b/wp-admin/credits.php
index 451d2abf75..3ca2f9fdc7 100644
--- a/wp-admin/credits.php
+++ b/wp-admin/credits.php
@@ -28,7 +28,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/freedoms.php b/wp-admin/freedoms.php
index e3fd29ff79..110959449d 100644
--- a/wp-admin/freedoms.php
+++ b/wp-admin/freedoms.php
@@ -14,6 +14,9 @@ $title = __( 'Freedoms' );
list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
include( ABSPATH . 'wp-admin/admin-header.php' );
+
+$is_privacy_notice = isset( $_GET['privacy-notice'] );
+
?>
@@ -26,10 +29,21 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
-
-
+
+
+
+
+
+
+
+
WordPress.org stats page.' ), 'https://wordpress.org/about/stats/' ); ?>
+
+
WordPress.org/about/privacy.' ), 'https://wordpress.org/about/privacy/' ); ?>
+
+
+
license, the GPL.' ), 'https://wordpress.org/about/license/' ); ?>
@@ -55,5 +69,6 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
Free Software Foundation.' ); ?>
+
diff --git a/wp-admin/menu.php b/wp-admin/menu.php
index 6c8edf4eb0..51d9cac1a8 100644
--- a/wp-admin/menu.php
+++ b/wp-admin/menu.php
@@ -256,6 +256,7 @@ $menu[75] = array( __( 'Tools' ), 'edit_posts', 'tools.php',
$submenu['tools.php'][5] = array( __( 'Available Tools' ), 'edit_posts', 'tools.php' );
$submenu['tools.php'][10] = array( __( 'Import' ), 'import', 'import.php' );
$submenu['tools.php'][15] = array( __( 'Export' ), 'export', 'export.php' );
+ $submenu['tools.php'][20] = array( __( 'Privacy' ), 'manage_options', 'privacy.php' );
if ( is_multisite() && ! is_main_site() ) {
$submenu['tools.php'][25] = array( __( 'Delete Site' ), 'delete_site', 'ms-delete-site.php' );
}
diff --git a/wp-admin/privacy.php b/wp-admin/privacy.php
index c0fcbba87b..3630260f19 100644
--- a/wp-admin/privacy.php
+++ b/wp-admin/privacy.php
@@ -1,6 +1,6 @@
__( '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
restore the current page.' ),
+ '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' => '
' . __( 'This page provides tools with which you can manage your user\'s personal data and site\'s privacy policy.' ) . '
',
+) );
+
+get_current_screen()->set_help_sidebar(
+ '
' . __( 'For more information:' ) . '
' .
+ '
' . __( 'Documentation on privacy' ) . '
'
+);
+
+require_once( ABSPATH . 'wp-admin/admin-header.php' );
-include( ABSPATH . 'wp-admin/admin-header.php' );
?>
-
-
+