Skip to content

Releases: nurkamol/biolink-pro

BioLink Pro v2.7.1

Choose a tag to compare

@github-actions github-actions released this 17 May 10:13

Added

  • Inline-editable slug in the preview pane's URL bar. The slug portion (after the prefix) is now a click target — click it, the bar swaps to an input pre-selected on the slug, Enter or blur saves via the existing setSlug(), Escape cancels. A small pencil cue fades in on row hover so the affordance is discoverable. Reuses the v2.7.0 backend; this is purely a more findable entry point than the Design → Page card.

Install: download biolink-pro-v2.7.1.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).

BioLink Pro v2.7.0

Choose a tag to compare

@github-actions github-actions released this 17 May 09:37

Added

  • Configurable URL prefix. New Settings → General → Page URL prefix field controls the rewrite slug for every bio page. Default is bio (so pages live at /bio/{slug}). Change it to links and every page now lives at /links/{slug}. BioLinkPagePostType::currentSlug() reads from saved settings; the CPT re-registers + flush_rewrite_rules(false) runs automatically on save via update_option_biolink_settings. Reserved slugs (wp-admin, wp-json, etc.) are rejected.
  • Per-page slug editor on the Design page. New "Page" card at the top exposes the page title and the URL slug. Slug field shows the yoursite.com/{prefix}/ prefix on the left so you see exactly what the public URL becomes; input sanitizes to [a-z0-9-] on blur and saves via PagesApi.update({slug}).
  • setSlug() on BuilderContext — typed mutation for the slug, normalizes input + persists via the existing pages PATCH endpoint.

Notes

  • Changing the URL prefix flushes the rewrite cache, but existing search-engine links to /bio/{old-slug} will 404 until indexed under the new prefix. Don't change it on a high-traffic page without a 301 plan.
  • The BioLinkPagePostType::REWRITE_SLUG constant is now @deprecated. It still equals 'bio' for backwards compat with any external code referencing it, but the CPT registration uses currentSlug().

Install: download biolink-pro-v2.7.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).

BioLink Pro v2.6.1

Choose a tag to compare

@github-actions github-actions released this 17 May 06:29

Fixed

  • Content area card was silently a no-op in v2.6.0. The CSS used an attribute selector body.bio-body[ style*="--bio-content-card:1" ] to gate the card styling, but ThemeEngine emits its variables inside a <style> block — never on the body's inline style= attribute — so the selector never matched and the card never rendered. ThemeEngine now emits the full card rule (background, border-radius, backdrop-filter, margin, shadow, plus a @media (max-width: 540px) reset) directly inside the dynamic style block so it actually applies. The same fix works for shortcode embeds.

Added

  • Wallpaper overlay color picker — the image overlay was hardcoded to black; now you can pick the tint color (white, brand color, anything). Sits next to the existing Overlay opacity slider in the Wallpaper editor. ThemeEngine generates the gradient with the chosen color at the chosen opacity.

Install: download biolink-pro-v2.6.1.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).

BioLink Pro v2.6.0

Choose a tag to compare

@github-actions github-actions released this 17 May 06:21

Added

  • Wallpaper position + blur — Background editor (image type) now exposes Position (Cover-center / Cover-top / Cover-bottom / Contain / Tile) and a Blur slider (0–30 px). The image renders behind a fixed body.bio-body::before pseudo so blur applies cleanly without affecting the foreground content.
  • Content area card — new "Content area" card on the Design page. Three modes:
    • Transparent (default, current behavior)
    • Solid card.bio-page gets a configurable color + opacity background, rounded corners, drop shadow. Wallpaper fills the desktop viewport behind it.
    • Frosted glass — solid card + backdrop-filter: blur() so the wallpaper shows through with a frosted effect.
  • Card max-width slider (380–960 px) — controls the desktop column width.
  • Card corner radius slider (0–48 px).
  • Card opacity slider (10–100%) — fine-tune solid/glass card transparency.

Changed

  • ThemeEngine background rendering refactored. The body.bio-body selector no longer paints the bg directly — that moved to body.bio-body::before (a fixed full-viewport pseudo) so the new bg_blur filter applies to the image without blurring the content. Shortcode embeds (.bio-embed-{id}) keep the inline background: rule since blur doesn't make sense scoped to an inline embed.
  • Image overlay slider max bumped from 80% to 90% (still keeps the image faintly visible at max).

DB

  • 8 new page settings keys: bg_position, bg_blur, content_bg_type, content_bg_color, content_bg_opacity, content_blur, content_radius, content_max_width. Stored in the existing _biolink_data.settings JSON — no schema bump needed.

