Advertisement
Guest User

Untitled

a guest
Aug 28th, 2019
320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.48 KB | None | 0 0
  1. <?php
  2. /*
  3. *
  4. * @ This file is created by http://DeZender.Net
  5. * @ deZender (PHP5 Decoder for ionCube Encoder)
  6. *
  7. * @ Version : 3.5.0.0
  8. * @ Author : DeZender
  9. * @ Release on : 22.06.2018
  10. * @ Official site : http://DeZender.Net
  11. *
  12. */
  13.  
  14. define('CLIENTAREA', true);
  15. require __DIR__ . '/init.php';
  16. require ROOTDIR . '/includes/clientfunctions.php';
  17. require ROOTDIR . '/includes/gatewayfunctions.php';
  18. require ROOTDIR . '/includes/ccfunctions.php';
  19. require ROOTDIR . '/includes/domainfunctions.php';
  20. require ROOTDIR . '/includes/registrarfunctions.php';
  21. require ROOTDIR . '/includes/customfieldfunctions.php';
  22. require ROOTDIR . '/includes/invoicefunctions.php';
  23. require ROOTDIR . '/includes/configoptionsfunctions.php';
  24. $action = $whmcs->get_req_var('action');
  25. $sub = $whmcs->get_req_var('sub');
  26. $id = (int) $whmcs->get_req_var('id');
  27. $modop = $whmcs->get_req_var('modop');
  28. $submit = $whmcs->get_req_var('submit');
  29. $save = $whmcs->get_req_var('save');
  30. $q = $whmcs->get_req_var('q');
  31. $paymentmethod = WHMCS\Gateways::makeSafeName($whmcs->get_req_var('paymentmethod'));
  32. $params = array();
  33. $addRenewalToCart = $whmcs->get_req_var('addRenewalToCart');
  34.  
  35. if ($addRenewalToCart) {
  36. check_token();
  37. $renewID = $whmcs->get_req_var('renewID');
  38. $renewalPeriod = $whmcs->get_req_var('period');
  39. $_SESSION['cart']['renewals'][$renewID] = $renewalPeriod;
  40. WHMCS\Terminus::getInstance()->doExit();
  41. } else {
  42. if ($action == 'resendVerificationEmail') {
  43. check_token();
  44. $clientDetails = WHMCS\User\Client::find(WHMCS\Session::get('uid'));
  45.  
  46. if (!is_null($clientDetails)) {
  47. $clientDetails->sendEmailAddressVerification();
  48. }
  49.  
  50. WHMCS\Terminus::getInstance()->doExit();
  51. } else {
  52. if ($action == 'parseMarkdown') {
  53. check_token();
  54. $markup = new WHMCS\View\Markup\Markup();
  55. echo json_encode(array('body' => $markup->transform($whmcs->get_req_var('content'), 'markdown')));
  56. WHMCS\Terminus::getInstance()->doExit();
  57. } else {
  58. if ($action == 'manage-service') {
  59. check_token();
  60. $serviceId = App::getFromRequest('service-id');
  61. $server = new WHMCS\Module\Server();
  62.  
  63. if (substr($serviceId, 0, 1) == 'a') {
  64. $server->loadByAddonId((int) substr($serviceId, 1));
  65. $errorPrependText = 'An error occurred when managing Service Addon ID: ' . (int) substr($serviceId, 1) . ': ';
  66. } else {
  67. $serviceId = (int) $serviceId;
  68. $server->loadByServiceID($serviceId);
  69. $errorPrependText = 'An error occurred when managing Service ID: ' . $serviceId . ': ';
  70. }
  71.  
  72. $serviceServerParams = $server->buildParams();
  73. $allowedModuleFunctions = array();
  74. $clientAreaAllowedFunctions = $server->call('ClientAreaAllowedFunctions');
  75.  
  76. if (is_array($clientAreaAllowedFunctions) && !array_key_exists('error', $clientAreaAllowedFunctions)) {
  77. foreach ($clientAreaAllowedFunctions as $functionName) {
  78. if (is_string($functionName)) {
  79. $allowedModuleFunctions[] = $functionName;
  80. }
  81. }
  82. }
  83.  
  84. $clientAreaCustomButtons = $server->call('ClientAreaCustomButtonArray');
  85.  
  86. if (is_array($clientAreaCustomButtons) && !array_key_exists('error', $clientAreaAllowedFunctions)) {
  87. foreach ($clientAreaCustomButtons as $buttonLabel => $functionName) {
  88. if (is_string($functionName)) {
  89. $allowedModuleFunctions[] = $functionName;
  90. }
  91. }
  92. }
  93.  
  94. if (WHMCS\Session::get('uid') == $serviceServerParams['userid']) {
  95. if (in_array('manage_order', $allowedModuleFunctions) && $server->functionExists('manage_order')) {
  96. $apiResponse = $server->call('manage_order');
  97. $apiResponse = (isset($apiResponse['jsonResponse']) ? $apiResponse['jsonResponse'] : array());
  98.  
  99. if (is_array($apiResponse) && !empty($apiResponse['success'])) {
  100. $response = array('redirect' => $apiResponse['redirect']);
  101. } else {
  102. $errorMsg = (isset($apiResponse['error']) ? $apiResponse['error'] : 'An unknown error occurred');
  103. $response = array('error' => $errorMsg);
  104. }
  105. } else {
  106. $response = array('error' => 'Function Not Allowed');
  107. }
  108. } else {
  109. $response = array('error' => 'Access Denied');
  110. }
  111.  
  112. echo json_encode($response);
  113. WHMCS\Terminus::getInstance()->doExit();
  114. } else {
  115. if ($action == 'dismiss-email-banner') {
  116. check_token();
  117. WHMCS\Session::setAndRelease('DismissEmailVerificationBannerForSession', true);
  118. echo json_encode(array('success' => true));
  119. WHMCS\Terminus::getInstance()->doExit();
  120. }
  121. }
  122. }
  123. }
  124. }
  125.  
  126. $activeLanguage = WHMCS\Session::get('Language');
  127.  
  128. if ($action == 'changesq' || $whmcs->get_req_var('2fasetup')) {
  129. $action = 'security';
  130. }
  131.  
  132. $ca = new WHMCS\ClientArea();
  133. $ca->setPageTitle($whmcs->get_lang('clientareatitle'));
  134. $ca->addToBreadCrumb('index.php', $whmcs->get_lang('globalsystemname'))->addToBreadCrumb('clientarea.php', $whmcs->get_lang('clientareatitle'));
  135. $ca->initPage();
  136. $legacyClient = new WHMCS\Client($ca->getClient());
  137. $clientInformation = $legacyClient->getClientModel();
  138. $clientInformationAvailable = (is_null($clientInformation) ? false : true);
  139. $verifyEmailAddressEnabled = WHMCS\Config\Setting::getValue('EnableEmailVerification');
  140. $emailVerificationPending = false;
  141. $emailVerificationRecentlyCleared = false;
  142. $verificationIdNotValid = false;
  143.  
  144. if ($verifyEmailAddressEnabled) {
  145. $verificationId = $whmcs->get_req_var('verificationId');
  146.  
  147. if (!empty($verificationId)) {
  148. $transientData = WHMCS\TransientData::getInstance();
  149. $transientDataName = $transientData->retrieveByData($verificationId);
  150. $initialVerificationId = WHMCS\Session::get('initialVerificationId');
  151. $smartyvalues['verificationId'] = $verificationId;
  152. $smartyvalues['transientDataName'] = $transientDataName;
  153.  
  154. if (!$clientInformationAvailable) {
  155. WHMCS\Session::set('initialVerificationId', $verificationId);
  156. } else {
  157. if ($initialVerificationId != $verificationId && !$clientInformation->emailVerified) {
  158. WHMCS\Session::delete('uid');
  159. WHMCS\Session::set('initialVerificationId', $verificationId);
  160. } else {
  161. if ($transientDataName) {
  162. $clientInformation->emailVerified = true;
  163. $clientInformation->save();
  164. run_hook('ClientEmailVerificationComplete', array('userId' => $ca->getUserID()));
  165. $emailVerificationRecentlyCleared = true;
  166. $transientData->delete($transientDataName);
  167. WHMCS\Session::delete('initialVerificationId');
  168. } else {
  169. if (!$clientInformation->emailVerified) {
  170. $verificationIdNotValid = true;
  171. }
  172. }
  173. }
  174. }
  175. }
  176.  
  177. if ($clientInformationAvailable) {
  178. $isEmailAddressVerified = $clientInformation->isEmailAddressVerified();
  179.  
  180. if (!$isEmailAddressVerified && !WHMCS\Session::get('DismissEmailVerificationBannerForSession')) {
  181. $emailVerificationPending = true;
  182. }
  183. }
  184. }
  185.  
  186. $smartyvalues['emailVerificationPending'] = $emailVerificationPending;
  187. $ca->requireLogin();
  188.  
  189. if ($emailVerificationRecentlyCleared) {
  190. $smartyvalues['emailVerificationIdValid'] = true;
  191. } else {
  192. if ($verificationIdNotValid) {
  193. $smartyvalues['emailVerificationIdValid'] = false;
  194. }
  195. }
  196.  
  197. if ($action == 'hosting') {
  198. $ca->addToBreadCrumb('clientarea.php?action=hosting', $whmcs->get_lang('clientareanavhosting'));
  199. }
  200.  
  201. if (in_array($action, array('products', 'services', 'cancel'))) {
  202. $ca->addToBreadCrumb('clientarea.php?action=products', $whmcs->get_lang('clientareaproducts'));
  203. }
  204.  
  205. if (in_array($action, array('domains', 'domaindetails', 'domaincontacts', 'domaindns', 'domainemailforwarding', 'domaingetepp', 'domainregisterns', 'domainaddons'))) {
  206. $ca->addToBreadCrumb('clientarea.php?action=domains', $whmcs->get_lang('clientareanavdomains'));
  207. }
  208.  
  209. if ($action == 'invoices') {
  210. $ca->addToBreadCrumb('clientarea.php?action=invoices', $whmcs->get_lang('invoices'));
  211. }
  212.  
  213. if ($action == 'emails') {
  214. $ca->addToBreadCrumb('clientarea.php?action=emails', $whmcs->get_lang('clientareaemails'));
  215. }
  216.  
  217. if ($action == 'addfunds') {
  218. $ca->addToBreadCrumb('clientarea.php?action=addfunds', $whmcs->get_lang('addfunds'));
  219. }
  220.  
  221. if ($action == 'masspay') {
  222. $ca->addToBreadCrumb('clientarea.php?action=masspay' . (($whmcs->get_req_var('all') ? '&all=true' : '')) . '#', $whmcs->get_lang('masspaytitle'));
  223. }
  224.  
  225. if ($action == 'quotes') {
  226. $ca->addToBreadCrumb('clientarea.php?action=quotes', $whmcs->get_lang('quotestitle'));
  227. }
  228.  
  229. $currency = $legacyClient->getCurrency();
  230.  
  231. if (substr($action, 0, 6) == 'domain' && $action != 'domains') {
  232. $domainID = $whmcs->get_req_var('id');
  233.  
  234. if (!$domainID) {
  235. $domainID = $whmcs->get_req_var('domainid');
  236. }
  237.  
  238. $domains = new WHMCS\Domains();
  239. $domainData = $domains->getDomainsDatabyID($domainID);
  240.  
  241. if (!$domainData) {
  242. redir('action=domains', 'clientarea.php');
  243. }
  244.  
  245. $domainModel = WHMCS\Domain\Domain::find($domainData['id']);
  246. $ca->setDisplayTitle(Lang::trans('managing') . ' ' . $domainData['domain']);
  247. $domainName = new WHMCS\Domains\Domain($domainData['domain']);
  248. $managementOptions = $domains->getManagementOptions();
  249.  
  250. if ($domainModel->registrarModuleName) {
  251. $registrar = new WHMCS\Module\Registrar();
  252. $registrar->setDomainID($domainModel->id);
  253.  
  254. if ($registrar->load($domainModel->registrarModuleName)) {
  255. $params = $registrar->getSettings();
  256. }
  257. }
  258.  
  259. $ca->assign('managementoptions', $managementOptions);
  260. }
  261.  
  262. $ca->assign('action', $action);
  263. $ca->assign('clientareaaction', $action);
  264.  
  265. if ($action == '') {
  266. $templateVars = $ca->getTemplateVariables();
  267. $ca->setDisplayTitle(Lang::trans('welcomeback') . ', ' . $templateVars['loggedinuser']['firstname']);
  268. $ca->setTemplate('clientareahome');
  269. $clientId = $ca->getClient()->id;
  270. $panels = array();
  271.  
  272. if (checkContactPermission('invoices', true)) {
  273. $overdueInvoices = WHMCS\Billing\Invoice::with('transactions')->whereUserid($clientId)->overdue()->massPay(false)->get();
  274.  
  275. if (0 < count($overdueInvoices)) {
  276. $msg = Lang::trans('clientHomePanels.overdueInvoicesMsg', array(':numberOfInvoices' => count($overdueInvoices), ':balanceDue' => formatCurrency($overdueInvoices->sum('balance'))));
  277. $panels[] = array('name' => 'Overdue Invoices', 'label' => Lang::trans('clientHomePanels.overdueInvoices'), 'icon' => 'fa-calculator', 'extras' => array('color' => 'red', 'btn-icon' => 'fas fa-arrow-right', 'btn-link' => 'clientarea.php?action=masspay&all=true', 'btn-text' => Lang::trans('invoicespaynow')), 'bodyHtml' => '<p>' . $msg . '</p>', 'order' => '10');
  278. } else {
  279. $unpaidInvoices = WHMCS\Billing\Invoice::with('transactions')->whereUserid($clientId)->unpaid()->massPay(false)->get();
  280.  
  281. if (0 < count($unpaidInvoices)) {
  282. $msg = Lang::trans('clientHomePanels.unpaidInvoicesMsg', array(':numberOfInvoices' => count($unpaidInvoices), ':balanceDue' => formatCurrency($unpaidInvoices->sum('balance'))));
  283. $panels[] = array('name' => 'Unpaid Invoices', 'label' => Lang::trans('clientHomePanels.unpaidInvoices'), 'icon' => 'fa-calculator', 'extras' => array('color' => 'red', 'btn-icon' => 'fas fa-arrow-right', 'btn-link' => 'clientarea.php?action=invoices', 'btn-text' => Lang::trans('viewAll')), 'bodyHtml' => '<p>' . $msg . '</p>', 'order' => '10');
  284. }
  285. }
  286. }
  287.  
  288. if (checkContactPermission('domains', true)) {
  289. $domainsDueWithin45Days = $ca->getClient()->domains()->nextDueBefore(WHMCS\Carbon::now()->addDays(45))->count();
  290.  
  291. if (0 < $domainsDueWithin45Days) {
  292. $msg = Lang::trans('clientHomePanels.domainsExpiringSoonMsg', array(':days' => 45, ':numberOfDomains' => $domainsDueWithin45Days));
  293. $extras = array();
  294.  
  295. if (WHMCS\Config\Setting::getValue('EnableDomainRenewalOrders')) {
  296. $extras = array('btn-icon' => 'fas fa-sync', 'btn-link' => routePath('cart-domain-renewals'), 'btn-text' => Lang::trans('domainsrenewnow'));
  297. }
  298.  
  299. $extras['color'] = 'midnight-blue';
  300. $panels[] = array('name' => 'Domains Expiring Soon', 'label' => Lang::trans('clientHomePanels.domainsExpiringSoon'), 'icon' => 'fa-globe', 'extras' => $extras, 'bodyHtml' => '<p>' . $msg . '</p>', 'order' => '50');
  301. }
  302. }
  303.  
  304. if (checkContactPermission('products', true)) {
  305. $servicesList = array();
  306. $services = $ca->getClient()->services()->whereDomainstatus('Active')->orderBy('id', 'desc')->limit(101)->get();
  307.  
  308. foreach ($services as $service) {
  309. $servicesList[] = array('uri' => 'clientarea.php?action=productdetails&id=' . $service->id, 'label' => $service->product->productGroup->name . ' - ' . $service->product->name . '<br /><span class="text-domain">' . $service->domain . '</span>');
  310. }
  311. $servicesPanel = array('name' => 'Active Products/Services', 'label' => Lang::trans('clientHomePanels.activeProductsServices'), 'icon' => 'fa-cube', 'extras' => array('color' => 'gold', 'btn-icon' => 'fas fa-plus', 'btn-link' => 'clientarea.php?action=services', 'btn-text' => Lang::trans('viewAll')), 'children' => $servicesList, 'order' => '100');
  312.  
  313. if (count($servicesList) == 0) {
  314. $servicesPanel['bodyHtml'] = '<p>' . Lang::trans('clientHomePanels.activeProductsServicesNone') . '</p>';
  315. } else {
  316. if (100 < count($servicesList)) {
  317. unset($servicesPanel['children'][100]);
  318. $servicesPanel['bodyHtml'] = '<p>' . Lang::trans('clientHomePanels.showingRecent100') . '.</p>';
  319. }
  320. }
  321.  
  322. $panels[] = $servicesPanel;
  323. }
  324.  
  325. if (checkContactPermission('orders', true) && (WHMCS\Config\Setting::getValue('AllowRegister') || WHMCS\Config\Setting::getValue('AllowTransfer'))) {
  326. $bodyContent = "<form method=\"post\" action=\"domainchecker.php\">\n <div class=\"input-group margin-10\">\n <input type=\"text\" name=\"domain\" class=\"form-control\" />\n <div class=\"input-group-btn\">";
  327.  
  328. if (WHMCS\Config\Setting::getValue('AllowRegister')) {
  329. $bodyContent .= "\n <input type=\"submit\" value=\"" . Lang::trans('domainsregister') . '" class="btn btn-success" />';
  330. }
  331.  
  332. if (WHMCS\Config\Setting::getValue('AllowTransfer')) {
  333. $bodyContent .= "\n <input type=\"submit\" name=\"transfer\" value=\"" . Lang::trans('domainstransfer') . '" class="btn" />';
  334. }
  335.  
  336. $bodyContent .= "\n </div>\n </div>\n </form>";
  337. $panels[] = array('name' => 'Register a New Domain', 'label' => Lang::trans('navregisterdomain'), 'icon' => 'fa-globe', 'extras' => array('color' => 'emerald'), 'bodyHtml' => $bodyContent, 'order' => '200');
  338. }
  339.  
  340. if (WHMCS\Config\Setting::getValue('AffiliateEnabled') && checkContactPermission('affiliates', true) && !is_null($affiliate = $ca->getClient()->affiliate)) {
  341. $currencyLimit = convertCurrency(WHMCS\Config\Setting::getValue('AffiliatePayout'), 1, $currency['id']);
  342. $amountUntilWithdrawal = $currencyLimit - $affiliate->balance;
  343.  
  344. if (0 < $amountUntilWithdrawal) {
  345. $msgTemplate = 'clientHomePanels.affiliateSummary';
  346. } else {
  347. $msgTemplate = 'clientHomePanels.affiliateSummaryWithdrawalReady';
  348. }
  349.  
  350. $msg = Lang::trans($msgTemplate, array(':commissionBalance' => formatCurrency($affiliate->balance), ':amountUntilWithdrawalLevel' => formatCurrency($amountUntilWithdrawal)));
  351. $panels[] = array('name' => 'Affiliate Program', 'label' => Lang::trans('clientHomePanels.affiliateProgram'), 'icon' => 'fa-users', 'extras' => array('color' => 'teal', 'btn-icon' => 'fas fa-arrow-right', 'btn-link' => 'affiliates.php', 'btn-text' => Lang::trans('moreDetails')), 'bodyHtml' => '<p>' . $msg . '</p>', 'order' => '300');
  352. }
  353.  
  354. if (!function_exists('AddNote')) {
  355. require ROOTDIR . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'ticketfunctions.php';
  356. }
  357.  
  358. $tickets = array();
  359. $statusfilter = array();
  360. ......................................................................
  361. ........................................
  362. ..............
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement