Jalara Studio

Die Adresse der letzten Bestellung für den Adressaufkleber ausgeben

#


Für WooCommerce gibt es das Plugin Woocommerce Order address Print1, das ein PDF für einen Ausdrück für die Adressaufkleber erstellen kann. Nach der Installation und Aktivierung des Plugins, können die Plugin-Einstellungen, mit denen sich das PDF-Layout bestimmen lässt, unter WooCommerceSortieren Adressaufkleber aufgerufen werden. Hier lassen sich u.a. das Format (A4, Letter, Benutzerdefinierte Größe), die Ausrichtung (Portrait, Landscape), die Schriftgröße, die Anzahl der Spalten und Zeilen für den Ausdruck festlegen.

Der Nachteil an diesem Plugin ist, das zwar auch weniger als 10 Adressen ausgedruckt werden können, jedoch diese immer wieder an Platz eins des Druckbogens ausgegeben starten.

Wer die Bestellung kurz nach der Bestellung versandfertig machen möchte, kann die Adresse der letzten Bestellung z.B. auch über einen Shortcode ausgeben. Der Shortcode kann in den TinyMCE oder mit Hilfe der WordPress-Funktion do_shortcode() z.B. in ein Seiten-Template eingefügt werden, sofern die Seite vor einem Zugriff durch Unbefugte geschützt ist. Denn bei Kundendaten handelt es sich, wie bekannt, um personenbezogene Daten, die u.a. dem Persönlichkeitsrecht unterstehen. Alternativ kann auch ein eigener Bereich im Backend von WordPress angelegt2 werden, in dem sich z.B. eine ich eine Schaltfläche befindet, die mit Hilfe der PHP-Bibliothek mPDF ein PDF erstellt3 oder mit dem JavaScript-Befehl window.print() den Druckdialog öffnet.

Shortcode, der die Adresse der letzten Bestellung ausgibt

Im folgendem wird der Shortcode [shipping_address] erstellt, der den Namen und die Adresse des letzten Kunden ausgibt, um zu zeigen, wie die Versandadresse ausgelesen werden kann. Für den Fall, dass eine Adresse einer anderen Bestell-ID ausgegeben werden soll, wurde dem Shortcode zusätzlich das Attribut id hinzugefügt, mit dem optional die Order-ID als Wert angegeben werden kann (z.B. [shipping_address id = „123“]).

Mit folgendem Codeschnipsel, der den Shortcode erstellt, lässt sich erkennen wie die Daten für den jeweiligen Zweck ausgelesen werden können:

function shipping_address( $atts ) {

    $args = array(
        'post_type' => wc_get_order_types( 'view-orders' ),
        'post_status'  => array_keys( wc_get_order_statuses() ),
        'posts_per_page' => 1,
        'orderby' => 'ID',
        'orderby' => 'DESC');

    $query = new WP_Query( $args );

    $atts = shortcode_atts( array(
        'id' => $query->posts[0]->ID,
    ), $atts );

    $order = new WC_Order( $atts['id'] ); 

    echo $order->shipping_first_name . ' ';
    echo $order->shipping_last_name . '<br>';
    if ($order->shipping_company){
     echo $order->shipping_company . '<br>';
    }
    if ($order->shipping_address_1){
        echo $order->shipping_address_1 . '<br>';
    }
    if ($order->shipping_address_2){
        echo $order->shipping_address_2 . '<br>';
    }
    echo $order->shipping_postcode . ' ';
    echo $order->shipping_city . '<br>';

}
add_shortcode( 'shipping_address', 'shipping_address' );

Erklärung: Die Variable $atts enthält ein assoziatives Array an Attributen, in diesem Fall lediglich die Order-ID der ersten Ausgabe der Variable $query.

Weitere Attribute mitgeben

Möchtest du im Shortcode z.B. auch eine CSS-Klasse angeben, kannst du die Variable $atts wie folgt anpassen:

$atts = shortcode_atts( array(
    'id' => $query->posts[0]->ID,
    'class' => 'adressaufkleber'
 ), $atts );

Anschließend muss noch ein HTML-Element, das die CSS-Klasse entgegennimmt, ausgegeben werden:

echo '<div class="' . $atts['class'] . '">';
// echo $order->shipping_first_name . ' ';
// […]
// echo $order->shipping_city . '<br>';
echo '</div>';

Der Shortcode lässt sich daraufhin wie folgt verwenden: [shipping_address id = „123“ class=“spalte-1-zeile-1″].

Links