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



wp_secrets_site_health_test_undecryptable › WordPress Function

Since7.2.0
Deprecatedn/a
› wp_secrets_site_health_test_undecryptable ( No parameters )
Returns:
  • (array)
Defined at:
Codex:

Site Health test: does every stored secret still decrypt?

Network secrets are included only for a super admin on a multisite install – never shown to a site administrator who is not one.


Source

function wp_secrets_site_health_test_undecryptable(): array {
	$broken = wp_secrets_site_health_find_undecryptable( false );

	if ( is_multisite() && is_super_admin() ) {
		$broken = array_merge( $broken, wp_secrets_site_health_find_undecryptable( true ) );
	}

	if ( empty( $broken ) ) {
		return wp_secrets_site_health_result(
			'secrets_api_undecryptable',
			__( 'All secrets can be decrypted' ),
			'good',
			sprintf( '<p>%s</p>', esc_html__( 'Every stored secret decrypted successfully.' ) )
		);
	}

	$items = '';

	foreach ( $broken as $entry ) {
		$items .= sprintf(
			'<li>%s (%s)</li>',
			esc_html( $entry['name'] ),
			sprintf(
				/* translators: %s: A secret's last known fingerprint. */
				esc_html__( 'fingerprint: %s' ),
				esc_html( $entry['fingerprint'] )
			)
		);
	}

	return wp_secrets_site_health_result(
		'secrets_api_undecryptable',
		__( 'Some secrets cannot be decrypted' ),
		'critical',
		sprintf(
			'<p>%s</p><ul>%s</ul><p>%s</p>',
			esc_html__( 'The following secrets exist but could not be decrypted with the current key. There is no way to recover the original value. The credential must be re-entered.' ),
			$items,
			esc_html__( 'This can happen after losing WP_SECRETS_KEY, restoring a database backup without its matching key, or a failed key rotation.' )
		)
	);
}