V případě, že prodáváte zboží a jste plátci DPH, možná budete chtít, aby se v e-mailu zobrazovaly vyčíslené celkové součty bez daně a s daní. Ukážeme si, jak na to.
V předchozím článku jsme si ukazovali, jak editovat soubory šablony e-mailu, takže to si již ukazovat nebudeme a rovnou si představíme postup.
V základu vypadají součty takto:
Kód vypadá takto:
$item_totals = $order->get_order_item_totals();
if ( $item_totals ) {
$i = 0;
foreach ( $item_totals as $total ) {
$i++;
?>
<tr>
<th class="td" scope="row" colspan="3" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td>
</tr>
<?php
}
}
Z kódu je zřejmé, že položek „totals“ je více než jedna. My budeme hledat totals s key order_total. Kód upravíme následovně:
foreach ( $item_totals as $key => $total ) {
$i++;
if ( 'order_total' == $key ) {
$order_total = $order->get_total();
$tax_totals = $order->get_tax_totals();
$total_tax = 0;
foreach( $tax_totals as $tax_item ) {
$total_tax += $tax_item->amount;
}
$without_tax = $order_total - $total_tax;
?>
<tr>
<th class="td" scope="row" colspan="3" data-key="<?php echo $key; ?>" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( 'Celkem bez DPH:', 'musilda' ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wc_price( $without_tax ); ?></td>
</tr>
<tr>
<th class="td" scope="row" colspan="3" data-key="<?php echo $key; ?>" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wc_price( $order_total ); ?></td>
</tr>
<?php
} else {
?>
<tr>
<th class="td" scope="row" colspan="3" data-key="<?php echo $key; ?>" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['label'] ); ?></th>
<td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>; <?php echo ( 1 === $i ) ? 'border-top-width: 4px;' : ''; ?>"><?php echo wp_kses_post( $total['value'] ); ?></td>
</tr>
<?php
}
}
V e-mailu to vypadá následovně: