PHPackages                             elxdigital/cta-button - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. elxdigital/cta-button

ActiveComponent[Utility &amp; Helpers](/categories/utility)

elxdigital/cta-button
=====================

Botão de chamada para ação desenvolvido e usado pela Ellox Inteligência Digital

v1.3.6(2mo ago)061PHPPHP &gt;=8.0

Since Jul 24Pushed 2mo agoCompare

[ Source](https://github.com/elxdigital/cta-button)[ Packagist](https://packagist.org/packages/elxdigital/cta-button)[ RSS](/packages/elxdigital-cta-button/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (34)Used By (0)

Botão CTA (Call to Action)
==========================

[](#botão-cta-call-to-action)

Esta dependência foi criada para otimizar a alta frequência de uso em projetos próprios da Ellox, onde sites institucionais tendem a recorrer deste recurso com alta demanda, se tratando de seu objetivo principal.

Requisitos:
-----------

[](#requisitos)

- php &gt;=8.0
- ext-pdo
- league/plates 3.\*
- ext-mbstring
- phpmailer/phpmailer
- vlucas/phpdotenv
- jQuery e jQuery Mask
- Bootstrap 4
- Se já criada a tabela `cta_button`, é indiscutível que tenha, pelo menos, os seguintes campos:

```
id - identificador do registro
btn_identificador - um identificador único para o botão
tipo_cta - lead e whatsapp, somente lead, somente whatsapp ou externo
btn_titulo - título a ser visualizado no botão
form_lead - formulário que abrirá para preencher leads
contato_wpp - contato do WhatsApp a ser chamado
message_wpp - mensagem enviada quando abrir o WhatsApp
link_redir - link a ser redirecionado (interno ou externo)
cliques - número de cliques no botão

```

- Ter as seguintes constantes previamente declaradas:
    - url:
        - CONF\_URL\_BASE - url utilizada
        - CONF\_URL\_TEST - url utilizada
    - data base:
        - CONF\_DB\_HOST - database host
        - CONF\_DB\_NAME - database name
        - CONF\_DB\_USER - database user
        - CONF\_DB\_PASS - database password
        - CONF\_DB\_PORT - database port
    - email:
        - CONF\_MAIL\_HOST - mail host
        - CONF\_MAIL\_PORT - mail port
        - CONF\_MAIL\_USER - mail user
        - CONF\_MAIL\_PASS - mail password
        - CONF\_MAIL\_SENDER\_NAME - nome para endereço de e-mail
        - CONF\_MAIL\_SENDER\_ADDRESS - endereço de e-mail
        - CONF\_MAIL\_TEST\_NAME - nome para endereço de e-mail de testes
        - CONF\_MAIL\_TEST\_ADDRESS - endereço de e-mail de testes

Recurosos disponíveis:
----------------------

[](#recurosos-disponíveis)

Campo de formulário HTML do tipo 'select' com as seguintes opções:

- Formulário para Captura de Leads
- Redirecionamento Direto para WhatsApp
- Redirecionamento para Link Externo

Qual é o objetivo de cada um deles?
-----------------------------------

[](#qual-é-o-objetivo-de-cada-um-deles)

### ✔️ Formulário para Captura de Leads + Redirecionamento para WhatsApp

[](#️-formulário-para-captura-de-leads--redirecionamento-para-whatsapp)

Vista abrir uma modal com um formulário de lead, onde o usuário do site preenche seus dados e, após preencher o formulário e enviar, redirecionar o usuário para uma conversa do WhatsApp.

- **Campos preenchidos**: número do contato do WhatsApp e (opcional) mensagem a ser enviada na conversa.

### ✔️ Formulário para Captura de Leads

[](#️-formulário-para-captura-de-leads)

Vista abrir uma modal com um formulário de lead, onde o usuário do site preenche seus dados, ficando a responsabilidade do destino ou manipulação dos dados a cargo do sistema.

- **Campos preenchidos**: formulário a ser preenchido.

### ✔️ Redirecionamento Direto para WhatsApp

[](#️-redirecionamento-direto-para-whatsapp)

Vista redirecionar o usuário, sem nenhum tipo de intermediação, para uma conversa do WhatsApp.

- **Campos preenchidos**: contato do WhatsApp e (opcional) mensagem a ser enviada na conversa.

### ✔️ Redirecionamento para Link Externo

[](#️-redirecionamento-para-link-externo)

Vista redirecionar o usuário para um link de página interna (do próprio site) ou externa.

- **Campos preenchidos**: link de redirecionamento.

    Obs.: Para redirecionar para um link externo, preencha-o de forma completa (protocolo, domínio e caminho, se tiver). Para links internos, preencha somente o caminho para a página. Exemplo:

    Link externo: Link interno: /sobre, /produtos, etc...

Como usar?
----------

[](#como-usar)

Adicionar dependência ao projeto:
`composer require elxdigital/cta-button`

Copiar arquivos de estilo/script para acesso público:
`cp -r vendor/elxdigital/cta-button/src/template/assets src/template/assets`

Copiar formulário de lead padrão para acesso público:
`cp -r vendor/elxdigital/cta-button/src/template/forms src/template/forms`

Copiar template de e-mail para acesso público:
`cp -r vendor/elxdigital/cta-button/src/template/shared src/template/shared`

Copiar arquivo de rotas para acesso público:
`cp -r vendor/elxdigital/cta-button/src/routes src/routes`

Onde você carrega seus estilos e scripts públicos, terá que adicionar o seguinte (adaptando a url oficial de seu site):

```

```

Da mesma forma, no lugar onde carrega os estilos e scripts da parte administrativa do site, deverá ter o seguinte:

```

```

### Parte do Painel Administrativo (admin):

[](#parte-do-painel-administrativo-admin)

- `Button` - Instanciar a classe principal.
    - Ex.: `new \ElxDigital\CtaButton\Button();`

#### Métodos

[](#métodos)

- `renderPrivate` - renderiza o select no painel administrativo do site, ou seja, na parte de quem está gerenciando o conteúdo do site vê.
    - Parâmetros (já na ordem devidamente passada ao método):
        - `field_name` - atributo name do input no formulário principal, ou seja, nome da coluna na tabela que você deseja salvar essa FK.
        - `identificador` - identificador utilizado para diferenciar botões, mesmo que estes tenham o mesmo nome na FK.
        - `formularios` - formulários disponíveis no seu site, aparecerão no select caso o objetivo do botão seja conversão de leads.
        - `btn_cta_id` (opcional) - caso já tenha um botão cadastrado na tabela, esse id da FK é passado neste parâmetro.

### Parte no Site (público):

[](#parte-no-site-público)

- `Button` - Instanciar a classe principal.
    - Ex.: `new \ElxDigital\CtaButton\Button("caminho_para_views");`
    - Parâmetro:
        - `template_path` - caminho/path para os templates do seu site.

#### Métodos

[](#métodos-1)

- `renderPublic` - renderiza o botão no site, ou seja, na parte que o usuário final vê.
    - Parâmetro:
        - `btn_cta_id` - id do botão que deseja ser renderizado na tela e acessado pelos usuários do site.
        - `btn_classes` (opcional) - array de estilos, com flexibilidade para passar qualquer atributo possível em uma tag &lt;a&gt; do HTML.
        - `span` (opcional) - boolean, se quiser que o conteúdo da tag &lt;a&gt; seja envolto em uma tag &lt;span&gt;, por padrão: false.
        - `span_classes` (opcional) - array de estilos, com flexibilidade para passar qualquer atributo possível no span, se o parâmetro anterior for `true`.
        - `content_before` (opcional) - string para passar um HTML caso queira adicionar algum conteúdo antes do texto principal do botão.
        - `content_after` (opcional) - string para passar um HTML caso queira adicionar algum conteúdo depois do texto principal do botão.

Tabela de exemplo para cta\_button:
-----------------------------------

[](#tabela-de-exemplo-para-cta_button)

```
    CREATE TABLE cta_button (
      id INT AUTO_INCREMENT PRIMARY KEY,
      tipo_cta ENUM('lead_whatsapp', 'lead', 'whatsapp', 'externo') NOT NULL,
      btn_identificador VARCHAR(255) NOT NULL,
      btn_titulo VARCHAR(255) NOT NULL,
      form_lead TEXT DEFAULT NULL,
      contato_wpp VARCHAR(20) DEFAULT NULL,
      message_wpp VARCHAR(255) DEFAULT NULL,
      link_redir TEXT DEFAULT NULL,
      cliques INT UNSIGNED NOT NULL DEFAULT 0,
      data_create TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      data_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
```

Mais Dúvidas?
-------------

[](#mais-dúvidas)

Dentro do projeto temos alguns exemplos, tanto para uso no painel administrativo quanto no site, para que assim você possa se guiar e utilizar em seu sistema :)

Os exemplos se encontram na pasta `examples` na raíz da dependência.

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance84

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Recently: every ~0 days

Total

33

Last Release

82d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cb9548ce37155d23957cb9695bec4451c86027805056f057710eb73d7cb6e337?d=identicon)[elxdigital](/maintainers/elxdigital)

---

Top Contributors

[![ellox-dev](https://avatars.githubusercontent.com/u/84869401?v=4)](https://github.com/ellox-dev "ellox-dev (50 commits)")[![ElloxWeb](https://avatars.githubusercontent.com/u/26332584?v=4)](https://github.com/ElloxWeb "ElloxWeb (7 commits)")

### Embed Badge

![Health badge](/badges/elxdigital-cta-button/health.svg)

```
[![Health](https://phpackages.com/badges/elxdigital-cta-button/health.svg)](https://phpackages.com/packages/elxdigital-cta-button)
```

###  Alternatives

[akaunting/laravel-money

Currency formatting and conversion package for Laravel

7825.3M18](/packages/akaunting-laravel-money)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
