Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Hi, on cart.php ,there are some steps,such as cart.php?a=add&pid=xxxx cart.php?a=confproduct&i=0 cart.php?a=confdomains cart.php?a=checkout i want to ask if i can move product and domain addon service to the final page "cart.php?a=checkout" ? by the way,the clients can check if adding the extra addon on the final page. thanks
  3. dtravlos

    Stripe element gateway

    Hello again. Is there any way to work with subscriptions on whmcs using elements.js? Thanks
  4. I'm just letting anyone know how things works on WHMCS side. I've asked about this in ticket because IMHO this is not an additional feature. This is a BUG which makes national characters beking skipped in URL generation. This is what WHMCS has responded: Unfortunately we are not able to implement every feature request that is submitted. Each feature or case resolution requires significant development time and we receive a large number of requests daily. For this reason, typically those features that are popular with the community are implemented while others are not. The feature request in question has been under investigation to see if implementing it is feasible, but it has existed in our system for 6 years and in that time only 13 people have voted for it. If this is something you would like to see implemented in WHMCS, we would recommend sharing the feature request on our community and any webhosting related groups/forums you may frequent. I have no words to say how I'm dissapointed here...
  5. brian!

    Register on an external page

    I think you would need to add the code below to your form for it to try to submit the registration... <input type="hidden" name="register" value="true"/> but i'd go along with Steven in that you're biggest problems are likely to be the required fields... firstname & lastname you can make optional fields in the setup -> general settings -> other tab.... but you may need to enter the password twice (e.g two separate fields) and then it's just a case of working through any other required fields on your WHMCS registration page and perhaps passing those values as hidden fields in your form.
  6. Hi Richard yes. wrong. you can order addons multiple times - even if you already have them actively assigned to a service... then once you've added the new page etc, you can change the addon's status to "Completed" and it would be shown as "Completed" on their product addon page... you don't need to do this, but would probably look better from a housekeeping point of view (if the client views their existing addons to this service). so at any stage, regardless if you've marked them completed or whatever, they can order additional pages by ordering the addon again and again if they wish to. 🙂
  7. Addons would work, but lets use the "example"... if someone purchased the website design, then purchased the addon, for creating a new page, then later they needed a new page added, could they order it again? Seems like they could not, because if the addon was named: "add a new page to existing website" and they ordered it, then they could not buy another one, for another page. Right? Because once ordered, it is already purchased, so the addon is not there again, right? Seems like addons cannot have more than 1... -Richard
  8. but it looks like he's trying to install on Windows - and WHMCS don't support doing that. https://docs.whmcs.com/System_Requirements
  9. nothing springs to mind - though it would effectively only need a ShoppingCartValidateCheckout hook to check whether the current user already has product X when ordering product Y and if not, show an error message.... granted, if there are multiple x & y then it could get more complicated. 🙂 is there any reason why this "add a new page" can't be a product addon ? it sounds the most logical way to do it... the feature already exists in WHMCS and is designed to accommodate the validation that you're trying to do.... it seems a little like reinventing the wheel, doing this with products, if it's more suitable to have them as addons.
  10. brian!

    Invalid Domain Name Provided

    in setup -> general settings -> ordering.... do you have Block Existing Domains ticked ? https://docs.whmcs.com/Ordering_Tab#Block_Existing_Domains if you untick that box, then the above error will not be shown and the client will be able to add hosting/service to an existing domain.
  11. DewlanceHosting

    WHMCS Gift Card - By PreMadeKB

    v1.3 Released: - Minor bug fixed. - License issue resolved. - Added some modification to support WHMCS's latest version.
  12. Hi, for product addon server modules we cant assign template for clientarea. do you have any idea for show something in clientarea services page for product addons?
  13. is there a module that already exists, that will let me setup a product that requires someone already has another product we setup, already bought and active? Example: I setup a product called: "Website Design" then I setup a product called "add a new page to existing website" If they try to purchase "add a new page to existing website" but did not purchase "Website Design" then it would not let them. it would tell them they did not order the "Website Design" which the product was setup for... so they cannot order it. but if they did already purchase "Website Design" then they are allowed to order "add a new page to existing website"? is there already a module that exists that does this? Sort of the way addon products do it, but for main products...
  14. hello community... i hope all are doing very well. today i came back again for a small help with an code. basically by default now whmcs store the last 4 digit of the Credit card number of stripe gateway. which i found less confident for our clients. so i found an idea to modify the creditcard.tpl and make the RADIO BUTTON default to ENTER NEW CARD DETAILS and i will hide the 2nd radio button. this way client will never see that their credit card 4 digit is stored.. basically even storing the 4 digit we can't do anything.. but you know the clients.... can someone guide me from this code what i should modify to make default to the 1st radio button even the card number is stored in the server {if $remotecode} <div id="frmRemoteCardProcess" class="text-center" align="center"> {$remotecode} <iframe name="ccframe" class="auth3d-area" width="90%" height="600" scrolling="auto" src="about:blank"></iframe> </div> <script language="javascript"> jQuery("#frmRemoteCardProcess").find("form:first").attr('target', 'ccframe'); setTimeout("autoSubmitFormByContainer('frmRemoteCardProcess')", 1000); </script> {else} <form id="frmPayment" method="post" action="creditcard.php" class="form-horizontal" role="form"> <input type="hidden" name="action" value="submit" /> <input type="hidden" name="invoiceid" value="{$invoiceid}" /> <div class="row"> <div class="col-md-7"> {if $errormessage} {include file="$template/includes/alert.tpl" type="error" errorshtml=$errormessage} {/if} <div class="col-sm-12"> <img width="100%" src="/templates/{$template}/img/stripelogo.png"> </div> <div class="alert alert-danger text-center gateway-errors hidden"></div> <div class="form-group"> <div class="col-sm-8 col-sm-offset-4"> <div class="radio"> <label> <input type="radio" name="ccinfo" value="new" onclick="showNewCardInputFields()"{if $ccinfo eq "new" || !$cardOnFile} checked{/if} /> {$LANG.creditcardenternewcard}</label> </label> </div> <div class="radio"> <label> <input type="radio" name="ccinfo" value="useexisting" onclick="hideNewCardInputFields()" {if $cardOnFile && $ccinfo neq "new"}checked{elseif !$cardOnFile}disabled{/if} /> {$LANG.creditcarduseexisting}{if $cardOnFile} ({$existingCardType}-{$existingCardLastFour}){/if} </label> </div> </div> </div> <div class="form-group{if $userDetailsValidationError} hidden{/if}" id="billingAddressSummary"> <label for="cctype" class="col-sm-4 control-label">{$LANG.billingAddress}</label> <div class="col-sm-6"> {if $companyname}{$companyname}{else}{$firstname} {$lastname}{/if} <button type="button" id="btnEditBillingAddress" onclick="editBillingAddress()" class="btn btn-default btn-sm"{if $cardOnFile} disabled="disabled"{/if}><i class="fa fa-edit"></i> {$LANG.change}</button><br /> {$address1}{if $address2}, {$address2}{/if}<br /> {$city}, {$state}, {$postcode}<br /> {$countryname} </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputFirstName" class="col-sm-4 control-label">{$LANG.clientareafirstname}</label> <div class="col-sm-6"> <input type="text" name="firstname" id="inputFirstName" value="{$firstname}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputLastName" class="col-sm-4 control-label">{$LANG.clientarealastname}</label> <div class="col-sm-6"> <input type="text" name="lastname" id="inputLastName" value="{$lastname}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputAddress1" class="col-sm-4 control-label">{$LANG.clientareaaddress1}</label> <div class="col-sm-6"> <input type="text" name="address1" id="inputAddress1" value="{$address1}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputAddress2" class="col-sm-4 control-label">{$LANG.clientareaaddress2}</label> <div class="col-sm-6"> <input type="text" name="address2" id="inputAddress2" value="{$address2}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputCity" class="col-sm-4 control-label">{$LANG.clientareacity}</label> <div class="col-sm-6"> <input type="text" name="city" id="inputCity" value="{$city}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputState" class="col-sm-4 control-label">{$LANG.clientareastate}</label> <div class="col-sm-6"> <input type="text" name="state" id="inputState" value="{$state}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputPostcode" class="col-sm-4 control-label">{$LANG.clientareapostcode}</label> <div class="col-sm-6"> <input type="text" name="postcode" id="inputPostcode" value="{$postcode}" class="form-control" /> </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputCountry" class="col-sm-4 control-label">{$LANG.clientareacountry}</label> <div class="col-sm-6"> {$countriesdropdown} </div> </div> <div class="form-group cc-billing-address{if !$userDetailsValidationError} hidden{/if}"> <label for="inputPhone" class="col-sm-4 control-label">{$LANG.clientareaphonenumber}</label> <div class="col-sm-6"> <input type="text" name="phonenumber" id="inputPhone" value="{$phonenumber}" class="form-control" /> </div> </div> <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <label for="cctype" class="col-sm-4 control-label">{$LANG.creditcardcardtype}</label> <div class="col-sm-5"> <select name="cctype" id="cctype" class="form-control newccinfo"> {foreach from=$acceptedcctypes item=type} <option{if $cctype eq $type} selected{/if}> {$type} </option> {/foreach} </select> </div> </div> <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <label for="inputCardNumber" class="col-sm-4 control-label">{$LANG.creditcardcardnumber}</label> <div class="col-sm-7"> <input type="tel" name="ccnumber" id="inputCardNumber" size="30" value="{if $ccnumber}{$ccnumber}{/if}" autocomplete="off" class="form-control newccinfo" /> </div> </div> {if $showccissuestart} <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <label for="inputCardStart" class="col-sm-4 control-label">{$LANG.creditcardcardstart}</label> <div class="col-sm-8"> <select name="ccstartmonth" id="inputCardStart" class="form-control select-inline"> {foreach from=$months item=month} <option{if $ccstartmonth eq $month} selected{/if}>{$month}</option> {/foreach} </select> <select name="ccstartyear" id="inputCardStartYear" class="form-control select-inline"> {foreach from=$startyears item=year} <option{if $ccstartyear eq $year} selected{/if}>{$year}</option> {/foreach} </select> </div> </div> {/if} <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <label for="inputCardExpiry" class="col-sm-4 control-label">{$LANG.creditcardcardexpires}</label> <div class="col-sm-8"> <select name="ccexpirymonth" id="inputCardExpiry" class="form-control select-inline"> {foreach from=$months item=month} <option{if $ccexpirymonth eq $month} selected{/if}>{$month}</option> {/foreach} </select> <select name="ccexpiryyear" id="inputCardExpiryYear" class="form-control select-inline"> {foreach from=$expiryyears item=year} <option{if $ccexpiryyear eq $year} selected{/if}>{$year}</option> {/foreach} </select> </div> </div> {if $showccissuestart} <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <label for="inputIssueNum" class="col-sm-4 control-label">{$LANG.creditcardcardissuenum}</label> <div class="col-xs-2"> <input type="number" name="ccissuenum" id="inputIssueNum" value="{$ccissuenum}" class="form-control input-" /> </div> </div> {/if} <div class="form-group"> <label for="cctype" class="col-sm-4 control-label">{$LANG.creditcardcvvnumber}</label> <div class="col-sm-7"> <input type="number" name="cccvv" id="inputCardCvv" value="{$cccvv}" autocomplete="off" class="form-control input-inline input-inline-100" /> <button type="button" class="btn btn-link" data-toggle="popover" data-content="<img src='{$BASE_PATH_IMG}/ccv.gif' width='210' />"> {$LANG.creditcardcvvwhere} </button> </div> </div> {if $shownostore} <div class="form-group cc-details{if !$addingNewCard} hidden{/if}"> <div class="col-sm-offset-4 col-sm-8"> <div class="checkbox"> <label> <input type="checkbox" name="nostore" id="inputNoStore"> {$LANG.creditcardnostore} </label> </div> </div> </div> {/if} <div class="form-group"> <div class="text-center"> <button type="submit" class="btn btn-primary btn-lg" id="btnSubmit" value="{$LANG.submitpayment}"> <span class="pay-text">{$LANG.submitpayment}</span> <span class="click-text hidden">{$LANG.pleasewait}</span> </button> </div> </div> </div> <div class="col-md-5"> <div id="invoiceIdSummary" class="invoice-summary"> <h2 class="text-center">{$LANG.invoicenumber}{$invoiceid}</h2> <div class="invoice-summary-table"> <table class="table table-condensed"> <tr> <td class="text-center"><strong>{$LANG.invoicesdescription}</strong></td> <td width="150" class="text-center"><strong>{$LANG.invoicesamount}</strong></td> </tr> {foreach $invoiceitems as $item} <tr> <td>{$item.description}</td> <td class="text-center">{$item.amount}</td> </tr> {/foreach} <tr> <td class="total-row text-right">{$LANG.invoicessubtotal}</td> <td class="total-row text-center">{$invoice.subtotal}</td> </tr> {if $invoice.taxrate} <tr> <td class="total-row text-right">{$invoice.taxrate}% {$invoice.taxname}</td> <td class="total-row text-center">{$invoice.tax}</td> </tr> {/if} {if $invoice.taxrate2} <tr> <td class="total-row text-right">{$invoice.taxrate2}% {$invoice.taxname2}</td> <td class="total-row text-center">{$invoice.tax2}</td> </tr> {/if} <tr> <td class="total-row text-right">{$LANG.invoicescredit}</td> <td class="total-row text-center">{$invoice.credit}</td> </tr> <tr> <td class="total-row text-right">{$LANG.invoicestotaldue}</td> <td class="total-row text-center">{$invoice.total}</td> </tr> </table> </div> <p class="text-center"> {$LANG.paymentstodate}: <strong>{$invoice.amountpaid}</strong><br /> {$LANG.balancedue}: <strong>{$balance}</strong> </p> </div> </div> </div> <div class="alert alert-warning" role="alert"> <i class="fa fa-lock"></i> &nbsp; {$LANG.creditcardsecuritynotice} </div> </form> {/if} thanks very much to everyone for reading my post... Mahim
  15. bear

    New cron error

    In that case it would likely default to the server wide choice for PHP. EA4 allows for sites to use something other than the default, but if not specified it falls back to that.
  16. steven99

    New cron error

    Per the error message, you need to ensure "ea_php_cli" module is installed / enabled / allowed in the PHP version you're using for cron. Most likely easyapache was ran and this module was not included. So you will want to start with confirming that that the module is installed for the php version that is used by cron. If you're using just "php" with out a path to the actual php file, then you note that it could be different from what you're using on the site.
  17. A post filter by category has been added per request of Gomez. Filtered result
  18. Without an invoice you shouldn't, in my opinion at least, use just the add transaction options. Transactions should be tied to an invoice. An example of a transactions not having an invoice would be like a client sending you a check with nothing due on their account. That would be similar to an "Add funds" action and so you could create an invoice for that, add the payment and be done. This way you have a record of where and what that money was for. Well, I meant add new order but your question isn't clear as an order and a transaction are different. An order will usually have an invoice which then has transactions. A transaction by it self can't do anything beyond add funds to the account's credit.
  19. Welcome to WHMCS.Community omodyp! We're glad you're here please take some time to familiarise yourself with the Community Rules & Guidelines and take a moment to introduce yourself to other WHMCS.Community members in the Introduce Yourself Board.

  20. Alright but can you give an example why I should use transaction functionality aside from the docs of WHMCS? What option do you mean? The transaction or Add New Order (Manually)? This is what I did to my recent order and what I did was to edit the products after setting it up. The amount due cannot be changed in the Order info. although I already have set changes to it and OH! I didn't know about the Auto Calculate thing. Thanks!
  21. Matt D

    New cron error

    can't figure it out, any help would be greatly appreciated.
  22. Yesterday
  23. Matt D

    New cron error

    Out of the blue started getting this error emailed every 5 mins...any suggestions how to fix? Can't locate ea_php_cli.pm in @INC (you may need to install the ea_php_cli module) (@INC contains: /var/cpanel/ea4 /usr/local/cpanel /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/cpanel_lib /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0/x86_64-linux-64int /usr/local/cpanel/3rdparty/perl/528/lib/perl5/5.28.0 /opt/cpanel/perl5/528/site_lib/x86_64-linux-64int /opt/cpanel/perl5/528/site_lib) at /usr/local/bin/php line 17.BEGIN failed--compilation aborted at /usr/local/bin/php line 17.
  24. steven99

    Register on an external page

    You're missing first and last name fields, which I believe are required as well as the email address and password fields. That is likely why you see the form again and it should provide an error also but I would have to test to confirm.
  25. steven99

    Stripe Changes

    Uh, why would you want to not capture a payment? There are authorizations and capture. Authorization just hits the card with a pending transaction that then expires after a time. With just authorization, funds never reach you and funds go back to the client after the authorization expires. Capture means to you have done the authorization and also want to collect / capture the funds. So it does still seem for at least Stripe they require 3DS to actually get the funds. I wonder how Razorpay is doing this without that bit then. And how they / if they are getting around the last bit Stripe mentioned of local banks requiring 3DS .
  26. steven99

    Custom Actions on Products/Services?

    IIRC the custom functions / buttons only accept success or an error message and not HTML or a template array like the clientarea function. So, the best option might be to use clientareaprimarysidebar hook and add the panel button with the proper link.
  1. Load more activity

Important Information

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