Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 12/19/2017 in all areas

  1. 8 points
    The WHMCS.Community is intended to provide a place for users of WHMCS to discuss, share and interact with each other as well as WHMCS Staff. To ensure we maintain a friendly environment, we ask users to respect the following rules and guidelines. Please let us know via the WHMCS.Community Assitance category should you have any questions or comments, posts in this category are visible between yourself and the WHMCS.Community Team. WHMCS reserves the right to alter these rules from time to time. 1.User Accounts Each person may have (one) 1 forum login regardless of the number of companies you may be part of. Duplicate accounts will be removed from WHMCS.Community Please do not share your user account with others - each person should retain their own username and password Usernames must not be created that contain any of the items listed below: An email address A website address The following words WHMCS cPanel Staff Moderator Admin Any word determined to cause offence or be deemed inappropriate. Usernames or Users that do not comply with these rules may be removed from WHMCS.Community 2. Behaviour on the Community We expect all users to be friendly and polite. While we understand that users will disagree and have different points of view at times, this can be communicated in a civil manner Please do not post rude, insulting or inflammatory posts. Personal attacks, name-calling and insults will not be tolerated on WHMCS.Community. Profanity and inappropriate images (including porn or gross violence) may not be posted anywhere on the WHMCS.Community. WHMCS.Community Staff & Moderators use their sole discretion as to what is deemed unacceptable behaviour in the community and may remove content at any time. Your posts assist other users, please do not delete content if you find an answer, please share this solution to help other users. 3. Advertising on WHMCS.Community Advertising, offers or self-promotion are to be posted only in the Third Party Add-ons section of the community. Community users seeking to hire a developer may post within the Service Offers & Requests section. Advertising is limited to one advertisement per seven (7) day period on a rolling 7-day basis. Additional or excessive advertising will be removed by the moderation team and your ability to post in advertising boards removed. Soliciting and/or self-promotion via the private messaging (PM) system is strictly prohibited. The sale or reselling of WHMCS Licenses is strictly prohibited on the community. Affiliate and referral links may not be used, these links are those that link to a site and contain information crediting the person with that referral 4. Posting and Moderation on WHMCS.Community The WHMCS.Community is moderated by WHMCS.Community Moderators and Staff. When a post is deemed to be in breach of the rules it will be removed and the user advised via a warning. Please do not cross-post across the community. If your topic is better suited to another section one of the WHMCS.Community team will move it to the best category for you. You may report your post if you wish to have it moved by a moderator. For privacy reasons please do not post any personally identifiable information including Usernames, Passwords, Contact Numbers, Email Addresses and/or Credit Card Numbers As WHMCS.Community is a moderated community we have implemented a Warning System. When a post is removed for breaching the community rules we’ll be sure to let you know. We allocate points to a warning and once you have a set number of points you may be suspended from posting on the community. Users that do not comply with the rules for WHMCS.Community may be banned temporarily. Ongoing temporary bans may result in a permanent ban from WHMCS.Community. The public discussion of moderation decisions is not permitted, these will be removed without notice and may result in a community ban. 5. Signature and Profile Rules Your signature may include links, however, please ensure these are reasonable (no more than 4) and they must not include Referral/Affiliate links. This includes pricing and plan details Signatures may not contain more than 4 lines at a 1024x768 resolution Please do not sell or rent your signature space, your signature is yours alone. Where your signature does not comply with these rules you may be asked to alter or remove it 6. WHMCS.Community Ranks Official WHMCS Staff & Moderators are identified by one of the following ranks located below their profile image, in addition, their posts are highlighted blue WHMCS CEO WHMCS Community Manager WHMCS Customer Service WHMCS Developer WHMCS Marketing WHMCS Staff WHMCS Support Manager WHMCS Technical Analyst WHMCS.Community runs a ranking system, new community members start with the rank of Newbie and can progress based on the number of posts, reputation points and length of time active on the community Some users have a special “Super Users” rank. These members are a select group of elite community members that are long-standing mentors in the community, courteous to other members, always providing technical insight and advice, and generally helping to make our community a better place to learn, troubleshoot and advance. The WHMCS.Community ranking formula is changed from time to time and without notice. The algorithm used is not published or discussed with users to prevent gaming the system 7. Contacting the WHMCS.Community Team You may contact a member of the WHMCS.Community via the WHMCS.Community Assitance board If you would prefer to email you may open a ticket by emailing forums@whmcs.com Thank you for helping to keep WHMCS.Community a great place
  2. 7 points
    ... and that's it from me for 2018 - i'm taking a break from here for Christmas & New Year! 🎄 i'm thus avoiding both the 7.7 beta releases and the possibility of Chris enabling the Christmas lights and animated snow effect again. ❄️ with the v7.7 betas, there should be more than the usual minimal WHMCS staff floating around this place to answer the threads - so take advantage of them being around, because once the beta testing is over, they'll disappear back into the ether as usual! 🙄 if you want to ensure that I look at a particular thread on my return, just mention me with @brian! and i'll get a notification. I expect to be back here around the second week of January 2019... enjoy yourselves everyone! P.S - for anyone yet to have paid what they owe me, the PayPal account and bank don't close over the festive period, so I will look forward to receiving payments - I won't forget if you don't pay!
  3. 5 points
    Hello there, After a lot of thinking, here you have a template for the Upcoming Domain Renewal Notice that will cover all scenarios. Subject: Domain {$domain_name} is due to expire in {$domain_days_until_expiry} days Dear {$client_name}, Domain {$domain_name} is due to expire in {$domain_days_until_expiry} days - {if $domain_do_not_renew eq "0"}Auto Renew On{else}Auto Renew Off{/if}. {if $domain_days_until_expiry eq "60"}{if $domain_do_not_renew eq "0"}As you have Auto Renew On, you will receive the renewal invoice 30 days before the expiration date.{else}If you would like to have the domain renewed, please access client area and turn On the Auto Renew option.{/if}{else}{if $domain_do_not_renew eq "0"}As you have Auto Renew On, you should have already received the renewal invoice. If you still didn't received the invoice, please contact our sales department. If you have already received the renewal invoice, please pay it as soon as possible to avoid the risk of domain expiration.{else}To renew the domain, please click on the following url {$domain_renewal_url}.{/if}{/if} {if $domain_days_until_expiry eq "7"}If domain {$domain_name} expires, the website and emails using this domain will no longer work.{/if} {if $domain_days_until_expiry eq "3"}If domain {$domain.name} expires, the website and emails using this domain will no longer work, and the domain may be available to be registered by someone else. WARNING: To renew an expired domain, when possible, you may have to pay a fee of up to $250.{/if} Explanation If you have configured the First Renewal Notice to be sent 60 days prior to the expiration date, and the customer has Auto Renew On, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 60 days - Auto Renew On. As you have Auto Renew On, you will receive the renewal invoice 30 days before the expiration date. If you have configured the First Renewal Notice to be sent 60 days prior to the expiration date, and the customer has Auto Renew Off, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 60 days - Auto Renew Off. If you would like to have the domain renewed, please access client area and turn On the Auto Renew option. If you have configured the Second Renewal Notice to be sent 30 days prior to the expiration date, and the customer has Auto Renew On, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 30 days - Auto Renew On. As you have Auto Renew On, you should have already received the renewal invoice. If you still didn't received the invoice, please contact our sales department. If you have already received the renewal invoice, please pay it as soon as possible to avoid the risk of domain expiration. If you have configured the Second Renewal Notice to be sent 30 days prior to the expiration date, and the customer has Auto Renew Off, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 30 days - Auto Renew Off. To renew the domain, please click on the following url {$domain_renewal_url}. If you have configured the Third Renewal Notice to be sent 7 days prior to the expiration date, and the customer has Auto Renew On, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 7 days - Auto Renew On. As you have Auto Renew On, you should have already received the renewal invoice. If you still didn't received the invoice, please contact our sales department. If you have already received the renewal invoice, please pay it as soon as possible to avoid the risk of domain expiration. If domain example.com expires, the website and emails using this domain will no longer work. If you have configured the Third Renewal Notice to be sent 7 days prior to the expiration date, and the customer has Auto Renew Off, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 7 days - Auto Renew Off. To renew the domain, please click on the following url {$domain_renewal_url}. If domain example.com expires, the website and emails using this domain will no longer work. If you have configured the Fourth Renewal Notice to be sent 3 days prior to the expiration date, and the customer has Auto Renew On, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 3 days - Auto Renew On. As you have Auto Renew On, you should have already received the renewal invoice. If you still didn't received the invoice, please contact our sales department. If you have already received the renewal invoice, please pay it as soon as possible to avoid the risk of domain expiration. If domain example.com expires, the website and emails using this domain will no longer work, and the domain may be available to be registered by someone else. WARNING: To renew an expired domain, when possible, you may have to pay a fee of up to $250. If you have configured the Fourth Renewal Notice to be sent 3 days prior to the expiration date, and the customer has Auto Renew Off, here you have the content he will receive on that Notice: Dear Customer Name, Domain example.com is due to expire in 3 days - Auto Renew Off. To renew the domain, please click on the following url {$domain_renewal_url}. If domain example.com expires, the website and emails using this domain will no longer work, and the domain may be available to be registered by someone else. WARNING: To renew an expired domain, when possible, you may have to pay a fee of up to $250. I hope that this will be useful for someone. Best regards, David Duarte
  4. 4 points

    Version 1.0.0

    358 downloads

    An issue has been identified in the 7.6.1 release - published on 28th August, 2018 - that causes the domain synchronization task not to be performed at the scheduled time. This could result in domains remaining in Pending Transfer status, or keeping inaccurate expiration dates.
  5. 4 points
    Impressive, @Matt. It's not every day the CEO of a software company personally attends to and responds to customer issues like this. I'm truly impressed in the dedication to our community.
  6. 3 points

    Version 1.0.0

    568 downloads

    The URL of the European Central Bank XML Feed appears to have been changed on 8th September 2018 without notice. This is the feed used by WHMCS to update the exchange rates and convert product prices. This results in an error when attempting to update exchange rates:
  7. 3 points
    When displaying your payment options during the final stages of the checkout process, the available payment gateway options are shown as text – in a number of different ways based upon the order form template being used. If we wanted to make this more attractive, we could replace the text of any or all of the gateways, with an image or logo, by editing the viewcart.tpl template within the active order form template. In order to do this, we can use one of the WHMCS variables that we have access to during the checkout process - $gateway.sysname - the variable stores in lowercase, the unique name used by WHMCS for the payment gateway. This is not the value you entered for the gateway in the “Display Name” field in the “Payment Gateways” section of the Admin Area. The next step is to create or find images for each of the gateways that you wish to replace with a graphic, all in the same graphic format (PNG, JPG or GIF) and save them with a lowercase filename. For example, if you were using PNG format, then your “PayPal” image would be called ‘paypal.png’; your “Bank Transfer” image is called ‘banktransfer.png’; and the “Mail-In Payment” gateway (in the above example, named ‘Cheque’) would be ‘mailin.png’. I believe the filename to be used is based upon the filename of the gateway file in ‘modules/gateways’, but you should be able to find its value by viewing the source of your cart page in your browser... [<label><input type="radio" name="paymentmethod" value="paypal" onclick="hideCCForm()" /> <img src=images/paypal.png /> So the part of interest above is: value=”paypal”. You would then upload these images to your “images” directory within WHMCS. If you wanted to put them in their own folder within the “images” directory, you can – but you will need to adjust the URL in the code below to take account of the slightly different path (see end of tutorial). The images directory i'm using in these examples is whmcs/images - and not the template(s) images folder. The replacement code works by first creating a new variable to store the URL of the gateway logo, then it will check to see if the image exists in the “images” folder (remember that it must have a lowercase filename on the server otherwise it will not be found) – if the image exists, it will display the image; if no image is found, it will display the text (as it does now). In the examples above, I have only uploaded a ‘paypal’ logo and hence only that gateway is using a replacement image – if I were to upload logos for the other two gateways, they would also be used instead of their text names. So, I will now go through each of the eight existing order form templates and show the code to be replaced, the replacement code and an image of how the cart checkout page looks when the new code is added. Ajaxcart Replace.... <div class="cartbox">{foreach key=num item=gateway from=$gateways} <label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {$gateway.name}</label>{/foreach}</div> With... <div class="cartbox">{foreach key=num item=gateway from=$gateways} <label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach}</div> Boxes Replace.... <p align="center">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{$gateway.name}</label> {/foreach}</p> With... <p align="center">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}</label> {/foreach}</p> Cart Replace... <p align="center">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{$gateway.name}</label> {/foreach}</p> With... <p align="center">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach}</p> Comparison Replace... <p class="paymentmethods">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{$gateway.name}</label><br />{/foreach}</p> With... <p class="paymentmethods">{foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label><br />{/foreach}</p> Modern Replace... {foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" id="pgbtn{$num}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {$gateway.name}</label> {/foreach} With... {foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" id="pgbtn{$num}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach} Slider Replace... {foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{$gateway.name}</label> {/foreach} With... {foreach key=num item=gateway from=$gateways}<label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} />{assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach} Verticalsteps Replace... <p align="center">{foreach key=num item=gateway from=$gateways}<input type="radio" name="paymentmethod" value="{$gateway.sysname}" id="pgbtn{$num}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /><label for="pgbtn{$num}">{$gateway.name}</label> {/foreach}</p> With... <p align="center">{foreach key=num item=gateway from=$gateways}<input type="radio" name="paymentmethod" value="{$gateway.sysname}" id="pgbtn{$num}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /><label for="pgbtn{$num}">{assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach}</p> Web20Cart Replace... <div class="cartbox">{foreach key=num item=gateway from=$gateways} <label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {$gateway.name}</label> {/foreach}</div> With... <div class="cartbox">{foreach key=num item=gateway from=$gateways} <label><input type="radio" name="paymentmethod" value="{$gateway.sysname}" onclick="{if $gateway.type eq "CC"}showCCForm(){else}hideCCForm(){/if}"{if $selectedgateway eq $gateway.sysname} checked{/if} /> {assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if}</label> {/foreach}</div> Customised Order Form Templates If you are using a customised order form, perhaps supplied with a purchased WHMCS theme, this solution may still work with your template - in viewcart.tpl, you simply replace... {$gateway.name} With... {assign var="paylogo" value="images/`$gateway.sysname`.png"} {if file_exists($paylogo)} <img src={$paylogo} /> {else} {$gateway.name}{/if} In these examples, I have used .PNG images - if you wanted to use .JPG or .GIF instead, then you would replace .png in the code with .jpg or .gif - remember, they must all use the same format! if you wanted to put the gateway images in their own folder, e.g 'paylogos', then you would replace the code... {assign var="paylogo" value="images/`$gateway.sysname`.png"} with... {assign var="paylogo" value="images/paylogos/`$gateway.sysname`.png"} I hope this helps anyone who wants to replace their payment gateways text with images. I should also add that this is tested and working on the latest WHMCS release as of this tutorial - v5.3.3
  8. 3 points
    Hi everyone, Its been a long time since i have been around and mostly due to medical and life issues. However since i have decided to retire from the professional side of programming and just doing the hobby deal now i wanted to offer up my old WHMCS addons (not encoded) to everyone for free. I wont be doing any more WHMCS work now that its just a hobby for me so sharing what i have done in the past might help someone in the future, so you may download an use them as you wish. You are free to use these addons without restriction from me, all i ask is that somewhere in the header you at least be kind enough to mention my name as the original artist. I believe that last version i updated these for was WHMCS version 6 and they all worked back then. You may have to do some tweaking for the newer versions of WHMCS. I will be posting several zip files here over the next few days as soon as i can get the file headers modified for the new non restrictive purposes, i believe there are a total of 4 addons i will be posting here. The zip file contains the install txt and all the files you need. It is exactly the way it was when it was for sale, the only thing i have changed are the files license header to unrestricted. Thanks for all your help in the past and i wish you all the very best going forward. 1. This one is called Client Permblock - The purpose of this addon is to give the local admin a way to locally block unwanted clients. With WHMCS there are national fraud features that you would typically report fraud clients to as part of WHMCS. However, if that client should not qualify to be reported to those national companies for some reason then this addon will allow you to keep your own local records. This addon does not do any remote reporting, its only purpose is to allow you to be more proactive and list current WHMCS clients or add non-client information that you choose not to do business with in the future should they attempt to join your business as a client. I had big plans for this addon with more features but just never got around to it. Enjoy the addon client_permblock_addon_V1_1_free.zip 2. This is the PHPBB Bridge addon - This addon allows you to auto register a new WHMCS client to your phpBB community when they complete the WHMCS registration. Enjoy the addon phpbb_bub_addon1_4_free.zip
  9. 3 points
    Hi there We first became aware of instances of the spam signups being discussed here towards the latter end of last week and since then our team has been monitoring the issue and investigating instances of it reported to us via support tickets. We understand how receiving a large number of spam orders can be inconvenient and frustrating and so in an effort to try to combat and prevent these orders from being successful, our team has worked to implement Google's invisible reCAPTCHA to the shopping cart checkout workflow through the use of the hooks system. This is being provided as a short term immediate solution for users affected by the recent spam order submissions until such time as we can release a product update with this functionality natively included. What is Google Invisible reCAPTCHA? Invisible reCAPTCHA is designed to be as inobtrusive to the regular user as possible. In most cases, users will not be prompted to solve a captcha. Only when Google detects suspicious behaviour or traffic will a captcha challenge be presented. The result is that while it may not prevent all spam signups, as soon as Google detects suspicious activity or patterns, further automated orders should be blocked. To learn more about how Invisible reCAPTCHA works, please visit https://developers.google.com/recaptcha/docs/invisible Installation Instructions To install the hook, follow the steps below. 1. Download the hook (attached at the bottom of this post) 2. Upload to the /includes/hooks/ directory of your WHMCS installation 3. The hook leverages the same Google reCAPTCHA configuration as defined in Setup > General Settings > Security. Therefore, please ensure the Captcha settings are configured there as follows: Captcha Form Protection: "Always On" or "Off when logged in" Captcha Type: reCAPTCHA (Google's reCAPTCHA system) reCAPTCHA Site Key & Secret Key: Provided Remember, Invisible reCAPTCHA may not block all spam submissions, but it should be effective in preventing repeated and high volume submission attempts. We're keen to hear how effective this change is at preventing the spam order submissions you’ve been experiencing recently so please let us know your experiences with the hook. Regards, Matt cart_recaptcha.php
  10. 3 points
    Hi there, quick update our 7.5.1 release is out and contains this fix.
  11. 2 points
    Welcome to WHMCS.Community kiava! 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.
  12. 2 points
    With the help from support team, it has been fixed, it looks like a number of extensions were missing from the php 7.1/7.2 branch, I have installed them now. All looking good so far Thanks to all for your input, much appreciated 👍
  13. 2 points
    As from today, 21st April 2018, I will no longer be replying to threads in the community unless... I have already replied in, and therefore am currently subscribed to, the thread. I am mentioned in the post, using the @brian! mention technique (highlighted in blue). - if either occurs, then I will receive a notification of the post. should you want me to look at a specific issue, then feel free to send me a PM (Private Message).
  14. 2 points
    RESOLVED > Updated Plugin WHMCS Bridge to v4.4
  15. 2 points
    Hi Christian, welcome to using WHMCS! the problem you have here is that the $LANG array isn't available to the upsell templates (seemingly confirms that MarketConnect wasn't originally designed with multiple languages in mind - insane!), so that IF statement we used previously will never be true here... if the $LANG array was available, then the previous code would work.... so we have to come at this from another angle, create our own arrays and then see if the current headline/tagline matches any of them... <h3> {$validheadlines = array('Add Security to your Email and say goodbye to spam','Protect your website and boost your search rankings with an SSL certificate')} {$langheadline = "store.upsell.headline."|cat:($promotion->getHeadline()|replace:' ':''|replace:'.':''|strtolower)} {if $promotion->getHeadline()|in_array:$validheadlines}{lang key="$langheadline"}{else}{$promotion->getHeadline()}{/if} </h3> <h4> {validtaglines = array('With near 100% filtering accuracy and increased email continuity','Included with your SSL certificate')} {$langtagline = "store.upsell.tagline."|cat:($promotion->getTagline()|replace:' ':''|replace:'.':''|strtolower)} {if $promotion->getTagline()|in_array:$validtaglines}{lang key="$langtagline"}{else}{$promotion->getTagline()}{/if} </h4> $_LANG['store']['upsell']['headline']['addsecuritytoyouremailandsaygoodbyetospam'] = "Fügen Sie Sicherheit zu Ihrer E-Mail hinzu und verabschieden Sie sich von Spam"; $_LANG['store']['upsell']['headline']['protectyourwebsiteandboostyoursearchrankingswithansslcertificate'] = "Schützen Sie Ihre Website und steigern Sie Ihre Suchergebnisse mit einem SSL-Zertifikat"; $_LANG['store']['upsell']['tagline']['withnear100%filteringaccuracyandincreasedemailcontinuity'] = "Mit nahezu 100% Filtergenauigkeit und erhöhter E-Mail-Kontinuität"; $_LANG['store']['upsell']['tagline']['includedwithyoursslcertificate'] = "Im Lieferumfang Ihres SSL-Zertifikats enthalten"; however, unlike previous changes, you're going to have to add these language strings for ALL languages (even if they're just copies of the default English values) because we cannot check if the language string exists... if you set the language to one that doesn't have these language strings, you'll see this... so it's important to add the strings to all languages... and check they haven't changed, or new ones added, after updating WHMCS. I think they're added by the Price Formatter class, and are probably just using English abbreviations... there's nothing in the language files or class documentation I can see to change this... you could treat them as normal variables and just replace the /mo and /yr strings with other strings or language overrides - but again, these would need to be added for all available languages. {$product->pricing()->best()->breakdownPrice()|replace:'/mo':{lang key="store.upsell.monthly"}|replace:'/yr':{lang key="store.upsell.yearly"}}{/if} $_LANG['store']['upsell']['monthly'] = "/mtl."; $_LANG['store']['upsell']['yearly'] = "/jhrl."; I can see other ways to manipulate the shown pricing, but the above should be all you need to do...
  16. 2 points
    how about this (forgive Google Translate for the German!)... <li>{if $LANG.store.ssl.issuance.{$product->configoption1}}{lang key="store.ssl.issuance.{$product->configoption1}"}{else}{$certificateFeatures.{$product->configoption1}.issuance}{/if}</li> <li>{if $LANG.store.ssl.for.{$product->configoption1}}{lang key="store.ssl.for.{$product->configoption1}"}{else}{$certificateFeatures.{$product->configoption1}.for}{/if}</li> <li>USD ${$certificateFeatures.{$product->configoption1}.warranty}</li> $_LANG['store']['ssl']['issuance']['rapidssl_rapidssl'] = "Minuten"; $_LANG['store']['ssl']['for']['rapidssl_rapidssl'] = "Persönliche Webseiten"; $_LANG['store']['ssl']['issuance']['geotrust_quicksslpremium'] = "Minuten"; $_LANG['store']['ssl']['for']['geotrust_quicksslpremium'] = "Kleinbetrieb"; and then work your way through the rest of the SSL products that you want to tweak...
  17. 2 points
    this is an unhelpful comment, but it should work! anything in the activity log ? if you have to, you could always use... {$total|replace:'$':''}
  18. 2 points
    We are pleased to announce the launch of the WHMCS 7.5 public beta. This release contains support for new PHP versions and new features including: Domain Expiry Grace and Redemption Period Automation @mentions support in Client & Ticket Notes Affiliate referral tracking SiteLock Integration And more... For a complete list of new features and more information, please visit the WHMCS 7.5 Preview Site.Take part in the betaBe among the first to try out the new features and functionality by getting involved in the beta today. Our public beta program gives you direct access to try our early pre-production releases and help test and contribute to the development process. To get started, you can download WHMCS 7.5 or upgrade to it using the Automatic Updater today. Reminder: Beta releases are intended for testing only and are not recommended for production use. Download | Release Notes | Upgrade Instructions | Changelog
  19. 2 points
    @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. 2 points
    you could use a simple HTML5 pattern in the template to display an error if any character is entered that is unacceptable to the pattern, e.g if you change in configureproduct.tpl... <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com"> to... <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com" pattern="[a-zA-Z0-9]+" oninvalid="this.setCustomValidity('Please use alphanumeric characters only')" oninput="setCustomValidity('')"> it will prevent any non-alphanumeric characters, including spaces, from being accepted in this field - if the user enter invalid characters, the order process won't continue until they correct the issue. the error message can be customised to suit your needs, and if necessary can use Language Override strings to display an error in the users own chosen language. hopefully, this will remove any issue before you even get to the provisioning stage.
  21. 2 points
    I simply can't see how this can be a feature request - the calculation is wrong.
  22. 2 points
    I thought they tasted kinda funny
  23. 2 points
    Limestone Networks is a leading provider of cloud, dedicated, and colocation services. Access the redundant, low latency network, fast support and provisioning, free DDoS protection, and enterprise grade infrastructure using the Dedicated Server Module for WHMCS. The module is included in the WHMCS Marketplace: Provide Dedicated Servers from Limestone Networks to your clients with this free WHMCS module. Integrate the server controls directly into your WHMCS for your clients to manage their dedicated servers. This white-label module provides automated functionalities through the Limestone Networks API and your WHMCS installation. The Limestone Networks Dedicated Server module enhances client experience and creates a professional manner of Reselling white-label dedicated servers alongside your other hosting services. Clients will now have control through the module's various client side functions, such as Reboot Server, Turn ON/Off Server, and rDNS settings of their IP network. Administrative features include automated rDNS modifications (which sets rDNS for all server IPs upon provisioning to a domain of your choice), suspend (close public port), unsuspend (open public port), and terminate (registers cancellation request), as well as the reboot, server power and rDNS modification capabilities.
  24. 2 points
    Hello @brian! Thank you for adding this information! I can confirm that investigations have begun into this. Our development team have requested that users itemise specifically what it is they are wanting to see added to meet the requirements, as they understand them, to the following feature request - https://requests.whmcs.com/topic/gdpr-complance-legally-required-by-2018
  25. 2 points
    Hello, I would recommend starting with forums as they are free and easily. You can post your web hosting plans in the offers section on many hosting forums. I would also recommend joining in on the discussions and adding value. You can gain a good reputation by doing this over time.
×

Important Information

By using this site, you agree to our Terms of Use & Guidelines