{"id":26047793,"url":"https://github.com/rskonieczka/wordpress-cta-button","last_synced_at":"2026-04-11T21:39:42.059Z","repository":{"id":280869424,"uuid":"943432799","full_name":"rskonieczka/wordpress-cta-button","owner":"rskonieczka","description":"A feature-rich WordPress plugin that displays a sticky Call-to-Action (CTA) button on all devices, allowing visitors to instantly connect or take action. The button can be fully customized in terms of position, display times, colors, and target actions.","archived":false,"fork":false,"pushed_at":"2025-03-05T18:55:39.000Z","size":104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T19:22:57.277Z","etag":null,"topics":["button","call-to-action","cta","plugin","plugins-wordpress","wordpress"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rskonieczka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-05T17:42:37.000Z","updated_at":"2025-03-05T18:57:38.000Z","dependencies_parsed_at":"2025-03-05T19:22:59.826Z","dependency_job_id":"a1e0c6fb-408a-43ad-a6e8-7b50f6aa50ef","html_url":"https://github.com/rskonieczka/wordpress-cta-button","commit_stats":null,"previous_names":["rskonieczka/wordpress-cta-button"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rskonieczka%2Fwordpress-cta-button","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rskonieczka%2Fwordpress-cta-button/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rskonieczka%2Fwordpress-cta-button/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rskonieczka%2Fwordpress-cta-button/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rskonieczka","download_url":"https://codeload.github.com/rskonieczka/wordpress-cta-button/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242473054,"owners_count":20134021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["button","call-to-action","cta","plugin","plugins-wordpress","wordpress"],"created_at":"2025-03-07T23:13:56.806Z","updated_at":"2026-04-11T21:39:42.049Z","avatar_url":"https://github.com/rskonieczka.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wordpress CTA Button - by WirtualnyHandlowiec.pl\n\nA feature-rich WordPress plugin that displays a sticky Call-to-Action (CTA) button on all devices, allowing visitors to instantly connect or take action. The button can be fully customized in terms of position, display times, colors, and target actions.\n\n## Perfect for Your Business\n\nThis plugin is designed to boost conversions for both service-based businesses and e-commerce stores:\n\n### Service Businesses\nMake it easy for customers to reach you instantly:\n- **Medical \u0026 Healthcare**: Schedule appointments, consultations, emergency services\n- **Professional Services**: Book consultations (legal, financial, consulting)\n- **Home Services**: Request quotes for plumbing, HVAC, cleaning, moving\n- **Beauty \u0026 Wellness**: Book appointments for salons, spas, fitness centers\n- **Local Services**: Connect with automotive, photography, pet care, event planning\n\n### E-commerce Stores\nDrive sales and customer engagement:\n- **Product Support**: Quick access to customer service and live chat\n- **Special Offers**: Promote discount codes, coupons, and flash sales\n- **Cart Recovery**: Encourage customers to complete purchases with exclusive offers\n- **Shipping Information**: Highlight free shipping thresholds and delivery times\n- **Pre-sale Questions**: Enable instant communication before purchase decisions\n\n### Key Benefits\n- **Increase Conversions**: Make it effortless for visitors to take action\n- **24/7 Availability**: Display your contact options even outside business hours\n- **Smart Targeting**: Show relevant CTAs based on specific pages or products\n- **Mobile-First**: Optimized for the growing mobile audience\n- **Professional Appearance**: Customizable design that matches your brand\n\n## Table of Contents\n\n- [Perfect for Your Business](#perfect-for-your-business)\n  - [Service Businesses](#service-businesses)\n  - [E-commerce Stores](#e-commerce-stores)\n  - [Key Benefits](#key-benefits)\n- [Plugin Previews](#plugin-previews)\n- [Features](#features)\n  - [Comprehensive Display Settings](#comprehensive-display-settings)\n  - [Flexible Action Configuration](#flexible-action-configuration)\n  - [Extensive Customization](#extensive-customization)\n  - [Advanced Features](#advanced-features)\n- [Installation](#installation)\n  - [Method 1: WordPress Dashboard](#method-1-wordpress-dashboard)\n  - [Method 2: Manual Installation](#method-2-manual-installation)\n  - [Requirements](#requirements)\n- [Configuration](#configuration)\n  - [Basic Setup](#basic-setup)\n  - [Advanced Options](#advanced-options)\n  - [URL Filtering Examples](#url-filtering-examples)\n  - [Scroll Trigger Examples](#scroll-trigger-examples)\n  - [Border \u0026 Shadow Examples](#border--shadow-examples)\n  - [CTA Text Formatting Examples](#cta-text-formatting-examples)\n- [Testing](#testing)\n  - [Debug Examples](#debug-examples)\n- [Technical Details](#technical-details)\n  - [REST API](#rest-api)\n  - [Ajax Endpoint](#ajax-endpoint)\n  - [Custom HTML Structure](#custom-html-structure)\n- [Browser Compatibility](#browser-compatibility)\n- [Version History](#version-history)\n- [License](#license)\n  - [What GPL v2 means](#what-gpl-v2-means)\n  - [Paid License with Invoice](#paid-license-with-invoice)\n- [Credits](#credits)\n\n## Plugin Previews\n\n### Want to Schedule an Appointment?\n![Button Style Example 1](podglad2.png)\n\n### Have a Question? Call Us\n![Button Style Example 2](podglad3.png)\n\n### Download Coupon\n![Button Style Example 3](podglad4.png)\n\n### See How to Book NFZ Appointment\n![Button Style Example 4](podglad5.png)\n\n## Features\n\n### Comprehensive Display Settings\n- **Device Selection**: Display the button on mobile devices, desktops, or both\n- **Position Control**: Place the button in any of the 8 positions (top, middle or bottom, combined with left, center or right)\n- **Scheduling Options**: Configure the button to display on specific days and during specific hours\n- **URL Filtering**: Advanced visibility control based on page URLs\n  - **Show on URLs containing** (whitelist): Display button only on pages with specific URL fragments\n  - **Hide on URLs containing** (blacklist): Hide button on pages with specific URL fragments\n  - Exclude rules have priority over include rules\n  - Debug mode support (ignores URL rules when `?debug=1`, `?forceCTA=1`, or `?show=1` is used)\n- **Scroll Trigger**: Show the button only after the user scrolls past a defined threshold\n  - Supports percentage (%) of page height or absolute pixels (px)\n  - Button hides again when scrolling back above the threshold\n  - Value `0` disables the trigger (button visible immediately)\n- **Visibility Rules**: Show or hide the button based on various conditions\n\n### Flexible Action Configuration\n- **Multiple Link Types**:\n  - Phone calls (`tel:` links)\n  - Email links (`mailto:` links)\n  - SMS messages (`sms:` links)\n  - Regular URLs (`http/https` links)\n- **Target Control**: Open links in the same tab or a new tab\n\n### Extensive Customization\n- **Material Icons**: Choose from a variety of Material Design icons for the button\n- **Custom Styling**:\n  - Button background color\n  - Icon color\n  - Text color\n  - Font weight\n  - Custom CSS classes and IDs\n- **CTA Text Formatting**:\n  - Support for HTML tags in CTA text\n  - Small text using `\u003csmall\u003e` tag\n  - Italic text using `\u003cem\u003e` or `\u003ci\u003e` tags\n  - Combine multiple formatting options\n- **Border \u0026 Shape Control**:\n  - Border radius (from square to fully circular buttons)\n  - Border width, style, and color\n  - 9 different border styles (solid, dashed, dotted, double, groove, ridge, inset, outset, none)\n- **Shadow Effects**:\n  - Enable/disable shadow\n  - Shadow position (offset X/Y)\n  - Shadow blur and spread control\n  - Shadow color with transparency support\n  - Inset (inner) shadow option\n- **Animation Effects**: Configurable pulsing animation with adjustable timing\n\n### Advanced Features\n- **Debug Mode**: Enable console logging for troubleshooting\n- **REST API Integration**: Settings are exposed via a REST API endpoint for advanced integrations\n- **Cache Prevention**: Implements measures to avoid caching issues\n- **High Performance**: Optimized JavaScript for minimal impact on page load speed\n- **Mobile Optimization**: Responsive design ensures proper display on all device sizes\n- **Time-Based Visibility**: Automatically shows/hides the button based on configured time ranges\n\n![Settings preview](view.png)\n\n## Installation\n\n### Method 1: WordPress Dashboard\n\n1. Go to Plugins → Add New in your WordPress admin panel\n2. Search for \"Wordpress CTA Button\"\n3. Click \"Install Now\" and then activate the plugin\n\n### Method 2: Manual Installation\n\n1. Download the plugin from [GitHub repository](https://github.com/rskonieczka/wordpress-cta-button/archive/refs/heads/main.zip)\n2. Upload the plugin files to the `/wp-content/plugins/sticky-phone-button` directory, or install the plugin through the WordPress plugins screen directly\n3. Activate the plugin through the 'Plugins' screen in WordPress\n4. Configure the plugin settings via the 'Wordpress CTA Button' option in the WordPress Settings menu\n\n### Requirements\n- WordPress 5.0 or higher\n- PHP 7.2 or higher\n- Modern web browser\n\n## Configuration\n\n### Basic Setup\n1. Navigate to Settings → Wordpress CTA Button in your WordPress admin panel\n2. Choose the devices you want to display the button on (mobile, desktop, or both)\n3. Select the link type (phone, email, URL, SMS)\n4. Enter the link value (phone number, email address, URL, etc.)\n5. Choose the button position on the screen\n6. Configure the CTA text (if needed)\n7. Select days and hours for button display\n8. Customize colors and icon\n\n### Advanced Options\n- **URL Filtering**: Configure whitelist/blacklist rules for specific pages\n- **Scroll Trigger**: Set a scroll threshold (% or px) before the button appears\n- **Border Customization**: Set border radius, width, style, and color\n- **Shadow Effects**: Control shadow position, blur, spread, color, and inset options\n- **Custom CSS**: Add custom CSS classes or IDs for additional styling\n- **Debug Mode**: Enable console logs and testing parameters\n- **Animation**: Adjust blink animation timing\n- **Typography**: Configure font weight and text appearance\n\n### URL Filtering Examples\n```\nShow on URLs containing (whitelist):\nproduct\n/shop/\ncategory\n\nHide on URLs containing (blacklist):\ncontact\n/admin/\ncheckout\n```\n\n### Scroll Trigger Examples\n```\nShow after scroll (value + unit):\n0 %   - disabled, button visible immediately (default)\n25 %  - show after scrolling 25% of page height\n50 %  - show after scrolling halfway down the page\n75 %  - show near the bottom of the page\n100 % - show only when fully scrolled to the bottom\n\n300 px - show after scrolling 300px from the top\n500 px - show after scrolling 500px from the top\n\nNote: the button hides again when scrolling back above the threshold.\n```\n\n### Border \u0026 Shadow Examples\n```\nBorder Radius:\n50px - rounded corners (default)\n0px - square corners\n25px - slightly rounded\n50% - fully circular\n\nShadow Effects:\n0px 2px 10px rgba(0,0,0,0.3) - subtle drop shadow\n2px 2px 5px rgba(0,0,0,0.5) - offset shadow\ninset 0px 2px 4px rgba(0,0,0,0.2) - inner shadow\n```\n\n### CTA Text Formatting Examples\n```\nBasic text:\nCall Now\n\nBold text:\n\u003cb\u003eCall Now\u003c/b\u003e or \u003cstrong\u003eCall Now\u003c/strong\u003e\n\nSmall text:\nCall Now \u003csmall\u003eAvailable 24/7\u003c/small\u003e\n\nItalic text:\n\u003cem\u003eQuick\u003c/em\u003e Response or \u003ci\u003eQuick\u003c/i\u003e Response\n\nLine breaks:\nCall Now\u003cbr\u003e24/7 Support\n\nCombined formatting:\n\u003cb\u003eCall Now\u003c/b\u003e \u003csmall\u003e\u003cem\u003eOpen Mon-Fri\u003c/em\u003e\u003c/small\u003e\n\nMultiple formatting options:\nContact Us \u003csmall\u003eGet \u003cem\u003einstant\u003c/em\u003e support\u003c/small\u003e\n\nReal-world examples:\n\nMedical/Healthcare:\n\u003cb\u003eSchedule Appointment\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eSame-day available\u003c/small\u003e\n\nColorectal Surgery/Oncology:\n\u003cstrong\u003eExpert Consultation\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eSpecialized in \u003cem\u003ecolorectal cancer\u003c/em\u003e\u003c/small\u003e\n\nRestaurant/Food:\nOrder Now \u003csmall\u003eDelivery in \u003cem\u003e30 min\u003c/em\u003e\u003c/small\u003e\n\nE-commerce:\n\u003cstrong\u003eShop Now\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eFree shipping over $50\u003c/small\u003e\n\nService Business:\n\u003cb\u003eGet Quote\u003c/b\u003e \u003csmall\u003eResponse in \u003ci\u003e2 hours\u003c/i\u003e\u003c/small\u003e\n\nEmergency Services:\n\u003cstrong\u003eCALL NOW\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003e\u003cem\u003e24/7 Emergency Line\u003c/em\u003e\u003c/small\u003e\n\nReal Estate:\nSchedule Viewing\u003cbr\u003e\u003csmall\u003eVirtual tours \u003ci\u003eavailable\u003c/i\u003e\u003c/small\u003e\n\nConsulting:\n\u003cb\u003eBook Consultation\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eFirst 30 min \u003cem\u003efree\u003c/em\u003e\u003c/small\u003e\n\nSalon/Beauty:\nBook Now \u003csmall\u003eOnline booking \u003cb\u003e10% OFF\u003c/b\u003e\u003c/small\u003e\n\nFitness/Gym:\nStart Today\u003cbr\u003e\u003csmall\u003e\u003cb\u003eFirst week FREE\u003c/b\u003e\u003c/small\u003e\n\nLegal Services:\n\u003cstrong\u003eFree Consultation\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eCall \u003cem\u003eanytime\u003c/em\u003e\u003c/small\u003e\n\nHotel/Accommodation:\n\u003cb\u003eBook Your Stay\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eBest price \u003cem\u003eguarantee\u003c/em\u003e\u003c/small\u003e\n\nAutomotive/Mechanic:\n\u003cstrong\u003eSchedule Service\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eSame-day repairs \u003ci\u003eavailable\u003c/i\u003e\u003c/small\u003e\n\nEducation/Tutoring:\nStart Learning\u003cbr\u003e\u003csmall\u003e\u003cb\u003eFirst class FREE\u003c/b\u003e\u003c/small\u003e\n\nPlumbing/HVAC:\n\u003cb\u003eEMERGENCY SERVICE\u003c/b\u003e\u003cbr\u003e\u003csmall\u003e\u003cem\u003eAvailable 24/7\u003c/em\u003e\u003c/small\u003e\n\nPhotography:\n\u003cb\u003eBook Session\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eWedding packages from \u003ci\u003e$999\u003c/i\u003e\u003c/small\u003e\n\nPet Services:\nGrooming Appointment\u003cbr\u003e\u003csmall\u003eWalk-ins \u003cb\u003ewelcome\u003c/b\u003e\u003c/small\u003e\n\nInsurance:\n\u003cstrong\u003eGet Quote\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eCompare rates in \u003cem\u003eminutes\u003c/em\u003e\u003c/small\u003e\n\nMoving Services:\n\u003cb\u003eFree Estimate\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eLocal \u0026 \u003ci\u003elong-distance\u003c/i\u003e\u003c/small\u003e\n\nWeb Design:\n\u003cstrong\u003eStart Your Project\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eFree consultation \u0026 \u003cem\u003equote\u003c/em\u003e\u003c/small\u003e\n\nCleaning Services:\n\u003cb\u003eBook Cleaning\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eFirst-time customers \u003cb\u003e20% OFF\u003c/b\u003e\u003c/small\u003e\n\nTaxi/Transportation:\n\u003cstrong\u003eOrder Ride\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003ePickup in \u003cem\u003e5-10 min\u003c/em\u003e\u003c/small\u003e\n\nDental Practice:\nSchedule Checkup\u003cbr\u003e\u003csmall\u003e\u003cb\u003eNew patients\u003c/b\u003e welcome\u003c/small\u003e\n\nEvent Planning:\n\u003cb\u003ePlan Your Event\u003c/b\u003e\u003cbr\u003e\u003csmall\u003eWeddings, parties \u0026 \u003cem\u003ecorporate\u003c/em\u003e\u003c/small\u003e\n\nTech Support:\n\u003cstrong\u003eGet Help Now\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003eRemote support \u003ci\u003eavailable\u003c/i\u003e\u003c/small\u003e\n```\n\n## Testing\n\nThe plugin includes several debug parameters that can be added to any page URL to test functionality:\n\n- `?debug=1`: Forces the button to show regardless of device settings and URL filtering rules\n- `?alwaysShowCTA=1` or `?forceCTA=1`: Always displays the button ignoring time-based rules and URL filters\n- `?show=1`: Forces button display ignoring all visibility conditions\n- `?forceInit=1`: Forces button initialization\n\n### Debug Examples\n```\nhttps://yoursite.com/contact/?debug=1\nhttps://yoursite.com/admin/?forceCTA=1\nhttps://yoursite.com/checkout/?show=1\n```\n\n**Note**: Debug parameters override URL filtering rules, making testing easier during development.\n\n## Technical Details\n\n### REST API\nThe plugin exposes settings via a REST API endpoint:\n```\n/wp-json/sticky-phone-button/v1/settings\n```\n\n### Ajax Endpoint\nFor backward compatibility, an Ajax endpoint is also available:\n```\n/wp-admin/admin-ajax.php?action=sticky_phone_button_get_settings\n```\n\n### Custom HTML Structure\nThe button is rendered with the following HTML structure:\n```html\n\u003cdiv id=\"sticky-cta-container\" class=\"sticky-phone-button sticky-position-class custom-class\" style=\"custom-styles\"\u003e\n    \u003ca href=\"link-target\" target=\"_blank\" class=\"sticky-phone-button-link\"\u003e\n        \u003cspan class=\"material-symbols-outlined\"\u003eicon_name\u003c/span\u003e\n        \u003cspan class=\"sticky-phone-button-text\"\u003eCTA Text\u003c/span\u003e\n    \u003c/a\u003e\n\u003c/div\u003es\n```\n\n## Browser Compatibility\n\n- Chrome (latest)\n- Firefox (latest)\n- Safari (latest)\n- Edge (latest)\n- Mobile browsers (iOS Safari, Android Chrome)\n\n## Version History\n\n### 1.6 (Current)\n- **Scroll Trigger**: Show the button only after the user scrolls past a defined threshold (% or px)\n  - Supports percentage of page height or absolute pixel offset\n  - Button hides again when scrolling back above the threshold\n  - Throttled scroll listener (100ms) for optimal performance\n  - Value `0` disables the feature (backward compatible)\n\n### 1.5\n- **Stable Release**: All features from version 1.4 tested and verified\n- **Documentation Update**: Enhanced documentation with visual previews\n- **Performance Optimization**: Improved CSS generation and caching\n- **Code Quality**: Refined implementation of URL filtering, border controls, and shadow effects\n\n### 1.4\n- **URL Filtering System**: Advanced whitelist/blacklist functionality for URL-based visibility control\n- **Border \u0026 Shape Control**: Complete border customization (radius, width, style, color) with 9 border styles\n- **Shadow Effects**: Full box-shadow management (enable/disable, position, blur, spread, color, inset option)\n- **Enhanced Styling**: Dynamic CSS generation for all new visual options\n- **Debug Mode Improvements**: URL filtering respects debug parameters for testing\n- **Backward Compatibility**: All existing settings preserved during updates\n\n### 1.3\n- Added Material Icons integration\n- Improved caching prevention\n- Enhanced debug mode functionality\n- Added REST API endpoint\n\n### Previous Versions\n- Initial release with core functionality\n- Added scheduling options\n- Implemented customization features\n\n## License\n\n**Free to Use - GPL v2**\n\nThis plugin is released under the GPL v2 (GNU General Public License version 2) or later.\n\n### What GPL v2 means:\n- You are free to use, modify, and distribute the plugin\n- If you distribute modified versions, you must keep them under GPL\n- The source code must be made available\n- No warranty is provided\n\nThis plugin is free to use for all purposes. However, if you need an invoice or official documentation for your commercial use, please purchase a license.\n\n### Paid License with Invoice\n- One-time payment for a single domain\n- Includes official invoice for business documentation\n- No recurring fees\n- **Business Benefits:**\n  - Tax-deductible expense for your company\n  - Proper accounting documentation for audits\n  - Proof of legal software acquisition\n  - Compliance with business software regulations\n  - Priority email support\n- Purchase online: [Buy license with invoice](https://buy.stripe.com/6oEcP3fJ90lN6oo9AK)\n\n## Credits\n\nDeveloped by [Wirtualny Handlowiec](http://wirtualnyhandlowiec.pl/)\n\n---\n\nFor support or feature requests, please contact the developer through the website: [http://wirtualnyhandlowiec.pl/](http://wirtualnyhandlowiec.pl/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frskonieczka%2Fwordpress-cta-button","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frskonieczka%2Fwordpress-cta-button","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frskonieczka%2Fwordpress-cta-button/lists"}