BioLink Pro v2.2.0
Added
- Passcode-gated links — the Lock chip on every link row is now functional. Setting a passcode wraps the link with
?biolink_unlock={uuid}; visitors land on a standalone unlock page (centered card, light/dark color-scheme aware) that requires the correct passcode before the 302 to the destination. Passcodes are stored hashed (wp_hash_password, phpass) — the plaintext never persists. Editing returns "Locked" without exposing the passcode; admins can update it or remove the lock entirely. Frontend\UnlockHandler— newBootablehooked ontemplate_redirect. Reads?biolink_unlock=UUIDon bio pages, finds the block, renders the passcode form on GET, verifies viawp_check_passwordon POST, firesdo_action('biolink/link/unlocked', $uuid, $page_id)on success.BlocksController::hashPasscode()— append + update paths inspect incoming_passcodeplaintext, hash it, store as_passcode_hash, strip the plaintext. Sending_passcode: ""clears the lock.LinkBlocknow renders a lock-icon indicator on locked rows (public page) and routes the href through the unlock URL when_passcode_hashis set. Locked links open in_self(not_blank) so the form lands cleanly. Click-tracking + UTM are bypassed for locked links — analytics on gated links is a v2.3 follow-up.
Fixed
- QR code button restored — the v2.0.0 top-bar rewrite dropped the QR launcher. Added back to
BuilderShellas an icon button next to View ↗. TheQrDialogcomponent itself was unchanged, just unreachable.
Install: download biolink-pro-v2.2.0.zip below and upload via Plugins → Add New → Upload Plugin.
Auto-update: if you already have BioLink Pro installed, this release will appear under Dashboard → Updates within ~12 hours (or click "Check Again" to force a refresh).