Der WHMCS Gateway Limiter ermöglicht Ihnen, die Zahlungsmethoden im Kundenbereich auf bestimmte Kundenkreise bzw. -eigenschaften zu beschränken. So können Sie inländische Zahlungsmethoden sperren lassen, wenn der Kunde aus dem Ausland kommt, oder bestimmte Zahlungsmethoden nur für Bestandskunden verfügbar machen.
Systemvoraussetzungen
Zur Nutzung und Installation des Gateway Limiter Moduls müssen folgende Voraussetzungen erfüllt sein:
- Lauffähige WHMCS Installation Version 8.8 – 8.11
- Admin Zugang zu WHMCS
- FTP Zugang
- installierter Ioncube Loader (mindestens Version 13)
- PHP 7.4, 8.1 & 8.2
Installation
- Loggen Sie sich bitte im Kundenbereich von Plambee.de Webhosting ein und laden sich dort die aktuelle Version des Gateway Limiters herunter.
- Entpacken Sie die zip.Datei auf Ihrem Rechner
- laden Sie die Ordner modules und templates via FTP in Ihr WHMCS Verzeichnis.
- Loggen Sie sich nun in Ihrem WHMCS Adminbereich ein
- In der Addonauflistung suchen Sie nun bitte nach dem Modul Gateway Limiter und klicken dort bitte auf „Activate“ und danach auf „Configure“
- In dem Feld „Module license“ tragen Sie bitte ihren Lizenzcode ein, diesen finden Sie im Plambee.de Kundenbereich in den Produktdetails.
- Als Nächstes können Sie die jeweiligen Gateways im Modul konfigurieren.
- Wenn Sie die Betragsprüfung nutzen möchten, nehmen Sie bitte folgende Anpassungen am Template vor:
Öffnen Sie die masspay.tpl Ihres Templates und ersetzen Sie folgenden Code:
{foreach from=$gateways item=gateway}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/foreach}
durch
{foreach from=$gateways item=gateway}
{if $total->toNumeric() >= $gateway.min && $total->toNumeric() <= $gateway.max}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/if}
{/foreach}
Öffnen Sie bitte die clientareaaddfunds.tpl ihres Templates und fügen Sie folgenden Code oben ein:
<script>
function gateway_limiter() {
var amount = $('#amount').val();
{foreach from=$gateways item=gateway}
if ( (amount < {$gateway.min}) || (amount > {$gateway.max}) ) {
$("#paymentmethod option[value={$gateway.sysname}]").remove();
}
if ( (amount >= {$gateway.min}) && (amount <= {$gateway.max}) ) {
if ( $("#paymentmethod option[value={$gateway.sysname}]").length == 0 ){
$('#paymentmethod').append($('<option>', {
value: '{$gateway.sysname}',
text: '{$gateway.name}'
}));
}} {/foreach}
}
</script>
<body onload="gateway_limiter()">
ersetzen Sie dann
<input type="text" name="amount" id="amount" value="{$amount}" class="formcontrol"
required />
durch
<input type="text" name="amount" id="amount" value="{$amount}" class="formcontrol"
required onkeyup="gateway_limiter()"/>
Öffnen Sie die upgradesummary.tpl und ersetzen Sie
{foreach key=num item=gateway from=$gateways}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway}
selected="selected"{/if}>{$gateway.name}</option>
{/foreach}
durch
{foreach key=num item=gateway from=$gateways}
{if $total->toNumeric() >= $gateway.min && $total->toNumeric() <= $gateway.max}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway}
selected="selected"{/if}>{$gateway.name}</option>
{/if}
{/foreach}
Wenn Sie bisher noch keine Sprachdateien im WHMCS Verzeichnis /lang/overrides/ haben, nehmen Sie bitte die Dateien auf dem Zip Verzeichnis des Moduls und benennen die english.php_temp nach english.php und die german.php_temp nach german.php um. Sollten Sie bereits Sprachdateien im overrides Verzeichnis haben, öffnen Sie bitte die german.php_temp und kopieren die enthaltenen Sprachstrings in Ihre german.php. Wiederholen Sie dies für die english.php_temp
Mit diesen Schritten ist die Installation abgeschlossen. Eine weitere Anpassung im Cart ist nicht nötig, hier verwendet das Modul einen WHMCS eigenen Hook wodurch der Kunde beim Versuch die Bestellung mit einer nicht erlaubten Zahlungsmöglichkeit aufzugeben eine Mitteilung erhält (wie z.B. wenn er kein Passwort hinterlegt).
Updatehinweise
Update auf Version 1.5.0
In Version 1.5.0 wurde die Betragsprüfung auch auf das Guthaben aufladen, Upgrade und Massenzahlung erweitert. Hierzu sind aber folgende Templateanpassungen notwendig. Öffnen Sie bitte die clientareaaddfunds.tpl ihres Templates und fügen Sie folgenden Code oben ein:
<script>
function gateway_limiter() {
var amount = $('#amount').val();
{foreach from=$gateways item=gateway}
if ( (amount < {$gateway.min}) || (amount > {$gateway.max}) ) {
$("#paymentmethod option[value={$gateway.sysname}]").remove();
}
if ( (amount >= {$gateway.min}) && (amount <= {$gateway.max}) ) {
if ( $("#paymentmethod option[value={$gateway.sysname}]").length == 0 ){
$('#paymentmethod').append($('<option>', {
value: '{$gateway.sysname}',
text: '{$gateway.name}'
}));
}}
{/foreach}
}
</script>
<body onload="gateway_limiter()">
ersetzen Sie dann
<input type="text" name="amount" id="amount" value="{$amount}" class="formcontrol"
required />
durch
<input type="text" name="amount" id="amount" value="{$amount}" class="formcontrol"
required onkeyup="gateway_limiter()"/>
Öffnen Sie dann die masspay.tpl und ersetzen Sie
{foreach from=$gateways item=gateway}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/foreach}
durch
{foreach from=$gateways item=gateway}
{if $total->toNumeric() >= $gateway.min && $total->toNumeric() <= $gateway.max}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/if}
{/foreach}
Öffnen Sie die upgradesummary.tpl und ersetzen Sie
{foreach key=num item=gateway from=$gateways}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway}
selected="selected"{/if}>{$gateway.name}</option>
{/foreach}
durch
{foreach key=num item=gateway from=$gateways}
{if $total->toNumeric() >= $gateway.min && $total->toNumeric() <= $gateway.max}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway}
selected="selected"{/if}>{$gateway.name}</option>
{/if}
{/foreach}
Update auf Version 1.12.0
Aufgrund eines ungefixten Bugs im Stripe Gateway von WHMCS, müssen wir die Fehlermeldungen, welche dem Kunden im Checkout angezeigt werden, in die WHMCS eigenen Sprachdateien auslagern.
Wenn Sie bisher noch keine Sprachdateien im WHMCS Verzeichnis /lang/overrides/ haben, nehmen Sie bitte die Dateien auf dem Zip Verzeichnis des Moduls und benennen die english.php_temp nach english.php und die german.php_temp nach german.php um.
Sollten Sie bereits Sprachdateien im overrides Verzeichnis haben, öffnen Sie bitte die german.php_temp und kopieren die enthaltenen Sprachstrings in Ihre german.php. Wiederholen Sie dies für die english.php_temp
Dies ist auch dann erforderlich, wenn Sie den Stripe Gateway nicht verwenden.
Hinweise
Das Modul blendet in der aktuellen Version nur die Zahlungsmöglichkeiten im Kundenbereich aus, sollten Sie für einen Kunden z.B. eine Zahlungsmöglichkeit unzugänglich gemacht haben, prüfen Sie bitte die Zahlungseinstellungen im jeweiligen Kundenprofil und ändern Sie diese gegebenenfalls manuell um, falls hier die unzugänglich gemachte Zahlungsmethode verwendet wird.
Sollten Sie unser Modul mit der Trial Version getestet haben, denken Sie bitte daran, entweder rechtzeitig vor Ablauf der Triallizenz eine neue Lizenz zu kaufen oder Ihre Templates wieder in den Urzustand zu bringen. Ansonsten wird Ihren Kunden im Kundenbereich keine Zahlungsmöglichkeit mehr angezeigt.
Wenn Sie in WHMCS einen Gateway deaktivieren oder hinzufügen, gehen Sie bitte danach in das Modul, damit das Modul die neuen Informationen importieren kann.