【问题标题】:How to set the additional attribute in a WHMCS addon module如何在 WHMCS 插件模块中设置附加属性
【发布时间】:2020-07-21 10:19:46
【问题描述】:

我在 WHMCS 上使用了一个名为 Transaction Email Notification 1.4 的插件/Hook


<?php
// Transaction Email Notification 1.4 (25-Oct-2016)

function sendEmailTemplateForTransaction($vars)
{
    global $_LANG;

    // create email if not created
    $emailTemplateName = $_LANG['notifyWhenTransactionTemplate'];
    
    // get firstname and lastname of user
    $command = "getclientsdetails";
    $adminuser = xxxxxx; // set WHMCS admin user
    $values["clientid"] = $vars['userid'];
    $resultsStats = localAPI($command, $values, $adminuser);
    $userFirstLastName = $resultsStats['firstname'] . ' ' . $resultsStats['lastname'];

    $emailTemplateName = $_LANG['notifyWhenTransactionTemplate'];

    // send information to email template
    $command = "sendadminemail";
    $values["messagename"] = $emailTemplateName;
    $values["mergefields"] = array(
            "userid" => $vars['userid'],
            "currencyid" => $vars['currencyid'],
            "gateway" => $vars['gateway'],
            "date" => $vars['date'],
            "description" => $vars['description'],
            "amountin" => $vars['amountin'],
            "fees" => $vars['fees'],
            "amountout" => $vars['amountout'],
            "rate" => $vars['rate'],
            "transid" => $vars['transid'],
            "invoiceid" => $vars['invoiceid'],
            "refundid" => $vars['refundid'],
            "id" => $vars['id'],
            "clientname" => $userFirstLastName,
    );

    $results = localAPI($command, $values, $adminuser);

}

add_hook("AddTransaction", 1, "sendEmailTemplateForTransaction");

我还希望在发送交易电子邮件中显示发票项目。

所以我添加了一些行:

        // get Invoice Details
    $command = "getinvoice";
    $adminuser = xxxxx // set WHMCS admin user
    $values["invoiceid"] = $vars['invoiceid'];
    $resultsStats = localAPI($command, $values, $adminuser);
    $desc = $resultsStats['items']["item"][0]["description"];

"desc" => $desc,

它工作正常,但只显示电子邮件中发票的第一行,但我需要显示完整的发票项目。

【问题讨论】:

    标签: php api whmcs


    【解决方案1】:

    看起来$resultsStats['items']["item"] 是一个项目数组,因此您可以遍历它以获取所有描述:

    $desc = '';
    foreach ($resultsStats['items']["item"] as $item) {
    $desc.=$item["description"]."\r\n"; // "\r\n" is line break; replace it per your needs
    }
    

    【讨论】:

    • 也可能$resultsStats['items'] 是项目数组,因此您必须稍微更改代码才能使其正常工作。查看您的调试器(或简单地 var_dump($resultsStats['items']); 以查看存储实际项目的数组格式。
    • 我试过了..它现在显示所有项目..但没有换行符..:(
    • 就像我提到的,您可以将换行符替换为适合您需要的内容。如果您将数据输出为 HTML,请将 "\r\n" 替换为 "&lt;br&gt;"
    • 抱歉,您的示例显示不正确。你能把问题截屏吗?
    • 我如何在评论中添加新行?我认为我不会说同一个我不知道如何替换“\r\n”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 2014-05-27
    • 2015-08-12
    • 1970-01-01
    相关资源
    最近更新 更多