Bezahl Plugin

  • Hallo Freunde,
    ich brächte mal eure Hilfe, denn ich komme nicht weiter. Ich versuche ein Plugin zu erstellen, mit dem ich per PayPal.me bezahlen kann. Da die Seite nicht kommerziell ist, möchte ich payPal.me verwenden. Ist für unsere Zwecke vollkommen ausreichend. Dafür habe ich ein Plugin, welches zwei Dateien enthält. Beide liegen im gleichen Ordner. In der Kasse wird mir die Bezahloption angezeigt. Wenn ich jedoch auf Bestellen klicke, erhalte ich die Meldung "Fehler beim Bezahlvorgang. Versuche es bitte nochmal." Was muss ich ändern, damit es funktioniert?

    Datei: paypal-gateway.php

    Datei: class-wc-paypal-gateway.php

    Vielen Dank schon mal im vorraus für eure Hilfe.

    Gruß
    Marcus

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo,

    Code
    if (!is_ajax()) {

    ^- kannst du dies begründen?


    Code
    error_log(print_r($total_amount, true));


    Nein, das funktioniert nicht in PHP. Die Funktion error_log () schneidet die Ausgabe von print_r () ab, wenn sie zu lang ist. Um die gesamte Ausgabe von print_r () in eine Datei zu schreiben, musst du den Parameter message_type auf 3 setzen und den Parameter destination auf den Pfad der Datei angeben

    Code
    error_log(print_r($total_amount, true), 3, '/path/to/logfile.log');


    Code
    // PayPal.Me-Link mit Gesamtbetrag            
    $paypal_me_link = 'https://paypal.me/meinName/' . rawurlencode($total_amount);

    PayPal erwartet den Betrag in einem bestimmten Format. Wo ist die Konvertierung in dieses Format? und wo leitest du die Kundin, den Kunden nach PayPal me weiter. Und wie kommst du auf die Idee, dass PayPal me für die Zahler ausreicht?

    Code
    return array(
                    'result'   => 'success',
                    'redirect' => wc_get_checkout_url(),
                );

    ^- da kannst du dir schenken - dies sieht keiner bei Paypal me. ein zurück gibt es nicht...

    Mit offenen Augen träumen

  • Code
    if (!is_ajax()) {


    ^- kannst du dies begründen?


    Da ich mich mit PHP und den Plugins nicht auskenne und es mein erster Versuch mit WP ist, kann ich es nicht. Hab ich so gesehen Paste and Copy

    Code
    // PayPal.Me-Link mit Gesamtbetrag           
    $paypal_me_link = 'https://paypal.me/meinName/' . rawurlencode($total_amount);


    PayPal erwartet den Betrag in einem bestimmten Format. Wo ist die Konvertierung in dieses Format? und wo leitest du die Kundin, den Kunden nach PayPal me weiter. Und wie kommst du auf die Idee, dass PayPal me für die Zahler ausreicht?


    Ich verwende WP nicht für kommerzielle Zwecke. Es geht um unseren jährlichen Ausflug von unserem "Verein". Als Produkt wählt man quasi die Teilnahme aus und die Anzahl, woraus sich dann der Preis (Anzahlung) ergibt. Das bezahlen soll dann über den PayPal.me link erfolgen. das reicht für uns vollkommen aus. Ich weiß, dass eine eigene WP Seite dafür etwas "über das Ziel hinaus" ist, aber ich bastel nun mal gerne. Darum wollte ich es so lösen.


    Code
    return array(
                    'result'   => 'success',
                    'redirect' => wc_get_checkout_url(),
                );

    ^- da kannst du dir schenken - dies sieht keiner bei Paypal me. ein zurück gibt es nicht...


    OK, gut zu wissen.

  • Das mit dem Logfile funktioniert schon einmal. Es wird auch der richtige Betrag als xx.yy angezeigt. Jetzt muss noch eine Weiterleitung zu dem PayPal URL erfolgen.
    Das ist der aktuelle Stand:


    Hat jemand eine Idee?

    Gruß
    Marcus

  • Du könntest den bereits von Dir im ersten Beitrag geposteten "weiterleiten" Code verwenden?

    Code
    // PayPal.Me-Link mit Gesamtbetrag
                $paypal_me_link = 'https://paypal.me/meinName/' . rawurlencode($total_amount);
    
    
                // Hier den Benutzer auf die Checkout-Seite weiterleiten
                return array(
                    'result'   => 'success',
                    'redirect' => $paypal_me_link
                );
  • Das mit dem Logfile funktioniert schon einmal. Es wird auch der richtige Betrag als xx.yy angezeigt.

    Punkt anstelle Komma ist schon mal gut. Und es steht auch keine Währung in dem String? Und wenn eine Währung enthalten ist, ist diese im richtigen Format?


    PHP
    // PayPal.Me-Link mit Gesamtbetrag
    $paypal_me_link = 'https://paypal.me/meinName/' . $total_amount;
    
    
    // Hier den Benutzer auf den PayPal.Me-Link weiterleiten
    return array(
        'result'   => 'success',
        'redirect' => $paypal_me_link,
    );

    Verzichte nach Möglichkeit auf ein ?> am Ende einer PHP Datei.

    Mit offenen Augen träumen

  • Punkt anstelle Komma ist schon mal gut. Und es steht auch keine Währung in dem String? Und wenn eine Währung enthalten ist, ist diese im richtigen Format?


    Das passt. Wenn ich den erstellten Link im Browser eingebe, komme ich auf Paypal und der richtige Betrag wird verwendet.


    PHP
    // PayPal.Me-Link mit Gesamtbetrag
    $paypal_me_link = 'https://paypal.me/meinName/' . $total_amount;
    
    
    // Hier den Benutzer auf den PayPal.Me-Link weiterleiten
    return array(
        'result'   => 'success',
        'redirect' => $paypal_me_link,
    );


    Verzichte nach Möglichkeit auf ein ?> am Ende einer PHP Datei.[/QUOTE]
    Werde ich nachher gleich mal testen. Danke

  • Danke vielmals.

    das funktioniert soweit ganz gut. Was muss ich anpassen, um den Link in einem neuen Fenster/Tab zu öffnen?
    Gibt es eine Möglichkeit, den Warenkorb danach zu leeren?

    PHP
    // Hier den Benutzer auf den PayPal.Me-Link weiterleiten
    return array(
        'result'   => 'success',
        'redirect' => $paypal_me_link,
    );

    Gruß
    Marcus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!