serviceAddon.php 4.8 KB

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