WooCommerce PDF Invoices - Version 1.1.1

Version Description

  • February 6, 2014 =

  • Added: Choose starting point for invoice numbers

  • Fixed: Invoice number stays at 0000

  • Fixed: Translation

Download this release

Release Info

Developer baaaaas
Plugin Icon 128x128 WooCommerce PDF Invoices
Version 1.1.1
Comparing to
See all releases

Code changes from version 1.1.0 to 1.1.1

assets/css/admin-styles.css CHANGED
@@ -36,4 +36,8 @@ select{
36
  .notes{
37
  font-style: italic;
38
  color: grey;
 
 
 
 
39
  }
36
  .notes{
37
  font-style: italic;
38
  color: grey;
39
+ }
40
+ #startAt{
41
+ width:50px;
42
+ vertical-align: middle;
43
  }
assets/screenshot-1.png CHANGED
Binary file
assets/screenshot-2.png CHANGED
Binary file
includes/class-invoice.php CHANGED
@@ -7,10 +7,14 @@ function __construct(){
7
  }
8
 
9
  // SEQUENTIAL INVOICE NUMBERS
10
- function set_sequential_invoice_number( $post_id ) {
11
  global $wpdb;
12
  $invoice_number = get_post_meta( $post_id, '_bewpi_invoice_number', true );
13
 
 
 
 
 
14
  if($invoice_number == ""){
15
  // attempt the query up to 3 times for a much higher success rate if it fails (due to Deadlock)
16
  $success = false;
@@ -18,17 +22,25 @@ function set_sequential_invoice_number( $post_id ) {
18
  // this seems to me like the safest way to avoid order number clashes
19
  $query = $wpdb->prepare( "
20
  INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
21
- SELECT %d, '_bewpi_invoice_number', IF( MAX( CAST( meta_value as UNSIGNED ) ) IS NULL, 1, MAX( CAST( meta_value as UNSIGNED ) ) + 1 )
22
  FROM {$wpdb->postmeta}
23
  WHERE meta_key='_bewpi_invoice_number'",
24
- $post_id );
25
  $success = $wpdb->query( $query );
26
  }
27
  }
28
  }
29
 
30
  function get_invoice_number($post_id){
31
- return get_post_meta( $post_id, '_bewpi_invoice_number', true );
 
 
 
 
 
 
 
 
32
  }
33
 
