Beiträge von Azrael_0815

    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?

    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.

    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]

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

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