Index: src/wp-admin/user-edit.php
===================================================================
--- src/wp-admin/user-edit.php	(revision 46758)
+++ src/wp-admin/user-edit.php	(working copy)
@@ -336,6 +336,16 @@
 		</td>
 	</tr>
 
+	<tr class="pii-info pii-info-status">
+		<th scope="row"><?php _e( 'PII Status' ); ?></th>
+		<td>
+			<label for="pii-info-status-front">
+				<input name="pii_info_front" type="checkbox" id="pii_info_front" value="1"<?php checked( _get_pii_pref( $profileuser->ID ) ); ?> />
+				<?php _e( 'Do you wish to share your info under Personal Identifiable Information?' ); ?>
+			</label><br />
+		</td>
+	</tr>
+
 		<?php
 		$languages = get_available_languages();
 		if ( $languages ) :
Index: src/wp-includes/load.php
===================================================================
--- src/wp-includes/load.php	(revision 46758)
+++ src/wp-includes/load.php	(working copy)
@@ -1553,3 +1553,20 @@
 
 	return false;
 }
+
+/**
+ * Determines if PPI is enable.
+ *
+ * @since 5.3.*
+ *
+ * @param int $user Required ID of the user to check.
+ * @return bool     Whether PII is enable for this user or not.
+ */
+function is_pii( $user ) {
+	$pref = get_user_option( "share_pii_info", $user );
+	if ( false === $pref ) {
+		return true;
+	}
+
+	return 'true' === $pref;
+}
Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 46758)
+++ src/wp-includes/user.php	(working copy)
@@ -1517,6 +1517,8 @@
  *                                             site's front end. Default true.
  *     @type string      $role                 User's role.
  *     @type string      $locale               User's locale. Default empty.
+ * 	   @type bool        $share_pii_info       Whether to share information for the user.
+	 *                                         Default true.
  * }
  * @return int|WP_Error The newly created user's ID or a WP_Error object if the user could not
  *                      be created.
@@ -1758,6 +1760,8 @@
 
 	$meta['locale'] = isset( $userdata['locale'] ) ? $userdata['locale'] : '';
 
+	$meta['share_pii_info'] = empty( $userdata['share_pii_info'] ) ? 'true' : $userdata['share_pii_info'];
+
 	$compacted = compact( 'user_pass', 'user_nicename', 'user_email', 'user_url', 'user_registered', 'user_activation_key', 'display_name' );
 	$data      = wp_unslash( $compacted );
 
@@ -1834,6 +1838,8 @@
 	 *     @type bool     $show_admin_bar_front Whether to show the admin bar on the front end for the user.
 	 *                                          Default true.
 	 *     @type string   $locale               User's locale. Default empty.
+	 * 	   @type bool     $share_pii_info       Whether to share information for the user.
+	 *                                          Default true.
 	 * }
 	 * @param WP_User $user   User object.
 	 * @param bool    $update Whether the user is being updated rather than created.
@@ -2179,7 +2185,7 @@
  * @return string[] List of user keys to be populated in wp_update_user().
  */
 function _get_additional_user_keys( $user ) {
-	$keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'syntax_highlighting', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front', 'locale' );
+	$keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'syntax_highlighting', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front', 'locale', 'share_pii_info' );
 	return array_merge( $keys, array_keys( wp_get_user_contact_methods( $user ) ) );
 }
 
Index: src/wp-includes/admin-bar.php
===================================================================
--- src/wp-includes/admin-bar.php	(revision 46758)
+++ src/wp-includes/admin-bar.php	(working copy)
@@ -1232,3 +1232,21 @@
 
 	return 'true' === $pref;
 }
+
+/**
+ * Retrieve the PII preference of a user.
+ *
+ * @since 5.3.*
+ * @access private
+ *
+ * @param int $user Optional. ID of the user to check, defaults to 0 for current user.
+ * @return bool Whether PII is enable for this user or not.
+ */
+function _get_pii_pref( $user = 0 ) {
+	$pref = get_user_option( "share_pii_info", $user );
+	if ( false === $pref ) {
+		return true;
+	}
+
+	return 'true' === $pref;
+}
Index: src/wp-admin/includes/user.php
===================================================================
--- src/wp-admin/includes/user.php	(revision 46758)
+++ src/wp-admin/includes/user.php	(working copy)
@@ -117,6 +117,7 @@
 		$user->syntax_highlighting  = isset( $_POST['syntax_highlighting'] ) && 'false' === $_POST['syntax_highlighting'] ? 'false' : 'true';
 		$user->admin_color          = isset( $_POST['admin_color'] ) ? sanitize_text_field( $_POST['admin_color'] ) : 'fresh';
 		$user->show_admin_bar_front = isset( $_POST['admin_bar_front'] ) ? 'true' : 'false';
+		$user->share_pii_info       = isset( $_POST['pii_info_front'] ) ? 'true' : 'false';
 		$user->locale               = '';
 
 		if ( isset( $_POST['locale'] ) ) {
