Advanced Link Page Features
Comprehensive advanced functionality for link pages including expiration, redirects, analytics tracking, and YouTube integration.
Link Expiration System
Time-Based Link Management
Location: src/blocks/link-page-editor/components/tabs/TabAdvanced.js (editor UI)
Features:
- Schedule link activation/deactivation
- Automatic expiration handling via cron job
- Bulk expiration management
- Expiration notifications via Gutenberg block editor interface
Backend Implementation: inc/core/actions/link-expiration-cron.php
- Scheduled WordPress cron job runs daily
- Automatically deactivates expired links based on configured dates
- Can be manually triggered via action hook
Configuration Options
// Expiration settings stored in link page meta
$expiration_settings = [
'link_expiration_enabled' => true,
'link_expiration_date' => '2024-12-31 23:59:59',
'link_expiration_action' => 'hide' // 'hide', 'redirect', 'message'
];
Redirect System
Temporary Redirects
Location: src/blocks/link-page-editor/components/tabs/TabAdvanced.js
Configuration via Gutenberg block editor for 302 redirects to external URLs. When enabled, a redirect target URL sends visitors to an external site instead of displaying the link page.
YouTube Integration
Inline Video Embedding
Location: src/blocks/link-page-editor/components/tabs/TabAdvanced.js (editor UI)
Configuration via Gutenberg block editor to enable YouTube video embedding with automatic detection. Public rendering handled by inc/link-pages/live/assets/js/link-page-youtube-embed.js.
Analytics Tracking
Analytics integration configured via Gutenberg block editor with support for:
- Google Tag Manager (GTM) tracking IDs
- Meta Pixel (Facebook) conversion tracking
- Custom event tracking via REST API endpoints
- Real-time click tracking via sendBeacon API
- Page view tracking with automatic daily aggregation
Subscription Settings
Email Collection Configuration
Location: src/blocks/link-page-editor/components/tabs/TabAdvanced.js
Configuration via Gutenberg block editor for:
- Subscription display modes (icon modal, inline form, button modal, disabled)
- Custom subscription messaging
- Button text customization
- Email collection via modal or inline forms
QR Code Generation
QR code generation is handled via REST API in the Gutenberg block editor with the QRCodeModal component.
Location: src/blocks/link-page-editor/components/shared/QRCodeModal.js
Features:
- High-resolution QR code output (1000px)
- REST API-powered generation via extrachill-api plugin
- PNG download functionality
- Modal interface in Gutenberg editor
Settings Data Structure
All advanced settings stored in link page metadata:
$advanced_settings = [
// Expiration
'link_expiration_enabled' => false,
'link_expiration_date' => '',
'link_expiration_action' => 'hide',
// Redirect
'redirect_enabled' => false,
'redirect_target_url' => '',
// YouTube
'youtube_embed_enabled' => true,
// Analytics
'meta_pixel_id' => '',
'google_tag_id' => '',
'google_tag_manager_id' => '',
// Subscription
'subscribe_display_mode' => 'icon_modal',
'subscribe_description' => ''
];
Settings Processing
Advanced settings processed through centralized data system:
// Settings loaded via ec_get_link_page_data()
$data = ec_get_link_page_data($artist_id, $link_page_id);
$settings = $data['settings'];
// Access individual settings
$expiration_enabled = $settings['link_expiration_enabled'];
$redirect_url = $settings['redirect_target_url'];
$youtube_enabled = $settings['youtube_embed_enabled'];