[NSFW] Paypal Express Button auf der Checkout/Kassen Seite anzeigen
-
Anknüpfend an dieses Thema, auf das ich bei meiner Recherche gesto?en bin, m?chte ich nach viel Herumprobieren meinen L?sungsansatz teilen, welcher immerhin als Workaround funktioniert und hoffentlich irgendwem diese Zeit erspart.
Ich habe anfangs versucht die Klasse WCPayPalPlus\ExpressCheckoutGateway\ServiceProvider des Plugins über ein weiteres Plugin zu erweitern, hatte aber konsequent das Problem, dass ich zur Laufzeit nicht an die eigentliche WCPayPalPlus Instanz ran gekommen bin. Das Plugin verhindert sinniger Weise dass eine weitere Instanz aufgebaut wird, ich habe jedoch keine M?glichkeit gefunden von der Elternklasse die Instanz zu adressieren, wie es beispielsweise sonst über ein singleton object seitens des Plugins implementiert wird.Daher hier mein etwas uneleganter Workaround, welchen man daher sogar in seiner functions.php einbinden k?nnte.
/** * shows a paypal plus express checkout button at WC checkout * * searches for active filters in global $wp_filter to get the paypal plus plugin instance * does not work when express checkout is disabled at mini cart or cart */ function custom_wc_add_paypalplus_express_button(){ if( ! class_exists( 'WCPayPalPlus\ExpressCheckoutGateway\ServiceProvider' ) ) return false; global $wp_filter; $priority = 25; // from WCPayPalPlus\ExpressCheckoutGateway\ServiceProvider:241 $woocommerce_proceed_to_checkout_filters = ( isset( $wp_filter['woocommerce_proceed_to_checkout']) ? $wp_filter['woocommerce_proceed_to_checkout'][$priority] : false ); if ( ! $woocommerce_proceed_to_checkout_filters ) return false; // searching for ppplus instance foreach( $woocommerce_proceed_to_checkout_filters as $filter){ // lading callback $ppplus_instance = ( isset( $filter[ 'function' ][0] ) ) ? $filter[ 'function' ][0] : false; // checking for ppplus instance if ( $ppplus_instance && is_a( $ppplus_instance, 'WCPayPalPlus\ExpressCheckoutGateway\CartButtonView' ) ){ add_action( 'wki_show_express_checkout_buttons', array( $ppplus_instance, 'render' ) ); return true; } } } add_action( 'init', 'custom_wc_add_paypalplus_express_button');
HINWEIS:
Lt. dem Support Kommentar des verlinkten Threads wird von PayPal angeraten den Express Checkout nicht im Kassenprozess einzubinden, da hier zwei mal die PayPal Zahlungsart zur Verfügung steht und dies ggfs. zu Konflikten mit dem PayPal Servern führen kann.
Ich habe bisher keine Probleme in diesem Kontext beim Testen feststellen k?nnen.Beste Grü?e
- This topic was modified 2 years, 8 months ago by .
- This topic was modified 2 years, 8 months ago by .
The page I need help with: [log in to see the link]
- The topic ‘[NSFW] Paypal Express Button auf der Checkout/Kassen Seite anzeigen’ is closed to new replies.