Callback_handler löst WooCommerce nicht aus

Lesezeit: 2 Minuten

Ich baue ein Zahlungsgateway für WooCommerce, bei dem die Zahlung in einer Offsite-URL stattfindet. Ich brauche diese Seite, um eine Nachricht an das WooCommerce-Plugin senden zu können, und eine “Callback”-URL ist wirklich alles, was ich brauche.

WooCommerce scheint dies zu haben, aber ich kann es nicht zum Laufen bringen. Ping sollte man können:

http://yoursite/wc-api/WC_your_gateway

Und dann sollen Sie hinzufügen add_action( ‘woocommerce_api_callback’, ‘callback_handler’ ); Und dann soll es eine Funktion wie diese öffentliche Funktion callback_handler() {} auslösen

Aber wenn ich zu dieser URL gehe, sehe ich nur eine 1 auf meiner Seite – mein Handler sollte auf eine andere Seite umleiten (das habe ich eingestellt, um es offensichtlich zu machen). Was ich LIEBEN würde, ist, wenn jemand ein Beispiel für diese Arbeit hat. Ich habe versucht, die add_action und die Handler-Funktion an vielen Stellen zu platzieren, kein Glück.

Ich habe das gleiche Problem. Versuchen Sie, den Ausgang hinzuzufügen; oder wp_die(); am Ende Ihrer Callback-Funktion.

Das funktioniert für mich.

Ich hatte das gleiche Problem, also hat das bei mir funktioniert:

class WC_mygateway extends WC_Payment_Gateway {
  public function __construct() {
    //'woocommerce_api_'.strtolower(get_class($this)) will result in 'woocommerce_api_wc_mygateway'
    add_action('woocommerce_api_'.strtolower(get_class($this)), array(&$this, 'handle_callback'));
  }
  function handle_callback() {
    //Handle the thing here!
  }
}

function woocommerce_mygateway_add_gateway( $methods ) {
  $methods[] = 'WC_mygateway';
  return $methods
}
add_filter( 'woocommerce_payment_gateways', 'woocommerce_mygateway_add_gateway');

Stellen Sie sicher, dass Sie keine dieser Details verpassen, sonst funktioniert es nicht. Sie können es auch mit aufrufen http://example.com/?wc-api=wc_mygateway oder http://example.com/wc-api/wc_mygateway

Hoffe, dass diese Arbeit für alle funktioniert, die mit diesem Problem stecken bleiben!

  • Außerdem müssen Sie den Funktionsnamen „handle_callback“ verwenden, Sie können ihn nicht umbenennen. Verschwende mich ungefähr fünf Stunden…

    – James Chen

    25. März 2019 um 19:45 Uhr

Hast du es mal mit versucht http://ihreseite/wc-api/WC_ihr_gateway/ (Schrägstrich am Ende hinzufügen)?

Außerdem sollte die add_action “woocommerce_api_{class_name}” statt “woocommerce_api_callback” sein. Für Ihr Beispiel sollte es also “woocommerce_api_wc_your_gateway” sein.

1372080cookie-checkCallback_handler löst WooCommerce nicht aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy