serviceAddon.php 4.7 KB

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