Hello,
i am writing a beauty blog and i would like to show the user's skin, and hairtypes, etc. below their Name in wpDiscuz Comments.
I set up PODS and added the custom fields to the profile edit section:
I want to show the selected entries from PODS below the author's name in Comments in wpDiscuz. I've set up the PODS Plugin and added a POD to user profile > advance with the following options that i want to show below the author's name: Type Select, Single - alter - hauttyp_gesicht - hauttyp_koerper - haartyp - haarstruktur - haardicke - augenfarbe Type Select, Multiple, Checkbox - hautprobleme
I have added the following code snippet to my functions.php:
// Display PODS custom fields in wpDiscuz comments below the author's name
add_filter('wpdiscuz_comment_author_text', 'pods_profile_fields_display', 10, 2);
function pods_profile_fields_display($author_text, $comment) {
// Get the user ID of the comment author
$user_id = $comment->user_id;
// Return the original author text if the user is not logged in
if (!$user_id) {
return $author_text;
}
// Retrieve PODS data for the user
$user_pod = pods('user', $user_id);
// Return the original author text if no PODS data is found
if (!$user_pod) {
return $author_text;
}
// Define an array of single-select fields with their labels
$single_fields = [
'alter' => 'Alter',
'hauttyp_gesicht' => 'Hauttyp Gesicht',
'hauttyp_koerper' => 'Hauttyp Körper',
'haartyp' => 'Haartyp',
'haarstruktur' => 'Haarstruktur',
'haardicke' => 'Haardicke',
'augenfarbe' => 'Augenfarbe'
];
// Initialize a variable to store additional information
$additional_info = '';
// Loop through each single-select field and append its value if it exists
foreach ($single_fields as $field_name => $field_label) {
$field_value = $user_pod->field($field_name);
if (!empty($field_value)) {
$additional_info .= sprintf(
'<div class="user-%s">%s: %s</div>',
esc_attr($field_name),
esc_html($field_label),
esc_html($field_value)
);
}
}
// Handle the multiple-select field "hautprobleme"
$hautprobleme = $user_pod->field('hautprobleme');
if (!empty($hautprobleme)) {
// Convert array to comma-separated string if necessary
$hautprobleme_value = is_array($hautprobleme) ? implode(', ', $hautprobleme) : $hautprobleme;
$additional_info .= '<div class="user-hautprobleme">Hautprobleme: ' . esc_html($hautprobleme_value) . '</div>';
}
// Append additional information to the author text if any exists
if ($additional_info) {
$author_text .= '<div class="user-profile-info">' . $additional_info . '</div>';
}
return $author_text;
}
I also added the following CSS:
/* Style for user profile information displayed in comments */
.user-profile-info {
font-size: 12px;
color: #666;
margin-top: 4px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.user-profile-info > div {
margin-right: 10px;
background-color: #f5f5f5;
padding: 4px 8px;
border-radius: 4px;
}
@media (max-width: 480px) {
.user-profile-info {
flex-direction: column;
gap: 4px;
}
.user-profile-info > div {
margin-right: 0;
}
}
Is there anything i'm doing wrong or is there a better version to do it?
Hi,
wpDiscuz doesn't have a wpdiscuz_comment_author_text hook.
Please check the full list of available wpDiscuz hooks here and choose the one that best fits your needs:

