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.3 – 8.6
- Admin Zugang zu WHMCS
- FTP Zugang
- installierter Ioncube Loader (mindestens Version 12)
- PHP 7.2 – 7.4, 8.1
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.
- Als Nächstes sind ein paar Templateanpassungen nötig:
Öffnen Sie bitte die clientareadetails.tpl Datei ihres Templates und ersetzen Sie dort die Zeilen:
{foreach from=$paymentmethods item=method}
<option value="{$method.sysname}"{if $method.sysname eq $defaultpaymentmethod} selected="selected"{/if}>{$method.name}</option>
{/foreach}
durch:
{foreach from=$gateway_limiter item=method}
<option value="{$method.sysname}"{if $method.sysname eq $defaultpaymentmethod} selected="selected"{/if}>{$method.name}</option>
{/foreach}
Öffnen Sie bitte die clientareaaddfunds.tpl Datei ihres Templates und ersetzen Sie dort die Zeilen:
{foreach from=$gateways item=gateway}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/foreach}
durch:
{foreach from=$gateway_limiter item=gateway}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/foreach}
Öffnen Sie bitte die upgradesummary.tpl Datei ihres Templates und ersetzen Sie dort die Zeilen:
{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=$gateway_limiter}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway} selected="selected"{/if}>{$gateway.name}</option>
{/foreach}
Öffnen Sie die viewinvoice.tpl Ihres Templates und ersetzen Sie folgenden Code:
{$gatewaydropdown}
durch:
{$gateway_limiter_dropdown}
Ö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=$gateway_limiter item=gateway}
{if $total->toNumeric() >= $gateway.min && $total->toNumeric() <= $gateway.max}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/if}
{/foreach}
Öffnen Sie hierzu bitte die checkout.tpl Datei Ihres Orderforms und fügen unterhalb der Zeile mit {$LANG.ordertotalduetoday} folgende Zeile ein:
<input type="hidden" name="gatewaylimiter_total" value={$rawtotal}>
Ö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=$gateway_limiter 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()"/>
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.4.0
Mit Version 1.4.0 wurde die Prüfung des Rechnungsbetrages hinzugefügt. Da der Hookpoint zur Bestellprüfung leider keinen Rechnungsbetrag übermittelt, muss das Cart Template dazu angepasst werden. Öffnen Sie hierzu bitte die checkout.tpl Datei Ihres Orderforms und fügen unterhalb der Zeile mit {$LANG.ordertotalduetoday} folgende Zeile ein:
<input type="hidden" name="gatewaylimiter_total" value={$rawtotal}>
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=$gateway_limiter 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=$gateway_limiter item=gateway}
<option value="{$gateway.sysname}">{$gateway.name}</option>
{/foreach}
durch
{foreach from=$gateway_limiter 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=$gateway_limiter}
<option value="{$gateway.sysname}"{if $gateway.sysname eq $selectedgateway}
selected="selected"{/if}>{$gateway.name}</option>
{/foreach}
durch
{foreach key=num item=gateway from=$gateway_limiter}
{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.