BoKr Posted December 2, 2013 Share Posted December 2, 2013 (edited) Hallo ich komme heute nicht mehr weiter und es sieht so aus, dass ich es alleine auch morgen nicht schaffe Ich habe hier ein Bezahlmodul von Silbersaiten für Masterpayment. Dieses bietet bei uns den Kauf auf Rechnung und kreditKarte an. Ich möchte meinen Kunden, wenn sie via Rechnungskauf einkaufen, einen Text anzeigen. Das Problem ist, dass dieses Modul wie alle anderen sicher auch, die mehrere Bezahlmethoden realisieren, eine payment_execution.tpl (oder submit-tpl oder was auch immer) haben. Ich in der Übersicht im Bestellprozess für die Bezahlmethoden kann ich z.B. via Firebug erkennen, welche Variablen wohl genutzt werden. <p id="masterpayment_rechnungskauf" class="payment_module"> <a href="http://www.ben_bernanke.com/module/masterpayment/submit?payment_method=rechnungskauf"> <img alt="Rechnungskauf" title="Rechnungskauf" src="/modules/masterpayment/views/img/p/rechnungskauf.png"> Rechnungskauf </a> </p> In meinem Fall: credit_card und rechungskauf Daher mein Schnippsel: {if $payment->payment_method == 'credit_card'} <p></p> {else} <p class="warning">{l s='3D secure blabla.' mod='masterpayment'}</p> {/if} Auch ein Versuch wie {if $payment->payment_method == 'rechnungskauf'} <p class="warning">{l s='3D secure blabla.' mod='masterpayment'}</p> {/if} bringt keine Lösung. Es wird der Paragraph immer angezeigt. No matter what Hätte jemand einen Tipp für mich? PS: Bitte jetzt nicht darauf hinweise, melde Dich beim support des moduls...Es ist ein generelles Problem. Ich möchte wissen, wie es geht Edited December 3, 2013 by B.Köring (see edit history) Link to comment Share on other sites More sharing options...
eleazar Posted December 2, 2013 Share Posted December 2, 2013 Na ja, Boris, du kannst nicht irgendwas als Bedingung nehmen, deswegen funktioniert es so auch nicht. Denn ich wüsste nicht, dass irgendwo die Variable $payment deklariert wird. Also nicht {if $payment->payment_method == 'irgendwas'} sondern 1. nachsehen, welche Zahlarten in der Tabelle ps_order_payment im Feld payment_method gelistet sind und wie sie genau heißen und dann 2, die Bedingung formulieren: {if $order->payment == 'irgendwas'} Falls es also eine Zahlart mit dem Namen 'credit_card' gibt, dann sollte die Bedingung lauten: {if !$order->payment == 'credit_card'} <p class="warning">{l s='3D secure blabla.' mod='masterpayment'}</p> {/if} Die Negativabfrage habe ich deshalb gewählt, weil in deinem if-Zweig sonst ohnehin nur eine Absatzmarke stehen würde. Oder in deiner zweiten Variante: {if $order->payment == 'rechnungskauf'} <p class="warning">{l s='3D secure blabla.' mod='masterpayment'}</p> {/if} P.S. Und sei doch bitte so gut und gib diesem Topic einen Namen, den auch andere außer dir verstehen, ok? Link to comment Share on other sites More sharing options...
BoKr Posted December 3, 2013 Author Share Posted December 3, 2013 (edited) Das hilft weiter. Ich wollte wissen, wie ich den 'Namen' der Bezahlart herausgbekomme, den die IF Anweisung bzw. smarty versteht. Ich habe nachgesehen in der DB (obwohl mich auch noch interessiert, ob es da nicht einen schnelleren Weg gibt), und diesen Namen übernommen. Das klappte aber nicht. Mag sein, dass ich an der falschen Stelle gesucht habe. Die von Dir genannte listet alle Bestellungen ein, die unser Shop je hatte und gibt den 'KlartextNamen' an. In unserem Fall z.B.: Rechnungskauf {if !$order->payment == 'Rechnungskauf'} <p class="warning">{l s='3D secure blabla.' mod='masterpayment'}</p> {/if} Zeigt zwar die Phrase an, aber das ist dann auch der Fall, für die andere Bezahlart, die das Modul unterstützt: Kreditkarte (credit_card). Somit bin ich also nicht viel weiter, außer dass ich wahrscheinlich weiß, wo ich die Namen nachsehen kann, die in in smarty ansprechen kann. Dann habe ich mir nun das Modul mal näher angesehen. Das Module richtet wohl folgende Namen ein: public function getPaymentMethods() { return array( 'none' => $this->l('MasterPayment'), 'credit_card' => $this->l('Credit Card'), 'debit_card' => $this->l('Carte Bleue'), // 'deferred_debit'=> $this->l('Deffered Debit'), 'elv' => $this->l('Lastschrift'), 'elv_triggered' => $this->l('Gewinnspiele'), 'phone' => $this->l('Pay by Call'), 'sofortbanking' => $this->l('Sofort Banking'), 'anzahlungskauf'=> $this->l('Anzahlungskauf'), 'finanzierung' => $this->l('Finanzierung'), 'ratenzahlung' => $this->l('Ratenzahlung'), 'rechnungskauf' => $this->l('Rechnungskauf'), 'cc_recurrent' => $this->l('Credit Card Recurring'), //?? 'elv_recurrent' => $this->l('Lastschrift Recurrent'), //?? ); } Und folgende Variablen: //Common tpl varialbles $this->context->smarty->assign(array( 'cfg' => $cfg, 'currency' => $currency, 'validCurrencyNames' => implode(', ', $currencies), 'isValidCurrency' => in_array($currency->iso_code, $valid_currencies), 'total' => $totalAmount, 'paymentMethod' => $payment_method, 'paymentName' => $payment_method_name, 'this_path' => Tools::getShopDomain(true, true).__PS_BASE_URI__.MP_DIR, 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.MP_DIR )); Somit führte glücklicherweise dieses nun zum Erfolg: {if $paymentName == 'Rechnungskauf'} Edited December 3, 2013 by B.Köring (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now