This one below is working now !!
<?php
use WHMCS\Database\Capsule;
function hook_disableAllEmails($vars)
{
$disallowedGroupID = '1'; // Insert Client Group ID
$emailTemplates = array('Credit Card Payment Due', 'Automated Password Reset', 'Invoice Created', 'Invoice Modified', 'Upgrade Order Cancelled', 'Other Product/Service Welcome Email', 'Cancellation Request Confirmation', 'First Invoice Overdue Notice', 'Password Reset Validation', 'Invoice Payment Reminder', 'Second Invoice Overdue Notice', 'Third Invoice Overdue Notice', 'Domain Registration Confirmation', 'Domain Renewal Confirmation', 'Domain Transfer Completed', 'Domain Transfer Failed', 'Domain Transfer Initiated', 'Expired Domain Notice', 'Upcoming Domain Renewal Notice', 'Order Confirmation', 'Password Reset Confirmation', 'Client Signup Email', 'Client Email Address Verification', 'Default Notification Message', 'Hosting Account Welcome Email', 'Service Suspension Notification', 'Service Unsuspension Notification', 'Support Ticket Opened', 'Support Ticket Reply', 'Support Ticket Auto Close Notification','Credit Card Invoice Created', 'Credit Card Payment Confirmation', 'Credit Card Payment Failed', 'Credit Card Payment Pending', 'Direct Debit Payment Confirmation', 'Direct Debit Payment Failed', 'Direct Debit Payment Pending', 'Direct Debit Payment Failed', 'Credit Card Invoice Created', 'Credit Card Payment Confirmation', 'Credit Card Payment Failed', 'Credit Card Payment Pending', 'Direct Debit Payment Confirmation', 'Direct Debit Payment Failed', 'Direct Debit Payment Pending', 'Direct Debit Payment Failed'); // Email Templates to block
if (in_array($vars['messagename'], $emailTemplates))
{
if (!Capsule::select(Capsule::raw('SELECT id FROM tblclients WHERE id = "' . $vars['relid'] . '" AND groupid = "' . $groupid . '" LIMIT 1')))
{
$output['abortsend'] = true;
return $output;
}
}
}
add_hook("EmailPreSend", 1, "hook_disableAllEmails");
?>
Question is how to prevent all emails without defining each and every email in the array ??