Hallo,

auch wenn das Thema schon etwas älter ist wärme ich es dennoch nochmal auf.
Ich habe Joomla 1.5 und Virtuemart 1.14.

Ich habe wie unten beschrieben den Code so übernommen und bekomme aber eine Fehlermeldung die lautet:
Fatal error: Call to undefined method ps_payment_method::list_payment_radio() in D:\Eigene Dateien\eigene Homepage\honigschlecker\Joomla\xampplite-win32-1.7.3\xampplite\htdocs\Original\administrator\comp onents\com_virtuemart\classes\ps_payment_method.ph p on line 497

Kann mir jemand helfen biittee!!!

Gruß
twixraider

Zitat Zitat von vnNoob Beitrag anzeigen
Der Ansatz von dot°NETt bringt zwei Probleme mit sich: Er funktioniert nicht, wenn der Kunde entweder das Land nachträglich ändert, oder eine Lieferadresse angibt, deren Land von dem der Rechnungsadresse abweicht.

Deshalb hier noch eine andere Lösung für das ursprüngliche Problem:
Beim CheckOut - Step3 wird die Zahlungsart "Nachnahme" nicht angezeigt, wenn der Kunde nicht nach Deutschland bestellt....

In der Datei /administrator/components/com_virtuemart/classes/ps_payment_method.php diese Stelle suchen:
PHP-Code:
// Start radio list
while ($db->next_record()) { 
und danach das hier einfügen:
PHP-Code:
$ship_to_info_id mosGetParam$_REQUEST'ship_to_info_id' );
$q "SELECT country FROM #__{vm}_user_info ";
$q .= "WHERE user_info_id='".$ship_to_info_id"'";
$dbd = new ps_DB;
$dbd->query($q);
$country $dbd->f("country");
if ((
$db->f("payment_method_id") != 19) || ($country == 'DEU')){ // 19 = Nachnahme (Nachsehen) 
(Um die ID für die Zahlungsart "Nachnahme" zu erfahren, kann man z.B. vorübergehend
PHP-Code:
echo $db->f("payment_method_id"); 
vor die if-Abfrage stellen, dann werden im Frontend die ID's vor den Zahlungsarten angezeigt.)

Außerdem muss am Ende der Funktion eine abschließende geschweifte Klammer ergänzt werden, also kommen nach:
PHP-Code:
       if ($horiz) {
         echo(
" ");
       } else {
         echo(
"<br />");
       } 
noch drei abschließende geschweifte Klammern, statt wie bisher zwei.

Bei mir funktioniert das soweit wie bisher getestet bestens...

mfG



Zitat Zitat von vnNoob Beitrag anzeigen
Ahoi Ronaldo,

Die Schreibweise hat sich mit Joomla 1.5 ein wenig geändert

Ersetze:
PHP-Code:
$ship_to_info_id mosGetParam$_REQUEST'ship_to_info_id' ); 
Durch:
PHP-Code:
$ship_to_info_id JRequest::getVar('ship_to_info_id' ); 


Gleiche Datei, gleiche Funktion:

Nach
PHP-Code:
$has_result true;
echo 
"<input type=\"radio\" name=\"payment_method_id\" 
das hier einfügen:

PHP-Code:
if ($db->f("payment_method_id") == 18){ // 18 = Banküberweisung (Nachsehen)
echo " checked=\"true\"";

Die 18 ersetzt Du durch die entsprechende ID für Banküberweisung. Wie Du sie herausbekommst weißt Du ja.

Grüße