Probleme mit Rückerstattung – Button fehlt
-
Hallo,
ich habe ein komisches Verhalten aktuell. Ich habe 2 WooCommerce Shops – auf beiden l?uft Woocommerce PayPal Plus 1.0.8 und bei einem Shop sehe ich den Rückerstattungsbutton via PayPal Plus: https://d.pr/i/XzDeOgBei dem anderen Shop fehlt dieser Button: https://d.pr/i/sMoqwS
Beide Bestellungen sind mit PayPal Plus get?tigt worden. Ich habe daraufhin mal in den Code geschaut, wann dieser Button gesetzt wird.
Ich sehe dies in woocommerce/includes/admin/meta-boxes/views/html-order-items:298
if ( false !== $payment_gateway && $payment_gateway->can_refund_order( $order ) ) { /* translators: refund amount, gateway name */ echo '<button type="button" class="button button-primary do-api-refund">' . sprintf( esc_html__( 'Refund %1$s via %2$s', 'woocommerce' ), wp_kses_post( $refund_amount ), esc_html( $gateway_name ) ) . '</button>'; }
Daraufhin habe ich mir $payment_gateway ausgegeben, was false ist. $payment_gateway wird am Anfang der Datei definiert:
// Get the payment gateway $payment_gateway = wc_get_payment_gateway_by_order( $order );
Daraufhin habe ich mir diese Funktion angesehen:
wc_get_payment_gateway_by_order()
inincludes/wc-order-functions.php
und einvar_dump
von$order->get_payment_method()
gemacht, weil am Ende der Funktion dies aufgerufen wird:$payment_gateways[ $order->get_payment_method() ]
zudem habe ich mir$payment_gateways
vor dem return Statement ausgegeben.Nun habe ich folgendes Ergebnis:
$order->get_payment_method()
istpaypal_plus
Die Array Struktur von
$payment_gateways
zeigt mir:[""]=> object(WCPayPalPlus\WC\PayPalPlusGateway)#28591 (25) { ["id"]=> NULL ["method_title"]=> NULL ["ipn":"WCPayPalPlus\WC\PayPalPlusGateway":private]=>
Hier fehlt also der key
paypal_plus
, deswegen führt das return Statement inwc_get_payment_gateway_by_order
letztlich dazu, dass die Variable$payment_gateways
false ist und der Button fehlt.Wei? jemand, wie ich das l?sen kann und woran das liegt?
- The topic ‘Probleme mit Rückerstattung – Button fehlt’ is closed to new replies.