Is there a PHP function / hook like โget_user_metaโ to get the values stored in a UsersWP account custom field given the used ID and the field name?
Yes, there is, theuwp_get_usermeta()
function allows developers to retrieve custom user metadata associated with a specific user. This is particularly useful when working with custom fields added via UsersWP registration or profile forms.
If you prefer to use the standard WP get_user_meta()
function, then you can ๐ Simply prefix the field_key with “uwp_meta_” so to get a field `phone_number` you can use get_user_meta( $user_id, 'uwp_meta_phone_number', true );
Function Syntax
uwp_get_usermeta( int $user_id, string $field_key );
Parameters
$user_id
(int): The ID of the user whose meta data you want to retrieve.$field_key
(string): The key (or name) of the custom field you want to access.$default
ย (string): (optional) The default value to return if the value is empty.
Return Value
- Mixed: Returns the value of the specified user meta field.
- Returns
null
if the field does not exist or has no value.
Function Description
Theuwp_get_usermeta()
function retrieves the value of a custom user meta field added by UsersWP. Unlike the standard WordPress get_user_meta()
function, uwp_get_usermeta()
is tailored to handle UsersWP-specific fields, including complex data types and serialized arrays.
Usage Examples
Example 1: Retrieve a User’s Phone Number
Suppose you have a custom field with the keyphone_number
added to your registration form.
$user_id = 123; // Replace with the actual user ID
$phone_number = uwp_get_usermeta( $user_id, 'phone_number' );
if ( $phone_number ) {
echo 'User Phone Number: ' . esc_html( $phone_number );
} else {
echo 'Phone number not provided.';
}
Example 2: Display User Profile Information
Retrieve and display multiple custom fields for a user’s profile page.
$user_id = get_current_user_id();
$first_name = uwp_get_usermeta( $user_id, 'first_name' );
$last_name = uwp_get_usermeta( $user_id, 'last_name' );
$bio = uwp_get_usermeta( $user_id, 'bio' );
echo '<h2>' . esc_html( $first_name . ' ' . $last_name ) . '</h2>'; echo '<p>' . esc_html( $bio ) . '</p>';
Example 3: Conditional Content Based on User Meta
Show exclusive content to users with a specific role or meta value.
$user_id = get_current_user_id();
$membership_level = uwp_get_usermeta( $user_id, 'membership_level' );
if ( $membership_level === 'premium' ) {
echo 'Welcome to the premium content section!';
} else {
echo 'Upgrade to premium to access this content.';
}
Example 4: Loop Through Users to Display Custom Meta
List all users along with a specific custom field.
$users = get_users();
foreach ( $users as $user ) {
$user_id = $user->ID;
$company = uwp_get_usermeta( $user_id, 'company_name' );
echo 'User: ' . esc_html( $user->display_name ) . '<br>'; echo 'Company: ' . esc_html( $company ) . '<br><br>';
}
Example 5: Prefill Form Fields with User Meta
When creating forms, prefill fields with existing user data.
$user_id = get_current_user_id();
$address = uwp_get_usermeta( $user_id, 'address' );
?>
<form method="post" action="">
<label for="address">Address:</label>
<input type="text" name="address" id="address" value="<?php echo esc_attr( $address ); ?>">
<input type="submit" value="Update Address">
</form>
<?php
Notes and Best Practices
- Field Key Accuracy: Ensure that the
$field_key
matches the exact key used when the custom field was created in UsersWP. - Sanitize Output: Always sanitize and escape output to prevent security vulnerabilities.
$value = uwp_get_usermeta( $user_id, 'custom_field' );
echo esc_html( $value ); - Check for Null Values: The function may return
null
if the field does not exist. Implement checks to handle such cases.$value = uwp_get_usermeta( $user_id, 'custom_field' );
if ( $value !== null ) { // Proceed with using $value } else { // Handle the absence of the field }
- Difference from
get_user_meta()
: While WordPress’sget_user_meta()
ย retrieve user metadata from the wp_usermeta table of the WordPress database,uwp_get_usermeta()
is optimized for UsersWP fields stored in the UsersWP custom database table.
Related Functions
uwp_update_usermeta( $user_id, $field_key, $value )
: Updates or adds a custom user meta field.uwp_delete_usermeta( $user_id, $field_key )
: Deletes a custom user meta field.
Troubleshooting
- Function Not Working: Ensure that the UsersWP plugin is installed and activated.
- Incorrect Field Key: Double-check the
$field_key
for typos or case sensitivity. - Permission Issues: Make sure you have the necessary permissions to access the user’s data.
Additional Examples
Example 6: Display User Meta in the Admin Users List
Add a custom column to the WordPress admin users list to display a UsersWP custom field.
// Add a new column to the users table
add_filter( 'manage_users_columns', 'add_company_column' );
function add_company_column( $columns ) {
$columns['company_name'] = 'Company Name'; return $columns;
}
// Populate the custom column with data
add_action( 'manage_users_custom_column', 'show_company_column_data', 10, 3 );
function show_company_column_data( $value, $column_name, $user_id ) {
if ( 'company_name' === $column_name ) {
return esc_html( uwp_get_usermeta( $user_id, 'company_name' ) );
}
return $value;
}
Example 7: Fetching Serialized Data
If a custom field stores serialized data (e.g., an array),uwp_get_usermeta()
will handle it correctly.
$user_id = get_current_user_id();
$preferences = uwp_get_usermeta( $user_id, 'preferences' );
if ( is_array( $preferences ) ) {
foreach ( $preferences as $preference ) {
echo esc_html( $preference ) . '<br>';
}
}
Use Cases
- Profile Pages: Display extended user information on profile or author pages.
- Custom Dashboards: Build user-specific dashboards based on custom meta data.
- Form Prefilling: Pre-populate forms with existing user data for updates or edits.
- Conditional Logic: Adjust content visibility or options based on user meta values.
Further Reading and Resources
- UsersWP Documentation: https://userswp.io/documentation/
- GitHub Repository: UsersWP on GitHub
- UsersWP Support: UsersWP Support
By utilizing theuwp_get_usermeta()
function, you can effectively manage and display custom user meta data within your WordPress site, enhancing user profiles and creating a more personalized experience.