LH Addresses stores postal addresses for users as structured, international data, once for the whole network, and shares them with the organisations those users belong to. On a multisite network each site is an organisation; a member’s address is theirs, and an organisation sees only the addresses that member has given it.
Why
Addresses kept as loose user meta fields have no shape: no country awareness, states typed as Vic, VIC or Victoria, one address per person, and every consumer (vCards, reports, exports) mapping fields by hand. LH Addresses gives each address a standard structure that converts cleanly to vCard ADR and schema.org PostalAddress, so the data stays portable.
Features
- Address fields follow the Unicode CLDR model used by commerceguys/addressing, with per-country validation and subdivision codes (Victoria and Vic become VIC).
- Several addresses per user, each used as one or more types: residential, postal, delivery, billing or work.
- Per-organisation uses: a member gives an address to a site as a type, and that site sees it while they remain a member. Leaving removes the site’s access.
- Validation never refuses a save: incomplete or invalid addresses are flagged for later clean-up, so imports always land.
- Optional geocoding through a pluggable geocoder (LH Places), queued and throttled, with a spatial index for near-point searches.
- WordPress personal data export and erasure, and cascade deletion when a user is deleted.
Setup
Network-activate the plugin and run composer install in its folder to fetch commerceguys/addressing; without it, addresses are stored but not validated or mapped. Organisation access needs a plugin that answers the lh_addresses_site_can_read filter (LH Membership), and geocoding needs one that answers lh_places_geocode (LH Places). LH Addresses has no admin screens of its own: other plugins use its API.
