Skip to content

Releases: johnjanney/digital-business-card-posts

Release list

v1.0.1

Choose a tag to compare

@johnjanney johnjanney released this 21 Sep 04:17
7e926a7

Patch release: fixes the vCard photo on Android.

Added

  • REV property in the vCard, set from the card's last-modified time in UTC, always the last property before END:VCARD (D30).

Fixed

  • The embedded photo was dropped and its base64 text appeared inside the address on Android Contacts. PHOTO is now emitted before ADR (matching the reference vCard) and REV follows it, so the folded base64 block is never the last property in the file (D30).

Install digital-business-card-posts-1.0.1.zip via Plugins → Add New → Upload Plugin (choose "Replace current with uploaded").

v1.0.0

Choose a tag to compare

@johnjanney johnjanney released this 20 Sep 23:39
5060dc0

First release. Implements the v1 scope of PROJECTBRIEF.md §2.

Added

  • Project documents, repository scaffolding, GPL-2.0-or-later license, build script and PHPCS configuration.
  • business_card post type with capability_type => 'business_card' and map_meta_cap, public single view under the configurable rewrite base (default card), excluded from site search.
  • Activation grants the full capability set to Administrator and Editor and creates the Card Holder role with the "own" capability set (D19). Deactivation keeps roles and capabilities.
  • Uninstall removes the role, capabilities, settings and the QR cache; card posts are deleted only when the "Delete data on uninstall" setting is on (D28).
  • Admin notice when the PHP GD extension is missing.
  • Business Cards list scoped to the current user's cards for users without edit_others_business_cards (D20).
  • Card fields registered with register_post_meta() and exposed to REST, each with a sanitize and auth callback: first/last name, job title, company, tagline, work and mobile phone, email, website, six address fields, logo attachment, accent color and noindex.
  • Card details meta box on the classic edit screen with a media picker for the logo and a color picker for the accent color. An empty title is filled from first and last name.
  • vCard 3.0 endpoint at /card/{slug}/vcard/ (rewrite rule + template_redirect), built from meta at request time with Content-Type: text/vcard; charset=utf-8, Content-Disposition: attachment; filename="{slug}.vcf", CRLF line endings and 75-octet folding. Unpublished cards return 404 (D16).
  • Featured image embedded in the vCard as a base64 JPEG resized to 400 × 400 at quality 82 via the WordPress image editor, in memory (D23). Filters dbcp_vcard_fields, dbcp_vcard_photo_size, dbcp_vcard_photo_quality.
  • Pure DBCP_VCard_Builder with PHPUnit tests for escaping, folding, line endings, TEL types and PHOTO embedding, plus a phpqrcode smoke test (skipped without GD; bin/test-docker.sh runs it in a container).
  • Card page rendered by the plugin through template_include as a standalone mobile-first document matching the prototype: logo, name with accent square, title, company, tagline, full-width Save contact button, and contact rows for work phone, mobile, email, website and directions (Google Maps). Per-card accent color, dark-mode variables, focus-visible outlines, system font stack (D14, D21). noindex emits a robots meta tag and X-Robots-Tag header.
  • Filters dbcp_template_path (template override) and dbcp_card_data; actions dbcp_head and dbcp_footer.
  • QR code of each published card's permalink generated with phpqrcode at error-correction level H, cached as wp-content/uploads/digital-business-card-posts/{post_id}.png, regenerated automatically when the permalink changes (D17), deleted with the card. Shown in a QR code box on the edit screen with a Download PNG link. Filter dbcp_qr_module_size.
  • [digital_business_card id="123"] shortcode embedding a published card inside any post or page, with the card stylesheet enqueued.
  • Settings page (Settings → Digital Business Cards): card URL base, default accent color (color picker), default noindex, delete data on uninstall. Rewrite rules are flushed when the base changes. Settings link on the Plugins screen.
  • Translation template languages/digital-business-card-posts.pot.

Install: upload the attached zip via Plugins → Add New → Upload Plugin. Requires WordPress 6.0+, PHP 7.4+ and the GD extension. See INSTALLATION.md and INSTRUCTIONS.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jbk1q3jhMuo8SKeZfz8PKQ