在woocommerce发票中显示税

时间:2013-08-21 15:19:24

标签: woocommerce invoice

不幸的是,woocommerce不会像在德国那样显示其发票。现在是

product name - quantity - price 

我需要发票邮件模板说

product name - *single price* - *tax rate (e.g. 19%)* - quantity - price

我知道我必须把它放进

/my-theme/woocommerce/emails/email-order-items.php

某处:

<?php
/**
 * Email Order Items
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates/Emails
 * @version     2.0.3
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

global $woocommerce;

foreach ($items as $item) :

    // Get/prep product data
    $_product = $order->get_product_from_item( $item );
    $item_meta = new WC_Order_Item_Meta( $item['item_meta'] );
    $image = ($show_image) ? '<img src="'. current(wp_get_attachment_image_src( get_post_thumbnail_id( $_product->id ), 'thumbnail')) .'" alt="Product Image" height="'.$image_size[1].'" width="'.$image_size[0].'" style="vertical-align:middle; margin-right: 10px;" />' : '';

    ?>
    <tr>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee; word-wrap:break-word;"><?php

            // Show title/image etc
            echo    apply_filters( 'woocommerce_order_product_image', $image, $_product, $show_image);

            // Product name
            echo    apply_filters( 'woocommerce_order_product_title', $item['name'], $_product );

            // SKU
            echo    ($show_sku && $_product->get_sku()) ? ' (#' . $_product->get_sku() . ')' : '';

            // File URLs
            if ( $show_download_links && $_product->exists() && $_product->is_downloadable() ) {

                $download_file_urls = $order->get_downloadable_file_urls( $item['product_id'], $item['variation_id'], $item );

                $i = 0;

                foreach ( $download_file_urls as $file_url => $download_file_url ) {
                    echo '<br/><small>';

                    $filename = woocommerce_get_filename_from_url( $file_url );

                    if ( count( $download_file_urls ) > 1 ) {
                        echo sprintf( __('Download %d:', 'woocommerce' ), $i + 1 );
                    } elseif ( $i == 0 )
                        echo __( 'Download:', 'woocommerce' );

                    echo ' <a href="' . $download_file_url . '" target="_blank">' . $filename . '</a></small>';

                    $i++;
                }
            }

            // Variation
            echo    ($item_meta->meta) ? '<br/><small>' . nl2br( $item_meta->display( true, true ) ) . '</small>' : '';

        ?></td>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?></td>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>
    </tr>

    <?php if ($show_purchase_note && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true)) : ?>
        <tr>
            <td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo apply_filters('the_content', $purchase_note); ?></td>
        </tr>
    <?php endif; ?>

<?php endforeach; ?>

您可以将输出更改为此

product name - *single price* - *tax rate (e.g. 19%)* - quantity - price

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以通过添加以下行来显示不含税的单项价格:

<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_item_total( $item, false ); ?></td>

就在这一行之上:

<td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?></td>

但是,这会添加其他列,因此您必须将此列添加到其他行(表头和总计)。为此,请打开包含此表的每个电子邮件模板,然后添加以下行:

<th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price (excl. tax)', 'woocommerce' ); ?></th>

就在这一行之下:

<th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>

同时更改此行:

<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>

进入这个:

<th scope="row" colspan="3" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>

现在,以这种方式显示订单/项目税将很难,因为WooCommerce订单可能会应用多种不同的税。但是,您可以将其硬编码到模板中。

您可能希望尝试使用WooCommerce PDF Invoice插件 - 它可以选择显示不含税的价格/小计,然后是税行,然后是税收总额。

答案 1 :(得分:0)

可能有点老了但是:只需将woocommerce中的税名更改为&gt; settings-&gt;税费从Mwst.更改为Mwst. (19%),依此类推