Notes

  • On screens narrower than 540 px, the content card drops its border-radius + shadow + horizontal margin so it spans the full viewport (mobile-first stays readable).
  • Frosted glass mode uses backdrop-filter, which Safari < 9 and some Linux Firefox builds don't support — they'll fall back to the solid card automatically.

Install: download biolink-pro-v2.6.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).

BioLink Pro v2.5.2

Choose a tag to compare

@github-actions github-actions released this 16 May 22:47

Fixed

  • Version history + Schedule drawer no longer hide under the WP admin bar. The drawer overlay was using z-index: 100 and inset: 0, so the header ("Version history") was clipped by the WordPress admin bar at the top of the screen. Drawer overlay now sits at top: 32px (46px on small screens) with z-index: 99998 — admin bar remains visible above, drawer header is fully readable.

Install: download biolink-pro-v2.5.2.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).

BioLink Pro v2.5.1

Choose a tag to compare

@github-actions github-actions released this 16 May 22:45

Changed

  • Top-level pages now flush-left instead of centered. Removed margin: 0 auto from Dashboard / Pages / Analytics / Audience / Changelog / Settings — the centered max-width container left a visible gap between the sidebar and the page content on wider monitors. Padding (24px 28px 60px) is preserved. Analytics also gained the same padding (it was missing it).

Install: download biolink-pro-v2.5.1.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).

BioLink Pro v2.5.0

Choose a tag to compare

@github-actions github-actions released this 16 May 22:40

Added

  • Per-variant click breakdown UI — closes the v2.4 A/B testing loop. Reporter::variantBreakdown() + GET /analytics/pages/{id}/variants return rows grouped by (link_id, variant_key) with click counts. Analytics page now renders a "🧪 A/B test results" card showing per-variant click count + share % when any variant data exists for the selected window.
  • Schedule rollup drawer — new clock icon in the BuilderShell top bar opens a right-side drawer listing every block with _start_at or _end_at set. Status dot (active / upcoming / expired / open-ended), sorted by date, derived from the in-memory page blocks — no extra REST call.
  • Page revisions — every save snapshots the full _biolink_data JSON into the new wp_biolink_revisions table (last 20 per page, older ones pruned). New GET /pages/{id}/revisions + POST /pages/{id}/revisions/{rev_id}/restore. History icon in the BuilderShell top bar opens the Revisions drawer with relative timestamps, author names, and a Restore button per row (current revision is read-only).
  • Audience tab + CSV export — new top-level /audience route with All / Newsletter / Contact tabs. Newsletter and contact-form submissions are persisted into the new wp_biolink_submissions table via subscribers on biolink/newsletter/subscribed + biolink/contact/submitted actions. Export CSV downloads the current filter as a UTF-8 CSV with up to 10,000 rows. Audience nav entry restored to the sidebar.
  • OG image generatorSeo\OgImageGenerator renders a 1200×630 PNG per bio page using GD (no font dep, uses GD's built-in pixel font; brand-font upload is a v2.6 candidate). Caches to uploads/biolink-pro/og/{page_id}-{hash}.png, hash includes headline/handle/subheadline/avatar_id/theme so it regenerates on relevant changes. Seo\MetaTags falls back to the generated card when no custom og_image_id is set.
  • New biolink/page/saved action — fires after PageRepository::saveData() succeeds. Used internally by the revisions subscriber; available to third parties.

Changed

  • Padding on top-level admin pagesDashboard, Pages, Analytics, Audience, Changelog, Settings all get padding: 24px 28px 60px; margin: 0 auto; so they breathe away from the sidebar like Links and Design do.

DB

  • BIOLINK_DB_VERSION bumped to 4. New migrations 008 (revisions table) + 009 (submissions table). Both run automatically on next activation or plugins_loaded version check.

Notes

  • OG cards are intentionally lightweight (bitmap font). A brand-font upgrade with bundled Inter is in the v2.6+ queue if you want pretty social cards.
  • Revisions only snapshot the builder JSON, not the WP post itself (title / slug / status). For those, WP core's built-in revisions still work since the CPT supports revisions.

Install: download biolink-pro-v2.5.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).

BioLink Pro v2.4.0

Choose a tag to compare

@github-actions github-actions released this 16 May 22:19

