ClubCom CTA
WordPress plugin for unified CTA forms with Telegram and email delivery for Elementor-based sites
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/saleksei-it/clubcom-cta/archive/refs/heads/main.zipReadme
ClubCom CTA
WordPress plugin for unified CTA handling on Elementor-based sites.
It gives you one central system for CTA buttons, popup forms, embedded contact forms, Telegram delivery, email delivery, and SMTP-based outgoing email.
Current version: 1.1.0
Repository: https://github.com/Saleksei-it/clubcom-cta
Main idea
The plugin is built around CTA IDs.
Each CTA button on the site points to an anchor like:
#cta-business-audio
Frontend JavaScript catches that click, opens a modal form, loads the matching CTA title and helper text, and sends the request through AJAX.
Each CTA scenario has its own:
- ID
- button label
- form title
- helper text above the form
- success message
This lets you keep button placement in Elementor while keeping all form logic in one plugin.
Features
- Popup CTA modal for buttons across the site
- Embedded contact form via shortcode
- Separate text and success message for each CTA
- Telegram delivery
- Email delivery
- SMTP configuration in admin
- Messenger links shown after successful submission
- Test delivery button in admin
- Honeypot, minimum-delay, and IP rate-limit anti-spam checks
Requirements
- WordPress 6.0 or newer
- PHP 7.4 or newer
- Elementor-based frontend
Installation
- Copy the plugin folder to:
/wp-content/plugins/clubcom-cta/
-
Activate the plugin in WordPress admin.
-
Open:
Settings -> ClubCom CTA
- Fill in delivery settings:
- Telegram bot token
- Telegram chat ID
- owner email
- SMTP settings if email should go through SMTP
- Add CTA buttons in Elementor using anchors like:
#cta-business-audio
Quick start
Example CTA button in Elementor:
- button text:
Отримати прорахунок - link:
#cta-business-audio
The visitor clicks the button.
The plugin opens a popup form.
After submit, the request is delivered to Telegram and or email depending on settings.
Embedded contact form
Use this shortcode inside an Elementor Shortcode widget:
[clubcom_cta_form id="contact-main-form"]
The embedded form includes:
- name
- phone
- message
It uses the same AJAX and delivery logic as popup CTAs.
Admin settings
The plugin stores everything in one WordPress option:
clubcom_cta_options
Admin page location:
Settings -> ClubCom CTA
Editable settings include:
- Telegram enabled
- Email enabled
- Telegram bot token
- Telegram chat ID
- Owner email
- SMTP enabled
- SMTP host
- SMTP port
- SMTP encryption
- SMTP auth
- SMTP username
- SMTP password
- SMTP from email
- SMTP from name
- Viber URL
- Telegram URL
- WhatsApp URL
- Embedded contact form content
- CTA item list
Default CTA IDs
The current plugin ships with these CTA IDs:
cta-business-audiocta-home-audiocta-stage-lightingcta-conferencecta-installation-estimatecta-brand-selectioncta-service-diagnosticscta-project-requestcta-similar-projectcontact-main-form
Data sent with each request
User-facing fields:
- name
- phone
- email for embedded contact form
- message
Service data:
- request number
- submitted time
- CTA ID
- CTA label
- form title
- page title
- page URL
- referer
- user agent
- IP address
Delivery flow
On submit the plugin:
- validates nonce
- validates required fields
- checks anti-spam fields
- creates a request number
- prepares payload
- sends to Telegram if enabled
- sends to email if enabled
- returns CTA-specific success text
If no delivery channel is enabled, the request is rejected.
Plugin structure
Main bootstrap:
clubcom-cta.php
Core classes:
includes/class-clubcom-cta-plugin.phpincludes/class-clubcom-cta-settings.phpincludes/class-clubcom-cta-admin.phpincludes/class-clubcom-cta-frontend.phpincludes/class-clubcom-cta-ajax.php
Assets:
assets/css/admin.cssassets/css/frontend.cssassets/js/admin.jsassets/js/frontend.js
AJAX actions
Frontend submit:
clubcom_cta_submit
Admin save settings:
clubcom_cta_save_settings
Admin test delivery:
clubcom_cta_test_delivery
Security
- WordPress nonces for frontend and admin requests
- capability check for admin actions
- honeypot field
- minimum render time check
- rate limit of five submissions per IP in ten minutes
- field sanitization before delivery
- TLS certificate verification for SMTP
- generic public errors without delivery internals
- duplicate CTA-ID validation
Notes
- The plugin is designed for WordPress and Elementor sites.
- CTA button placement is managed in Elementor, not inside the plugin.
- Delivery logic is centralized in the plugin.
- The plugin uses the standard WordPress AJAX endpoint, not a custom REST route.
Current limitations
- CTA button mapping is still manual in Elementor
- No submission log in admin yet
- No database storage for leads yet
- No retry queue for failed deliveries yet
- No per-CTA custom field schema yet
Recommended next version
- delivery logs in admin
- saved submissions in database
- per-CTA field schema
- per-CTA channel rules
- export of submissions
- retry queue for failed deliveries
- cleaner button-to-CTA mapping UI
License
GPL-2.0-or-later
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| v1.0.16 | Jul 30, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.