2017-05-30 1 views
0

Hier ist mein Code genannt zu werden. Die URL lautet http://site_url/wc-api/MOJO_ABC.WooCommerce Callback-Funktion wird nicht

Stattdessen zeigt der Bildschirm nur 1 und es gibt nichts in den Debug-Logs auch auf ein Problem mit dem Code.

Jede Hilfe würde sehr geschätzt werden. Danke

+0

Ich würde versuchen, Ihr Plugin auf dem 'woocommerce_loaded'-Hook zu initialisieren. Aber fügen Sie Ihr Gateway auch über den Filter "woocommerce_available_payment_gateways" hinzu? Du hast diesen Teil deines Codes nicht angezeigt. – helgatheviking

+0

@helgatheviking Ich füge mein Gateway über den 'woocomerce_available_payment_gateways' Filter hinzu. Ich habe den Code bearbeitet. Wie auch immer, ich konnte das Problem lösen. –

+0

Können Sie Ihre Lösung als Antwort posten? – helgatheviking

Antwort

0

Ich war in der Lage, das Problem zu lösen, indem Sie alle Plugins deaktivieren und dann eins nach dem anderen mit meinem Plugin hinzufügen und überprüfen Sie die Debug-Protokolle der Woocommerce.

Ich fand, dass eines der anderen Plugin einige Bugs hatte und das war, was meinen Haken störte, um richtig registriert zu werden und folglich nicht angerufen zu werden. Ich habe nur dieses Plugin deaktiviert und es begann wie ein Charme zu arbeiten. Ich habe den Plugin-Entwickler dieses Problems vorerst informiert.

Zum Debuggen, sollten Sie einige Dinge tun, die mir die Frage finden geholfen:

  1. Aktivieren Sie den Debug-Modus von Wordpress in wp-config.php:
    `

    define (‘ WP_DEBUG ', wahr); definieren ('WP_DEBUG_LOG', wahr); // Anzeige von Fehlern und Warnungen deaktivieren define ('WP_DEBUG_DISPLAY', false); @ini_set ('display_errors', 0);

`

2.Add Protokollfunktionalität in Plugin-Protokolle in Debug-Datei zu schreiben, den Fluss des Codes und andere Dinge zu überprüfen: diesen Code in Ihrem Konstruktor hinzufügen zu Beginn: - `

if (!function_exists('write_log')) { 
     function write_log ($log) { 
      if (true === WP_DEBUG) { 
      if (is_array($log) || is_object($log)) { 
       error_log(print_r($log, true)); 
      } else { 
       error_log($log); 
      } 
      } 
     } 
     } 

<br> And write logs by write.log ("abc") or write.log ($ var) `.

Auf diese Weise können Sie Fehlermöglichkeiten in Ihrem Workflow ausschließen und sich auf andere Dinge konzentrieren, die das Problem verursacht haben könnten.

Verwandte Themen