Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

WHMCS - Como exibir um alerta na página de Cartão de Crédito para configurar a Cobrança Automática

Featured Replies

Postado

Recentemente precisei mostrar um aviso personalizado na página Métodos de Pagamento do WHMCS, alertando o cliente que possui um cartão de crédito cadastrado, quando o tipo de cobrança dele no cadastro não é Cartão de Crédito, impedindo a cobrança automática no cartão.

Para isso, utilizei um hook simples que recupera o campo defaultgateway do cliente e disponibiliza essa informação como variável Smarty em qualquer template do clientarea.

Hook: Enviando o “Tipo de Cobrança” para o template

Crie o arquivo:
/includes/hooks/tipo_cobranca_cliente.php

E adicione:

<?php

use WHMCS\Database\Capsule;

add_hook('ClientAreaPage', 1, function($vars) {
    if (!isset($_SESSION['uid'])) {
        return;
    }

    $uid = (int) $_SESSION['uid'];

    $tipoCobranca = Capsule::table('tblclients')
        ->where('id', $uid)
        ->value('defaultgateway');

    return [
        'tipoCobranca' => $tipoCobranca
    ];
});

Esse hook faz o seguinte:

  • Verifica se há um cliente logado.

  • Busca no banco o campo defaultgateway (Tipo de Cobrança).

  • Disponibiliza a variável $tipoCobranca para todos os templates.

Exibindo o alerta no arquivo account-paymentmethods.tpl

Agora basta editar o template:

/templates/SEU_TEMA/account-paymentmethods.tpl

E adicionar o alerta onde achar mais adequado, por exemplo no topo da página:

{if $client->payMethods->validateGateways()|@count != 0 && $tipoCobranca ne "stripe"}
    <div class="alert alert-info" style="margin-bottom:20px;">
        Para ativar a cobrança automática dos pagamentos pelo cartão de crédito,
        acesse a página <strong>Meus Dados</strong> e altere a opção
        <strong>Tipo de Cobrança</strong> para <strong>Cartão de Crédito</strong>.
    </div>
{/if}

  • Se o cliente não utiliza Stripe como cobrança principal e possui um cartão cadastrado, o alerta aparece.

  • Se o gateway padrão do cliente for Stripe e possui um cartão cadastrado, o alerta não é exibido.

  • É totalmente compatível com qualquer tema

Você pode substituir a parte $tipoCobranca ne "stripe" pelo nome de qualquer módulo de pagamento que desejar.

 Hospedagem de Sites, Revenda de Hospedagem, Servidores Virtuais, Registro de Domínios

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.