Verfasste Forenbeiträge

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Thread-Starter wolkenkrieger

    (@wolkenkrieger)

    Ja, in die functions.php

    • Diese Antwort wurde geändert vor 1 Jahr, 4 Monaten von wolkenkrieger.
    Thread-Starter wolkenkrieger

    (@wolkenkrieger)

    *[itsw_ratepay_payment_instructions] ^^

    Thread-Starter wolkenkrieger

    (@wolkenkrieger)

    Meine Lösung für Germanized als Shortcode, den man in die rechnung „eibauen“ kann:

    add_filter('storeabill_document_shortcodes', 'itsw_ratepay_payment_instructions', 10, 2);
    
    /**
     * @param $shortcodes
     * @param $shortcode_instance
     * @return array
     */
    function itsw_ratepay_payment_instructions($shortcodes, $shortcode_instance): array {
    	$shortcodes['itsw_ratepay_payment_instructions'] = static function($atts, $content = '') use ($shortcode_instance) {
    		$document = $shortcode_instance->get_document();
    		
    		if ($document) {
    			/** @var WC_Order $order */
    			$order = $document->get_order();
    			
    			if ($order && $order->get_payment_method() === PayUponInvoiceGateway::ID) {
    				$content .= itsw_pui_instructions($order);
    			}
    		}
    		
    		return $content;
    	};
    	
    	return $shortcodes;
    }
    
    /**
     * @param \WC_Order $order
     * @return string|null
     */
    function itsw_pui_instructions(WC_Order $order): ?string {
    	$instructions = $order->get_meta('ppcp_ratepay_payment_instructions_payment_reference');
    	$gateway_settings = get_option( 'woocommerce_ppcp-pay-upon-invoice-gateway_settings' );
    	$merchant_name    = $gateway_settings['brand_name'] ?? '';
    	$order_date = $order->get_date_created();
    	$price = wc_price($order->get_total(), $order->get_currency());
    	
    	if ( NULL === $order_date ) {
    		return NULL;
    	}
    	
    	$order_purchase_date = $order_date->date( 'd.m.Y' );
    	//$order_time          = $order_date->date( 'H:i:s' );
    	$order_date          = $order_date->date( 'd-m-Y H:i:s' );
    	
    	
    	$thirty_days_date = strtotime( $order_date . ' +30 days' );
    	
    	if ( false === $thirty_days_date ) {
    		return NULL;
    	}
    	
    	$order_date_30d = gmdate( 'd.m.Y', $thirty_days_date );
    	
    	$payment_reference   = $instructions[0] ?? '';
    	$bic                 = $instructions[1]->bic ?? '';
    	$bank_name           = $instructions[1]->bank_name ?? '';
    	$iban                = $instructions[1]->iban ?? '';
    	$account_holder_name = $instructions[1]->account_holder_name ?? '';
    	
    	if (!$payment_reference || !$bic || !$bank_name || !$iban || !$account_holder_name) {
    		return NULL;
    	}
    	
    	$content = wp_kses_post("<p>Für Ihre Bestellung {$order->get_id()} vom {$order_purchase_date} bei {$merchant_name} haben Sie die Zahlung mittels “Rechnungskauf mit Ratepay“ gewählt.");
    	//$content .= '<br>Bitte benutzen Sie die folgenden Informationen für Ihre Überweisung:</br>';
    	$content .= wp_kses_post( "<p>Bitte überweisen Sie den Betrag in Höhe von {$price} bis zum {$order_date_30d} auf das unten angegebene Konto. Wichtig: Bitte geben Sie unbedingt als Verwendungszweck {$payment_reference} an, sonst kann die Zahlung nicht zugeordnet werden.</p>" );
    	$content .= wp_kses_post( "<p>Empfänger: {$account_holder_name}" );
    	$content .= wp_kses_post( "<br>IBAN: {$iban}" );
    	$content .= wp_kses_post( "<br>BIC: {$bic}" );
    	$content .= wp_kses_post( "<br>Name der Bank: {$bank_name}" );
    	$content .= wp_kses_post( "<br>Verwendungszweck: {$payment_reference}</p>" );
    	$content .= wp_kses_post( "<p>{$merchant_name} hat die Forderung gegen Sie an die PayPal (Europe) S.à r.l. et Cie, S.C.A. abgetreten, die wiederum die Forderung an Ratepay GmbH abgetreten hat. Zahlungen mit schuldbefreiender Wirkung können nur an die Ratepay GmbH geleistet werden.</p>" );
    	
    	return $content;
    }

    der Shortcode wäre dann [itsw_ratepay_pament_structions], kann aber nach Belieben geändert werden 🙂

    • Diese Antwort wurde geändert vor 1 Jahr, 4 Monaten von wolkenkrieger.
    Thread-Starter wolkenkrieger

    (@wolkenkrieger)

    Nein, ich meine die Kontodaten, die Ratepay via IPN schickt, wenn man mit PayPal Pay Upon Invoice aka PayPal Kauf auf Rechnung mit dem neuen PayPal Checkout bezahlt.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)