Admin Interfaces & Shortcodes

User edit screen (wp-admin)

add_backend_profile_fields() (hooked on show_user_profile/edit_user_profile) adds a "Profile Data" section to the standard WordPress user edit screen, visible only to users who can edit_user for that profile. Fields shown: phone, secondary phone, street address, town, postcode, state/province, country, gender, birthdate, additional emails. Saved via save_backend_profile_profile_fields() on personal_options_update / edit_user_profile_update / user_register.

Frontend shortcodes


  • admin_form_shortcode_output(). Renders a full front-end editable form (first name, last name, phone, address, town, postcode, gender, birthdate) for the current logged-in user. Posts to post_handler(), hooked on the wp action via save_data().
  • listing_table_shortcode_output(). A sortable table of all users (ID, display name, gender, phone, email), gated to list_users capability.

BuddyPress xProfile integration

This plugin registers 9 custom BuddyPress xProfile field types (add_field_types(), hooked on bp_xprofile_get_field_types) so each of these fields can be added to a BuddyPress profile field group and rendered/edited through the normal xProfile UI, while the actual data lives in plain user meta rather than the bp_xprofile_data table:

lh_profile-first_name, -last_name, -display_name, -street_address, -town, -postcode, -gender, -birthdate, -phone – each backed by its own LH_Profile_xprofile_{field}_extender class in includes/.

override_returned_data() and override_returned_value() intercept BuddyPress's normal xProfile data-fetching so these "faux" fields transparently return the real user meta value instead of (non-existent) bp_xprofile_data rows.

Note: state_province and country have no xProfile field type – they're admin-backend-only, never exposed through BuddyPress.

Network Settings

A "Google Places API key" field is added to Network Settings (show_network_settings() / save_network_settings()), but the save handler doesn't currently persist the value anywhere – appears vestigial/incomplete.