wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_privacy_generate_personal_data_export_group_html › WordPress Function

Since4.9.6
Deprecatedn/a
wp_privacy_generate_personal_data_export_group_html ( $group_data, $group_id = '', $groups_count = 1 )
Parameters: (3)
  • (array) $group_data { The group data to render. @type string $group_label The user-facing heading for the group, e.g. 'Comments'. @type array $items { An array of group items. @type array $group_item_data { An array of name-value pairs for the item. @type string $name The user-facing name of an item name-value pair, e.g. 'IP Address'. @type string $value The user-facing value of an item data pair, e.g. '50.60.70.0'. } } }
    Required: Yes
  • (string) $group_id The group identifier.
    Required: No
    Default: (empty)
  • (int) $groups_count The number of all groups
    Required: No
    Default: 1
Returns:
  • (string) The HTML for this group and its items.
Defined at:
Codex:
Change Log:
  • 5.4.0

Generate a single group for the personal data export report.



Source

function wp_privacy_generate_personal_data_export_group_html( $group_data, $group_id = '', $groups_count = 1 ) {
	$group_id_attr = sanitize_title_with_dashes( $group_data['group_label'] . '-' . $group_id );

	$group_html  = '<h2 id="' . esc_attr( $group_id_attr ) . '">';
	$group_html .= esc_html( $group_data['group_label'] );

	$items_count = count( (array) $group_data['items'] );
	if ( $items_count > 1 ) {
		$group_html .= sprintf( ' <span class="count">(%d)</span>', $items_count );
	}

	$group_html .= '</h2>';

	if ( ! empty( $group_data['group_description'] ) ) {
		$group_html .= '<p>' . esc_html( $group_data['group_description'] ) . '</p>';
	}

	$group_html .= '<div>';

	foreach ( (array) $group_data['items'] as $group_item_id => $group_item_data ) {
		$group_html .= '<table>';
		$group_html .= '<tbody>';

		foreach ( (array) $group_item_data as $group_item_datum ) {
			$value = $group_item_datum['value'];
			// If it looks like a link, make it a link.
			if ( ! str_contains( $value, ' ' ) && ( str_starts_with( $value, 'http://' ) || str_starts_with( $value, 'https://' ) ) ) {
				$value = '<a href="' . esc_url( $value ) . '">' . esc_html( $value ) . '</a>';
			}

			$group_html .= '<tr>';
			$group_html .= '<th>' . esc_html( $group_item_datum['name'] ) . '</th>';
			$group_html .= '<td>' . wp_kses( $value, 'personal_data_export' ) . '</td>';
			$group_html .= '</tr>';
		}

		$group_html .= '</tbody>';
		$group_html .= '</table>';
	}

	if ( $groups_count > 1 ) {
		$group_html .= '<div class="return-to-top">';
		$group_html .= '<a href="#top"><span aria-hidden="true">&uarr; </span> ' . esc_html__( 'Go to top' ) . '</a>';
		$group_html .= '</div>';
	}

	$group_html .= '</div>';

	return $group_html;
}