Virtuemart Bezahlmöglichkeiten einschränken

Marco-P

Erfahrenes Mitglied
Hallo Leute,

ich habe eine echt knifflige aufgabe wo ich einfach nicht weiter komme.
Vielleicht kann mir jemand von euch ja die Lösung sagen oder einfach mal nen Denkanstos präsentieren.

Ich hab folgendes Problem:

In einem Virtuemart Shop kann man entweder auf Rechnung oder auf Vorkasse kaufen.
Allerdings wollen wir jetzt das die Option rechnung ab einem Einkaufswert von 100€ wegfällt.
Und diese Option habe ich einfach noch nciht gefunden.

Jetzt war meine Idee ich schreibe das fest in den Quelltext.
Quasi wenn Einkaufspreis > 100€ dann blende die option Rechnung aus.

Auf meinen recherchen bin ich dann auf dieses süße scrip gestolpert.

list_payment_methods.tpl.php
liegt in components/com_virtuemart/themes/default/templates/checkout/

das hier ist der code ab zeile 106 undich denke das ich da die relevante stele gefunden habe.
Allerdings weiß ich echt nicht wie ich da die bedingung verschachteln soll.

PHP:
if ($nocc_payments==true) {
    if ($cc_payments==true) {
       $title = $VM_LANG->_('PHPSHOP_CHECKOUT_PAYMENT_OTHER');
    }
    else {
       $title = $VM_LANG->_('PHPSHOP_ORDER_PRINT_PAYMENT_LBL');
    }
       
   ?>
    <fieldset><legend><strong><?php echo $title ?></strong></legend>
      <table border="0" cellspacing="0" cellpadding="2" width="100%">
          <tr>
              <td colspan="2"><?php
                  $ps_payment_method->list_nocheck($payment_method_id,  false);
                  $ps_payment_method->list_bank($payment_method_id,  false);
                  $ps_payment_method->list_paypalrelated($payment_method_id,  false); ?>
              </td>
          </tr>
       </table>

Ich hoffe sehr mir kann jemand helfen.

MFG Marco
 
Als erstes musst du herausfinden wie du an den Betrag kommst. Ich sehe in diesem Script-Ausschnitt keine Variable die den Betrag Beinhaltet.

Annahmen (Diese Annahmen treff ich um dir ein Beispiel zu geben. ich habe keine Ahnung von deinem Shop-System:
1) Die Betragsvariable heisst $total
2) Bezahlung per Rechnung ist die $ps_payment_method->list_nocheck()
PHP:
              <td colspan="2"><?php
                  if($total <= 100){
                      $ps_payment_method->list_nocheck($payment_method_id,  false);
                  }
                  $ps_payment_method->list_bank($payment_method_id,  false);
                  $ps_payment_method->list_paypalrelated($payment_method_id,  false); ?>
              </td>
 
Ja das stimmt schon aber schau doch mal.

in der zeile mit
$ps_payment_method->list_nocheck($payment_method_id, false)
wird eien Liste erzeugt. wenn ich es nun so mache wie du sagst dann blende ich die gesamte liste aus.
ich will aber nur einen teil der liste nicht sehen.
Eigentlich müsste ich mal schauen wo die liste erzeugt wird. Aber da scheitert es bei mir.
 
$ps_payment_method ist eine Instanz einer Klasse.
In dieser Klasse gibt es die Methode (Funktion) list_nocheck(). In dieser muss das angepasst werden. Jedoch musst du dauch dort irgendwie den Gesammtbetrag wissen. ev. die Funktion um einen Parameter für den Betrag erweitern.
 
Zurück