WooCommerce Online Ticketsystem läuft... Optionaler Hardticket Versand integrieren?

  • Mach mal folgendes:

    Entferne den Hook processing aus der woohelper.php.


    add_action('woocommerce_order_status_processing', array(&$this, 'process_order_tickets'), 10, 1);

    weg.

    Und dann

    do_action('woocommerce_order_status_completed', array(&$this, 'process_order_tickets'), 10, 1);

    hinter das else { im Plugin.

    Damit führt er die Aktion aus, ändert aber nix am Status. Es sei denn, die Funktion ändert da noch was.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren


  • do_action('woocommerce_order_status_completed', array(&$this, 'process_order_tickets'), 10, 1);

    Jetzt verrennt Ihr Euch aber gewaltig. Den Aufruf gibt es nicht. do_action definiert einen Tag auf dem man sich mit add_action einhooken kann und übergibt wahlweise Parameter an die Funktion, die sich auf dem Tag einhookt.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hi ;-)

    Nun läuft es bei den Online Tickets wieder rund. Dafür hauts mir mit "Hardticket" wieder nen Fatal Error rein.

    Code
    [B]Fatal error: Uncaught Error: Call to a member function get_customer_id() on boolean in /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-content/plugins/woocommerce/includes/wc-user-functions.php:192 Stack trace: #0 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php(288): wc_paying_customer(Array) #1 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #2 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #3 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-content/plugins/no_pdf_ticket_mail.php(44): do_action('woocommerce_ord...', Array, 10, 1) #4 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php(286): auto_complete_paid_order(15094) #5 /var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #6 /var/www/web28596838/html/freiheitenwelt.de/wordpres in [B]/var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-content/plugins/woocommerce/includes/wc-user-functions.php on line [B]192[/B][/B][/B]
  • "This function invokes all functions attached to action hook $tag."

    Ich suche halt eine Möglichkeit, die Funktion ausführen zu lassen, mensmaximus, also quasi zu simulieren, der Status sei Completed.

    Hast Du da ne Möglichkeit, die Funktion ausführen zu lassen, mensmaximus?

  • Okay, entferne das mit dem do_action wieder. Wir führen einen neuen Status ein:

    Nach

    $order = new WC_Order( $order_id ); im Plugin fügst Du ein:

    Gibt es jetzt den neuen Status "Hardcopy" im Backend?

  • add_action war schon richtig. Und der Hook woocommerce_order_status_processing ist auch richtig. Lasst die woohelper.php in Ruhe. Definiert eine eigene Funktion (Plugin oder Childtheme) die in Abhängigkeit des Checkbox dann die Klassenmethode process_order_tickets ausführt bzw. eine eigene Methode (so detailliert habe ich mir den Verlauf nicht angesehen) . Da ich den Quellcode nicht kenne kann ich nicht sagen ob der Aufruf statisch (Class::Method) erfolgen oder ob zuerst ein Objekt erstellt werden muss ( $foo = new Class(); $foo->method() ).

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Okay, entferne das mit dem do_action wieder. Wir führen einen neuen Status ein:

    Nach

    $order = new WC_Order( $order_id ); im Plugin fügst Du ein:

    Gibt es jetzt den neuen Status "Hardcopy" im Backend?

    :-(

    Code
    [B]Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'add_order_hardcopy_status' not found or invalid function name in [B]/var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php on line [B]286
    
    
    [B]Warning: array_keys() expects parameter 1 to be array, null given in [B]/var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-content/plugins/woocommerce/includes/class-wc-order-query.php on line [B]25[/B][/B][/B][/B][/B][/B]
  • :-(

    Code
    [B]Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'add_order_hardcopy_status' not found or invalid function name in [B]/var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-includes/class-wp-hook.php on line [B]286
    
    
    [B]Warning: array_keys() expects parameter 1 to be array, null given in [B]/var/www/web28596838/html/freiheitenwelt.de/wordpress/wp-content/plugins/woocommerce/includes/class-wc-order-query.php on line [B]25[/B][/B][/B][/B][/B][/B]


    function add_hardcopy_order_status( $order_statuses )

    aber

    add_filter( 'wc_order_statuses', 'add_order_hardcopy_status' );


    add_hardcopy_order_status != add_order_hardcopy_status

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Azrael denk dran, dass Du mit remove_action auch Hooks entfernen kannst. Wenn Dir der Originalaufruf in FooEvents also in die Quere kommt einfach früher einhooken und weg damit.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Beide Codes sind identisch

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Und jetzt machst Du wischen die else-Klammern im Plugin

    $order->update_status( 'hardcopy' );

    Eine Bestellung mit Postversand müsste jetzt den Status hardcopy bekommen.

  • Beide Codes sind identisch


    Sorry - hatte versucht den PHP Code einzusetzen aber der wird komisch dargestellt... Nun nochmal!

    HARDTICKET_CHECKBOX

  • NO_PDF_TICKET_MAIL

  • Und jetzt machst Du wischen die else-Klammern im Plugin

    $order->update_status( 'hardcopy' );

    Eine Bestellung mit Postversand müsste jetzt den Status hardcopy bekommen.


    Nach Bestellung folgt:

    1. Email Bestellbestätigung
    2. Email Zahlungseingang erhalten.

    Status im Backend "Zahlung ausstehend"


    LG

    Code
    if (empty($noticketsend)) {                
        $order->update_status( 'completed' );
    
    
      
      }else {
    $order->update_status('hardcopy');
    }
  • Merkwürdig....muss ich einen Moment drüber nachdenken.
    Was steht denn als value bei der Option, also im Quelltext des Select?

    Und das war mit gecheckter Checkbox?

    Probiere das bitte nochmal mit gecheckter Checkbox. Eigentlich müsste das den Status "Hardcopy" haben.

    Einmal editiert, zuletzt von Azrael_0815 (26. Februar 2018 um 17:52)

  • Merkwürdig....muss ich einen Moment drüber nachdenken.

    An die Zahlungsart denken ;-)

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!