Actions/filters this plugin listens to

Hook Type Purpose
bp_parse_query action registers the BuddyPress member/group “Add Contact” link hooks
wp_dashboard_setup action adds the “Latest Vcards” dashboard widget
user_row_actions / ms_user_row_actions filter adds the “Add Contact” row action on the users list screen
lh_bg_reports_fields / lh_bg_reports_field_output filter adds a Vcard column to LH Buddypress Group Reports
bbp_theme_after_reply_author_admin_details action adds a Vcard link to bbPress reply author details
updated_user_meta / added_user_meta action tracks when a user’s vCard-relevant fields last changed, for the dashboard widget’s “latest” ordering

Actions/filters this plugin fires (for other plugins to extend)

Hook Type Purpose
lh_vcard_add_data filter ($add, $user_id) the main extension point – add or modify fields in the array that becomes the exported vCard. lh-profile-page uses this to add phone number data.
lh_vcard_return_all_tracked_meta_fields filter which usermeta keys count as “vCard-relevant” for the dashboard widget’s recently-updated tracking (default: nickname, first_name, last_name, description)
lh_vcard_return_view_vcard_capability filter the WordPress capability required to see/generate a vCard link on any UI screen (default: publish_posts)
lh_vcard_signed_link_ttl filter how long a generated download link stays valid, in seconds (default: DAY_IN_SECONDS)
lh_vcard_do_widget_user filter customise the HTML for one user’s row in the dashboard widget’s list

REST route

GET /wp-json/lh-vcard/v1/downloaduser_ids (comma-separated) and token query params. Publicly reachable (permission_callback is __return_true) – the signed token is the actual gate, not a login check. See Architectural Notes for the reasoning.