22
33use 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+
2838if ($ _REQUEST ['ampCallback ' ] == 1 )
2939{
3040 $ data = json_decode (file_get_contents ('php://input ' ), 1 );
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 ();
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>
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>
188199HTML ;
189- });
200+ });
0 commit comments