Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Today
  3. As a result, we would like to share information with you on our Martin Luther King, Jr. Day that is available with WHMCS Services. All WS Modules will be discounted at an unbelievable rate of 25%. That is right, you heard right - 25% discount on all WS Modules! How Long Will this Sale Last? This Martin Luther King, Jr. Day will last until 24th January 2025 To take advantage of the sale simply add a WS Modules program to your shopping cart. Do missing this great Martin Luther King, Jr. Day. Remember to put MLK25 on any of the orders listed on the forms. Here is a list of our various software products at https://www.whmcsservices.com/mlk.php If you do not use this discount code when you order, you will NOT get the 25% off. Please remember to use the discount when you order. Save even more! Hurry! The sale ends on January 24, 2025! Do You Need Custom Development? Don't hesitate any longer! Contact us now! We also provide WHMCS Themes, WHMCS Integration services with our partnership. Chat with us through live support, or send in a ticket if you would like more information. Thanks again for choosing WHMCS Services. We appreciate your business!
  4. Hi @ghmercado, This indicates that a column is missing from a table. In this case the tblhostingaddons database table is missing the subscriptionid column. This added in WHMCS 7.9.2. Creating the missing column and then re-running the update process via install.php is the correct solution: ALTER TABLE `tblhostingaddons` ADD `subscriptionid` VARCHAR(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' AFTER `notes`;
  5. this was fixed by executing this line to add the missing dir in phpmyadmin ALTER TABLE `tblhostingaddons` ADD `subscriptionid` VARCHAR(128) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' AFTER `notes`;
  6. i am trying to update my whmcs installation from 8.11.2 to 8.12.0 after downloading a copy of my db via phpmyadmin i run the install process, the System Requirements Check Results says I pass all requirements, then i get Unable to complete incremental updates: Unable to import the 8.12.0 database file. Unable to import /home/wpgahm/public_html/clients/resources/sql/upgrade8120release1.sql: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'subscriptionid' any help please thank you
  7. Last week
  8. Just a quick update, today we released Lara v8.12.0, which is fully compatible with WHMCS v8.12.0 (released few days ago!).
  9. @ksammy in case you are still looking for this hook..... https://whmcs.community/topic/306724-by-default-domain-configuration-checkboxes-select/?do=findComment&comment=1354825 https://whmcs.community/topic/305493-id-protection-resellerclub/?do=findComment&comment=1350300
  10. Yes, You can Update the dates as soon as Invoice is created with hook https://developers.whmcs.com/hooks-reference/invoices-and-quotes/#invoicecreation
  11. Version 1.0.1 Fixed work with WS Discount Manager Fixed Expiry Date on the client area product listing page Fixed Expiry Date on the client area dashboard gift cards page Updated support WHMCS 8.12 Updated support for ionCube Loader v14 and PHP 8.3 Updated Remove Support for PHP 7.4 Updated Remove Support for WHMCS V8.8.x to 8.9.x
  12. Version 1.0.0

    7 downloads

    An issue has been identified in the 8.12.0 release, published on 16th January 2025, that causes a fatal error to occur in the cPanel Licensing Addon Module when viewing the module's UI and running the system cron (cron.php): Whoops\Exception\ErrorException: Cannot make static method WHMCS\Module\Addon\Setting::getValue() non static in class WHMCS\Module\Addon\Cpanel\Licensing\Settings\AbstractSetting in unknown:0
  13. Version 1.0.0

    5 downloads

    Due to an unexpected change in the GoCardless API, clients will encounter an error when paying an invoice with the EUR currency: One of your parameters was incorrectly typed - scheme "sepa" is not a valid value. Must be one of [ach, autogiro, bacs, becs, becs_nz, betalingsservice, pad, sepa_core, ]. This will affect all versions of WHMCS.
  14. I thank you for your nice comments. I uploaded it to GitHub so that anyone who wants to take it and develop and continue.
  15. It would be great to schedule a delayed answer or a scheduled follow up, to send scheduled answers too...
  16. Sure, Thanks for the update. As you have added language option here, so it will be easy for all users to use it. Thanks
  17. We frequently add time entries to the "Billable Items" tab on client profiles. They are, by default, set to "Don't invoice for now". Periodically, we come in and create our monthly invoices. We select all the billable items, and click on "Invoice Selected Items". This creates an invoice that is due immediately, and does not respect due dates that we set (i.e. it doesn't set the due date 14 days in the future), and it also sends the client an email, so we can't even modify it before it's sent out. We would like it so that the billable items, by default, would be generated with a future due date (e.g. our default, 14 days). Is that possible to do? The only thing I can see is the settings on individual billing items; invoice for a specific date. However, that would require manually editing every singe billable item (which is hundreds per month). Any help would be hugely appreciated.
  18. Yes, you can use a hook for this, with this hook you can export products with json using api; <?php use WHMCS\Database\Capsule; add_hook('ClientAreaPage', 1, function ($vars) { if ($_GET['action'] === 'getProducts') { header('Content-Type: application/json'); $products = Capsule::table('tblproducts') ->join('tblpricing', 'tblproducts.id', '=', 'tblpricing.relid') ->where('tblpricing.type', 'product') ->select('tblproducts.*', 'tblpricing.currency', 'tblpricing.msetupfee', 'tblpricing.monthly') ->get(); echo json_encode($products); exit; } }); This hook will return product information from WHMCS in JSON format when the /index.php?action=getProducts URL is accessed. WordPress Side: Product Display with Shortcode: We show products dynamically by writing a shortcode in WordPress. Shortcode Example: function fetch_whmcs_products() { $response = wp_remote_get('https://your-whmcs-url.com/index.php?action=getProducts'); if (is_wp_error($response)) { return 'Unable to retrieve products.'; } $products = json_decode(wp_remote_retrieve_body($response), true); if (!$products) { return 'No products found.'; } $output = '<div class="whmcs-products">'; foreach ($products as $product) { $output .= '<div class="product">'; $output .= '<h2>' . esc_html($product['name']) . '</h2>'; $output .= '<p>' . esc_html($product['description']) . '</p>'; $output .= '<p>Price: ' . esc_html($product['monthly']) . ' ' . esc_html($product['currency']) . '</p>'; $output .= '</div>'; } $output .= '</div>'; return $output; } add_shortcode('whmcs_products', 'fetch_whmcs_products'); You can show products using [whmcs_products] shortcodes in WordPress content. Update and improve the codes according to yourself, this is just an example.
  19. Add a .user.ini File to the /help Directory: Create a new file in your /help folder and name it .user.ini. Add OPCache Setting to the file: opcache.enable=0 Apply Changes: Make sure that the necessary configurations for your server to read .user.ini files are enabled. If necessary, restart PHP-FPM or the web server: sudo systemctl restart php-fpm sudo systemctl restart apache2 # or nginx Conclusion: These steps will allow you to keep OPCache enabled on the main area of your WordPress site by simply disabling OPCache in the /help directory. This way, you can maintain your WordPress performance while remaining compatible with WHMCS 8.12.
  20. WHOIS for .br is strongly rate limited so not using WHOIS will go around that... but for the official dist.whois.json I would only suggest WHMCS to use socket://whois.registro.br. But for specific installations, the workaround of using the availability query might be better suited. Notably for installations not using captcha at the availability page. That said, it would probably be interesting if WHMCS moved to split availability queries from WHOIS queries when someone actually is interested in registration data. The later is much less usual and probably wouldn't trigger rate limits much.
  21. We are unable to disable OPCache for our WordPress website at domain.com for performance reasons, but having whmcs live at domain.com/help creates a conflict since 8.12 requires opcache to be disabled. Are there any alternatives to not upgrading to 8.12? aa
  22. We confirmed that using local API that the using UpdateInvoice to update duedate is NOT propagating down the updated duedate to tblinvoiceitems. It only touches tblinvoice.duedate. Does anyone have any thoughts on whether we can add database capsule code to our custom PHP (which initiates local API function/calls) to the same function called to update the invoice due date and invoice items (description, etc.)? If so, please provide some guidance.
  23. Whmcs yeni sürümle birlikte tr karakter sorunu yaşamaya başlamıştık, bunu nginx için çözdüm ve gerekli kuralları paylaşıyorum, kendinize göre düzenleyin ve kullanın. server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; {{ssl_certificate_key}} {{ssl_certificate}} server_name www.orneksite.com; return 301 https://orneksite.com$request_uri; } server { listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2; {{ssl_certificate_key}} {{ssl_certificate}} server_name orneksite.com www1.orneksite.com; {{root}} charset utf-8; {{nginx_access_log}} {{nginx_error_log}} # Redirect directories to an address with slash if (-d $request_filename) { return 301 $uri/; } # Transliterate Türkçe karakterler içeren URL'leri ASCII karşılıklarıyla yeniden yazma rewrite ^/(.*)ç(.*)$ /$1c$2 permanent; rewrite ^/(.*)Ç(.*)$ /$1C$2 permanent; rewrite ^/(.*)ğ(.*)$ /$1g$2 permanent; rewrite ^/(.*)Ğ(.*)$ /$1G$2 permanent; rewrite ^/(.*)ı(.*)$ /$1i$2 permanent; rewrite ^/(.*)İ(.*)$ /$1I$2 permanent; rewrite ^/(.*)ş(.*)$ /$1s$2 permanent; rewrite ^/(.*)Ş(.*)$ /$1S$2 permanent; rewrite ^/(.*)ö(.*)$ /$1o$2 permanent; rewrite ^/(.*)Ö(.*)$ /$1O$2 permanent; rewrite ^/(.*)ü(.*)$ /$1u$2 permanent; rewrite ^/(.*)Ü(.*)$ /$1U$2 permanent; # HTTP'den HTTPS'ye yönlendirme if ($scheme != "https") { return 301 https://$host$request_uri; } location ~ /.well-known { auth_basic off; allow all; } {{settings}} try_files $uri $uri/ /index.php?$args; index index.php index.html; location / { error_page 404 /index.php?$query_string; try_files $uri $uri/ /index.php?$query_string; } # WHMCS managed rules - Nginx uyarlaması # BEGIN - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ### # WHMCS için özel yönlendirme kuralları location ~ ^/(announcements|download|knowledgebase|store/ssl-certificates|store/sitelock|store/website-builder|store/order|cart/domain/renew|account/paymentmethods|password/reset|account/security|subscription|auth/provider/google_signin/finalize)/?(.*)$ { rewrite ^/(.*)$ /index.php?rp=/$1/$2 last; } # WHMCS admin panel için özel yönlendirme kuralları location ~ ^/AdminPanel/(addons|apps|search|domains|help/license|services|setup|utilities/system/php-compat)/?(.*)$ { rewrite ^/AdminPanel/(.*)$ /AdminPanel/index.php?rp=/admin/$1 last; } location ~ ^/AdminPanel/client/(.*)/paymethods/(.*)$ { rewrite ^/AdminPanel/client/(.*)/paymethods/(.*)$ /AdminPanel/index.php?rp=/client/$1/paymethods/$2 last; } location ~ ^/AdminPanel/setup/auth/(.*)$ { rewrite ^/AdminPanel/setup/auth/(.*)$ /AdminPanel/index.php?rp=/setup/auth/$1 last; } location ~ ^/AdminPanel/client/(.*)/tickets/(.*)$ { rewrite ^/AdminPanel/client/(.*)/tickets/(.*)$ /AdminPanel/index.php?rp=/client/$1/tickets/$2 last; } location ~ ^/AdminPanel/client/(.*)/invoice/(.*)/capture/(.*)$ { rewrite ^/AdminPanel/client/(.*)/invoice/(.*)/capture/(.*)$ /AdminPanel/index.php?rp=/client/$1/invoice/$2/capture/$3 last; } location ~ ^/AdminPanel/account/security/two-factor/(.*)$ { rewrite ^/AdminPanel/account/security/two-factor/(.*)$ /AdminPanel/index.php?rp=/admin/account/security/two-factor/$1 last; } location ~ ^/AdminPanel/search/intellisearch/(.*)$ { rewrite ^/AdminPanel/search/intellisearch/(.*)$ /AdminPanel/index.php?rp=/search/intellisearch/$1 last; } # END - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ### location ^~ /vendor/ { deny all; return 403; } location ~ \.php$ { include fastcgi_params; fastcgi_intercept_errors on; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; try_files $uri =404; fastcgi_read_timeout 3600; fastcgi_send_timeout 3600; fastcgi_param HTTPS $fastcgi_https; fastcgi_pass 127.0.0.1:{{php_fpm_port}}; fastcgi_param PHP_VALUE "{{php_settings}}"; } location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { add_header Access-Control-Allow-Origin "*"; expires max; access_log off; } if (-f $request_filename) { break; } } kaynak:
  24. I apologize, I made it for my own use, then I wanted everyone to use it and shared it, but I forgot to add the language 🙂 Now I translated it into English so everyone can use it https://github.com/SLW-CMS/Whmcsdbmanager/
  25. And learn how to read in Turkish? Unless I've missed something, it's mostly in non-English.
  26. Thank you, you should be careful when using
  27. Hello, I need to add another priority to support tickets labelled "Urgent" and pick this up in a hook to do something. I am struggling to achieve this (why this is not already possible is beyond me). I have modified supportticketsubmit-steptwo.tpl to add the category, which is visible in the client area to support the ticket, but despite this, it continues to get raised as "Medium" (which is the default one). At the moment I suspect this may be because there is not a word for "Urgent" in the language folder/database as it seems to use this for Low, Medium and High {$LANG.supportticketsticketurgencyhigh} The ticket gets raised correctly, but it ignores the value I have used, I simply entered my own value as follows: <select name="urgency" id="inputPriority" class="form-control"> <option value="Urgent"{if $urgency eq "Urgent"} selected="selected"{/if}> Urgent </option> <option value="High"{if $urgency eq "High"} selected="selected"{/if}> {$LANG.supportticketsticketurgencyhigh} </option> <option value="Medium"{if $urgency eq "Medium" || !$urgency} selected="selected"{/if}> {$LANG.supportticketsticketurgencymedium} </option> <option value="Low"{if $urgency eq "Low"} selected="selected"{/if}> {$LANG.supportticketsticketurgencylow} </option> </select> The I wanted to pick it up with something like this : <?php add_hook('TicketOpen', 1, function($vars) { $str = var_export($vars, true); if (strpos($haystack, "'priority' => 'Urgent'") !== false) { I know the value is there, but it just appears as "Medium" instead of the "Urgent" I created it as. So... how can I achieve this? Can I add a word for Urgent so it uses this : {$LANG.supportticketsticketurgencyhigh} if so, where is that stored and how can I create my own custom word there? I saw a reference to lang folders, but I can't find them anywhere. Any help would be appreciated.
  1. Load more activity
×
×
  • 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