Für WooCommerce gibt es das Plugin Woocommerce Order address Print1, das ein PDF mit Adressen erstellt. Nach der Installation und Aktivierung des Plugins, kann das PDF-Layout in den Plugin-Einstellungen (WooCommerce › Sortieren Adressaufkleber) eingerichtet 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 die Zeilen für den Ausdruck festlegen.
Der Nachteil an diesem Plugin ist, dass zwar weniger als 10 Adressen ausgedruckt werden können, jedoch diese immer wieder an Platz eins des Druckbogens starten.
Daher kann es praktisch sein, die Adresse der letzten Bestellung z.B. auch über einen Shortcode auszugeben. 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 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 nicht nur die Adresse der letzten Bestellung, sondern auch 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' );
Weitere Attribute mitgeben
Möchtest du im Shortcode außer der Order-ID 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
- 1↑ Plugin Woocommerce Order address Print:
- 2↑ QNimate WordPress Settings API Validation and Sanitization:
- 3↑ Jalara Studio Ein PDF mit der PHP-Bibliothek mPDF erstellen:
Buchempfehlung
Anzeige | Affiliate-Link*Wer mehr über Datenschutzrecht, Urheberrecht, Abmahnungen, Haftungsfragen, AGB und die rechtssichere Gestaltung der Shop- und Checkout-Seiten erfahren möchte, dem sei das über 500 Seiten starke Buch Recht für Webshop-Betreiber: Das umfassende Handbuch des IT-Rechtsanwaltes Michael Rohrlich empfohlen, das 2017 im Rheinwerk Verlag erschien.