serviceAddon.php 4.9 KB

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