<!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>[50147] trunk/src/wp-admin: Privacy: Add help tabs for Export Personal Data and Erase Personal Data screens.</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/50147">50147</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/50147","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>2021-02-02 16:53:58 +0000 (Tue, 02 Feb 2021)</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'>Privacy: Add help tabs for Export Personal Data and Erase Personal Data screens.
Props xkon, burtrw, netweblogic, desrosj, hellofromTonya, garrett-eclipse.
Fixes <a href="https://core.trac.wordpress.org/ticket/43994">#43994</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpadminerasepersonaldataphp">trunk/src/wp-admin/erase-personal-data.php</a></li>
<li><a href="#trunksrcwpadminexportpersonaldataphp">trunk/src/wp-admin/export-personal-data.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpadminerasepersonaldataphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/erase-personal-data.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/erase-personal-data.php 2021-02-02 16:51:17 UTC (rev 50146)
+++ trunk/src/wp-admin/erase-personal-data.php 2021-02-02 16:53:58 UTC (rev 50147)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13,6 +13,56 @@
</span><span class="cx" style="display: block; padding: 0 10px"> wp_die( __( 'Sorry, you are not allowed to erase personal data on this site.' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// Contextual help - choose Help on the top right of admin panel to preview this.
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'overview',
+ 'title' => __( 'Overview' ),
+ 'content' =>
+ '<p>' . __( 'This screen allows you to manage requests to erase or delete personal data.' ) . '</p>' .
+ '<p>' . __( 'Deleting, anonymizing, or forgetting all data that a business or website has collected about an individual is a requirement of many Privacy Laws around the world, and is sometimes referred to as the "Right To Be Forgotten".' ) . '</p>' .
+ '<p>' . __( 'The tool associates data stored in WordPress by a supplied email address, including profile data and comments.' ) . '</p>' .
+ '<p>' . __( '<strong>Note: As this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with erasure requests. You should also delete any data collected by or stored with any 3rd party services used by your business or site.</strong>' ) . '</p>',
+ )
+);
+
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'default-data',
+ 'title' => __( 'Default Data' ),
+ 'content' =>
+ '<p>' . __( 'Personal data that is collected by WordPress and is deleted or anonymized include:' ) . '</p>' .
+ '<p>' . __( '<strong>Profile Information</strong> — user email address, username, display name, nickname, first name, last name, description/bio, and registration date.' ) . '</p>' .
+ '<p>' . __( '<strong>Community Events Location</strong> — The IP Address of the user which is used for the Upcoming Community Events shown in the dashboard widget.' ) . '</p>' .
+ '<p>' . __( '<strong>Session Tokens</strong> — User login information, IP Addresses, Expiration Date, User Agent (Browser/OS), and Last Login.' ) . '</p>' .
+ '<p>' . __( '<strong>Comments</strong> — Comments are not deleted, but user data is anonymized, including Email Address, IP Address, and User Agent (Browser/OS).' ) . '</p>' .
+ '<p>' . __( '<strong>Media</strong> — A list of URLs for all media file uploads made by the user.' ) . '</p>',
+ )
+);
+
+$privacy_policy_guide = '<p>' . sprintf(
+ /* translators: 1: URL to Privacy Policy Guide screen. */
+ __( 'If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Eraser tool. This information may be available in the <a href="%1$s">Privacy Policy Guide</a>.' ),
+ admin_url( 'privacy-policy-guide.php' )
+) . '</p>';
+
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'plugin-data',
+ 'title' => __( 'Plugin Data' ),
+ 'content' =>
+ '<p>' . __( 'Many plugins may collect or store personal data either in the WordPress database or remotely. Any Erase Personal Data request should delete data from plugins as well.' ) . '</p>' .
+ '<p>' . __( 'Plugin authors can <a href="https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-eraser-to-your-plugin/" target=_blank"> learn more about how to add support for the Personal Data Eraser to a plugin here</a>.' ) . '</p>' .
+ $privacy_policy_guide,
+ )
+);
+
+get_current_screen()->set_help_sidebar(
+ '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
+ '<p>' . __( '<a href="https://wordpress.org/support/article/tools-erase-personal-data-screen/">Documentation on Erase Personal Data</a>' ) . '</p>' .
+ '<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
+);
+
</ins><span class="cx" style="display: block; padding: 0 10px"> // Handle list table actions.
</span><span class="cx" style="display: block; padding: 0 10px"> _wp_personal_data_handle_actions();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -52,6 +102,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> <div class="wrap nosubsub">
</span><span class="cx" style="display: block; padding: 0 10px"> <h1><?php esc_html_e( 'Erase Personal Data' ); ?></h1>
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <p><?php _e( 'This tool helps site owners comply with local laws and regulations by deleting or anonymizing known data for a given user.' ); ?></p>
</ins><span class="cx" style="display: block; padding: 0 10px"> <hr class="wp-header-end" />
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> <?php settings_errors(); ?>
</span></span></pre></div>
<a id="trunksrcwpadminexportpersonaldataphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/export-personal-data.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/export-personal-data.php 2021-02-02 16:51:17 UTC (rev 50146)
+++ trunk/src/wp-admin/export-personal-data.php 2021-02-02 16:53:58 UTC (rev 50147)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13,6 +13,56 @@
</span><span class="cx" style="display: block; padding: 0 10px"> wp_die( __( 'Sorry, you are not allowed to export personal data on this site.' ) );
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+// Contextual help - choose Help on the top right of admin panel to preview this.
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'overview',
+ 'title' => __( 'Overview' ),
+ 'content' =>
+ '<p>' . __( 'This screen allows you to manage requests for an export of personal data.' ) . '</p>' .
+ '<p>' . __( 'Providing an export of all data that a business or website has collected about an individual is a requirement of many Privacy Laws around the world, and is sometimes referred to as the "Right To Data Portability".' ) . '</p>' .
+ '<p>' . __( 'The tool associates data stored in WordPress by a supplied email address, including profile data and comments.' ) . '</p>' .
+ '<p>' . __( '<strong>Note: As this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with export requests. You should also send the requestor any data collected by or stored with any 3rd party services used by your business or site.</strong>' ) . '</p>',
+ )
+);
+
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'default-data',
+ 'title' => __( 'Default Data' ),
+ 'content' =>
+ '<p>' . __( 'Personal data that is collected by WordPress and is displayed in the export files include:' ) . '</p>' .
+ '<p>' . __( '<strong>Profile Information</strong> — user email address, username, display name, nickname, first name, last name, description/bio, and registration date.' ) . '</p>' .
+ '<p>' . __( '<strong>Community Events Location</strong> — The IP Address of the user used for the Upcoming Community Events shown in the dashboard widget.' ) . '</p>' .
+ '<p>' . __( '<strong>Session Tokens</strong> — User login information, IP Addresses, Expiration Date, User Agent (Browser/OS), and Last Login.' ) . '</p>' .
+ '<p>' . __( '<strong>Comments</strong> — For any comments made by the user, Email Address, IP Address, User Agent (Browser/OS), Date/Time, Comment Content, and Content URL. ' ) . '</p>' .
+ '<p>' . __( '<strong>Media</strong> — A list of URLs for all media file uploads made by the user.' ) . '</p>',
+ )
+);
+
+$privacy_policy_guide = '<p>' . sprintf(
+ /* translators: 1: URL to Privacy Policy Guide screen. */
+ __( 'If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Exporter tool. This information may be available in the <a href="%1$s">Privacy Policy Guide</a>.' ),
+ admin_url( 'privacy-policy-guide.php' )
+) . '</p>';
+
+get_current_screen()->add_help_tab(
+ array(
+ 'id' => 'plugin-data',
+ 'title' => __( 'Plugin Data' ),
+ 'content' =>
+ '<p>' . __( 'Many plugins may collect or store personal data either in the WordPress database or remotely. Any Export Personal Data request should include data from plugins as well.' ) . '</p>' .
+ '<p>' . __( 'Plugin authors can <a href="https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-exporter-to-your-plugin/" target=_blank"> learn more about how to add the Personal Data Exporter to a plugin here</a>.' ) . '</p>' .
+ $privacy_policy_guide,
+ )
+);
+
+get_current_screen()->set_help_sidebar(
+ '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
+ '<p>' . __( '<a href="https://wordpress.org/support/article/tools-export-personal-data-screen/">Documentation on Export Personal Data</a>' ) . '</p>' .
+ '<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
+);
+
</ins><span class="cx" style="display: block; padding: 0 10px"> // Handle list table actions.
</span><span class="cx" style="display: block; padding: 0 10px"> _wp_personal_data_handle_actions();
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -52,6 +102,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> <div class="wrap nosubsub">
</span><span class="cx" style="display: block; padding: 0 10px"> <h1><?php esc_html_e( 'Export Personal Data' ); ?></h1>
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <p><?php _e( 'This tool helps site owners comply with local laws and regulations by exporting known data for a given user in a .zip file.' ); ?></p>
</ins><span class="cx" style="display: block; padding: 0 10px"> <hr class="wp-header-end" />
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> <?php settings_errors(); ?>
</span></span></pre>
</div>
</div>
</body>
</html>