Guest User

Untitled

a guest
May 31st, 2023
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.05 KB | None | 0 0
  1. <?php
  2. /**
  3. *
  4. * @ This file is created by http://DeZender.Net
  5. * @ deZender (PHP7 Decoder for ionCube Encoder)
  6. *
  7. * @ Version : 5.0.1.0
  8. * @ Author : DeZender
  9. * @ Release on : 22.04.2022
  10. * @ Official site : http://DeZender.Net
  11. *
  12. */
  13.  
  14. function wachat_config()
  15. {
  16. $configarray = ['name' => 'WaChat WhatsApp', 'description' => 'WaChat - WHMCS WhatsApp Notifications Addon. Send whatsapp notifications to your clients and admin. Find more @ <a href="https://wachat.net/" target=\'_blank\'>www.wachat.net</a>', 'version' => '2.1.1', 'author' => 'WaChat', 'language' => 'english'];
  17. return $configarray;
  18. }
  19.  
  20. function wachat_activate()
  21. {
  22. $query = 'CREATE TABLE IF NOT EXISTS `mod_wachat_messages` (`id` int(11) NOT NULL AUTO_INCREMENT,`group_id` varchar(40) NOT NULL,`to` varchar(15) DEFAULT NULL,`text` text,`uid` varchar(50) DEFAULT NULL,`status` varchar(10) DEFAULT NULL,`errors` text,`logs` text,`user` int(11) DEFAULT NULL,`datetime` datetime NOT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;';
  23. mysql_query($query);
  24. $query = 'CREATE TABLE IF NOT EXISTS `mod_wachat_settings` (`id` int(11) NOT NULL AUTO_INCREMENT,`api_key` varchar(100) CHARACTER SET utf8 NOT NULL,`api_token` varchar(500) CHARACTER SET utf8 NULL,`wantwhatsappfield` int(11) DEFAULT NULL,`gsmnumberfield` int(11) DEFAULT NULL,`dateformat` varchar(12) CHARACTER SET utf8 DEFAULT NULL,`version` varchar(6) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;';
  25. mysql_query($query);
  26. $query = 'INSERT INTO `mod_wachat_settings` (`api_key`, `api_token`, `wantwhatsappfield`, `gsmnumberfield`,`dateformat`, `version`) VALUES (\'none\', \'none\', 0, 0,\'%d.%m.%y\',\'1.0.0\');';
  27. mysql_query($query);
  28. $query = 'CREATE TABLE IF NOT EXISTS `mod_wachat_templates` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) CHARACTER SET utf8 NOT NULL,`type` enum(\'client\',\'admin\') CHARACTER SET utf8 NOT NULL,`admingsm` varchar(255) CHARACTER SET utf8 NOT NULL,`template` varchar(1500) CHARACTER SET utf8 NOT NULL,`variables` varchar(1000) CHARACTER SET utf8 NOT NULL,`active` tinyint(1) NOT NULL,`extra` varchar(3) CHARACTER SET utf8 NOT NULL,`attachment` tinyint(1) NOT NULL,`description` text CHARACTER SET utf8,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;';
  29. mysql_query($query);
  30. $query = 'CREATE TABLE IF NOT EXISTS `mod_wachat_otp` (`id` int(11) NOT NULL AUTO_INCREMENT,`otp` varchar(50) CHARACTER SET utf8 NOT NULL,`type` enum(\'client\',\'admin\') CHARACTER SET utf8 DEFAULT \'client\',`relid` int(10) DEFAULT 0,`request` varchar(50) CHARACTER SET utf8 NOT NULL,`text` text,`status` tinyint(1) DEFAULT 0, `datetime` datetime NOT NULL, `phonenumber` text, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;';
  31. mysql_query($query);
  32. require_once 'api.php';
  33. require_once 'lib/wachat.php';
  34. $api = new wachat();
  35. $api->checkLists();
  36. return ['status' => 'success', 'description' => 'WaChat WhatsApp Notifications Addon successfully activated'];
  37. }
  38.  
  39. function wachat_deactivate()
  40. {
  41. $query = 'DROP TABLE `mod_wachat_templates`';
  42. mysql_query($query);
  43. $query = 'DROP TABLE `mod_wachat_settings`';
  44. mysql_query($query);
  45. $query = 'DROP TABLE `mod_wachat_messages`';
  46. mysql_query($query);
  47. $query = 'DROP TABLE `mod_wachat_otp`';
  48. mysql_query($query);
  49. return ['status' => 'success', 'description' => 'WaChat WhatsApp Notifications Addon successfully deactivated'];
  50. }
  51.  
  52. function Newsletters_upgrade($vars)
  53. {
  54. $version = $vars['version'];
  55.  
  56. switch ($version) {
  57. case '1':
  58. break;
  59. }
  60.  
  61. $api = new wachat();
  62. $api->checkLists();
  63. }
  64.  
  65. function wachat_output($vars)
  66. {
  67. $modulelink = $vars['modulelink'];
  68. $version = $vars['version'];
  69. $LANG = $vars['_lang'];
  70. putenv('TZ=Asia/Colombo');
  71. $api = new wachat();
  72. $tab = $_GET['tab'];
  73. echo '<div id="newsletters_sms_system">' . "\n\n" . ' ' . "\n\n" . ' <style>' . "\n" . ' ' . "\n" . ' table.form {' . "\n" . ' padding: 20px !important;' . "\n" . ' border: 1px solid #DDD !important;' . "\n" . ' border-radius: 0 !important;' . "\n" . ' }' . "\n\n" . ' .card {' . "\n" . ' background:#F0FFF0;' . "\n" . ' transition: 0.3s;' . "\n" . ' padding:20px;' . "\n" . ' width: 100%;' . "\n" . ' border: 1px solid #ddd;' . "\n" . ' }' . "\n\n" . ' ' . "\n" . ' .contentarea{' . "\n\n" . ' background: #F8F8FF !important;' . "\n\n" . ' }' . "\n\n" . ' #clienttabs *{' . "\n\n" . ' margin: inherit;' . "\n\n" . ' padding: inherit;' . "\n\n" . ' border: inherit;' . "\n\n" . ' color: inherit;' . "\n\n" . ' background: inherit;' . "\n\n" . ' background-color: inherit;' . "\n\n" . ' }' . "\n\n" . ' ' . "\n\n\n\n" . ' #clienttabs{position: relative; z-index: 99;}' . "\n\n" . ' #clienttabs ul li {' . "\n\n" . ' display: inline-block;' . "\n\n" . ' margin-right: 3px;' . "\n\n" . ' border: 1px solid #ddd;' . "\n\n" . ' border-bottom:0px;' . "\n\n" . ' padding: 12px;' . "\n\n" . ' margin-bottom: -1px;' . "\n\n" . ' }' . "\n\n" . ' #clienttabs ul a {' . "\n\n" . ' border: 0px;;' . "\n\n" . ' }' . "\n\n" . ' #clienttabs ul {' . "\n\n" . ' float:left;' . "\n\n" . ' margin-bottom:0px;' . "\n\n" . ' }' . "\n\n" . ' #clienttabs{' . "\n\n" . ' float:left;' . "\n\n" . ' }' . "\n\n" . ' ' . "\n\n\n\n" . ' </style>' . "\n\n" . ' ' . "\n\n\n\n" . ' ' . "\n\n" . ' <div id="clienttabs">' . "\n\n" . ' <ul>' . "\n\n" . ' <li class="' . (($tab == 'settings') || ((@$_GET['type'] == '') && ($tab == '')) ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&tab=settings">' . $LANG['settings'] . '</a></li>' . "\n\n" . ' <li class="' . (@$_GET['type'] == 'client' ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&tab=templates&type=client">' . $LANG['clientsmstemplates'] . '</a></li>' . "\n\n" . ' <li class="' . (@$_GET['type'] == 'admin' ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&tab=templates&type=admin">' . $LANG['adminsmstemplates'] . '</a></li>' . "\n\n" . ' <li class="' . ($tab == 'sendtoclients' ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&tab=sendtoclients">' . $LANG['sendsms'] . '</a></li>' . "\n\n" . ' <li class="' . ($tab == 'messages' ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&amp;tab=messages">' . $LANG['messages'] . '</a></li>' . "\n\n" . ' <li class="' . ($tab == 'c' ? 'tabselected' : 'tab') . '"><a href="addonmodules.php?module=wachat&amp;tab=support">' . $LANG['support'] . '</a></li>' . "\n\n" . ' </ul>' . "\n\n" . ' </div>' . "\n\n" . ' <div style="clear:both;"></div>' . "\n\n" . ' ';
  74. if (!isset($tab) || ($tab == 'settings')) {
  75. if (isset($_POST['params'])) {
  76. $update = ['api_key' => $_POST['api_key'], 'api_token' => $_POST['api_token'], 'wantwhatsappfield' => $_POST['wantwhatsappfield'], 'gsmnumberfield' => $_POST['gsmnumberfield'], 'dateformat' => $_POST['dateformat']];
  77. update_query('mod_wachat_settings', $update, '');
  78. }
  79.  
  80. $settings = $api->apiSettings();
  81. $api_key = $settings['api_key'];
  82. $api_token = $settings['api_token'];
  83. $result = WHMCS\Database\Capsule::table('tblcustomfields')->where([
  84. ['fieldtype', '=', 'text'],
  85. ['type', '=', 'client']
  86. ])->get();
  87. $gsmnumber = '<option value="0" selected >' . $LANG['defaultmobile'] . '</option>';
  88.  
  89. foreach ($result as $customfield) {
  90. if ($customfield->id == $settings['gsmnumberfield']) {
  91. $selected = 'selected="selected"';
  92. }
  93. else {
  94. $selected = '';
  95. }
  96.  
  97. $gsmnumber .= '<option value="' . $customfield->id . '" ' . $selected . '>Custom Field : ' . $customfield->fieldname . '</option>';
  98. }
  99.  
  100. $checker = new wachatAPI();
  101. $checker->setUser($api_key, $api_token);
  102. $checker->CheckBalance();
  103.  
  104. if ($checker == 'balance') {
  105. echo "\n\n" . ' <style>' . "\n\n\n" . '.container {' . "\n\n" . ' padding: 20px 16px;' . "\n\n" . ' display: flex;' . "\n\n" . ' justify-content: center;' . "\n\n" . ' flex-direction: row;' . "\n\n" . '}' . "\n\n" . '</style>' . "\n\n" . '<br><br>' . "\n\n" . ' <div class="card">' . "\n\n" . ' <div class="container">' . "\n\n" . ' <form action="" method="post" id="form">' . "\n\n" . ' <input type="hidden" name="action" value="save" />' . "\n\n" . ' <div class="internalDiv">' . "\n\n" . ' <span id="responsemsg"></span>' . "\n\n\t\t\t" . '<input type="hidden" name="params" value="0"/>' . "\n\n" . ' ' . "\n\n" . ' <div class="btn-container"><a class="btn btn-primary btn-block" href="https://app.wachat.net/" target="_blank">Get Instance ID and Access Token</a></div><p></p>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['accesstoken'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="api_key" class="form-control" size="40" value="' . $settings['api_key'] . '">' . "\n\n" . ' </div><p></p>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['instanceid'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="api_token" class="form-control" size="40" value="' . $settings['api_token'] . '">' . "\n\n" . ' </div><p></p>' . "\n\n" . ' ' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['gsmnumberfield'] . '</td>' . "\n\n" . ' <select name="gsmnumberfield" class="form-control">' . "\n" . ' ' . $gsmnumber . "\n" . ' </select>' . "\n\n" . ' <div class="btn-container"><a class="" href="configcustomfields.php">' . $LANG['addgsmnumberfield'] . '</a></div>' . "\n\n" . ' </tr>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['dateformat'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="dateformat" class="form-control" size="40" value="' . $settings['dateformat'] . '"> </div> e.g: %d.%m.%y (27.01.2023)' . "\n\n" . ' ' . "\n\n" . ' </div>' . "\n\n" . ' <div class="btn-container">' . "\n\n" . ' <input type="submit" value="' . $LANG['save'] . '" class="btn btn-primary btn-block" />' . "\n\n" . ' </div>' . "\n\n" . ' </form>' . "\n\n" . ' </div>' . "\n\n" . ' </div>' . "\n\n" . ' ';
  106. }
  107. else {
  108. echo "\n\n" . ' <style>' . "\n\n\n\n\n\n" . '.container {' . "\n\n" . ' padding: 20px 16px;' . "\n\n" . ' display: flex;' . "\n\n" . ' justify-content: center;' . "\n\n" . ' flex-direction: row;' . "\n\n" . '}' . "\n\n" . '</style>' . "\n\n" . ' <div class="card">' . "\n\n" . ' <div class="container">' . "\n\n" . ' <form action="" method="post" id="form">' . "\n\n" . ' <input type="hidden" name="action" value="save" />' . "\n\n" . ' <div class="internalDiv">' . "\n\n" . ' <span id="responsemsg"></span>' . "\n\n\t\t\t" . '<input type="hidden" name="params" value="0"/>' . "\n\n" . ' <div class="btn-container"><a class="btn btn-primary btn-block" href="https://app.wachat.net/" target="_blank">Get Instance ID and Access Token</a></div><p></p>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['accesstoken'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="api_key" class="form-control" size="40" value="' . $settings['api_key'] . '">' . "\n\n" . ' </div><p></p>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['instanceid'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="api_token" class="form-control" size="40" value="' . $settings['api_token'] . '">' . "\n\n" . ' </div><p></p>' . "\n\n" . ' ' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['gsmnumberfield'] . '</td>' . "\n\n" . ' <select name="gsmnumberfield" class="form-control">' . "\n" . ' ' . $gsmnumber . "\n" . ' </select>' . "\n\n" . ' <div class="btn-container"><a class="" href="configcustomfields.php">' . $LANG['addgsmnumberfield'] . '</a></div>' . "\n\n" . ' </tr>' . "\n\n" . ' <td class="fieldlabel" width="30%">' . $LANG['dateformat'] . '</td>' . "\n\n" . ' <div class="">' . "\n\n" . ' <input type="text" name="dateformat" class="form-control" size="40" value="' . $settings['dateformat'] . '"> </div> e.g: %d.%m.%y (27.01.2023)' . "\n\n" . ' ' . "\n\n" . ' </div>' . "\n\n" . ' <div class="btn-container">' . "\n\n" . ' <input type="submit" value="' . $LANG['save'] . '" class="btn btn-primary btn-block" />' . "\n\n" . ' </div>' . "\n\n" . ' </form>' . "\n\n" . ' </div>' . "\n\n" . ' </div>' . "\n\n" . ' ';
  109. }
  110. }
  111. else if ($tab == 'templates') {
  112. if (isset($_POST['params'])) {
  113. $where = [
  114. 'type' => ['sqltype' => 'LIKE', 'value' => $_GET['type']]
  115. ];
  116. $result = select_query('mod_wachat_templates', '*', $where);
  117.  
  118. while ($data = mysql_fetch_array($result)) {
  119. ..................................................................
  120. ...................................
  121. ..............
Advertisement
Add Comment
Please, Sign In to add comment