Jump to content

aggrosoft

Member
  • Posts

    17
  • Joined

  • Last visited

About aggrosoft

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

aggrosoft's Achievements

Junior Member

Junior Member (1/3)

0

Reputation

  1. I setup my products using the licensing addon, I added the Support & Updates Addon with a set price for 1 year (included for free with initial purchase) all of this works fine. What I need to disable is the auto renew of this addon after the first year - this should be optional as we do not need the invoices and the e-mails that will be attached with that. How can I configure this? The customers have issues understanding why they get another invoice after the first year.
  2. +1 on xyzulu's post - the developers should be responding to the questions in the developer forums. It's impossible to get any information there that really helps, the mods just try to answer with some pre written infos or links to documentation we already read. I always had to open a ticket, which makes the developer area of the forum useless in most cases. The same goes for the feature requests, but this is not the topic here.
  3. Yes, adding them works as it should. But why can't we just override the variables already in place?
  4. The LicensingAddonVerify Hook seems to have a weird behaviour, what I wanted to do is to override the status variable in the returned response. So I did something like this: <?php add_hook('LicensingAddonVerify', 1, function($vars) { return [ 'status' => 'Active' ]; }); But instead of overriding the old value he will return an array in the status key which holds both values: Array ( [status] => Array ( 'Expired', 'Active' ) ... ) Is there any way to get that to work?
  5. As the default ticket list was too cumbersome for us to work with we created a new Module for filtering, editing and working with tickets in a real ajax fashioned way. See the attached screenshots and let me know if you are interested in testing. Currently the interface has some hardwired german language strings in it, so be warned. Features: Real auto refreshing ajax grid Mass editing Works with project management addon Includes a timer that allows time tracking on a per ticket base, allows to convert the time tracking entries into billable items with a click WHMCS 7.0 tested
  6. This hook at http://docs.whmcs.com/Hooks:TransliterateTicketText is meant to be used to modify the ticket message before it is imported into whmcs when the user replies by email. The Hook description says "The global variables subject and message can be accessed and edited if required." This is not working, the hook does not allow a return value and also the variables are not global at all.
  7. I use the Secure Ticket Note addon from serverping - works perfectly: https://www.serverping.net/clients/cart.php?gid=3
  8. You did not understand the question, anyways - it's easy. You can just add your own php files to the api folder and they will be used as the action: <?php //File includes/api/adddownload.php use WHMCS\Database\Capsule; if (!defined("WHMCS")) { die("This file cannot be accessed directly"); } function getParams($vars) { $param = array('action' => array(), 'params' => array()); if (isset($vars['cmd'])) { //Local API mode $param['action'] = $vars['cmd']; $param['params'] = (object) $vars['apivalues1']; $param['adminuser'] = $vars['adminuser']; } else { //Post CURL mode $param['action'] = $vars['_REQUEST']['action']; unset($vars['_REQUEST']['username']); unset($vars['_REQUEST']['password']); unset($vars['_REQUEST']['action']); unset($vars['_REQUEST']['accesskey']); $param['params'] = (object) $vars['_REQUEST']; } return (object) $param; } try { // Get the arguments $vars = get_defined_vars(); $params = getParams($vars); $data = $params->params; $pid = Capsule::table('tblproducts')->where('moduleid', $data->module)->value('id'); if($pid){ $downloadId = Capsule::table('tbldownloads') ->insertGetId([ 'category' => isset($data->category) ? $data->category : 2, 'type' => isset($data->type) ? $data->type : 'zip', 'title' => $data->title, 'description' => $data->description, 'location' => $data->file, 'clientsonly' => isset($data->clientsonly) ? $data->clientsonly : 1, 'created_at' => new DateTime(), 'updated_at' => new DateTime(), 'productdownload' => isset($data->productdownload) ? $data->productdownload : 1 ]); Capsule::table('tblproduct_downloads')->insert([ 'product_id' => $pid, 'download_id' => $downloadId ]); //Cleanup old downloads, keep maximum of 5 Versions /*$count = Capsule::table('tblproduct_downloads')->where([ 'product_id' => $pid ])->count(); if($count > 5){ }*/ }else{ throw new Exception('Module with ID '.$data->module.' not found'); } $apiresults = array("result" => "success", "message" => "Download added successfully!"); } catch (Exception $e) { $apiresults = array("result" => "error", "message" => $e->getMessage()); }
  9. Got exactly the same question? How is this supposed to work?
  10. Is there any way to add our own custom api functions for the external api or do we have to code the whole authentication etc. by ourselves?
  11. Ok this is a good advise but still not exactly what I'm looking for. What I have found now is that I can have Support/Updates Addon - this works for what I need. I'm setting it up as follows now: Create a product with one-time billing of 99$ Create an addon for that product support with yearly fee of 49,50$ Add it as the Support/Upgrades addon in the software licensing module settings It would be great if the addons had a feature to have a percentage price based on the attached product. So I wouldn't have to create an addon for every product. Does anybody know a module that does this?
  12. Maybe I'm just a little overwhelmed by all the options I can configure for a product - but what is the best way to sell a product for a fixed price (say 99$). The user can then download and use this product including its license as long as he wants to. But if he needs support and updates after that year he has to pay like 49$ to extend for another year. Can this be done?
  13. Yeah I thought it might be easier to use the function that is already there, I rolled my own implementation. Maybe WHMCS will allow us to use the internal functions some day - until then your solution is a good way. Thanks for your feedback!
  14. What is the correct way to retrieve a product and all of the pricing information. What I want to build is a custom detail page for a product, but I need the information of products just like you would see them on the cart.php page. {if $product.bid} {$LANG.bundledeal}<br /> {if $product.displayprice} <span class="price">{$product.displayprice}</span> {/if} {else} {if $product.hasconfigoptions} {$LANG.startingfrom} <br /> {/if} <span class="price">{$product.pricing.minprice.price}</span> <br /> {if $product.pricing.minprice.cycle eq "monthly"} {$LANG.orderpaymenttermmonthly} {elseif $product.pricing.minprice.cycle eq "quarterly"} {$LANG.orderpaymenttermquarterly} {elseif $product.pricing.minprice.cycle eq "semiannually"} {$LANG.orderpaymenttermsemiannually} {elseif $product.pricing.minprice.cycle eq "annually"} {$LANG.orderpaymenttermannually} {elseif $product.pricing.minprice.cycle eq "biennially"} {$LANG.orderpaymenttermbiennially} {elseif $product.pricing.minprice.cycle eq "triennially"} {$LANG.orderpaymenttermtriennially} {/if} {/if} If i just load the product via capsule the whole $product.pricing is missing, even if I join it in the fields will miss the whole minprice etc. I tried using the WHMCS\Product\Product model but this will not give me this information either.
  15. Is there any hook to get rid of that old tinymce editor installation? I thought about hacking it through the System hooks, but maybe I should be using something more appropriate.
×
×
  • 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