Anzeige von Barcodes NUR für E-Mail-Benachrichtigungen zum abgeschlossenen Bestellstatus

Lesezeit: 2 Minuten

Benutzer-Avatar
Nacer Chikhi

Auf meiner WooCommerce-Website verwende ich Woocommerce-Bestell-Barcodes um Barcodes einer Bestellung in E-Mail-Benachrichtigungen anzuzeigen.
Ich möchte diesen Barcode ausblenden oder entfernen und anzeigen NUR an abgeschlossen E-Mail-Benachrichtigungen zum Bestellstatus.

Ich habe versucht, die Plugin-Datei zu bearbeiten (ich weiß, dass dies nicht empfohlen wird). Ich habe dies (Zeile 128 – 129) in entfernt class-woocommerce-order-barcodes.php Plugin-Datei:

// Add barcode to order complete email
add_action( 'woocommerce_email_after_order_table', array( $this, 'get_email_barcode' ), 1, 1 );

Aber es entfernt die Barcodes aus allen E-Mail-Benachrichtigungen.

Wie kann ich diese Barcodes aus der E-Mail-Benachrichtigung entfernen und sie nur bei abgeschlossener E-Mail-Benachrichtigung anzeigen?

Vielen Dank

Die Umkehrung, damit es nur für E-Mail-Benachrichtigungen zum abgeschlossenen Bestellstatus funktioniert, besteht darin, nur diese kleine Bedingung in eine IF-Anweisung aufzunehmen:

$order->has_status( 'completed' )

Du könntest es also erstmal so versuchen:

if (!$this->has_status( 'completed' ) ){
    add_action( 'woocommerce_email_after_order_table', array( $this, 'get_email_barcode' ), 1, 1 );
}

Aber da ich mir nicht sicher bin, ob ich das $order-Objekt ($this) dort bekomme, habe ich weiter im Code dieses Plugins nachgesehen.

Bei Zeile 358 Sie haben den Code unten, wo ich die Bedingung hinzugefügt habe.

/**
 * Get barcode for display in an email
 * @access  public
 * @since   1.0.0
 * @param   object $order Order object
 * @return  void
 */
public function get_email_barcode ( $order ) {

    if( ! $order ) return;

    // HERE is my condition  <====  <====  <====  <====  <====  <====  <====
    if (!$order->has_status( 'completed' ) ) return;

    // Generate correctly formatted HTML for email
    ob_start(); ?>

// … / …
// code of the function continues …

Hier bin ich mir ziemlich sicher, dass das klappen wird, da ich das schon hinbekomme $order Objekt. Die einzige Sache ist, dass Sie diesen Code jedes Mal erneut hinzufügen müssen, wenn Sie dieses Plugin aktualisieren.

Da dies ungetestet ist, bin ich mir nicht sicher, ob es funktionieren wird. Bitte gebt mir ein Feedback dazu

  • Wie immer funktioniert dein Tweak wie ein Zauber, danke Loïc, du bist der #ONE

    – Nacer Chikhi

    13. Dezember 2016 um 15:11 Uhr


1225740cookie-checkAnzeige von Barcodes NUR für E-Mail-Benachrichtigungen zum abgeschlossenen Bestellstatus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy