Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by sentq

  1. while I encourage and appreciate people contributions, its shame to see someone taking out the original contributor name, that is something I never understand!
  2. the same way we exclude product group, try the following: <?php add_hook("ClientAreaPage",1,function($vars){ if (!empty($_GET['cartshare'])) { return; } # Product Groups Excluded From The Redirection $excludedGroups = array(8, 10, 11, 12, 13, 15, 6, addons, renewals); # Product Bundles Excluded From The Redirection $excludedBundles = array(2); # Validate Product Groups if ($vars['filename']=="cart" && in_array($_REQUEST['gid'], $excludedGroups)){ return; } # Validate Product Bundles if ($vars['filename']=="cart" && in_array($_REQUEST['bid'], $excludedBundles)){ return; } if ($vars['filename']=="cart" && !isset($_REQUEST['a'])){ header("Location: index.php"); exit; } });
  3. well, for WHMCS main language I would use the following: Lang::trans('sms_message', array('name' => "John")) and that support to work as they use Laravel! but as you want to use Addon language translation and as all the phrases has been already assigned into an array ($vars['_lang']) and since WHMCS doesn't have the same functionality above, the only option is to use "str_replace" which will give you the same result.
  4. you would need to do it by adding a key in the translation phrase as: $_ADDONLANG['sms_message'] = "Hello :name"; then when you are about to display/use that phrase, you should replace that key with the appropriate value: function addonmodule_output($vars) { $_lang = $vars['_lang']; // an array of the currently loaded language variables from addon module $helloMessage = str_replace(":name", "John", $_lang['sms_message']); echo $helloMessage; // Hello John } that's how it works, and you can define as many different keys as you would need
  5. the module on marketplace is for the FURY platform indeed
  6. you need to upload it inside "{WHMCS-Main-Directory}/includes/hooks/" directory
  7. change your if statement to the following: if ($data->total == '0.00' && $data->credit == '0.00') so it will prevent invoices with total equal "0.00" from being sent, while allow invoices paid with credit to be sent normally
  8. the following action hook will check if client is logged in, and if the configured custom field has a value, then add new menu item to primary navbar as an example. create new php file (eg. Navbar_MonitorLoginLink.php) inside "/includes/hooks/" directory, copy and edit the required lines: <?php /** * @author SENTQ */ use WHMCS\Database\Capsule; # We are working on Primary Navbar add_hook("ClientAreaPrimaryNavbar", 1, function($primaryNavbar){ # Client Custom Field Name $customFieldName = "Username"; // **Change this value # Get Client $client = Menu::context("client"); # Not Logged In! if ($client === null){ return; } # Get Custom Field Value $getURL = Capsule::table("tblcustomfieldsvalues") ->join("tblcustomfields", "tblcustomfields.id", "=", "tblcustomfieldsvalues.fieldid") ->where("tblcustomfieldsvalues.relid", "=", $client->id) ->where("tblcustomfields.type", "=", "client") ->where("tblcustomfields.fieldname", "=", $customFieldName) ->select(["tblcustomfieldsvalues.value"]) ->first(); # Custom Field Value is Empty! if (!$getURL->value){ return; } # Add New Menu Item To Primary Navbar -> Home $newLoginLink = $primaryNavbar->addChild('Home', array( "name" => "New_login_link", "label" => "New Login Link", // **Change this line as well "uri" => $getURL->value, "order" => 100 )); });
  9. you can upgrade to the latest version directly, the auto update feature could be failed due to any issue you should investigate it if you want to proceed with it, but manual update will complete the job too. * its important to keep a full backup of both your files and database in case.
  10. it's already displayed in every page except for pages where client are not logged-in, could you explain what you mean in more details?
  11. you may advertise about your module in the following section instead: https://whmcs.community/community/89-commercial-modules-and-addons/
  12. ClientAreaPage action hook point triggered when anyone browse your client area (Admins, Clients, Contacts and normal clients) if you need to display these Todos to logged-in clients only (this includes Admins, Clients and Contacts) all you need to do is to change the following line from: $client = Menu::context('client'); to: $client = Menu::context('client'); # Return empty todolist if client not loggedin, admins still able to browse this section if (is_null($client) && !isset($_SESSION['adminid'])){ return array("todologs" => array()); }
  13. this is the case when you need to use coupons to identify the affiliate account and assign it to that order, but people will not be encouraged to enter any promotion code if it doesn't give them any discount.
  14. @nimafire I've updated and tested the original widget code: https://whmcs.community/topic/281801-admin-widget-to-update-database/?do=findComment&comment=1275269
  15. not out of the box, but it's doable
  16. this should do the trick, create new {File-Name}.php file inside /includes/hooks/ directory and place the following lines inside it: <?php /** * Prevent "Invoice Payment Reminder" email from being sent to specific clients * * @author SENTQ */ use WHMCS\Database\Capsule; add_hook("EmailPreSend", 1, function($vars){ $clientIds = array(1, 12, 25); if ($vars['messagename'] === "Invoice Payment Reminder"){ $getClientId = Capsule::table("tblinvoices")->where("id", "=", $vars['relid'])->first(); if (in_array($getClientId->userid, $clientIds)){ return array("abortsend" => true); } } });
  17. it could easily done, if you're interested contact me here for quote
  18. I could include it before, but as not every website affected by this I thought pointing to the fix would be enough
  19. @sitesme if you need it as a hook file here it is <?php # Fix Six Template's Content Area add_hook("ClientAreaHeadOutput", 1, function($vars){ return '<style type="text/css">.main-content {min-height: 600px;}</style>'; }); create new php file inside /includes/hooks/ directory called "FixSixTemplateContentArea.php" or anything else as you prefer and place the previous code inside it, now you can forget about fixing this issue again
  20. there is no default language for google, you need to index both versions of your website, then when a user search for something that could be found in your website, Google will display the version suits the user
  21. WHMCS already has this file included, you don't need to include it again
  22. wasn't able to reproduce the issue in WHMCS v7.4.1, in what version you experience the issue? you need to specify the "Next Paid Invoice Number" as integer, and be careful as it may generate multiple invoices with the same number
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated