-
Content Count
215 -
Joined
-
Last visited
-
Days Won
15
Content Type
Profiles
Forums
Calendar
Hotfixes
Everything posted by leemahoney3
-
Disable client area if invoices unpaid
leemahoney3 replied to jeebee123's topic in Share Ideas for WHMCS Modules
May run into the issue if the client has multiple unpaid invoices, which one would they be redirected to? Perhaps a redirection to the invoice page would work, but all payment related pages would need to be whitelisted in the hook. -
Try using fab fa-whatsapp
-
Can't login to WHMCS admin panel
leemahoney3 replied to Norservers's topic in Troubleshooting Issues
Hi, Did you resolve this? If not, try using a different web browser. If the issue persists, I'd suggest contacting WHMCS Support. -
Hi, Can you explain how you resolved this? Might be useful for others in the future.
-
Links (ahrefs) in emails aren't working
leemahoney3 replied to jeebee123's topic in Troubleshooting Issues
Could also be your email client, have you checked to see if the same results are replicated in other email clients? -
Error: Invalid filename for redirect:
leemahoney3 replied to sol2010's topic in Troubleshooting Issues
Might... just give it a few years... 😬 -
Hi, What exactly are you looking to do with $title and $bodyHtml ? You declare them but you've not passed them back to the sidebar.
-
Not sure if setAttribute still works, can't test right now but give this a go: <?php #adding Menu Item to primaryNavbar use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar) { $primaryNavbar->addChild('Premium Support') ->setUri('My url') ->setAttribute('target', '_blank') ->setOrder(70); });
-
Hi, The $captureMinute variable should reference the minute after the hour that you want the cron to run on. E.g. if your cron runs every 1 or 5 minutes, then setting the $captureMinute variable to 10 would mean that it runs at 10 minutes past the hour (e.g. 00.10, 06.10, 12.10, 18.10) Setting it to 60 will not work, as your cron is running every five minutes, the following values will be acceptable: 05, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
-
Schedule an invoice send date for the future?
leemahoney3 replied to sol2010's topic in Admin & Configuration Questions
Don't think this is natively possible, WHMCS only allows you to specify how many days before the due date the invoice is generated (System Settings > Automation Settings > Billing Settings > Invoice Generation). Could very easily be implemented though with a hook if you want all invoices to be generated on a specific day each month. -
It's possible WHMCS has changed how the crons are run, I'll have a look later. If you run the cron file manually (e.g. https://yourdomain.com/crons/cron.php), can you confirm it works? Check Last Cron Invocation under Automation Status.
-
It would disable the domain sync yeah.
-
Hiya Dkuzik, Have you changed the directory of your crons folder? (e.g. outside of your public document root)
-
Hi dewdropz, So I don't have the modules for Epik or ConnectReseller, however you just need to amend the values in the arrays below. Create a file in your /includes/hooks/ folder and paste the following code: <?php use WHMCS\Database\Capsule; if (!defined('WHMCS')) { die('You cannot access this file directly.'); } function pre_register_nameservers($vars) { $registrars = [ 'resellerclub' => [ 'ns1' => 'ns1.test.com', 'ns2' => 'ns2.test.com', 'ns3' => '', 'ns4' => '', ], 'connectreseller' => [ 'ns1' => 'ns3.test.com', 'ns2' => 'ns4.test.com', ], 'epik' => [ 'ns1' => 'ns5.test.com', 'ns2' => 'ns6.test.com', 'ns3' => 'ns7.test.com', ], ]; /* ------------------------------------------------- */ /* ONLY EDIT VARIABLES ABOVE THIS LINE */ /* ------------------------------------------------- */ $domain = $vars['params']['domain']; $domainDetails = Capsule::table('tbldomains')->where('domain', $domain)->first(); foreach ($registrars as $registrar => $nameservers) { if ($domainDetails->registrar != $registrar) { continue; } if (empty($nameservers)) { continue; } $nameservers = array_reverse($nameservers); $nameservers['domainid'] = $domainDetails->id; $command = localAPI('DomainUpdateNameservers', array_reverse($nameservers)); if ($command['result'] == 'error') { logActivity("Automatic nameserver assignment failed for {$domain} with error: {$command['error']}", $domainDetails->userid); } } } add_hook('AfterRegistrarRegistration', 1, 'pre_register_nameservers'); Edit the nameserver arrays as required, you don't need to include all nameservers, just the ones you wish to update. (Though I'd suggest defining them all and leaving the ones that are not needed blank) I've left in resellerclub as an example, you will need to update the names for epik and connectreseller if they are not correct. I don't have the modules so am unsure what they are called. However if you look up the tbldomains database table, the correct names will be listed under the registrar column. You will obviously need to update the nameservers also, I've just left them in as an example.
-
Agreed, Lagom is quite highly customized and their support will be able to assist further.
-
Hi dewdropz, I'll put one together for you later.
-
Unknown column 'shortDescription' in 'field list'
leemahoney3 replied to FutureX's topic in Troubleshooting Issues
Good to hear you solved it anyways. -
Seeing as the one time and recurring price is effectively the same field in the database, no this is not possible natively. You'd need a custom module to achieve this.
-
Database Error after updating to latest version
leemahoney3 replied to jynxy's topic in Troubleshooting Issues
That addon seems to be causing a bit of upset lately! Remove the addons files completely (move them to a temporary folder outside of your whmcs installation if necessary) and check inside your /includes/hooks/ folder also. Likely something is lurking around. -
Database Error after updating to latest version
leemahoney3 replied to jynxy's topic in Troubleshooting Issues
Bizarre, just tested that on my end and its not throwing any errors. If you look in your database, can you see the short_description column on the tblproducts table? Should be towards the end just before the tagline column. -
Database Error after updating to latest version
leemahoney3 replied to jynxy's topic in Troubleshooting Issues
What version of WHMCS are you running? On the latest version (8.5.1) the column name is short_description, not shortDescription. -
Updated code, now allows you specify the minute on the hour you want to run the code (so it only runs once per hour!). E.g. If your cron is set to every five minutes (as yours is), then setting $captureMinute to 10 would mean the code will run on the 10th minute past the hour and not again until the next hour specified in the $captureHours array comes around. <?php use WHMCS\Carbon; use WHMCS\Database\Capsule; function cron_capture_payment($vars) { # How many days before the due date you wish to capture payment # e.g. if set to 3 and todays date is 6th Sept, only unpaid invoice due on the 9th Sept will be checked $daysBeforeDueDateToCapture = 0; # What hours of the day you wish to capture payment (e.g. '06' is 6am, '18' is 6pm) $captureTimes = ['00', '06', '12', '18']; # Which minute after the hour you wish this check to run at (e.g. if your cron is set to run every 5 minutes, can set this to 5, 10, 15, 20, 25, etc...) $captureMinute = 10; # If you only want to capture payments on certain payment methods, add them here (e.g. 'stripe', 'paypalcheckout') $allowedPaymentMethods = []; # If enabled and the capture fails, log the error in the clients log $logErrors = true; /* ------------------------------------------ */ /* ONLY EDIT VARIABLES ABOVE THIS LINE */ /* ------------------------------------------ */ # Grab the current time and date $currentTime = Carbon::now()->format('H'); $currentMinute = Carbon::now()->format('i'); $currentDay = Carbon::now()->format('Y/m/d'); # Check if the current hour is in the $captureTimes array if (in_array($currentTime, $captureTimes) && $currentMinute == $captureMinute) { # Calculate the due date based on the $daysBeforeDueDateToCapture variable $theDueDate = Carbon::now()->addDays($daysBeforeDueDateToCapture)->format('Y-m-d'); # Grab all unpaid invoices that match the due date $invoices = Capsule::table('tblinvoices')->where('duedate', $theDueDate)->where('status', 'Unpaid')->get(); # Loop through the invoices foreach ($invoices as $invoice) { # If the $allowedPaymentMethods is not empty, check that the invoice's payment method is in it if (!empty($allowedPaymentMethods) && !in_array($invoice->paymentmethod, $allowedPaymentMethods)) { return; } # Attempt to capture payment $result = localAPI('CapturePayment', [ 'invoiceid' => $invoice->id ]); print_r($result); # If $logErrors is true and an error is present, log it to the clients log if ($result['result'] === 'error' && $logErrors) { logActivity("Automatic payment capture hook failed on invoice #{$invoice->id}: {$result['message']}", $invoice->userid); } } } } add_hook('AfterCronJob', 1, 'cron_capture_payment');
-
whmpca is related to WHMPress. Have you temporarily disabled all addons and hooks? Strange that nothing shows in any of logs.