Skip to content

Commit 046b4e7

Browse files
authored
Resolve issue with InstanceID not showing emails
This code change resolved an issue where the InstanceID is not pulled from the ampServices table correctly and placed as a shortcode into the WHMCS email template
1 parent f6a2c91 commit 046b4e7

1 file changed

Lines changed: 40 additions & 29 deletions

File tree

modules/servers/AMP/hooks.php

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,39 @@
22

33
use WHMCS\Database\Capsule;
44

5-
add_hook('EmailPreSend', 1, function($vars) {
6-
if($vars['messageid'] == 'AMP Welcome Email' && $vars['relid'])
5+
add_hook('EmailPreSend', 2, function($vars) {
6+
if($vars['relid'])
77
{
88
$relid = $vars['relid'];
99

10-
$service = Capsule::table('ampServices')->where('serviceId', $relid)->first();
10+
$service = Capsule::table('ampServices')->where('serviceId', $relid)->first();
1111
$serverId = Capsule::table('tblhosting')->where('id', $relid)->value('server');
1212
$server = Capsule::table('tblservers')->where('id', $serverId)->first();
13-
13+
1414
$endpoint = (!empty($server->hostname) ? $server->hostname: $server->ipaddress);
1515
$endpoint = (!empty($server->secure) ? 'https://' : 'http://' ). $endpoint ;
16-
16+
1717
$endpoint = $endpoint . ((!empty($server->port) && $server->secure != true ) ? ':'.$params['serverport'] : '');
18-
18+
1919
$merge_fields = [];
2020
$merge_fields['ampEndpoints'] = json_decode($service->endpoints, 1);
2121
$merge_fields['ampApplicationUrl'] = $endpoint . '/?instance='. $service->instanceId;
2222
$merge_fields['ampInstanceId'] = $service->instanceId;
23-
23+
24+
// Fetch the instance ID from the database
25+
$instanceId = Capsule::table('ampServices')->where('serviceid', $vars['relid'])->value('instanceid');
26+
27+
// If instance ID exists, add it to the template variables
28+
if($instanceId) {
29+
$merge_fields['service_instance_id'] = $instanceId;
30+
}
31+
2432
return $merge_fields;
2533
}
2634
});
2735

36+
37+
2838
if($_REQUEST['ampCallback'] == 1)
2939
{
3040
$data = json_decode(file_get_contents('php://input'), 1);
@@ -34,33 +44,34 @@
3444
if($data['Action'] == 'Create')
3545
{
3646
Capsule::table('ampServices')->updateOrInsert(['secret' => $data['Secret'], 'instanceId' => ''], ['instanceId' => $data['InstanceId'], 'targetId' => $data['TargetId'], 'endpoints' => json_encode($data['Endpoints'])]);
37-
38-
$serviceId = Capsule::table('ampServices')->where('secret', $data['Secret'])->value('serviceId');
39-
47+
48+
$serviceId = Capsule::table('ampServices')->where('secret', $data['Secret'])->value('serviceId');
49+
4050
if(!empty($serviceId))
4151
{
4252
$command = 'SendEmail';
4353
$postData = array(
54+
//The below sets which template should be sent once the Instance is provisioned
4455
'messagename' => 'AMP Welcome Email',
4556
'id' => $serviceId
4657
);
4758
localAPI($command, $postData);
48-
59+
4960
Capsule::table('ampTasks')->where('serviceId', $serviceId)->delete();
5061
}
5162
}
5263
elseif($data['Action'] == 'Modify')
5364
{
5465
Capsule::table('ampServices')->where('secret', $data['Secret'])->where('instanceId', $data['InstanceId'])->update(
5566
['endpoints' => json_encode($data['Endpoints'])]
56-
);
57-
67+
);
68+
5869
}
59-
70+
6071

6172
}elseif($data['Success'] == false && $data['Secret'] && $data['Action'] == 'Create')
6273
{
63-
$serviceId = Capsule::table('ampServices')->where('secret', $data['Secret'])->value('serviceId');
74+
$serviceId = Capsule::table('ampServices')->where('secret', $data['Secret'])->value('serviceId');
6475
if(!empty($serviceId))
6576
{
6677
$task = Capsule::table('ampTasks')->where('serviceId', $serviceId)->first();
@@ -104,12 +115,12 @@
104115
<label for="website">Value</label>
105116
<input class="form-control" type="text" name="extraProvisionSettingsValue" id="extraProvisionSettingsValue" />
106117
</div>
107-
118+
108119
<button class="btn btn-success">Add</button>
109-
120+
110121
</div>
111-
112-
122+
123+
113124
</form>
114125
<table id="extraProvisionSettingsTable" class="datatable">
115126
<thead>
@@ -145,17 +156,17 @@
145156
clone = $('#extraProvisionSettingsMain').clone();
146157
$('#extraProvisionSettingsMain').remove();
147158
148-
function tableToJson(table) {
159+
function tableToJson(table) {
149160
var data = [];
150-
for (var i=1; i<table.rows.length; i++) {
151-
var tableRow = table.rows[i];
152-
var rowData = [];
153-
for (var j=0; j<tableRow.cells.length - 1; j++) {
161+
for (var i=1; i<table.rows.length; i++) {
162+
var tableRow = table.rows[i];
163+
var rowData = [];
164+
for (var j=0; j<tableRow.cells.length - 1; j++) {
154165
rowData.push(tableRow.cells[j].innerHTML);
155-
}
156-
data.push(rowData);
157-
}
158-
return data;
166+
}
167+
data.push(rowData);
168+
}
169+
return data;
159170
}
160171
161172
function onAddWebsite(e) {
@@ -186,4 +197,4 @@ function onDeleteRow(e) {
186197
}
187198
</script>
188199
HTML;
189-
});
200+
});

0 commit comments

Comments
 (0)