• Resolved harmelingvb

    (@harmelingvb)


    Liebes Forum, liebes Support-Team,

    für einen Online-Shop mit ausschlie?lich personalisierten Artikeln w?re eine zus?tzliche E-Mail an den Kunden bei der ?nderung des Order-Status von ‘In Wartestellung’ zu ‘In Bearbeitung’ wünschenswert. Der Ablauf w?re folgender:

    – Bestellung wird ausgel?st (E-Mail-Best?tigung wird gesendet und fordert die n?tigen Informationen für die Personalisierung per Link an (Bilder, Texte, etc.)). Der Versand erfolgt au?erhalb des Shopsystems.
    Wenn alle Details für ein Produktion gekl?rt sind, m?chte ich den Status auf ‘ In Bearbeitung’ setzen und dabei eine Information an den Kunden senden, dass die Bestellung produziert wird. Prinzipiell funktioniert das mit dieser ?nderung in der functions.php:

    add_action( 'woocommerce_email', 'my_child_setup_email_notification', 10, 1 );
    
    function my_child_setup_email_notification( $mailer ) {
        $mails = $mailer->get_emails();
        if ( isset( $mails['WC_Email_Customer_On_Hold_Order'] ) ) {
            add_action( 'woocommerce_order_status_on-hold_to_processing_notification', array( $mails['WC_GZD_Email_Customer_Paid_For_Order'], 'trigger' ), 30 );
        }
    }

    Da die Einstellm?glichkeiten in der E-Mail “Paid for Order” sehr begrenzt sind, m?chte ich gerne die unter Germanized nicht gebrauchte “On Hold Order”-E-Mail senden. Da ich erst wenige Tage mit Woocommerce und Germanized arbeite, fehlt mir hier tats?chlich das Wissen, um dieses umzusetzen. Auch eine andere gut zu bearbeitende E-Mail w?re mir recht.

    Ich freue mich über eine L?sung. Vielen Dank.

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Author vendidero

    (@vendidero)

    Hi,

    die On-Hold-Mail kannst du natürlich auch einfach triggern. Aktuell prüfst du zwar ob die Mail existiert oder nicht (isset( $mails['WC_Email_Customer_On_Hold_Order'] )) aber verendest sie dann trotzdem nicht. Du müsstest also eigentlich folgendes Snippet verwenden:

    add_action( 'woocommerce_email', 'my_child_setup_email_notification', 150, 1 );
    
    function my_child_setup_email_notification( $mailer ) {
        $mails = $mailer->get_emails();
        if ( isset( $mails['WC_Email_Customer_On_Hold_Order'] ) ) {
            add_action( 'woocommerce_order_status_on-hold_to_processing_notification', array( $mails['WC_Email_Customer_On_Hold_Order'], 'trigger' ), 30 );
        }
    }

    Zudem müsstest du noch folgendes Snippet integrieren, damit Germanized den Versand der On-Hold-Mail erlaubt:

    add_filter( 'woocommerce_gzd_disable_on_hold_email', '__return_true' );

    Per Default verhindert Germanized den Versand explizit, damit die Bestellbest?tigung (Customer Processing Order) als einzige verschickt wird.

    Grü?e

    Thread Starter harmelingvb

    (@harmelingvb)

    Hallo,

    ganz herzlichen Dank für die schnelle Antwort. Da war ich ja schon ziemlich nah dran. Das ich die E-Mail nicht verwende, hatte ich schon bemerkt. Es funktionierte allerdings nicht und mit der Bezeichnung war ich mir nicht sicher.

    Das zus?tzliche Snippet habe ich ebenfalls in die functions.php aufgenommen (richtig?). Allerdings wird die on-hold-E-Mail trotzdem nicht versendet. Ich verwende Kadence WooCommerce Email Designer. Dort ist ein Testversand problemlos m?glich.

    Gibt es noch einen Tipp, der hier weiterhilft? Vielen Dank.

    Plugin Author vendidero

    (@vendidero)

    Hi,

    sorry, mein Snippet war leider falsch. Es müsste natürlich:

    add_filter( 'woocommerce_gzd_disable_on_hold_email', '__return_false' );

    lauten. Dann sollte es nun wirklich funktionieren (ja, alles sollte in die functions.php des Child-Themes).

    Grü?e

    Thread Starter harmelingvb

    (@harmelingvb)

    Hallo nochmal,

    mein Projekt steht wohl unter einem schlechten Stern und klemmt tats?chlich an dieser einen E-Mail. ??

    Nachdem das erste Snippet nicht funktionierte, habe ich die Variante mit __return_false auch schon ausprobiert. Leider wird auch damit keine E-Mail versendet.

    Als Template nutze ich storefront. Zwischenzeitlich habe ich auch schon mal alle unn?tigen Plugins deaktiviert – leider ohne Erfolg.

    Wenn es automatisch nicht machbar ist, kann ich diese E-Mail auch notfalls manuell versenden. Dafür w?re es sch?n, wenn sie im Backend im Bereich ‘send order email’ erscheinen würde. Gibt es dafür einen praktikablen Weg?

    Nochmals vielen Dank für die schnelle Hilfe und die Ideen.

    Plugin Author vendidero

    (@vendidero)

    Hi,

    im Zweifel müsstest du dir wohl Hilfe von einem Webentwickler hinzuziehen, der das ordentlich debugged und herausfindet, warum die Mail nicht versendet wird. Du solltest z.B. mal folgendes implementieren:

    add_action( 'woocommerce_email', 'my_child_setup_email_notification', 150, 1 );
    
    function my_child_setup_email_notification( $mailer ) {
    	$mails = $mailer->get_emails();
    
    	if ( isset( $mails['WC_Email_Customer_On_Hold_Order'] ) ) {
    		add_action( 'woocommerce_order_status_on-hold_to_processing_notification', 'my_child_notification_trigger', 30 );
    	}
    }
    
    add_filter( 'woocommerce_gzd_disable_on_hold_email', '__return_false' );
    
    function my_child_notification_trigger( $order_id ) {
    	$mailer = WC()->mailer();
    	$mails  = $mailer->get_emails();
    
    	if ( isset( $mails['WC_Email_Customer_On_Hold_Order'] ) ) {
    		$mails['WC_Email_Customer_On_Hold_Order']->trigger( $order_id );
    	}
    
    	var_dump($order_id);
    	var_dump( 'triggered' );
    	wp_die();
    }

    Das habe ich eben erfolgreich getestet, d.h. die On-Hold-Mail wurde bei mir korrekt versendet, sobald ich den Status von “in Wartestellung” auf “in Bearbeitung” gesetzt habe (im Admin-Bereich bei einer Testbestellung). Das Snippet beendet das PHP-Script nach dem Mail-Versand automatisch – den Part müsstest du dann natürlich nach dem Debugging wieder entfernen.

    Grü?e

    Thread Starter harmelingvb

    (@harmelingvb)

    Hallo und DANKE, DANKE, DANKE!

    Das ist DIE L?sung, es funktioniert problemlos.

    Nochmals ganz herzlichen Dank für die schnelle und kompetente Hilfe. Als Anf?nger ist man bei diesen Dingen echt aufgeschmissen und sieht dann den Wald vor lauter B?umen nicht mehr. Allein für den ersten Einstieg habe ich 3 Abende aufmerksam gegoogelt und endlose Threads gelesen.
    Ich denke, dass diese L?sung auch für viele andere interessant ist. Beim Suchen bin ich auf viele Anfragen gesto?en, aber eine so elegante L?sung gab es dort nicht.

    Nochmals herzlichen Dank und viele Grü?e!

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Order Status / zus?tzliche E-Mail’ is closed to new replies.