Jump to content

Meu primeiro Hook no WHMCS: Campos Personalizados no E-mail do Produto


Hostcel

Recommended Posts

Olá comunidade! Atualmente, estou trabalhando na criação de um hook para incorporar dois campos personalizados no e-mail de um produto. Esses campos são preenchidos manualmente por mim antes de liberar o pedido, desencadeando o envio automático ou manual de um e-mail.

Este é meu primeiro hook, e estou enfrentando a questão de os campos de mesclagem não estarem sendo exibidos. Alguém poderia me fornecer orientações ou sugestões para solucionar esse problema? Agradeço antecipadamente pela ajuda!

<?php

    use WHMCS\Database\Capsule;
    
    add_hook('EmailPreSend', 1, function($vars) {
        
        // Verifica se o e-mail está relacionado a um produto específico
        if ($vars['messagetype'] == 'product' && isset($vars['relid'])) {
            $productId = $vars['relid'];
    
            // Substitua 'X' e 'Y' pelos IDs dos campos personalizados que deseja recuperar
            $customFieldId1 = '71';
            $customFieldId2 = '72';
    
            // Obtém os valores dos campos personalizados para o produto
            $customFieldValue1 = Capsule::table('tblcustomfieldsvalues')
                ->where('fieldid', $customFieldId1)
                ->where('relid', $productId)
                ->value('value');
    
            $customFieldValue2 = Capsule::table('tblcustomfieldsvalues')
                ->where('fieldid', $customFieldId2)
                ->where('relid', $productId)
                ->value('value');
    
            // Adiciona as variáveis de Campos de Mesclagem ao corpo do e-mail
            $vars['link_ios'] = $customFieldValue1;
            $vars['link_android'] = $customFieldValue2;
        }
    });

 

Link to comment
Share on other sites

Verifique se EmailPreSend está funcionando corretamente. Se você tiver criado o  emailpresend.php conforme as instruções acima, verifique se o arquivo está sendo carregado corretamente. Você pode fazer isso abrindo o arquivo config.php e procurando a seguinte linha:

$config['email_hooks'][] = 'emailpresend.php';

Se esta linha não estiver presente, adicione-a e salve o arquivo.

Verifique se os campos personalizados que você está tentando usar estão configurados corretamente. Os campos personalizados devem estar habilitados no produto ou conta a que estão relacionados. Você também deve verificar se os campos personalizados têm valores definidos.

Verifique se o template de e-mail está usando as variáveis de Campos de Mesclagem corretamente. As variáveis de Campos de Mesclagem devem ser usadas entre aspas duplas. Por exemplo, se você tiver um campo personalizado chamado link_ios, você deve usá-lo da seguinte forma:

<a href="{$link_ios}">Link para iOS</a>

Redefina o cache do whmcs assim

$config['recache'] = true;

 

Espero ter ajudado!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Do you agree with our terms?