serviceAddon.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. logModuleCall(
  15. 'serviceAddon',
  16. __FUNCTION__,
  17. $params['model'],
  18. 'debug',
  19. $params['model']->productAddon
  20. );
  21. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  22. if($emailTemplates[0] != 'none') {
  23. return $emailTemplates[0];
  24. }
  25. if(empty($params['model']->name)) {
  26. $params['model']->name = strtoupper(bin2hex(random_bytes(3)));
  27. $params['model']->save();
  28. }
  29. if($params['Create_Mail'] > 0) {
  30. return serviceAddonSendEmail($emailTemplates[$params['Create_Mail']], $params['serviceid'], $params['model']->name);
  31. }
  32. return 'success';
  33. }
  34. function serviceAddon_SuspendAccount(array $params) {
  35. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  36. if($emailTemplates[0] != 'none') {
  37. return $emailTemplates[0];
  38. }
  39. if($params['Suspend_Mail'] > 0) {
  40. return serviceAddonSendEmail($emailTemplates[$params['Suspend_Mail']], $params['serviceid'], $params['model']->name);
  41. }
  42. return 'success';
  43. }
  44. function serviceAddon_UnsuspendAccount(array $params) {
  45. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  46. if($emailTemplates[0] != 'none') {
  47. return $emailTemplates[0];
  48. }
  49. if($params['Unsuspend_Mail'] > 0) {
  50. return serviceAddonSendEmail($emailTemplates[$params['Unsuspend_Mail']], $params['serviceid'], $params['model']->name);
  51. }
  52. return 'success';
  53. }
  54. function serviceAddon_TerminateAccount(array $params) {
  55. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  56. if($emailTemplates[0] != 'none') {
  57. return $emailTemplates[0];
  58. }
  59. if($params['Terminate_Mail'] > 0) {
  60. return serviceAddonSendEmail($emailTemplates[$params['Terminate_Mail']], $params['serviceid'], $params['model']->name);
  61. }
  62. return 'success';
  63. }
  64. function serviceAddon_ChangePackage(array $params) {
  65. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  66. if($emailTemplates[0] != 'none') {
  67. return $emailTemplates[0];
  68. }
  69. if($params['ChangePackage_Mail'] > 0) {
  70. return serviceAddonSendEmail($emailTemplates[$params['ChangePackage_Mail']], $params['serviceid'], $params['model']->name);
  71. }
  72. return 'success';
  73. }
  74. function serviceAddon_TestConnection(array $params) {
  75. return 'success';
  76. }
  77. function serviceAddon_UsageUpdate(array $params) {
  78. return 'success';
  79. }
  80. function serviceAddon_ConfigOptions(array $params) {
  81. $emailTemplates = serviceAddonGetEmailTemplatesArray();
  82. if($emailTemplates[0] != 'none') {
  83. return array(
  84. "error" => [
  85. "Type" => "text",
  86. "Default" => $emailTemplates[0],
  87. ]
  88. );
  89. }
  90. $configOptions = array(
  91. "Create_Mail" => [
  92. "Type" => "dropdown",
  93. "Options" => $emailTemplates,
  94. "Description" => "E-Mail Template auswählen",
  95. "Default" => "option1"
  96. ],
  97. "Suspend_Mail" => [
  98. "Type" => "dropdown",
  99. "Options" => $emailTemplates,
  100. "Description" => "E-Mail Template auswählen",
  101. "Default" => "option1"
  102. ],
  103. "Unsuspend_Mail" => [
  104. "Type" => "dropdown",
  105. "Options" => $emailTemplates,
  106. "Description" => "E-Mail Template auswählen",
  107. "Default" => "option1"
  108. ],
  109. "ChangePackage_Mail" => [
  110. "Type" => "dropdown",
  111. "Options" => $emailTemplates,
  112. "Description" => "E-Mail Template auswählen",
  113. "Default" => "option1"
  114. ],
  115. "Terminate_Mail" => [
  116. "Type" => "dropdown",
  117. "Options" => $emailTemplates,
  118. "Description" => "E-Mail Template auswählen",
  119. "Default" => "option1"
  120. ],
  121. );
  122. return $configOptions;
  123. }
  124. function serviceAddon_MetaData() {
  125. }
  126. function serviceAddon_AdminCustomButtonArray($params) {
  127. }
  128. function serviceAddon_AdminServicesTabFields($params) {
  129. }
  130. function serviceAddon_ClientArea($params) {
  131. }
  132. function serviceAddonGetEmailTemplatesArray() {
  133. $emailTemplates = array('none');
  134. $response = localAPI('GetEmailTemplates');
  135. if($response['result'] == 'success') {
  136. foreach ($response['emailtemplates']['emailtemplate'] as $emailTemplate) {
  137. if ($emailTemplate['custom'] == 1) {
  138. $emailTemplates[$emailTemplate['id']] = $emailTemplate['name'];
  139. }
  140. }
  141. } else {
  142. $emailTemplates[0] = $response['message'];
  143. }
  144. return $emailTemplates;
  145. }
  146. function serviceAddonSendEmail($templateName,$serviceId, $serviceCode) {
  147. $result = localAPI('SendEmail', ['messagename' => $templateName, 'id' => $serviceId, 'customvars' => ['servicecode' => $serviceCode]]);
  148. if ($result['result'] == 'success') {
  149. return 'success';
  150. } else {
  151. return $result['message'];
  152. }
  153. };