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

    • 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

  • Bei mir funktioniert das lokal so. Die Checkbox wird nur noch angezeigt, wenn Produkt aus Kat "events" im Warenkorb.

  • Hi Azrael,

    PERFEKT - vielen Dank! Das hätte ich wohl nicht alleine gebacken bekommen.

    Ich hatte den Fehler gemacht die Produktkategorie wie im Namen einzutragen. Da muss aber der Slug rein - also kleingeschrieben. Das ist soweit alles bestens...


    Nun mach ich mich an die Sache mit dem Status bei den Bestellungen... Mir war nun nicht ganz klar wo ich deinen Code zum "Fee" abfragen soll...

    Code
    [COLOR=#0000BB][FONT=monospace]$noticketsend[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]""[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
                        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$the_order [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]wc_get_order[/FONT][/COLOR][COLOR=#007700][FONT=monospace]( [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$order_id [/FONT][/COLOR][COLOR=#007700][FONT=monospace]);
                        foreach( [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$the_order[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]get_items[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'fee'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) as [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$item_id [/FONT][/COLOR][COLOR=#007700][FONT=monospace]=> [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$item_fee [/FONT][/COLOR][COLOR=#007700][FONT=monospace]){
                        [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$fee_name [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$item_fee[/FONT][/COLOR][COLOR=#007700][FONT=monospace]->[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]get_name[/FONT][/COLOR][COLOR=#007700][FONT=monospace]();
                        if ([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$fee_name[/FONT][/COLOR][COLOR=#007700][FONT=monospace]==[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Hardcopy-Ticket:"[/FONT][/COLOR][COLOR=#007700][FONT=monospace]) {
                            [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$noticketsend[/FONT][/COLOR][COLOR=#007700][FONT=monospace]=[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"YES"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
                        } [/FONT][/COLOR]

    Das mit der if-Anweisung zum Update vom Status kann ich ja sehr einfach in den Code der php einbinden...


    Schönen Sonntag wünsche ich!

  • Plugin, welches die Order auf Completed setzt, wenn kein Hardcopy-Ticket.

  • Hi,

    wir sind schon nahe dran... Das Plugin unterbindet aber wie es aussieht nicht nur die automatische Email Zustellung des Tickets sonder auch generell die Erstellung jener als PDF...

    Das ist dann wohl noch ein Zwischenschritt der nach "Update Status" stattfindet... Ich gehe ja einmal davon aus, das jene PDF Tickets durch den Konverter gehen und dann ab per Email raus. (Wenn Online)...


    Hum

    GLG

  • Ich weiß nicht, wie das Plugin das macht, evtl. ist update_status eine Funktion, die PDFs erstellt und dann versendet. Ich schau mir die morgen mal an und gucke, ob ich nur die EMail unterbunden kriege.

  • Hi,

    ohne das "noticketsent" waren wir ja schon nahe dran. Da hatte es das PDF-Ticket erstellt, in den Uploads Ordner gespeichert und die Bestellung auf "In Bearbeitung" gesetzt. Bei Bestätigung wurde es dann doch noch geschickt... Also ich denke das der Schritt mit dem senden nach Aktivierung auf "complete" beginnt. Das PDF wird schon vorher produziert, weswegen mir nicht einleuchtet warum dem nun nicht so ist.

    Das probiere ich nochmal aus.

    GLG

  • Probiere mal das:

    Also wenn Hardcopy-Ticket, setzt er die Order auf processing und sonst auf completed. Das ist eine Woocommerce - Funktion, dürfte also nix mit den PDFs zu tun haben.

    Einmal editiert, zuletzt von Azrael_0815 (25. Februar 2018 um 17:54)

  • Habe den Fehler glaube ich gefunden. Fooevents hat da einen Hook drin, der nur bei Completed anspringt.

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

    Wenn Status=Completed, process_order_tickets.

    Wenn also Status nicht Completed, werden die PDFs wohl nicht erstellt.

  • Probier mal das Plugin.

    Das müsste die Tickets erstellen, auch wenn kein Completed.

    [COLOR=#000000] [COLOR=#0000BB]<?php

    [/COLOR][COLOR=#FF8000]/*
    Plugin Name: Update Status, if not Hardcopy-Ticket

    */
    /** * bezahlte Bestellungen automatisch abschliessen
    */
    [/COLOR][COLOR=#0000BB]add_action[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]'woocommerce_thankyou'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'auto_complete_paid_order'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]10[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]);
    function [/COLOR][COLOR=#0000BB]auto_complete_paid_order[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$order_id [/COLOR][COLOR=#007700]) {
    if ( ! [/COLOR][COLOR=#0000BB]$order_id [/COLOR][COLOR=#007700]) {
    return;
    }

    global [/COLOR][COLOR=#0000BB]$woocommerce[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]$order [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]WC_Order[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$order_id [/COLOR][COLOR=#007700]);

    [/COLOR][COLOR=#FF8000]// kein Status Update fuer folgende Zahlungsarten
    [/COLOR][COLOR=#007700]if ( ( [/COLOR][COLOR=#0000BB]get_post_meta[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$order[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]id[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'_payment_method'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700]) == [/COLOR][COLOR=#DD0000]'bacs' [/COLOR][COLOR=#007700]) || ( [/COLOR][COLOR=#0000BB]get_post_meta[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$order[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]id[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'_payment_method'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700]) == [/COLOR][COLOR=#DD0000]'cod' [/COLOR][COLOR=#007700]) || ( [/COLOR][COLOR=#0000BB]get_post_meta[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$order[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]id[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'_payment_method'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700]) == [/COLOR][COLOR=#DD0000]'cheque' [/COLOR][COLOR=#007700]) ) {
    return;
    }
    [/COLOR][COLOR=#FF8000]// "completed" fuer alle anderen Zahlungsarten
    [/COLOR][COLOR=#007700]else {


    [/COLOR][COLOR=#FF8000]//DMS
    [/COLOR][COLOR=#0000BB]$noticketsend[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]""[/COLOR][COLOR=#007700];
    [/COLOR][COLOR=#0000BB]$the_order [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]wc_get_order[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]$order_id [/COLOR][COLOR=#007700]);
    foreach( [/COLOR][COLOR=#0000BB]$the_order[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]get_items[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'fee'[/COLOR][COLOR=#007700]) as [/COLOR][COLOR=#0000BB]$item_id [/COLOR][COLOR=#007700]=> [/COLOR][COLOR=#0000BB]$item_fee [/COLOR][COLOR=#007700]){
    [/COLOR][COLOR=#0000BB]$fee_name [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]$item_fee[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]get_name[/COLOR][COLOR=#007700]();
    if ([/COLOR][COLOR=#0000BB]$fee_name[/COLOR][COLOR=#007700]==[/COLOR][COLOR=#DD0000]"Hardcopy-Ticket:"[/COLOR][COLOR=#007700]) {
    [/COLOR][COLOR=#0000BB]$noticketsend[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#DD0000]"YES"[/COLOR][COLOR=#007700];
    }

    }


    [/COLOR][COLOR=#FF8000]//DMS

    //DMS
    [/COLOR][COLOR=#007700]if (empty([/COLOR][COLOR=#0000BB]$noticketsend[/COLOR][COLOR=#007700])) {
    [/COLOR][COLOR=#FF8000]//DMS
    [/COLOR][COLOR=#0000BB]$order[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000BB]update_status[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]'completed' [/COLOR][COLOR=#007700]);
    [/COLOR][COLOR=#FF8000]//DMS
    [/COLOR][COLOR=#007700]} else {
    process_order_tickets($order_id);
    }
    [/COLOR][COLOR=#FF8000]//DMS
    [/COLOR][COLOR=#007700]}
    [/COLOR][COLOR=#FF8000]//DMS
    [/COLOR][COLOR=#007700]}


    [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

  • Hi,

    ja dann müsste man doch eigentlich nur das completed in processing ändern - oder?

    Kann aber auch nicht sein, da ich nach Bestätigung der Bestellung ja auch kein Ticket als PDF im Uploads Ordner finde... ?!Hum

    Es sind zwei Plugins. FooEvents und FooEventsPDFTicket

  • Hi,

    also ich glaube das mit dem generierten Tickets hatte ich falsch gesehen. Ich hab nun die Codes auf zwei Plugins verteilt (Hardticket Checkbox) + (Status IF Hardticket Processing) und dann alle schon generierten PDF's gelöscht. Immo - wurde nichts erstellt, obwohl der Kunde die Email mit Fertiggestellt bekommt. Dann ist die Lösung mit dem "noticketsend" derzeit schon die stimmigste.

    Damit könnte ich schon arbeiten - das einzige was dann passiert ist, dass die Namen der Kunden nicht auf den Tickets sind. Wenn ich Tickets für die Vorverkaufsstellen erstelle oder eben (wenn es sich nicht lösen lässt) für die paar Kunden die das Hardticket wollen, so log ich mich über einen Account z.B. hardticket@XXX.ein. Gebe für Namen "Lichtspiele" "Hardticket" ein -> bestelle jene mit einem 100% Discount -> Drucke aus -> verschicke...

    FooEvents bietet zwar auch eine Möglichkeit Tickets zu erstellen - das funktioniert aber nur bei Online Tickets und generiert auch keine PDF's. Ich glaub ohnehin das mit dem PDF haben die da noch nicht ganz durchdacht. Genial wäre es natürlich könnte ich aus dem System heraus die "Offline Hardtickets" erstellen. Ich geh halt den Umweg mit dem hardicket@XXX.de Account und dem Discount... Funktioniert ja eigentlich blendend.


    Und daraus folgt... Die Tickets werden wie du schon geschrieben hast im "completed" Status erstellt...


    LG

  • Hier schon mal die Funktion für die Single Tickets... aus der PDF-Tickets PHP...
    Muss man nur noch finden wo das ausgelöst wird..

    In der FooEvents.php find ich da leider nix... ;-(

  • Ich versuche morgen einfach mal, ob das Aufrufen der Funktion auch durch einfachen Aufruf aus dem Plugin geschehen kann. Teste Du mal bitte, ob die PDFs generiert werden, wenn kein Hardcopy-Ticket gewollt, Checkbox also ungecheckt bleibt.

  • Hi,

    das hab ich schon durchgespielt. Dann wird das Ticket ohne Probleme generiert und parallel auf dem Server abgespeichert. Ich denke die Funktion wird kurz vor dem Email Versand irgendwie mit aufgerufen und hat weniger mit dem Produkt Status zu tun. Da wir den Versand ja unterbinden wenn "Hardticket Checkbox" aktiv.

    Insgesamt kommen immer 4 Email an bei Online Ticket. Am Ende kommt in einer separaten Email die Online-pdf Tickets und eine "Bestellung Fertiggestellt"... In dem Schritt muss das wohl irgendwie laufen...

Jetzt mitmachen!

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