34
  function get_formatted_invoice_number($number, $option){
@@ -39,9 +51,12 @@ function get_formatted_invoice_number($number, $option){
39
 
40
  switch($option){
41
  case 1:
42
- $invoice_number = $year.$month.$today."-".$number;
43
  break;
44
  case 2:
 
 
 
45
  $year = substr($year, -2);
46
  $invoice_number = $year."-".$number;
47
  break;
@@ -55,8 +70,10 @@ function generate_invoice($val, $id, $order){
55
 
56
  if($id == $options['email_type'] || $id == $options['attach_to_new_order']){
57
 
 
 
58
  // Update db with sequential invoice number
59
- $this->set_sequential_invoice_number($order_number);
60
 
61
  // The library for generating HTML PDF files
62
  include(BEWPI_PLUGIN_DIR . '/mpdf/mpdf.php');
@@ -73,14 +90,6 @@ function generate_invoice($val, $id, $order){
73
  $year = date('Y');
74
  //$current_date = date('d-m-Y');
75
 
76
- // Get order number and order items
77
- $order_number = str_replace("#", "", $order->get_order_number());
78
- $items = $order->get_items();
79
-
80
- // Get invoice number from db and create format
81
- $number = $this->get_invoice_number($order_number);
82
- $invoice_number = $this->get_formatted_invoice_number($number, $options['invoice_number']);
83
-
84
  // Addresses
85
  $billing_address = $order->get_formatted_billing_address();
86
  $shipping_address = $order->get_formatted_shipping_address();
@@ -96,6 +105,10 @@ function generate_invoice($val, $id, $order){
96
  // For displaying the table the wright way
97
  $rowspan = count($vat_rates) + 4;
98
 
 
 
 
 
99
  // Yeah! Let's do it!
100
  ob_start();
101
  ?>
@@ -149,7 +162,7 @@ function generate_invoice($val, $id, $order){
149
  </td>
150
  <td width="50%" style="text-align: right;">
151
  <span style="font-size:22pt;">
152
- <?php echo __( 'INVOICE', 'woocommerce-pdf-invoices' ); ?><br />
153
  </span>
154
  </td>
155
  </tr>
@@ -158,8 +171,8 @@ function generate_invoice($val, $id, $order){
158
  <?php echo nl2br($options['extra_company_info']); ?><br />
159
  </td>
160
  <td width="50%" style="font-size: 9pt; text-align:right;">
161
- <?php echo sprintf( __( 'INVOICE NUMBER: ', 'woocommerce-pdf-invoices' )); echo $invoice_number; ?><br />
162
- <?php echo sprintf( __( 'DATE: %02d-%02d-%04d', 'woocommerce-pdf-invoices' ), $today, $month, $year); ?>
163
  </td>
164
  </tr>
165
  </table>
@@ -168,11 +181,11 @@ function generate_invoice($val, $id, $order){
168
  <table width="100%">
169
  <tr>
170
  <td style="50%">
171
- <span style="font-weight: bold;"><?php echo __( 'TO:', 'woocommerce-pdf-invoices' ); ?></span><br />
172
  <?php echo $billing_address; ?>
173
  </td>
174
  <td style="50%">
175
- <span style="font-weight: bold;"><?php echo __( 'SHIP TO:', 'woocommerce-pdf-invoices' ); ?></span><br />
176
  <?php echo $shipping_address; ?>
177
  </td>
178
  </tr>
@@ -182,7 +195,7 @@ function generate_invoice($val, $id, $order){
182
  <table>
183
  <tr>
184
  <td>
185
- <span style="font-weight: bold;"><?php echo __( 'Notes:', 'woocommerce-pdf-invoices' ); ?></span><br />
186
  <?php echo $purchase_note; ?>
187
  </td>
188
  </tr>
@@ -209,7 +222,7 @@ function generate_invoice($val, $id, $order){
209
  $total_order_discount = $order->get_total_discount();
210
  $order_subtotal_excl_tax =- $total_order_discount;
211
 
212
- foreach ( $items as $item ) {
213
  $product = get_product($item['product_id']);
214
 
215
  $item_tax = $order->get_item_tax($item, true);
@@ -248,12 +261,12 @@ function generate_invoice($val, $id, $order){
248
  if($vat_rates != 0){
249
  foreach($vat_rates as $rate){ ?>
250
  <tr>
251
- <td class="totals"><?php echo sprintf( __( 'VAT %s%%', 'woocommerce-pdf-invoices'), $rate ); ?></td>
252
  <td class="totals"><?php echo woocommerce_price(($order->get_total() / (100+$rate)) * $rate); ?></td>
253
  </tr>
254
  <?php }} ?>
255
  <tr>
256
- <td class="totals"><?php _e( 'Grand Total', 'woocommerce-pdf-invoices' ); ?></td>
257
  <td class="totals"><?php echo woocommerce_price($order->get_total()); ?></td>
258
  </tr>
259
  </tbody>
@@ -270,7 +283,7 @@ function generate_invoice($val, $id, $order){
270
  </htmlpageheader>
271
  <htmlpagefooter name="myfooter">
272
  <div style="font-size: 9pt; text-align: center; padding-top: 3mm; ">
273
- <?php echo sprintf( __( 'Page %s of %s', 'woocommerce-pdf-invoices' ), "{PAGENO}", "{nb}"); ?>
274
  </div>
275
  </htmlpagefooter>
276
 
7
  }
8
 
9
  // SEQUENTIAL INVOICE NUMBERS
10
+ function set_sequential_invoice_number( $post_id, $invoice_number_start ) {
11
  global $wpdb;
12
  $invoice_number = get_post_meta( $post_id, '_bewpi_invoice_number', true );
13
 
14
+ if($invoice_number_start == ""){
15
+ $invoice_number_start = 1;
16
+ }
17
+
18
  if($invoice_number == ""){
19
  // attempt the query up to 3 times for a much higher success rate if it fails (due to Deadlock)
20
  $success = false;
22
  // this seems to me like the safest way to avoid order number clashes
23
  $query = $wpdb->prepare( "
24
  INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value)
25
+ SELECT %d, '_bewpi_invoice_number', IF( MAX( CAST( meta_value as UNSIGNED ) ) IS NULL, %d, MAX( CAST( meta_value as UNSIGNED ) ) + 1 )
26
  FROM {$wpdb->postmeta}
27
  WHERE meta_key='_bewpi_invoice_number'",
28
+ $post_id, $invoice_number_start );
29
  $success = $wpdb->query( $query );
30
  }
31
  }
32
  }
33
 
34
  function get_invoice_number($post_id){
35
+ // for some reason this doesn't work the first time.
36
+ //return get_post_meta( $post_id, '_bewpi_invoice_number', true );
37
+
38
+ global $wpdb;
39
+ $results = $wpdb->get_results("SELECT meta_value FROM $wpdb->postmeta WHERE post_id = $post_id AND meta_key = '_bewpi_invoice_number'");
40
+
41
+ if(count($results) == 1){
42
+ return $results[0]->meta_value;
43
+ }
44
  }
45
 
46
  function get_formatted_invoice_number($number, $option){
51
 
52
  switch($option){
53
  case 1:
54
+ $invoice_number = $number;
55
  break;
56
  case 2:
57
+ $invoice_number = $year.$month.$today."-".$number;
58
+ break;
59
+ case 3:
60
  $year = substr($year, -2);
61
  $invoice_number = $year."-".$number;
62
  break;
70
 
71
  if($id == $options['email_type'] || $id == $options['attach_to_new_order']){
72
 
73
+ $order_number = str_replace("#", "", $order->get_order_number());
74
+
75
  // Update db with sequential invoice number
76
+ $this->set_sequential_invoice_number($order_number, $options['invoice_number_start']);
77
 
78
  // The library for generating HTML PDF files
79
  include(BEWPI_PLUGIN_DIR . '/mpdf/mpdf.php');
90
  $year = date('Y');
91
  //$current_date = date('d-m-Y');
92
 
 
 
 
 
 
 
 
 
93
  // Addresses
94
  $billing_address = $order->get_formatted_billing_address();
95
  $shipping_address = $order->get_formatted_shipping_address();
105
  // For displaying the table the wright way
106
  $rowspan = count($vat_rates) + 4;
107
 
108
+ // Get invoice number from db and create format
109
+ $number = $this->get_invoice_number($order_number);
110
+ $invoice_number = $this->get_formatted_invoice_number($number, $options['invoice_number']);
111
+
112
  // Yeah! Let's do it!
113
  ob_start();
114
  ?>
162
  </td>
163
  <td width="50%" style="text-align: right;">
164
  <span style="font-size:22pt;">
165
+ <?php _e( 'INVOICE', 'woocommerce-pdf-invoices' ); ?><br />
166
  </span>
167
  </td>
168
  </tr>
171
  <?php echo nl2br($options['extra_company_info']); ?><br />
172
  </td>
173
  <td width="50%" style="font-size: 9pt; text-align:right;">
174
+ <?php _e( 'INVOICE NUMBER: ', 'woocommerce-pdf-invoices' ); echo $invoice_number; ?><br />
175
+ <?php printf( __( 'DATE: %02d-%02d-%04d', 'woocommerce-pdf-invoices' ), $today, $month, $year ); ?>
176
  </td>
177
  </tr>
178
  </table>
181
  <table width="100%">
182
  <tr>
183
  <td style="50%">
184
+ <span style="font-weight: bold;"><?php _e( 'TO:', 'woocommerce-pdf-invoices' ); ?></span><br />
185
  <?php echo $billing_address; ?>
186
  </td>
187
  <td style="50%">
188
+ <span style="font-weight: bold;"><?php _e( 'SHIP TO:', 'woocommerce-pdf-invoices' ); ?></span><br />
189
  <?php echo $shipping_address; ?>
190
  </td>
191
  </tr>
195
  <table>
196
  <tr>
197
  <td>
198
+ <span style="font-weight: bold;"><?php _e( 'Notes:', 'woocommerce-pdf-invoices' ); ?></span><br />
199
  <?php echo $purchase_note; ?>
200
  </td>
201
  </tr>
222
  $total_order_discount = $order->get_total_discount();
223
  $order_subtotal_excl_tax =- $total_order_discount;
224
 
225
+ foreach ( $order->get_items() as $item ) {
226
  $product = get_product($item['product_id']);
227
 
228
  $item_tax = $order->get_item_tax($item, true);
261
  if($vat_rates != 0){
262
  foreach($vat_rates as $rate){ ?>
263
  <tr>
264
+ <td class="totals"><?php printf( __( 'VAT %s%%', 'woocommerce-pdf-invoices'), $rate ); ?></td>
265
  <td class="totals"><?php echo woocommerce_price(($order->get_total() / (100+$rate)) * $rate); ?></td>
266
  </tr>
267
  <?php }} ?>
268
  <tr>
269
+ <td class="totals"><strong><?php _e( 'Grand Total', 'woocommerce-pdf-invoices' ); ?></strong></td>
270
  <td class="totals"><?php echo woocommerce_price($order->get_total()); ?></td>
271
  </tr>
272
  </tbody>
283
  </htmlpageheader>
284
  <htmlpagefooter name="myfooter">
285
  <div style="font-size: 9pt; text-align: center; padding-top: 3mm; ">
286
+ <?php printf( __( 'Page %s of %s', 'woocommerce-pdf-invoices' ), "{PAGENO}", "{nb}"); ?>
287
  </div>
288
  </htmlpagefooter>
289
 
includes/plugin.php CHANGED
@@ -22,6 +22,7 @@ function bewpi_get_options(){
22
  'display_customer_notes' => '',
23
  'display_SKU' => '',
24
  'invoice_number' => '',
 
25
  );
26
 
27
  // Get options from database.
@@ -38,8 +39,8 @@ function bewpi_get_options(){
38
  }
39
 
40
  function bewpi_load_textdomain() {
41
- load_plugin_textdomain('woocommerce-pdf-invoices', false, 'woocommerce-pdf-invoices/lang/' );
42
- }
43
 
44
  add_action('plugins_loaded', 'bewpi_load_textdomain');
45
 
22
  'display_customer_notes' => '',
23
  'display_SKU' => '',
24
  'invoice_number' => '',
25
+ 'invoice_number_start' => '1',
26
  );
27
 
28
  // Get options from database.
39
  }
40
 
41
  function bewpi_load_textdomain() {
42
+ load_plugin_textdomain('woocommerce-pdf-invoices', false, 'woocommerce-pdf-invoices/lang/' );
43
+ }
44
 
45
  add_action('plugins_loaded', 'bewpi_load_textdomain');
46
 
includes/views/settings-page.php CHANGED
@@ -6,19 +6,20 @@
6
  }
7
  </script>
8
  <div class="wrap">
9
- <h3>WooCommerce PDF Invoices Settings</h3>
10
- <p>Please fill in the settings below. WooCommerce PDF Invoices generates a PDF invoice based upon the customer order and attaches it to an email type of your choice.</p>
11
  <form method="post" action="options.php" enctype="multipart/form-data">
12
- <?php
13
- settings_fields( 'be_woocommerce_pdf_invoices' );
14
  do_settings_sections( 'be_woocommerce_pdf_invoices' );
15
  $today = date('d');
16
  $month = date('m');
17
- $year = date('Y');
18
- ?>
 
 
 
19
  <table class="form-table">
20
  <tr valign="top">
21
- <th scope="row"><strong>Email type:</strong></th>
22
  <td>
23
  <select id="selectEmailType" name="be_woocommerce_pdf_invoices[email_type]">
24
  <option>-- Select --</option>
@@ -26,41 +27,83 @@
26
  <option value="customer_completed_order" <?php selected($options['email_type'], 'customer_completed_order'); ?>>Customer completed order</option>
27
  <option value="customer_invoice" <?php selected($options['email_type'], 'customer_invoice'); ?>>Customer invoice</option>
28
  </select>
29
- <input type="hidden" id="hfEmailType" value="<?php echo esc_attr($options['email_type']); ?>" />
30
  <div class="notes">
31
  Select the type of email to attach the invoice to.
32
  </div>
33
  </td>
34
  </tr>
35
  <tr valign="top">
36
- <th scope="row"><strong>Attach to New Order email type?</strong></th>
37
  <td>
38
  <select id="selectAdminNewOrder" name="be_woocommerce_pdf_invoices[attach_to_new_order]">
39
  <option value="new_order" <?php selected($options['attach_to_new_order'], 'new_order'); ?>>Yes</option>
40
  <option value="no" <?php selected($options['attach_to_new_order'], 'no'); ?>>No</option>
41
  </select>
42
- <input type="hidden" id="hfAdminNewOrder" value="<?php echo esc_attr($options['attach_to_new_order']); ?>" />
43
  <div class="notes">
44
  Determine to attach the invoice to the "New Order" email type for bookkeeping purposes.
45
  </div>
46
  </td>
47
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  <tr valign="top">
49
- <th scope="row"><strong>Company name:</strong></th>
50
  <td>
51
  <input required type="text" size="40" name="be_woocommerce_pdf_invoices[company_name]" value="<?php echo $options['company_name']; ?>" /><br/>
52
  <div class="notes">Add your company name here.</div>
53
  </td>
54
  </tr>
55
  <tr valign="top">
56
- <th scope="row"><strong>Company slogan:</strong></th>
57
  <td>
58
  <input type="text" size="40" name="be_woocommerce_pdf_invoices[company_slogan]" value="<?php echo $options['company_slogan']; ?>" /><br/>
59
  <div class="notes">Add your company slogan here. You can leave it blank.</div>
60
  </td>
61
  </tr>
62
  <tr valign="top">
63
- <th scope="row"><strong>Custom logo:</strong></th>
64
  <td>
65
  <input id="uploadFile" type="file" name="logo" accept="image/*" /><br />
66
  <div class="notes">Add your custom company logo. Please upload image with a size behond 50kB. You don't have to upload any, the plugin will use your company name.</div>
@@ -76,63 +119,21 @@
76
  </td>
77
  </tr>
78
  <tr valign="top">
79
- <th scope="row"><strong>Company address:</strong></th>
80
  <td>
81
  <textarea required name="be_woocommerce_pdf_invoices[address]" ><?php echo esc_textarea($options['address']); ?></textarea><br/>
82
  <div class="notes">Add your company address here.</div>
83
  </td>
84
  </tr>
85
  <tr valign="top">
86
- <th scope="row"><strong>Additional company information:</strong></th>
87
  <td>
88
  <textarea name="be_woocommerce_pdf_invoices[extra_company_info]" rows=6 cols=120 ><?php echo esc_textarea($options['extra_company_info']); ?></textarea><br/>
89
  <div class="notes">Add some additional company information like a email address, telephone number, company number and tax number. You can leave it blank.</div>
90
  </td>
91
  </tr>
92
- <th scope="row"><strong>Invoice number:</strong></th>
93
- <td>
94
- <select name="be_woocommerce_pdf_invoices[invoice_number]">
95
- <option value="1" <?php selected($options['invoice_number'], '1'); ?>><?php echo $year.$month.$today."-0001" ?></option>
96
- <option value="2" <?php selected($options['invoice_number'], '2'); ?>><?php echo substr($year, -2)."-0001" ?></option>
97
- </select>
98
- <input type="hidden" id="hfDisplayInvoiceNumber" value="<?php echo esc_attr($options['invoice_number']); ?>" />
99
- <div class="notes">Choose how to generate the invoice number. Choose one of the example formats.</div>
100
- </td>
101
- </tr>
102
- <tr valign="top">
103
- <th scope="row"><strong>Display customer notes?</strong></th>
104
- <td>
105
- <select id="selectDisplayCustomerNotes" name="be_woocommerce_pdf_invoices[display_customer_notes]">
106
- <option value="yes" <?php selected($options['display_customer_notes'], 'yes'); ?>>Yes</option>
107
- <option value="no" <?php selected($options['display_customer_notes'], 'no'); ?>>No</option>
108
- </select>
109
- <input type="hidden" id="hfDisplayCustomerNotes" value="<?php echo esc_attr($options['display_customer_notes']); ?>" />
110
- <div class="notes">
111
- Choose to display customer notes.
112
- </div>
113
- </td>
114
- </tr>
115
- <th scope="row"><strong>Display SKU?</strong></th>
116
- <td>
117
- <select id="selectDisplaySKU" name="be_woocommerce_pdf_invoices[display_SKU]">
118
- <option value="yes" <?php selected($options['display_SKU'], 'yes'); ?>>Yes</option>
119
- <option value="no" <?php selected($options['display_SKU'], 'no'); ?>>No</option>
120
- </select>
121
- <input type="hidden" id="hfDisplaySKU" value="<?php echo esc_attr($options['display_SKU']); ?>" />
122
- <div class="notes">
123
- Choose to display SKU into table.
124
- </div>
125
- </td>
126
- </tr>
127
- <tr valign="top">
128
- <th scope="row"><strong>VAT rates:</strong></th>
129
- <td>
130
- <textarea name="be_woocommerce_pdf_invoices[vat_rates]" rows=6 cols=120 ><?php echo esc_textarea($options['vat_rates']);?></textarea><br/>
131
- <div class="notes">Add tax rates seperated by comma. These rates will be calculated based on the subtotal price.</div>
132
- </td>
133
- </tr>
134
  <tr valign="top">
135
- <th scope="row"><strong>Refunds policy, conditions etc.:</strong></th>
136
  <td>
137
  <textarea name="be_woocommerce_pdf_invoices[extra_info]" rows=6 cols=120 ><?php echo esc_textarea($options['extra_info']);?></textarea><br/>
138
  <div class="notes">Add some policies, conditions etc. It will be placed beyond the products table. You can leave it blank.</div>
@@ -141,8 +142,8 @@
141
  </table>
142
  <?php submit_button(); ?>
143
  <p>
144
- Thank you for using my FREE plugin. If you have any suggestions for new functionality, please use the
145
- <a href="http://wordpress.org/support/plugin/woocommerce-pdf-invoices"/>support forum</a> or feel free to contact me right away.<br/>
146
  Please <a href="http://wordpress.org/support/view/plugin-reviews/woocommerce-pdf-invoices?rate=5#postform"/>rate</a> with 5 stars as a service on return.
147
  </p>
148
  <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=baselbers%40hotmail%2ecom&lc=NL&item_name=WooCommerce%20PDF%20Invoices&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted">
6
  }
7
  </script>
8
  <div class="wrap">
9
+ <h2>WooCommerce PDF Invoices</h2>
 
10
  <form method="post" action="options.php" enctype="multipart/form-data">
11
+ <?php settings_fields( 'be_woocommerce_pdf_invoices' );
 
12
  do_settings_sections( 'be_woocommerce_pdf_invoices' );
13
  $today = date('d');
14
  $month = date('m');
15
+ $year = date('Y');?>
16
+ <h3>General</h3>
17
+ <style>
18
+ br {display:none;}
19
+ </style>
20
  <table class="form-table">
21
  <tr valign="top">
22
+ <th scope="row"><strong>Email</strong></th>
23
  <td>
24
  <select id="selectEmailType" name="be_woocommerce_pdf_invoices[email_type]">
25
  <option>-- Select --</option>
27
  <option value="customer_completed_order" <?php selected($options['email_type'], 'customer_completed_order'); ?>>Customer completed order</option>
28
  <option value="customer_invoice" <?php selected($options['email_type'], 'customer_invoice'); ?>>Customer invoice</option>
29
  </select>
 
30
  <div class="notes">
31
  Select the type of email to attach the invoice to.
32
  </div>
33
  </td>
34
  </tr>
35
  <tr valign="top">
36
+ <th scope="row"><strong>Attach to New Order email type</strong></th>
37
  <td>
38
  <select id="selectAdminNewOrder" name="be_woocommerce_pdf_invoices[attach_to_new_order]">
39
  <option value="new_order" <?php selected($options['attach_to_new_order'], 'new_order'); ?>>Yes</option>
40
  <option value="no" <?php selected($options['attach_to_new_order'], 'no'); ?>>No</option>
41
  </select>
 
42
  <div class="notes">
43
  Determine to attach the invoice to the "New Order" email type for bookkeeping purposes.
44
  </div>
45
  </td>
46
  </tr>
47
+ <th scope="row"><strong>Invoice number format &amp; starting point</strong></th><br/>
48
+ <td>
49
+ <select name="be_woocommerce_pdf_invoices[invoice_number]">
50
+ <option value="1" <?php selected($options['invoice_number'], '1'); ?>><?php echo "0001"; ?></option>
51
+ <option value="2" <?php selected($options['invoice_number'], '2'); ?>><?php echo $year.$month.$today."-0001"; ?></option>
52
+ <option value="3" <?php selected($options['invoice_number'], '3'); ?>><?php echo substr($year, -2)."-0001"; ?></option>
53
+ </select>
54
+ <input id="startAt" type="text" name="be_woocommerce_pdf_invoices[invoice_number_start]" value="<?php echo $options['invoice_number_start']; ?>" />
55
+ <div class="notes">Choose how to generate the invoice number by selecting one of the example formats. Optionally add number to start count.</div>
56
+ </td>
57
+ </tr>
58
+ <tr valign="top">
59
+ <th scope="row"><strong>VAT rates</strong></th>
60
+ <td>
61
+ <input type="text" name="be_woocommerce_pdf_invoices[vat_rates]" value="<?php echo $options['vat_rates'];?>"/><br/>
62
+ <div class="notes">Add tax rates seperated by comma. These rates will be calculated based upon the subtotal price.</div>
63
+ </td>
64
+ </tr>
65
+ <tr valign="top">
66
+ <th scope="row"><strong>Display customer notes</strong></th>
67
+ <td>
68
+ <select id="selectDisplayCustomerNotes" name="be_woocommerce_pdf_invoices[display_customer_notes]">
69
+ <option value="yes" <?php selected($options['display_customer_notes'], 'yes'); ?>>Yes</option>
70
+ <option value="no" <?php selected($options['display_customer_notes'], 'no'); ?>>No</option>
71
+ </select>
72
+ <div class="notes">
73
+ Choose to display customer notes.
74
+ </div>
75
+ </td>
76
+ </tr>
77
+ <th scope="row"><strong>Display SKU</strong></th>
78
+ <td>
79
+ <select id="selectDisplaySKU" name="be_woocommerce_pdf_invoices[display_SKU]">
80
+ <option value="yes" <?php selected($options['display_SKU'], 'yes'); ?>>Yes</option>
81
+ <option value="no" <?php selected($options['display_SKU'], 'no'); ?>>No</option>
82
+ </select>
83
+ <div class="notes">
84
+ Choose to display SKU into table.
85
+ </div>
86
+ </td>
87
+ </tr>
88
+ </table>
89
+ <h3>Template</h3>
90
+ <table class="form-table">
91
  <tr valign="top">
92
+ <th scope="row"><strong>Company name</strong></th>
93
  <td>
94
  <input required type="text" size="40" name="be_woocommerce_pdf_invoices[company_name]" value="<?php echo $options['company_name']; ?>" /><br/>
95
  <div class="notes">Add your company name here.</div>
96
  </td>
97
  </tr>
98
  <tr valign="top">
99
+ <th scope="row"><strong>Company slogan</strong></th>
100
  <td>
101
  <input type="text" size="40" name="be_woocommerce_pdf_invoices[company_slogan]" value="<?php echo $options['company_slogan']; ?>" /><br/>
102
  <div class="notes">Add your company slogan here. You can leave it blank.</div>
103
  </td>
104
  </tr>
105
  <tr valign="top">
106
+ <th scope="row"><strong>Custom logo</strong></th>
107
  <td>
108
  <input id="uploadFile" type="file" name="logo" accept="image/*" /><br />
109
  <div class="notes">Add your custom company logo. Please upload image with a size behond 50kB. You don't have to upload any, the plugin will use your company name.</div>
119
  </td>
120
  </tr>
121
  <tr valign="top">
122
+ <th scope="row"><strong>Company address</strong></th>
123
  <td>
124
  <textarea required name="be_woocommerce_pdf_invoices[address]" ><?php echo esc_textarea($options['address']); ?></textarea><br/>
125
  <div class="notes">Add your company address here.</div>
126
  </td>
127
  </tr>
128
  <tr valign="top">
129
+ <th scope="row"><strong>Additional company information</strong></th>
130
  <td>
131
  <textarea name="be_woocommerce_pdf_invoices[extra_company_info]" rows=6 cols=120 ><?php echo esc_textarea($options['extra_company_info']); ?></textarea><br/>
132
  <div class="notes">Add some additional company information like a email address, telephone number, company number and tax number. You can leave it blank.</div>
133
  </td>
134
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  <tr valign="top">
136
+ <th scope="row"><strong>Refunds policy, conditions etc.</strong></th>
137
  <td>
138
  <textarea name="be_woocommerce_pdf_invoices[extra_info]" rows=6 cols=120 ><?php echo esc_textarea($options['extra_info']);?></textarea><br/>
139
  <div class="notes">Add some policies, conditions etc. It will be placed beyond the products table. You can leave it blank.</div>
142
  </table>
143
  <?php submit_button(); ?>
144
  <p>
145
+ Thank you for using my FREE plugin. If you have any suggestions, please use the
146
+ <a href="http://wordpress.org/support/plugin/woocommerce-pdf-invoices"/>support forum</a> or feel free to contact me right away.
147
  Please <a href="http://wordpress.org/support/view/plugin-reviews/woocommerce-pdf-invoices?rate=5#postform"/>rate</a> with 5 stars as a service on return.
148
  </p>
149
  <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=baselbers%40hotmail%2ecom&lc=NL&item_name=WooCommerce%20PDF%20Invoices&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted">
index.php CHANGED
@@ -3,14 +3,14 @@
3
  /**
4
  * Plugin Name: WooCommerce PDF Invoices
5
  * Description: Generate PDF invoice and automatically attach to WooCommerce email type of your choice.
6
- * Version: 1.1.0
7
  * Author: Bas Elbers
8
  * License: GPL2
9
  */
10
 
11
  if ( ! defined( 'ABSPATH' ) ) exit;
12
 
13
- define("BEWPI_VERSION", "1.1.0");
14
  define("BEWPI_PLUGIN_DIR", plugin_dir_path(__FILE__));
15
  define("BEWPI_PLUGIN_URL", plugins_url( '/' , __FILE__ ));
16
 
3
  /**
4
  * Plugin Name: WooCommerce PDF Invoices
5
  * Description: Generate PDF invoice and automatically attach to WooCommerce email type of your choice.
6
+ * Version: 1.1.1
7
  * Author: Bas Elbers
8
  * License: GPL2
9
  */
10
 
11
  if ( ! defined( 'ABSPATH' ) ) exit;
12
 
13
+ define("BEWPI_VERSION", "1.1.1");
14
  define("BEWPI_PLUGIN_DIR", plugin_dir_path(__FILE__));
15
  define("BEWPI_PLUGIN_URL", plugins_url( '/' , __FILE__ ));
16
 
lang/woocommerce-pdf-invoices-it_IT.mo DELETED
Binary file
lang/woocommerce-pdf-invoices-it_IT.po DELETED
@@ -1,128 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: WooCommerce PDF Invoices\n"
4
- "POT-Creation-Date: 2013-12-21 18:52+0100\n"
5
- "PO-Revision-Date: 2013-12-21 18:59+0100\n"
6
- "Last-Translator: Bas Elbers <baselbers@hotmail.com>\n"
7
- "Language-Team: \n"
8
- "Language: it_IT\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.2\n"
13
- "X-Poedit-Basepath: .\n"
14
- "X-Poedit-KeywordsList: __;_e\n"
15
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
16
- "X-Poedit-SearchPath-0: ../.\n"
17
-
18
- #: .././includes/class-admin.php:44
19
- msgid "Please upload image with extension jpg, jpeg or png."
20
- msgstr ""
21
-
22
- #: .././includes/class-admin.php:48
23
- msgid "Please upload image less then 50kB."
24
- msgstr ""
25
-
26
- #: .././includes/class-admin.php:54
27
- msgid "Settings saved."
28
- msgstr ""
29
-
30
- #: .././includes/class-invoice.php:99
31
- msgid "INVOICE"
32
- msgstr "FATTURA"
33
-
34
- #: .././includes/class-invoice.php:108
35
- msgid "Invoice Number: "
36
- msgstr ""
37
-
38
- #: .././includes/class-invoice.php:109
39
- #, php-format
40
- msgid "Date: %02d-%02d-%04d"
41
- msgstr "DATA: %02d-%02d-%04d"
42
-
43
- #: .././includes/class-invoice.php:118
44
- msgid "To:"
45
- msgstr "DESTINATARIO:"
46
-
47
- #: .././includes/class-invoice.php:122
48
- msgid "Ship To:"
49
- msgstr ""
50
-
51
- #: .././includes/class-invoice.php:132
52
- msgid "Notes:"
53
- msgstr "Misure richieste:"
54
-
55
- #: .././includes/class-invoice.php:143
56
- msgid "SKU"
57
- msgstr "COD.PRODOTTO"
58
-
59
- #: .././includes/class-invoice.php:144
60
- msgid "Quantity"
61
- msgstr ""
62
-
63
- #: .././includes/class-invoice.php:145
64
- msgid "Description"
65
- msgstr ""
66
-
67
- #: .././includes/class-invoice.php:146
68
- msgid "Unit price"
69
- msgstr ""
70
-
71
- #: .././includes/class-invoice.php:147 .././includes/class-invoice.php:186
72
- msgid "Total"
73
- msgstr ""
74
-
75
- #: .././includes/class-invoice.php:168
76
- msgid "Discount"
77
- msgstr ""
78
-
79
- #: .././includes/class-invoice.php:172
80
- msgid "Subtotal"
81
- msgstr ""
82
-
83
- #: .././includes/class-invoice.php:177
84
- msgid "VAT "
85
- msgstr ""
86
-
87
- #: .././includes/class-invoice.php:182
88
- msgid "Shipping"
89
- msgstr ""
90
-
91
- #: .././includes/class-invoice.php:203
92
- #, php-format
93
- msgid "Page %s of %s"
94
- msgstr "Pagina %s di %s"
95
-
96
- #: .././includes/views/settings-page.php:16
97
- msgid "Test"
98
- msgstr "Vertaling werkt."
99
-
100
- #~ msgid "INVOICE NUMBER: "
101
- #~ msgstr "FATTURA NUMERO:"
102
-
103
- #~ msgid "SHIP TO:"
104
- #~ msgstr "SPEDISCI A:"
105
-
106
- #~ msgid "QUANTITY"
107
- #~ msgstr "QUANTITA'"
108
-
109
- #~ msgid "DESCRIPTION"
110
- #~ msgstr "DESCRIZIONE"
111
-
112
- #~ msgid "UNIT PRICE"
113
- #~ msgstr "COSTO/ARTICOLO"
114
-
115
- #~ msgid "TOTAL"
116
- #~ msgstr "TOTALE"
117
-
118
- #~ msgid "SUBTOTAL"
119
- #~ msgstr "SUBTOTALE"
120
-
121
- #~ msgid "SALES TAX"
122
- #~ msgstr "IVA"
123
-
124
- #~ msgid "SHIPPING & HANDLING"
125
- #~ msgstr "SPEDIZIONE"
126
-
127
- #~ msgid "TOTAL DUE"
128
- #~ msgstr "TOTALE"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
lang/woocommerce-pdf-invoices.mo CHANGED
Binary file
lang/woocommerce-pdf-invoices.po CHANGED
@@ -1,97 +1,101 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: WooCommerce PDF Invoices\n"
4
- "POT-Creation-Date: 2013-12-21 18:28+0100\n"
5
- "PO-Revision-Date: 2013-12-21 18:28+0100\n"
6
- "Last-Translator: Bas Elbers <baselbers@hotmail.com>\n"
7
- "Language-Team: \n"
8
- "Language: en_GB\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.2\n"
13
- "X-Poedit-Basepath: .\n"
14
- "X-Poedit-KeywordsList: __;_e\n"
15
- "X-Poedit-SearchPath-0: ../.\n"
16
-
17
- #: .././includes/class-admin.php:44
18
- msgid "Please upload image with extension jpg, jpeg or png."
19
- msgstr ""
20
-
21
- #: .././includes/class-admin.php:48
22
- msgid "Please upload image less then 50kB."
23
- msgstr ""
24
-
25
- #: .././includes/class-admin.php:54
26
- msgid "Settings saved."
27
- msgstr ""
28
-
29
- #: .././includes/class-invoice.php:99
30
- msgid "INVOICE"
31
- msgstr ""
32
-
33
- #: .././includes/class-invoice.php:108
34
- msgid "INVOICE NUMBER: "
35
- msgstr ""
36
-
37
- #: .././includes/class-invoice.php:109
38
- #, php-format
39
- msgid "DATE: %02d-%02d-%04d"
40
- msgstr ""
41
-
42
- #: .././includes/class-invoice.php:118
43
- msgid "TO:"
44
- msgstr ""
45
-
46
- #: .././includes/class-invoice.php:122
47
- msgid "SHIP TO:"
48
- msgstr ""
49
-
50
- #: .././includes/class-invoice.php:131
51
- msgid "Notes:"
52
- msgstr ""
53
-
54
- #: .././includes/class-invoice.php:141
55
- msgid "SKU"
56
- msgstr ""
57
-
58
- #: .././includes/class-invoice.php:142
59
- msgid "Quantity"
60
- msgstr ""
61
-
62
- #: .././includes/class-invoice.php:143
63
- msgid "Description"
64
- msgstr ""
65
-
66
- #: .././includes/class-invoice.php:144
67
- msgid "Unit price"
68
- msgstr ""
69
-
70
- #: .././includes/class-invoice.php:145 .././includes/class-invoice.php:185
71
- msgid "Total"
72
- msgstr ""
73
-
74
- #: .././includes/class-invoice.php:166
75
- msgid "Discount"
76
- msgstr ""
77
-
78
- #: .././includes/class-invoice.php:171
79
- msgid "Subtotal"
80
- msgstr ""
81
-
82
- #: .././includes/class-invoice.php:176
83
- msgid "VAT "
84
- msgstr ""
85
-
86
- #: .././includes/class-invoice.php:181
87
- msgid "Shipping"
88
- msgstr ""
89
-
90
- #: .././includes/class-invoice.php:202
91
- #, php-format
92
- msgid "Page %s of %s"
93
- msgstr ""
94
-
95
- #: .././includes/views/settings-page.php:16
96
- msgid "Test"
97
- msgstr ""
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: WooCommerce PDF Invoices\n"
4
+ "POT-Creation-Date: 2014-02-06 21:36+0100\n"
5
+ "PO-Revision-Date: 2014-02-06 21:38+0100\n"
6
+ "Last-Translator: Bas Elbers <baselbers@hotmail.com>\n"
7
+ "Language-Team: \n"
8
+ "Language: en_GB\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.6.2\n"
13
+ "X-Poedit-Basepath: .\n"
14
+ "X-Poedit-KeywordsList: __;_e\n"
15
+ "X-Poedit-SearchPath-0: ../.\n"
16
+
17
+ #: .././includes/class-admin.php:44
18
+ msgid "Please upload image with extension jpg, jpeg or png."
19
+ msgstr ""
20
+
21
+ #: .././includes/class-admin.php:48
22
+ msgid "Please upload image less then 50kB."
23
+ msgstr ""
24
+
25
+ #: .././includes/class-admin.php:54
26
+ msgid "Settings saved."
27
+ msgstr ""
28
+
29
+ #: .././includes/class-invoice.php:165
30
+ msgid "INVOICE"
31
+ msgstr ""
32
+
33
+ #: .././includes/class-invoice.php:174
34
+ msgid "INVOICE NUMBER: "
35
+ msgstr ""
36
+
37
+ #: .././includes/class-invoice.php:175
38
+ #, php-format
39
+ msgid "DATE: %02d-%02d-%04d"
40
+ msgstr ""
41
+
42
+ #: .././includes/class-invoice.php:184
43
+ msgid "TO:"
44
+ msgstr ""
45
+
46
+ #: .././includes/class-invoice.php:188
47
+ msgid "SHIP TO:"
48
+ msgstr ""
49
+
50
+ #: .././includes/class-invoice.php:198
51
+ msgid "Notes:"
52
+ msgstr ""
53
+
54
+ #: .././includes/class-invoice.php:211
55
+ msgid "SKU"
56
+ msgstr ""
57
+
58
+ #: .././includes/class-invoice.php:213
59
+ msgid "Description"
60
+ msgstr ""
61
+
62
+ #: .././includes/class-invoice.php:214
63
+ msgid "Quantity"
64
+ msgstr ""
65
+
66
+ #: .././includes/class-invoice.php:215
67
+ msgid "Unit price"
68
+ msgstr ""
69
+
70
+ #: .././includes/class-invoice.php:216
71
+ msgid "Total"
72
+ msgstr ""
73
+
74
+ #: .././includes/class-invoice.php:249
75
+ msgid "Discount"
76
+ msgstr ""
77
+
78
+ #: .././includes/class-invoice.php:253
79
+ msgid "Subtotal"
80
+ msgstr ""
81
+
82
+ #: .././includes/class-invoice.php:257
83
+ msgid "Shipping"
84
+ msgstr ""
85
+
86
+ #: .././includes/class-invoice.php:264
87
+ #, php-format
88
+ msgid "VAT %s%%"
89
+ msgstr ""
90
+
91
+ #: .././includes/class-invoice.php:269
92
+ msgid "Grand Total"
93
+ msgstr ""
94
+
95
+ #: .././includes/class-invoice.php:286
96
+ #, php-format
97
+ msgid "Page %s of %s"
98
+ msgstr ""
99
+
100
+ #~ msgid "Test"
101
+ #~ msgstr "test"
readme.txt CHANGED
@@ -1,40 +1,34 @@
1
  === Plugin Name ===
2
  Contributors: baaaaas
3
- Donate link:
4
- Tags: woocommerce pdf invoices, invoice, generate, pdf, woocommerce, attachment, email, completed order, customer invoice, processing order, attach, automatic, vat, rate
5
  Requires at least: 3.5
6
  Tested up to: 3.8.1
7
- Stable tag: 1.1.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Simple plugin to generate a PDF invoice based upon the customers order and automatically attaches it to the email type of your choice.
12
 
13
  == Description ==
14
- This plugin simply generates a PDF Invoice based upon the customers order and automatically attaches it to the email type of your choice.
15
- Download the WooCommerce PDF Invoices plugin now!
16
- The plugin adds a new settings page as a submenu within the WooCommerce main menu and gives the option to customize and configure your invoice by adding a company logo, company address, additional company information, refunds policies, conditions etc. and more!
17
-
18
- = CUSTOMIZABLE =
19
- An invoice is a proffesional way of conducting business and every business is unique. That's why it is very important that your invoice contains the details your customers need. The WooCommerce PDF Invoices settings page gives you the possibility to fully customize your invoice.
20
-
21
- = AUTOMATIC =
22
- No more singly drafting invoices and manually sending invoices to your customers, it even uses sequential invoice numbers. No more waste of time! From now on, WooCommerce PDF Invoices does the job for you and it's totally free!
23
 
24
  = FEATURES =
25
  - Attach PDF invoice to email type of your choice
26
- - Attach PDF invoice to the "New Order" email type for bookkeeping purposes
 
 
 
27
  - Add your company name
28
  - Add your company slogan
29
  - Upload and use your company logo
30
  - Add your company address
31
  - Add additional company information
32
  - Add refunds policies, conditions etc.
33
- - Sequential invoice numbers
34
- - Choose between different invoice number formats
35
  - Choose to display customer notes
36
  - Choose to display SKU
37
- - Add your company vat rates to calculate and display
 
38
 
39
  == Frequently Asked Questions ==
40
 
@@ -48,9 +42,9 @@ Of course you can! Please open a support thread and I will try to answer as soon
48
 
49
  == Screenshots ==
50
 
51
- 1. The WooCommerce PDF Invoices settings page.
52
- 2. The WooCommerce PDF Invoices settings page.
53
- 3. The generated PDF invoice.
54
 
55
  == Installation ==
56
 
@@ -68,6 +62,12 @@ The manual installation method involves downloading our eCommerce plugin and upl
68
 
69
  == Changelog ==
70
 
 
 
 
 
 
 
71
  = 1.1.0 - February 3, 2014 =
72
 
73
  - Added: Choose to display product SKU.
@@ -77,7 +77,6 @@ The manual installation method involves downloading our eCommerce plugin and upl
77
  - Added: Input your desired VAT rates to display.
78
  - Added: Sequential invoice numbers.
79
  - Improved: Display and calucatlion of VAT rates.
80
- - Fixed: Translation
81
  - Fixed: Product SKU
82
 
83
  = 1.0.2 - December 13, 2013 =
1
  === Plugin Name ===
2
  Contributors: baaaaas
3
+ Donate link:
4
+ Tags: woocommerce pdf invoices, invoice, generate, pdf, woocommerce, attachment, email, completed order, customer invoice, processing order, attach, automatic, vat, rate, sequential, number
5
  Requires at least: 3.5
6
  Tested up to: 3.8.1
7
+ Stable tag: 1.1.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Simple plugin to generate a PDF invoice based upon the customers order and automatically attaches it to the email type of your choice.
12
 
13
  == Description ==
14
+ This plugin simply generates a PDF Invoice based upon the customers order and automatically attaches it to the email type of your choice. Now available with sequential invoice numbers and custom vat rates.
 
 
 
 
 
 
 
 
15
 
16
  = FEATURES =
17
  - Attach PDF invoice to email type of your choice
18
+ - Attach PDF invoice to the "New Order" email type for bookkeeping purposes
19
+ - Sequential invoice numbers
20
+ - Choose between different invoice number formats
21
+ - Choose starting point for invoice numbers
22
  - Add your company name
23
  - Add your company slogan
24
  - Upload and use your company logo
25
  - Add your company address
26
  - Add additional company information
27
  - Add refunds policies, conditions etc.
 
 
28
  - Choose to display customer notes
29
  - Choose to display SKU
30
+ - Add your company vat rates to calculate and display
31
+ - Translation ready
32
 
33
  == Frequently Asked Questions ==
34
 
42
 
43
  == Screenshots ==
44
 
45
+ 1. Settings page.
46
+ 2. Settings page.
47
+ 3. Generated PDF invoice.
48
 
49
  == Installation ==
50
 
62
 
63
  == Changelog ==
64
 
65
+ = 1.1.1 - February 6, 2014 =
66
+
67
+ - Added: Choose starting point for invoice numbers
68
+ - Fixed: Invoice number stays at 0000
69
+ - Fixed: Translation
70
+
71
  = 1.1.0 - February 3, 2014 =
72
 
73
  - Added: Choose to display product SKU.
77
  - Added: Input your desired VAT rates to display.
78
  - Added: Sequential invoice numbers.
79
  - Improved: Display and calucatlion of VAT rates.
 
80
  - Fixed: Product SKU
81
 
82
  = 1.0.2 - December 13, 2013 =