# CampaignPro Subscribe Shortcode + Embed ## 1) Standalone subscribe page Use the page directly: - `/subscribe` - `/subscribe?theme=dark` - `/subscribe?owner=2&list=default&button_text=Join%20Now` In-app live preview studio: - `/subscribe_preview` ## 2) Shortcode rendering (internal PHP pages) Include the shared component and render shortcode markup: ```php require_once __DIR__ . '/includes/init.php'; require_once __DIR__ . '/includes/subscribe_component.php'; echo campaignpro_render_subscribe_shortcode( '[campaignpro_subscribe owner="2" list="default" source="site_widget" theme="auto" button_text="Subscribe Now" layout="form"]' ); ``` ## 3) Replace shortcodes inside content blocks ```php $content = 'Before [campaignpro_subscribe owner="2" list="default" layout="form"] After'; echo campaignpro_replace_subscribe_shortcodes($content); ``` ## 4) External site embed (iframe) Generate URL: ```php $url = campaignpro_subscribe_embed_url([ 'owner' => 2, 'list' => 'default', 'source' => 'external_website', 'theme' => 'auto', 'layout' => 'form' ]); ``` Or output full iframe: ```php echo campaignpro_render_subscribe_iframe( ['owner' => 2, 'list' => 'default', 'source' => 'external_website', 'theme' => 'auto'], ['height' => '620'] ); ``` Direct endpoint pattern: - `/subscribe_embed?owner=2&list=default&source=external_website&theme=auto&layout=form` ## Supported shortcode attributes - `owner` - `list` - `tag` - `source` - `theme` (`light|dark|auto`) - `layout` (`form|full`) - `title` - `subtitle` - `privacy_url` - `button_text` - `button_style` (`gradient|solid|outline`) - `button_color` - `button_text_color` - `accent_color` - `background_color` - `background_image_url` ## Save As Appearance Preset Use `/subscribe_preview` and click **Save as Appearance Preset**. Current save behavior writes: - `appearance_settings.primary_color` - `appearance_settings.theme`