Ganz so trivial ist das Ändern des Codes leider nicht. Die SKU solltest du angezeigt bekommen, wenn du im jeweiligen Template den zweiten Paramter folgender Methode auf true setzt:
<?php echo $order->email_order_items_table( true, false, true, true, array( 150, 150 ) ); ?>
[FONT=verdana]Hier siehtst du welcher Parameter was bedeutet - der 2. wäre demnach show_sku[/FONT]
public function email_order_items_table( $show_download_links = false, $show_sku = false, $show_purchase_note = false, $show_image = false, $image_size = array( 32, 32), $plain_text = false )
[FONT=verdana]Da die Tabelle ansich jedwoch mit dieser Methode aufgebaut ist, müsste diese umgeschrieben werden für das Anzeigen der ID. [/FONT]
Ganz herzlichen Dank für die ausführliche Antwort!
Obwohl ich fürchte, das ich damit überfordert bin, will ich versuchen es zu verstehen.
Als erstes muss ich die woocommerce/templates/emails/admin-new-order.php kopieren, um sie nach der Änderung auf yourtheme/woocommerce/emails/admin-new-order.php einzufügen.
Allerdings sieht meine admin-new-order.php wie folgt aus:
<?php/** * Admin new order email * * @author WooThemes * @package WooCommerce/Templates/Emails/HTML * @version 2.0.0 */if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
<p><?php printf( __( 'You have received an order from %s. Their order is as follows:', 'woocommerce' ), $order->billing_first_name . ' ' . $order->billing_last_name ); ?></p>
<?php do_action( 'woocommerce_email_before_order_table', $order, true ); ?>
<h2><?php printf( __( 'Order: %s', 'woocommerce'), $order->get_order_number() ); ?> (<?php printf( '<time datetime="%s">%s</time>', date_i18n( 'c', strtotime( $order->order_date ) ), date_i18n( woocommerce_date_format(), strtotime( $order->order_date ) ) ); ?>)</h2>
<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee"> <thead> <tr> <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th> <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th> <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th> </tr> </thead> <tbody> <?php echo $order->email_order_items_table( false, true ); ?> </tbody> <tfoot> <?php if ( $totals = $order->get_order_item_totals() ) { $i = 0; foreach ( $totals as $total ) { $i++; ?><tr> <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th> <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td> </tr><?php } } ?> </tfoot></table>
<?php do_action('woocommerce_email_after_order_table', $order, true); ?>
<?php do_action( 'woocommerce_email_order_meta', $order, true ); ?>
<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
<?php if ( $order->billing_email ) : ?> <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p><?php endif; ?><?php if ( $order->billing_phone ) : ?> <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p><?php endif; ?>
<?php woocommerce_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
<?php do_action( 'woocommerce_email_footer' ); ?>
Alles anzeigen
Von SKU, das ich auf "true" setzen kann, ist leider nichts zu sehen :-(