serviceAddon.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. /**
  3. * Service Addon Provisioning Module
  4. *
  5. * sending product independent mails
  6. *
  7. * @copyright Copyright (c) Thurdata GmbH 2020
  8. * @license GPL
  9. */
  10. if (!defined("WHMCS")) {
  11. die("This file cannot be accessed directly");
  12. }
  13. function serviceAddon_CreateAccount(array $params) {
  14. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  15. if($emailTemplates[0] != 'none') {
  16. return $emailTemplates[0];
  17. }
  18. if($params['name'] == '') {
  19. $serviceCode = bin2hex(random_bytes(3));
  20. try {
  21. Capsule::table('tblhostingaddons')
  22. ->where('id', '=', $params['addonId'])
  23. ->update(
  24. array(
  25. 'name' => $serviceCode,
  26. )
  27. );
  28. } catch (\Exception $e) {
  29. logModuleCall(
  30. 'serviceAddon',
  31. __FUNCTION__,
  32. $params,
  33. 'Error: could save servcieCode in database',
  34. $e->getMessage()
  35. );
  36. return 'Error: could save servcieCode in database';
  37. }
  38. } else {
  39. $serviceCode = $params['name'];
  40. }
  41. if($params['Create_Mail'] > 0) {
  42. return serviceAddonSendEmail($emailTemplates[$params['Create_Mail']], $params['serviceid'], $serviceCode);
  43. }
  44. return 'success';
  45. }
  46. function serviceAddon_SuspendAccount(array $params) {
  47. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  48. if($emailTemplates[0] != 'none') {
  49. return $emailTemplates[0];
  50. }
  51. if($params['Suspend_Mail'] > 0) {
  52. return serviceAddonSendEmail($emailTemplates[$params['Suspend_Mail']], $params['serviceid'], $params['name']);
  53. }
  54. return 'success';
  55. }
  56. function serviceAddon_UnsuspendAccount(array $params) {
  57. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  58. if($emailTemplates[0] != 'none') {
  59. return $emailTemplates[0];
  60. }
  61. if($params['Unsuspend_Mail'] > 0) {
  62. return serviceAddonSendEmail($emailTemplates[$params['Unsuspend_Mail']], $params['serviceid'], $params['name']);
  63. }
  64. return 'success';
  65. }
  66. function serviceAddon_TerminateAccount(array $params) {
  67. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  68. if($emailTemplates[0] != 'none') {
  69. return $emailTemplates[0];
  70. }
  71. if($params['Terminate_Mail'] > 0) {
  72. return serviceAddonSendEmail($emailTemplates[$params['Terminate_Mail']], $params['serviceid'], $params['name']);
  73. }
  74. return 'success';
  75. }
  76. function serviceAddon_ChangePackage(array $params) {
  77. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  78. if($emailTemplates[0] != 'none') {
  79. return $emailTemplates[0];
  80. }
  81. if($params['ChangePackage_Mail'] > 0) {
  82. return serviceAddonSendEmail($emailTemplates[$params['ChangePackage_Mail']], $params['serviceid'], $params['name']);
  83. }
  84. return 'success';
  85. }
  86. function serviceAddon_TestConnection(array $params) {
  87. return 'success';
  88. }
  89. function serviceAddon_UsageUpdate(array $params) {
  90. return 'success';
  91. }
  92. function serviceAddon_ConfigOptions(array $params) {
  93. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  94. if($emailTemplates[0] != 'none') {
  95. return array(
  96. "error" => [
  97. "Type" => "text",
  98. "Default" => $emailTemplates[0],
  99. ]
  100. );
  101. }
  102. $configOptions = array(
  103. "Create_Mail" => [
  104. "Type" => "dropdown",
  105. "Options" => $emailTemplates,
  106. "Description" => "E-Mail Template auswählen",
  107. "Default" => "option1"
  108. ],
  109. "Suspend_Mail" => [
  110. "Type" => "dropdown",
  111. "Options" => $emailTemplates,
  112. "Description" => "E-Mail Template auswählen",
  113. "Default" => "option1"
  114. ],
  115. "Unsuspend_Mail" => [
  116. "Type" => "dropdown",
  117. "Options" => $emailTemplates,
  118. "Description" => "E-Mail Template auswählen",
  119. "Default" => "option1"
  120. ],
  121. "ChangePackage_Mail" => [
  122. "Type" => "dropdown",
  123. "Options" => $emailTemplates,
  124. "Description" => "E-Mail Template auswählen",
  125. "Default" => "option1"
  126. ],
  127. "Terminate_Mail" => [
  128. "Type" => "dropdown",
  129. "Options" => $emailTemplates,
  130. "Description" => "E-Mail Template auswählen",
  131. "Default" => "option1"
  132. ],
  133. );
  134. return $configOptions;
  135. }
  136. function serviceAddon_MetaData() {
  137. }
  138. function serviceAddon_AdminCustomButtonArray($params) {
  139. }
  140. function serviceAddon_AdminServicesTabFields($params) {
  141. }
  142. function serviceAddon_ClientArea($params) {
  143. }
  144. function serviceAddonGetEmailTemplatesArray() {
  145. $emailTemplates = array('none');
  146. $response = localAPI('GetEmailTemplates');
  147. if($response['result'] == 'success') {
  148. foreach ($response['emailtemplates']['emailtemplate'] as $emailTemplate) {
  149. if ($emailTemplate['custom'] == 1) {
  150. $emailTemplates[$emailTemplate['id']] = $emailTemplate['name'];
  151. }
  152. }
  153. } else {
  154. $emailTemplates[0] = $response['message'];
  155. }
  156. return $emailTemplates;
  157. }
  158. function serviceAddonSendEmail($templateName,$serviceId, $serviceCode='') {
  159. $result = localAPI('SendEmail', ['messagename' => $templateName, 'id' => $serviceId, 'customvars' => ['servicecode' => $serviceCode]]);
  160. if ($result['result'] == 'success') {
  161. return 'success';
  162. } else {
  163. return $result['message'];
  164. }
  165. };