Added

  • A/B testing on link blocks — disclosure section in LinkEditor lets you add N variants (key, label, URL, weight). LinkBlock::pickVariant() picks deterministically per visitor (hash of IP + page + uuid) so the same visitor sees the same variant on repeat visits. Variant key is appended to the click URL (?v=A) and recorded in a new variant_key column on wp_biolink_clicks. Equal weights work out of the box; weighted splits supported.
  • Passcode-unlock analytics — new wp_biolink_unlocks table, written from a single biolink/link/unlocked action subscriber so both the inline modal (UnlockController) and the no-JS template_redirect (UnlockHandler) feed the same metric. New REST GET /analytics/pages/{id}/unlocks returns per-block counts. Lock chip in admin shows a small purple badge with the lifetime unlock count.
  • Real Shop page UI — replaces the v2.0 stub. Filtered grid view of product_card blocks on the current page with thumbnail, name, price, on/off toggle, inline ProductCardEditor, and "+ Add product" that appends a new product_card block directly (skipping the centralized Add modal). Products still live in the same blocks array — no schema split.
  • Per-page Custom CSS — new "Advanced" card on the Design page. Textarea writes to settings.custom_css; ThemeEngine emits it in a separate <style id="biolink-theme-…-custom"> block right after the theme block. </style> sequences are stripped to prevent escape; users target .bio-page, .bio-block--{type}, .bio-header, etc.
  • Pages list search + status filter — debounced search input + Published/Draft dropdown at the top of the Pages list, wired through PagesApi.list({ search, status }).
  • Migrations 006 + 007biolink_unlocks table and variant_key column on biolink_clicks. BIOLINK_DB_VERSION bumped to 2.

Changed

  • Reporter::unlockCounts( $page_id ) returns { uuid: count } map. Light query — no date-range arg since unlock counts are lifetime today.
  • Click rate limit unchanged (10/IP/link/60s); A/B variant key passes through cleanly so rate limiting still applies per link regardless of variant.

Notes

  • Per-variant click breakdown isn't surfaced in the admin yet — column is being written, dashboard card is a v2.5 candidate. Until then, query directly: SELECT variant_key, COUNT(*) FROM wp_biolink_clicks WHERE link_id = X GROUP BY variant_key.
  • Custom CSS is trusted input from biolink_manage_pages users — same model as the WordPress theme editor. No CSS parser, no per-property whitelist; the </style> strip is the only safety net.

Install: download biolink-pro-v2.4.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).

BioLink Pro v2.3.1

Choose a tag to compare

@github-actions github-actions released this 16 May 20:52

Added

  • Copy-shortcode button in the builder top bar (</> icon, sits between Publish and the QR launcher). Click → [biolink id="N"] is copied to the clipboard, the icon flips to a green check + "Copied!" tooltip for 1.8s. Tooltip on hover shows the exact shortcode so you can preview before clicking.

Install: download biolink-pro-v2.3.1.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).

BioLink Pro v2.3.0

Choose a tag to compare

@github-actions github-actions released this 16 May 20:48

Added

  • [biolink] shortcode — embed a published bio page inside any post / page / widget. Accepts id="123" or slug="alvasti", plus header="0" to hide the avatar block. Output is wrapped in .bio-embed.bio-embed-{id} with theme CSS scoped to that selector, so each embed is independently themed and can coexist with the host page's styles.
  • [biolink_block] shortcode — render a single block by uuid. [biolink_block id="123" uuid="abc-…"]. Useful for surfacing one product card / donation form / countdown without the whole bio header.
  • ThemeEngine::renderStyleBlock( $slug, $settings, $selector ) — third arg defaults to body.bio-body (full-page renders) but accepts any selector. Shortcodes pass .bio-embed-{post_id} so each embedded page is independently themed. The background rule omits background-attachment: fixed for embeds so they don't escape their container.
  • Shortcode-aware asset loadingFrontend\Shortcodes enqueues assets/frontend/biolink.{css,js} on any post that contains [biolink] or [biolink_block] (via has_shortcode). Bio-page singulars already enqueue via Assets, so this only kicks in for embeds living elsewhere.
  • .bio-embed styling in assets/frontend/biolink.css — max-width 560px, centered, subtle elevation, internal gap between blocks.

Notes

  • Locked blocks inside an embed still gate correctly (the placeholder + inline unlock modal both work in shortcode contexts).
  • Click tracking, schedule windows, and visibility toggles all work in shortcode renders since they're enforced at PageRenderer level.
  • Unpublished pages render as nothing on the public site; logged-in editors see an HTML comment explaining why.

Install: download biolink-pro-v2.3.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).