WooCommerce PDF Invoices & Packing Slips - Version 1.4.4

Version Description

  • Feature: Editable invoice date per order/invoice.
  • Feature: HTML is now allowed in footer and other settings fields.
  • Translations: Updated German (Thanks Nadine!)
  • Fix: template paths are now saved relative to the site base path (ABSPATH) to prevent errors when moving to another server
  • Tweak: Changed bulk action hook for better theme compatibility
  • Tweak: Newlines in custom checkout fields
Download this release

Release Info

Developer pomegranate
Plugin Icon 128x128 WooCommerce PDF Invoices & Packing Slips
Version 1.4.4
Comparing to
See all releases

Code changes from version 1.4.3 to 1.4.4

includes/class-wcpdf-export.php CHANGED
@@ -33,6 +33,14 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
33
 
34
  $this->template_path = isset( $this->template_settings['template_path'] )?$this->template_settings['template_path']:'';
35
 
 
 
 
 
 
 
 
 
36
  add_action( 'wp_ajax_generate_wpo_wcpdf', array($this, 'generate_pdf_ajax' ));
37
  add_filter( 'woocommerce_email_attachments', array( $this, 'attach_pdf_to_email' ), 99, 3);
38
 
@@ -481,21 +489,12 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
481
 
482
  // Checking fo existance, thanks to MDesigner0
483
  if(!empty($product)) {
484
- // Set the thumbnail id
485
- $data['thumbnail_id'] = $this->get_thumbnail_id( $product->id );
486
-
487
- // Set the thumbnail server path
488
- $data['thumbnail_path'] = get_attached_file( $data['thumbnail_id'] );
489
 
490
  // Thumbnail (full img tag)
491
- if (apply_filters('wpo_wcpdf_use_path', true)) {
492
- // load img with server path by default
493
- $data['thumbnail'] = sprintf('<img width="90" height="90" src="%s" class="attachment-shop_thumbnail wp-post-image">', $data['thumbnail_path']);
494
- } else {
495
- // load img with http url when filtered
496
- $data['thumbnail'] = $product->get_image( 'shop_thumbnail', array( 'title' => '' ) );
497
- }
498
-
499
  // Set the single price (turned off to use more consistent calculated price)
500
  // $data['single_price'] = woocommerce_price ( $product->get_price() );
501
 
@@ -579,13 +578,13 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
579
  $tax_rates = array();
580
 
581
  foreach ($taxes as $tax) {
582
- $tax_rates[$tax['label']] = round( $tax['rate'], 2 ).'%';
583
  }
584
 
585
  if (empty($tax_rates)) {
586
  // one last try: manually calculate
587
  if ( $line_total != 0) {
588
- $tax_rates[] = round( ($line_tax / $line_total)*100, 1 ).'%';
589
  } else {
590
  $tax_rates[] = '-';
591
  }
@@ -595,7 +594,7 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
595
  } else {
596
  // Backwards compatibility: calculate tax from line items
597
  if ( $line_total != 0) {
598
- $tax_rates = round( ($line_tax / $line_total)*100, 1 ).'%';
599
  } else {
600
  $tax_rates = '-';
601
  }
@@ -604,6 +603,37 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
604
  return $tax_rates;
605
  }
606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  /**
608
  * Get order custom field
609
  */
@@ -621,12 +651,15 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
621
  * @access public
622
  * @return string
623
  */
624
- public function get_thumbnail_id ( $product_id ) {
 
625
  global $woocommerce;
626
 
627
- if ( has_post_thumbnail( $product_id ) ) {
628
- $thumbnail_id = get_post_thumbnail_id ( $product_id );
629
- } elseif ( ( $parent_id = wp_get_post_parent_id( $product_id ) ) && has_post_thumbnail( $product_id ) ) {
 
 
630
  $thumbnail_id = get_post_thumbnail_id ( $parent_id );
631
  } else {
632
  $thumbnail_id = $woocommerce->plugin_url() . '/assets/images/placeholder.png';
@@ -634,6 +667,30 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Export' ) ) {
634
 
635
  return $thumbnail_id;
636
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
637
 
638
  }
639
 
33
 
34
  $this->template_path = isset( $this->template_settings['template_path'] )?$this->template_settings['template_path']:'';
35
 
36
+ // backwards compatible template path (1.4.4+ uses relative paths instead of absolute)
37
+ if (strpos($this->template_path, ABSPATH) == false) {
38
+ // add site base path, double check it exists!
39
+ if ( file_exists( ABSPATH . $this->template_path ) ) {
40
+ $this->template_path = ABSPATH . $this->template_path;
41
+ }
42
+ }
43
+
44
  add_action( 'wp_ajax_generate_wpo_wcpdf', array($this, 'generate_pdf_ajax' ));
45
  add_filter( 'woocommerce_email_attachments', array( $this, 'attach_pdf_to_email' ), 99, 3);
46
 
489
 
490
  // Checking fo existance, thanks to MDesigner0
491
  if(!empty($product)) {
492
+ // Set the thumbnail id DEPRICATED (does not support thumbnail sizes), use thumbnail_path or thumbnail instead
493
+ $data['thumbnail_id'] = $this->get_thumbnail_id( $product );
 
 
 
494
 
495
  // Thumbnail (full img tag)
496
+ $data['thumbnail'] = $this->get_thumbnail ( $product );
497
+
 
 
 
 
 
 
498
  // Set the single price (turned off to use more consistent calculated price)
499
  // $data['single_price'] = woocommerce_price ( $product->get_price() );
500
 
578
  $tax_rates = array();
579
 
580
  foreach ($taxes as $tax) {
581
+ $tax_rates[$tax['label']] = round( $tax['rate'], 2 ).' %';
582
  }
583
 
584
  if (empty($tax_rates)) {
585
  // one last try: manually calculate
586
  if ( $line_total != 0) {
587
+ $tax_rates[] = round( ($line_tax / $line_total)*100, 1 ).' %';
588
  } else {
589
  $tax_rates[] = '-';
590
  }
594
  } else {
595
  // Backwards compatibility: calculate tax from line items
596
  if ( $line_total != 0) {
597
+ $tax_rates = round( ($line_tax / $line_total)*100, 1 ).' %';
598
  } else {
599
  $tax_rates = '-';
600
  }
603
  return $tax_rates;
604
  }
605
 
606
+ /**
607
+ * Returns the percentage rate (float) for a given tax rate ID.
608
+ * @param int $rate_id woocommerce tax rate id
609
+ * @return float $rate percentage rate
610
+ */
611
+ public function get_tax_rate_by_id( $rate_id ) {
612
+ global $wpdb;
613
+ $rate = $wpdb->get_var( $wpdb->prepare( "SELECT tax_rate FROM {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_id = %d;", $rate_id ) );
614
+ return (float) $rate;
615
+ }
616
+
617
+ /**
618
+ * Returns a an array with rate_id => tax rate data (array) of all tax rates in woocommerce
619
+ * @return array $tax_rate_ids keyed by id
620
+ */
621
+ public function get_tax_rate_ids() {
622
+ global $wpdb;
623
+ $rates = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}woocommerce_tax_rates" );
624
+
625
+ $tax_rate_ids = array();
626
+ foreach ($rates as $rate) {
627
+ // var_dump($rate->tax_rate_id);
628
+ // die($rate);
629
+ $rate_id = $rate->tax_rate_id;
630
+ unset($rate->tax_rate_id);
631
+ $tax_rate_ids[$rate_id] = (array) $rate;
632
+ }
633
+
634
+ return $tax_rate_ids;
635
+ }
636
+
637
  /**
638
  * Get order custom field
639
  */
651
  * @access public
652
  * @return string
653
  */
654
+ public function get_thumbnail_id ( $product ) {
655
+ // DEPRICATED (does not support thumbnail sizes)
656
  global $woocommerce;
657
 
658
+ if ( $product->variation_id && has_post_thumbnail( $product->variation_id ) ) {
659
+ $thumbnail_id = get_post_thumbnail_id ( $product->variation_id );
660
+ } elseif ( has_post_thumbnail( $product->id ) ) {
661
+ $thumbnail_id = get_post_thumbnail_id ( $product->id );
662
+ } elseif ( ( $parent_id = wp_get_post_parent_id( $product->id ) ) && has_post_thumbnail( $parent_id ) ) {
663
  $thumbnail_id = get_post_thumbnail_id ( $parent_id );
664
  } else {
665
  $thumbnail_id = $woocommerce->plugin_url() . '/assets/images/placeholder.png';
667
 
668
  return $thumbnail_id;
669
  }
670
+
671
+ public function get_thumbnail ( $product ) {
672
+ // Get default WooCommerce img tag (url/http)
673
+ $size = apply_filters( 'wpo_wcpdf_thumbnail_size', 'shop_thumbnail' );
674
+ $thumbnail_img_tag_url = $product->get_image( $size, array( 'title' => '' ) );
675
+
676
+ // Extract the url from img
677
+ preg_match('/<img(.*)src(.*)=(.*)"(.*)"/U', $thumbnail_img_tag_url, $thumbnail_url );
678
+ // convert url to path
679
+ $thumbnail_path = str_replace( get_site_url() . '/', ABSPATH, array_pop($thumbnail_url));
680
+
681
+ // Thumbnail (full img tag)
682
+ if (apply_filters('wpo_wcpdf_use_path', true)) {
683
+ // load img with server path by default
684
+ $thumbnail = sprintf('<img width="90" height="90" src="%s" class="attachment-shop_thumbnail wp-post-image">', $thumbnail_path );
685
+ } else {
686
+ // load img with http url when filtered
687
+ $thumbnail = $thumbnail_img_tag_url;
688
+ }
689
+
690
+ // die($thumbnail);
691
+
692
+ return $thumbnail;
693
+ }
694
 
695
  }
696
 
includes/class-wcpdf-settings.php CHANGED
@@ -838,14 +838,12 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Settings' ) ) {
838
 
839
  // Check to see if the current option has a value. If so, process it.
840
  if ( isset( $input[$key] ) ) {
841
- // Strip all HTML and PHP tags and properly handle quoted strings.
842
  if ( is_array( $input[$key] ) ) {
843
  foreach ( $input[$key] as $sub_key => $sub_value ) {
844
- $output[$key][$sub_key] = strip_tags( $input[$key][$sub_key] );
845
  }
846
-
847
  } else {
848
- $output[$key] = strip_tags( $input[$key] );
849
  }
850
  }
851
  }
@@ -877,7 +875,8 @@ if ( ! class_exists( 'WooCommerce_PDF_Invoices_Settings' ) ) {
877
 
878
  foreach ($dirs as $dir) {
879
  if ( file_exists($dir."/invoice.php") && file_exists($dir."/packing-slip.php"))
880
- $installed_templates[$dir] = basename($dir);
 
881
  }
882
  }
883
 
838
 
839
  // Check to see if the current option has a value. If so, process it.
840
  if ( isset( $input[$key] ) ) {
 
841
  if ( is_array( $input[$key] ) ) {
842
  foreach ( $input[$key] as $sub_key => $sub_value ) {
843
+ $output[$key][$sub_key] = $input[$key][$sub_key];
844
  }
 
845
  } else {
846
+ $output[$key] = $input[$key];
847
  }
848
  }
849
  }
875
 
876
  foreach ($dirs as $dir) {
877
  if ( file_exists($dir."/invoice.php") && file_exists($dir."/packing-slip.php"))
878
+ // we're stripping abspath to make the plugin settings more portable
879
+ $installed_templates[ str_replace( ABSPATH, '', $dir )] = basename($dir);
880
  }
881
  }
882
 
includes/class-wcpdf-writepanels.php CHANGED
@@ -18,10 +18,10 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices_Writepanels' ) ) {
18
  add_filter( 'woocommerce_my_account_my_orders_actions', array( $this, 'my_account_pdf_link' ), 10, 2 );
19
  add_action( 'admin_print_scripts', array( $this, 'add_scripts' ) );
20
  add_action( 'admin_print_styles', array( $this, 'add_styles' ) );
21
- add_action( 'admin_footer-edit.php', array(&$this, 'bulk_actions') );
22
 
23
  add_action( 'woocommerce_admin_order_data_after_order_details', array(&$this, 'edit_invoice_number') );
24
- add_action( 'save_post', array( &$this,'save_invoice_number' ) );
25
 
26
  $this->general_settings = get_option('wpo_wcpdf_general_settings');
27
  $this->template_settings = get_option('wpo_wcpdf_template_settings');
@@ -127,12 +127,8 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices_Writepanels' ) ) {
127
  }
128
 
129
  /**
130
- * Add the meta box on the single order page
131
  */
132
- public function add_box() {
133
- add_meta_box( 'wpo_wcpdf-box', __( 'Create PDF', 'wpo_wcpdf' ), array( $this, 'create_box_content' ), 'shop_order', 'side', 'default' );
134
- }
135
-
136
  public function my_account_pdf_link( $actions, $order ) {
137
  $pdf_url = wp_nonce_url( admin_url( 'admin-ajax.php?action=generate_wpo_wcpdf&template_type=invoice&order_ids=' . $order->id . '&my-account'), 'generate_wpo_wcpdf' );
138
 
@@ -147,6 +143,13 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices_Writepanels' ) ) {
147
  return $actions;
148
  }
149
 
 
 
 
 
 
 
 
150
  /**
151
  * Create the meta box content on the single order page
152
  */
@@ -187,16 +190,30 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices_Writepanels' ) ) {
187
  $invoice_exists = get_post_meta( $order->id, '_wcpdf_invoice_exists', true );
188
  if (!empty($invoice_exists)) {
189
  woocommerce_wp_text_input( array( 'id' => '_wcpdf_invoice_number', 'label' => __( 'PDF Invoice Number (unformatted!)', 'wpo_wcpdf' ) ) );
 
 
 
 
 
 
190
  }
191
  }
192
 
193
  /**
194
  * Save invoice number
195
  */
196
- public function save_invoice_number($post_id) {
197
  global $post_type;
198
- if( $post_type == 'shop_order' && isset($_POST['_wcpdf_invoice_number'])) {
199
- update_post_meta( $post_id, '_wcpdf_invoice_number', stripslashes( $_POST['_wcpdf_invoice_number'] ));
 
 
 
 
 
 
 
 
200
  }
201
  }
202
  }
18
  add_filter( 'woocommerce_my_account_my_orders_actions', array( $this, 'my_account_pdf_link' ), 10, 2 );
19
  add_action( 'admin_print_scripts', array( $this, 'add_scripts' ) );
20
  add_action( 'admin_print_styles', array( $this, 'add_styles' ) );
21
+ add_action( 'admin_footer', array(&$this, 'bulk_actions') );
22
 
23
  add_action( 'woocommerce_admin_order_data_after_order_details', array(&$this, 'edit_invoice_number') );
24
+ add_action( 'save_post', array( &$this,'save_invoice_number_date' ) );
25
 
26
  $this->general_settings = get_option('wpo_wcpdf_general_settings');
27
  $this->template_settings = get_option('wpo_wcpdf_template_settings');
127
  }
128
 
129
  /**
130
+ * Display download link on My Account page
131
  */
 
 
 
 
132
  public function my_account_pdf_link( $actions, $order ) {
133
  $pdf_url = wp_nonce_url( admin_url( 'admin-ajax.php?action=generate_wpo_wcpdf&template_type=invoice&order_ids=' . $order->id . '&my-account'), 'generate_wpo_wcpdf' );
134
 
143
  return $actions;
144
  }
145
 
146
+ /**
147
+ * Add the meta box on the single order page
148
+ */
149
+ public function add_box() {
150
+ add_meta_box( 'wpo_wcpdf-box', __( 'Create PDF', 'wpo_wcpdf' ), array( $this, 'create_box_content' ), 'shop_order', 'side', 'default' );
151
+ }
152
+
153
  /**
154
  * Create the meta box content on the single order page
155
  */
190
  $invoice_exists = get_post_meta( $order->id, '_wcpdf_invoice_exists', true );
191
  if (!empty($invoice_exists)) {
192
  woocommerce_wp_text_input( array( 'id' => '_wcpdf_invoice_number', 'label' => __( 'PDF Invoice Number (unformatted!)', 'wpo_wcpdf' ) ) );
193
+ $invoice_date = get_post_meta($order->id,'_wcpdf_invoice_date',true);
194
+ ?>bla
195
+ <p class="form-field form-field-wide"><label for="wcpdf_invoice_date"><?php _e( 'Invoice Date:', 'wpo_wcpdf' ); ?></label>
196
+ <input type="text" class="date-picker-field" name="wcpdf_invoice_date" id="wcpdf_invoice_date" maxlength="10" value="<?php echo date_i18n( 'Y-m-d', strtotime( $invoice_date ) ); ?>" pattern="[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])" />@<input type="text" class="hour" placeholder="<?php _e( 'h', 'woocommerce' ) ?>" name="wcpdf_invoice_date_hour" id="wcpdf_invoice_date_hour" maxlength="2" size="2" value="<?php echo date_i18n( 'H', strtotime( $invoice_date ) ); ?>" pattern="\-?\d+(\.\d{0,})?" />:<input type="text" class="minute" placeholder="<?php _e( 'm', 'woocommerce' ) ?>" name="wcpdf_invoice_date_minute" id="wcpdf_invoice_date_minute" maxlength="2" size="2" value="<?php echo date_i18n( 'i', strtotime( $invoice_date ) ); ?>" pattern="\-?\d+(\.\d{0,})?" />
197
+ </p>
198
+ <?php
199
  }
200
  }
201
 
202
  /**
203
  * Save invoice number
204
  */
205
+ public function save_invoice_number_date($post_id) {
206
  global $post_type;
207
+ if( $post_type == 'shop_order' ) {
208
+ if ( isset($_POST['_wcpdf_invoice_number']) ) {
209
+ update_post_meta( $post_id, '_wcpdf_invoice_number', stripslashes( $_POST['_wcpdf_invoice_number'] ));
210
+ }
211
+ if ( isset($_POST['wcpdf_invoice_date']) ) {
212
+ $invoice_date = strtotime( $_POST['wcpdf_invoice_date'] . ' ' . (int) $_POST['wcpdf_invoice_date_hour'] . ':' . (int) $_POST['wcpdf_invoice_date_minute'] . ':00' );
213
+ $invoice_date = date_i18n( 'Y-m-d H:i:s', $invoice_date );
214
+ update_post_meta( $post_id, '_wcpdf_invoice_date', $invoice_date );
215
+ }
216
+
217
  }
218
  }
219
  }
languages/wpo_wcpdf-de_DE.mo CHANGED
Binary file
languages/wpo_wcpdf-de_DE.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce PDF Invoices & Packing Slips\n"
4
- "POT-Creation-Date: 2014-05-12 22:15+0100\n"
5
- "PO-Revision-Date: 2014-05-12 22:15+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: WP Overnight <support@wpovernight.com>\n"
8
  "Language: de_DE\n"
@@ -16,29 +16,29 @@ msgstr ""
16
  "X-Poedit-KeywordsList: __;_e;_x;_n:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: includes/class-wcpdf-export.php:151 includes/class-wcpdf-export.php:156
20
- #: includes/class-wcpdf-export.php:161 includes/class-wcpdf-export.php:172
21
- #: includes/class-wcpdf-export.php:185
22
  msgid "You do not have sufficient permissions to access this page."
23
  msgstr "Du hast keine Berechtigung diese Seite anzuzeigen."
24
 
25
  # This is a filename (prefix). do not use spaces or special characters!
26
- #: includes/class-wcpdf-export.php:206 includes/class-wcpdf-export.php:285
27
  msgid "invoice"
28
  msgid_plural "invoices"
29
  msgstr[0] "Rechnung"
30
  msgstr[1] "Rechnungen"
31
 
32
  # This is a filename (prefix). do not use spaces or special characters!
33
- #: includes/class-wcpdf-export.php:208
34
  msgid "packing-slip"
35
  msgid_plural "packing-slips"
36
  msgstr[0] "Packzettel"
37
  msgstr[1] "Packzettel"
38
 
39
  #: includes/class-wcpdf-settings.php:36 includes/class-wcpdf-settings.php:37
40
- #: includes/class-wcpdf-writepanels.php:173
41
- #: includes/class-wcpdf-writepanels.php:174
42
  msgid "PDF Invoices"
43
  msgstr "PDF Rechnungen"
44
 
@@ -318,31 +318,43 @@ msgstr ""
318
  msgid "Invoice Number"
319
  msgstr "Rechnungsnummer"
320
 
321
- #: includes/class-wcpdf-writepanels.php:133
322
- msgid "Create PDF"
323
- msgstr "PDF Erzeugen"
324
-
325
- #: includes/class-wcpdf-writepanels.php:143
326
  msgid "Download invoice (PDF)"
327
  msgstr "PDF Rechnung runterladen"
328
 
329
- #: includes/class-wcpdf-writepanels.php:157
 
 
 
 
330
  msgid "PDF invoice"
331
  msgstr "PDF Rechnung"
332
 
333
- #: includes/class-wcpdf-writepanels.php:158
334
  msgid "PDF Packing Slip"
335
  msgstr "PDF Packliste"
336
 
337
- #: includes/class-wcpdf-writepanels.php:175
338
- #: includes/class-wcpdf-writepanels.php:176
339
  msgid "PDF Packing Slips"
340
  msgstr "PDF Packlisten"
341
 
342
- #: includes/class-wcpdf-writepanels.php:189
343
  msgid "PDF Invoice Number (unformatted!)"
344
  msgstr ""
345
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  #: templates/pdf/Simple/html-document-wrapper.php:6
347
  #: templates/pdf/Simple/invoice.php:9 templates/pdf/Simple/invoice.php:21
348
  msgid "Invoice"
@@ -356,7 +368,7 @@ msgstr "Packliste"
356
 
357
  #: templates/pdf/Simple/invoice.php:37
358
  msgid "Invoice Date:"
359
- msgstr "Rechnungsdatum"
360
 
361
  #: templates/pdf/Simple/invoice.php:40
362
  #: templates/pdf/Simple/packing-slip.php:30
@@ -395,16 +407,20 @@ msgid "Description"
395
  msgstr "Beschreibung"
396
 
397
  #: templates/pdf/Simple/invoice.php:80
 
 
 
 
398
  #: templates/pdf/Simple/packing-slip.php:54
399
  msgid "SKU:"
400
- msgstr "SKU:"
401
 
402
- #: templates/pdf/Simple/invoice.php:81
403
  #: templates/pdf/Simple/packing-slip.php:55
404
  msgid "Weight:"
405
  msgstr "Gewicht:"
406
 
407
- #: templates/pdf/Simple/invoice.php:113
408
  #: templates/pdf/Simple/packing-slip.php:69
409
  msgid "Customer Notes"
410
  msgstr "Kundenanmerkungen"
@@ -421,35 +437,35 @@ msgstr "WooCommerce PDF Invoices & Packing Slips benötigt %sWooCommerce%s !"
421
  msgid "N/A"
422
  msgstr "N/A"
423
 
424
- #: woocommerce-pdf-invoices-packingslips.php:249
425
  msgid "Payment method"
426
  msgstr "Zahlungsart"
427
 
428
- #: woocommerce-pdf-invoices-packingslips.php:260
429
  msgid "Shipping method"
430
  msgstr "Versandart"
431
 
432
- #: woocommerce-pdf-invoices-packingslips.php:360
433
  msgid "Subtotal"
434
  msgstr "Zwischensumme"
435
 
436
- #: woocommerce-pdf-invoices-packingslips.php:382
437
  msgid "Shipping"
438
  msgstr "Versand"
439
 
440
- #: woocommerce-pdf-invoices-packingslips.php:416
441
  msgid "Discount"
442
  msgstr "Rabatt"
443
 
444
- #: woocommerce-pdf-invoices-packingslips.php:455
445
  msgid "VAT"
446
- msgstr "MwSt"
447
 
448
- #: woocommerce-pdf-invoices-packingslips.php:487
449
  msgid "Total ex. VAT"
450
- msgstr "Gesamtsumme ohne MwSt"
451
 
452
- #: woocommerce-pdf-invoices-packingslips.php:490
453
  msgid "Total"
454
  msgstr "Gesamtsumme"
455
 
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce PDF Invoices & Packing Slips\n"
4
+ "POT-Creation-Date: 2014-09-01 10:05+0100\n"
5
+ "PO-Revision-Date: 2014-09-01 10:06+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: WP Overnight <support@wpovernight.com>\n"
8
  "Language: de_DE\n"
16
  "X-Poedit-KeywordsList: __;_e;_x;_n:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: includes/class-wcpdf-export.php:168 includes/class-wcpdf-export.php:173
20
+ #: includes/class-wcpdf-export.php:178 includes/class-wcpdf-export.php:189
21
+ #: includes/class-wcpdf-export.php:202
22
  msgid "You do not have sufficient permissions to access this page."
23
  msgstr "Du hast keine Berechtigung diese Seite anzuzeigen."
24
 
25
  # This is a filename (prefix). do not use spaces or special characters!
26
+ #: includes/class-wcpdf-export.php:223 includes/class-wcpdf-export.php:303
27
  msgid "invoice"
28
  msgid_plural "invoices"
29
  msgstr[0] "Rechnung"
30
  msgstr[1] "Rechnungen"
31
 
32
  # This is a filename (prefix). do not use spaces or special characters!
33
+ #: includes/class-wcpdf-export.php:225
34
  msgid "packing-slip"
35
  msgid_plural "packing-slips"
36
  msgstr[0] "Packzettel"
37
  msgstr[1] "Packzettel"
38
 
39
  #: includes/class-wcpdf-settings.php:36 includes/class-wcpdf-settings.php:37
40
+ #: includes/class-wcpdf-writepanels.php:176
41
+ #: includes/class-wcpdf-writepanels.php:177
42
  msgid "PDF Invoices"
43
  msgstr "PDF Rechnungen"
44
 
318
  msgid "Invoice Number"
319
  msgstr "Rechnungsnummer"
320
 
321
+ #: includes/class-wcpdf-writepanels.php:139
 
 
 
 
322
  msgid "Download invoice (PDF)"
323
  msgstr "PDF Rechnung runterladen"
324
 
325
+ #: includes/class-wcpdf-writepanels.php:150
326
+ msgid "Create PDF"
327
+ msgstr "PDF Erzeugen"
328
+
329
+ #: includes/class-wcpdf-writepanels.php:160
330
  msgid "PDF invoice"
331
  msgstr "PDF Rechnung"
332
 
333
+ #: includes/class-wcpdf-writepanels.php:161
334
  msgid "PDF Packing Slip"
335
  msgstr "PDF Packliste"
336
 
337
+ #: includes/class-wcpdf-writepanels.php:178
338
+ #: includes/class-wcpdf-writepanels.php:179
339
  msgid "PDF Packing Slips"
340
  msgstr "PDF Packlisten"
341
 
342
+ #: includes/class-wcpdf-writepanels.php:192
343
  msgid "PDF Invoice Number (unformatted!)"
344
  msgstr ""
345
 
346
+ #: includes/class-wcpdf-writepanels.php:195
347
+ msgid "Invoice date:"
348
+ msgstr "Rechnungsdatum:"
349
+
350
+ #: includes/class-wcpdf-writepanels.php:196
351
+ msgid "h"
352
+ msgstr ""
353
+
354
+ #: includes/class-wcpdf-writepanels.php:196
355
+ msgid "m"
356
+ msgstr ""
357
+
358
  #: templates/pdf/Simple/html-document-wrapper.php:6
359
  #: templates/pdf/Simple/invoice.php:9 templates/pdf/Simple/invoice.php:21
360
  msgid "Invoice"
368
 
369
  #: templates/pdf/Simple/invoice.php:37
370
  msgid "Invoice Date:"
371
+ msgstr "Rechnungsdatum:"
372
 
373
  #: templates/pdf/Simple/invoice.php:40
374
  #: templates/pdf/Simple/packing-slip.php:30
407
  msgstr "Beschreibung"
408
 
409
  #: templates/pdf/Simple/invoice.php:80
410
+ msgid "SKU"
411
+ msgstr "Art.-Nr."
412
+
413
+ #: templates/pdf/Simple/invoice.php:81
414
  #: templates/pdf/Simple/packing-slip.php:54
415
  msgid "SKU:"
416
+ msgstr "Art.-Nr.:"
417
 
418
+ #: templates/pdf/Simple/invoice.php:82
419
  #: templates/pdf/Simple/packing-slip.php:55
420
  msgid "Weight:"
421
  msgstr "Gewicht:"
422
 
423
+ #: templates/pdf/Simple/invoice.php:114
424
  #: templates/pdf/Simple/packing-slip.php:69
425
  msgid "Customer Notes"
426
  msgstr "Kundenanmerkungen"
437
  msgid "N/A"
438
  msgstr "N/A"
439
 
440
+ #: woocommerce-pdf-invoices-packingslips.php:264
441
  msgid "Payment method"
442
  msgstr "Zahlungsart"
443
 
444
+ #: woocommerce-pdf-invoices-packingslips.php:275
445
  msgid "Shipping method"
446
  msgstr "Versandart"
447
 
448
+ #: woocommerce-pdf-invoices-packingslips.php:375
449
  msgid "Subtotal"
450
  msgstr "Zwischensumme"
451
 
452
+ #: woocommerce-pdf-invoices-packingslips.php:397
453
  msgid "Shipping"
454
  msgstr "Versand"
455
 
456
+ #: woocommerce-pdf-invoices-packingslips.php:431
457
  msgid "Discount"
458
  msgstr "Rabatt"
459
 
460
+ #: woocommerce-pdf-invoices-packingslips.php:470
461
  msgid "VAT"
462
+ msgstr "MwSt."
463
 
464
+ #: woocommerce-pdf-invoices-packingslips.php:507
465
  msgid "Total ex. VAT"
466
+ msgstr "Gesamtsumme ohne MwSt."
467
 
468
+ #: woocommerce-pdf-invoices-packingslips.php:510
469
  msgid "Total"
470
  msgstr "Gesamtsumme"
471
 
languages/wpo_wcpdf.pot CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce PDF Invoices & Packing Slips\n"
4
- "POT-Creation-Date: 2014-05-12 22:22+0100\n"
5
- "PO-Revision-Date: 2014-05-12 22:22+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: WP Overnight <support@wpovernight.com>\n"
8
  "Language: en_US\n"
@@ -16,29 +16,29 @@ msgstr ""
16
  "X-Poedit-KeywordsList: __;_e;_x;_n:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
- #: includes/class-wcpdf-export.php:151 includes/class-wcpdf-export.php:156
20
- #: includes/class-wcpdf-export.php:161 includes/class-wcpdf-export.php:172
21
- #: includes/class-wcpdf-export.php:185
22
  msgid "You do not have sufficient permissions to access this page."
23
  msgstr ""
24
 
25
  # This is a filename (prefix). do not use spaces or special characters!
26
- #: includes/class-wcpdf-export.php:206 includes/class-wcpdf-export.php:285
27
  msgid "invoice"
28
  msgid_plural "invoices"
29
  msgstr[0] ""
30
  msgstr[1] ""
31
 
32
  # This is a filename (prefix). do not use spaces or special characters!
33
- #: includes/class-wcpdf-export.php:208
34
  msgid "packing-slip"
35
  msgid_plural "packing-slips"
36
  msgstr[0] ""
37
  msgstr[1] ""
38
 
39
  #: includes/class-wcpdf-settings.php:36 includes/class-wcpdf-settings.php:37
40
- #: includes/class-wcpdf-writepanels.php:173
41
- #: includes/class-wcpdf-writepanels.php:174
42
  msgid "PDF Invoices"
43
  msgstr ""
44
 
@@ -302,31 +302,43 @@ msgstr ""
302
  msgid "Invoice Number"
303
  msgstr ""
304
 
305
- #: includes/class-wcpdf-writepanels.php:133
306
- msgid "Create PDF"
307
  msgstr ""
308
 
309
- #: includes/class-wcpdf-writepanels.php:143
310
- msgid "Download invoice (PDF)"
311
  msgstr ""
312
 
313
- #: includes/class-wcpdf-writepanels.php:157
314
  msgid "PDF invoice"
315
  msgstr ""
316
 
317
- #: includes/class-wcpdf-writepanels.php:158
318
  msgid "PDF Packing Slip"
319
  msgstr ""
320
 
321
- #: includes/class-wcpdf-writepanels.php:175
322
- #: includes/class-wcpdf-writepanels.php:176
323
  msgid "PDF Packing Slips"
324
  msgstr ""
325
 
326
- #: includes/class-wcpdf-writepanels.php:189
327
  msgid "PDF Invoice Number (unformatted!)"
328
  msgstr ""
329
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  #: templates/pdf/Simple/html-document-wrapper.php:6
331
  #: templates/pdf/Simple/invoice.php:9 templates/pdf/Simple/invoice.php:21
332
  msgid "Invoice"
@@ -379,16 +391,20 @@ msgid "Description"
379
  msgstr ""
380
 
381
  #: templates/pdf/Simple/invoice.php:80
 
 
 
 
382
  #: templates/pdf/Simple/packing-slip.php:54
383
  msgid "SKU:"
384
  msgstr ""
385
 
386
- #: templates/pdf/Simple/invoice.php:81
387
  #: templates/pdf/Simple/packing-slip.php:55
388
  msgid "Weight:"
389
  msgstr ""
390
 
391
- #: templates/pdf/Simple/invoice.php:113
392
  #: templates/pdf/Simple/packing-slip.php:69
393
  msgid "Customer Notes"
394
  msgstr ""
@@ -405,34 +421,34 @@ msgstr ""
405
  msgid "N/A"
406
  msgstr ""
407
 
408
- #: woocommerce-pdf-invoices-packingslips.php:249
409
  msgid "Payment method"
410
  msgstr ""
411
 
412
- #: woocommerce-pdf-invoices-packingslips.php:260
413
  msgid "Shipping method"
414
  msgstr ""
415
 
416
- #: woocommerce-pdf-invoices-packingslips.php:360
417
  msgid "Subtotal"
418
  msgstr ""
419
 
420
- #: woocommerce-pdf-invoices-packingslips.php:382
421
  msgid "Shipping"
422
  msgstr ""
423
 
424
- #: woocommerce-pdf-invoices-packingslips.php:416
425
  msgid "Discount"
426
  msgstr ""
427
 
428
- #: woocommerce-pdf-invoices-packingslips.php:455
429
  msgid "VAT"
430
  msgstr ""
431
 
432
- #: woocommerce-pdf-invoices-packingslips.php:487
433
  msgid "Total ex. VAT"
434
  msgstr ""
435
 
436
- #: woocommerce-pdf-invoices-packingslips.php:490
437
  msgid "Total"
438
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WooCommerce PDF Invoices & Packing Slips\n"
4
+ "POT-Creation-Date: 2014-09-01 10:04+0100\n"
5
+ "PO-Revision-Date: 2014-09-01 10:04+0100\n"
6
  "Last-Translator: \n"
7
  "Language-Team: WP Overnight <support@wpovernight.com>\n"
8
  "Language: en_US\n"
16
  "X-Poedit-KeywordsList: __;_e;_x;_n:1,2\n"
17
  "X-Poedit-SearchPath-0: .\n"
18
 
19
+ #: includes/class-wcpdf-export.php:168 includes/class-wcpdf-export.php:173
20
+ #: includes/class-wcpdf-export.php:178 includes/class-wcpdf-export.php:189
21
+ #: includes/class-wcpdf-export.php:202
22
  msgid "You do not have sufficient permissions to access this page."
23
  msgstr ""
24
 
25
  # This is a filename (prefix). do not use spaces or special characters!
26
+ #: includes/class-wcpdf-export.php:223 includes/class-wcpdf-export.php:303
27
  msgid "invoice"
28
  msgid_plural "invoices"
29
  msgstr[0] ""
30
  msgstr[1] ""
31
 
32
  # This is a filename (prefix). do not use spaces or special characters!
33
+ #: includes/class-wcpdf-export.php:225
34
  msgid "packing-slip"
35
  msgid_plural "packing-slips"
36
  msgstr[0] ""
37
  msgstr[1] ""
38
 
39
  #: includes/class-wcpdf-settings.php:36 includes/class-wcpdf-settings.php:37
40
+ #: includes/class-wcpdf-writepanels.php:176
41
+ #: includes/class-wcpdf-writepanels.php:177
42
  msgid "PDF Invoices"
43
  msgstr ""
44
 
302
  msgid "Invoice Number"
303
  msgstr ""
304
 
305
+ #: includes/class-wcpdf-writepanels.php:139
306
+ msgid "Download invoice (PDF)"
307
  msgstr ""
308
 
309
+ #: includes/class-wcpdf-writepanels.php:150
310
+ msgid "Create PDF"
311
  msgstr ""
312
 
313
+ #: includes/class-wcpdf-writepanels.php:160
314
  msgid "PDF invoice"
315
  msgstr ""
316
 
317
+ #: includes/class-wcpdf-writepanels.php:161
318
  msgid "PDF Packing Slip"
319
  msgstr ""
320
 
321
+ #: includes/class-wcpdf-writepanels.php:178
322
+ #: includes/class-wcpdf-writepanels.php:179
323
  msgid "PDF Packing Slips"
324
  msgstr ""
325
 
326
+ #: includes/class-wcpdf-writepanels.php:192
327
  msgid "PDF Invoice Number (unformatted!)"
328
  msgstr ""
329
 
330
+ #: includes/class-wcpdf-writepanels.php:195
331
+ msgid "Invoice date:"
332
+ msgstr ""
333
+
334
+ #: includes/class-wcpdf-writepanels.php:196
335
+ msgid "h"
336
+ msgstr ""
337
+
338
+ #: includes/class-wcpdf-writepanels.php:196
339
+ msgid "m"
340
+ msgstr ""
341
+
342
  #: templates/pdf/Simple/html-document-wrapper.php:6
343
  #: templates/pdf/Simple/invoice.php:9 templates/pdf/Simple/invoice.php:21
344
  msgid "Invoice"
391
  msgstr ""
392
 
393
  #: templates/pdf/Simple/invoice.php:80
394
+ msgid "SKU"
395
+ msgstr ""
396
+
397
+ #: templates/pdf/Simple/invoice.php:81
398
  #: templates/pdf/Simple/packing-slip.php:54
399
  msgid "SKU:"
400
  msgstr ""
401
 
402
+ #: templates/pdf/Simple/invoice.php:82
403
  #: templates/pdf/Simple/packing-slip.php:55
404
  msgid "Weight:"
405
  msgstr ""
406
 
407
+ #: templates/pdf/Simple/invoice.php:114
408
  #: templates/pdf/Simple/packing-slip.php:69
409
  msgid "Customer Notes"
410
  msgstr ""
421
  msgid "N/A"
422
  msgstr ""
423
 
424
+ #: woocommerce-pdf-invoices-packingslips.php:264
425
  msgid "Payment method"
426
  msgstr ""
427
 
428
+ #: woocommerce-pdf-invoices-packingslips.php:275
429
  msgid "Shipping method"
430
  msgstr ""
431
 
432
+ #: woocommerce-pdf-invoices-packingslips.php:375
433
  msgid "Subtotal"
434
  msgstr ""
435
 
436
+ #: woocommerce-pdf-invoices-packingslips.php:397
437
  msgid "Shipping"
438
  msgstr ""
439
 
440
+ #: woocommerce-pdf-invoices-packingslips.php:431
441
  msgid "Discount"
442
  msgstr ""
443
 
444
+ #: woocommerce-pdf-invoices-packingslips.php:470
445
  msgid "VAT"
446
  msgstr ""
447
 
448
+ #: woocommerce-pdf-invoices-packingslips.php:507
449
  msgid "Total ex. VAT"
450
  msgstr ""
451
 
452
+ #: woocommerce-pdf-invoices-packingslips.php:510
453
  msgid "Total"
454
  msgstr ""
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: pomegranate
3
  Tags: woocommerce, print, pdf, bulk, packing slips, invoices, delivery notes, invoice, packing slip, export, email
4
  Requires at least: 3.5 and WooCommerce 2.0
5
  Tested up to: 3.9.1 and WooCommerce 2.1
6
- Stable tag: 1.4.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -78,6 +78,14 @@ This plugin is translation ready, which means that you can translate it using st
78
  7. Enter the translations. invoice and packing-slip now have two translation fields, single & plural. Note that this is a filename, so replace spaces with a - just to be sure!
79
  8. Save as `wpo_wcpdf-xx_XX.po`, where you replace xx_XX with your language code & country code suffix (da_DK, pl_PL, de_DE etc.)
80
 
 
 
 
 
 
 
 
 
81
  = How can I display custom fields in the invoice or packing slip? =
82
  First, you need to create a custom template following instructions from the first item in this FAQ.
83
  Then place the following snippet where you would like the custom field to appear:
@@ -174,6 +182,14 @@ This usually only happens on batch actions. PDF creation is a memory intensive j
174
 
175
  == Changelog ==
176
 
 
 
 
 
 
 
 
 
177
  = 1.4.3 =
178
  * Feature: Added function to call custom fields more easily (see FAQ)
179
  * Feature: Change the my account button text via a filter (wpo_wcpdf_myaccount_button_text)
3
  Tags: woocommerce, print, pdf, bulk, packing slips, invoices, delivery notes, invoice, packing slip, export, email
4
  Requires at least: 3.5 and WooCommerce 2.0
5
  Tested up to: 3.9.1 and WooCommerce 2.1
6
+ Stable tag: 1.4.4
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
78
  7. Enter the translations. invoice and packing-slip now have two translation fields, single & plural. Note that this is a filename, so replace spaces with a - just to be sure!
79
  8. Save as `wpo_wcpdf-xx_XX.po`, where you replace xx_XX with your language code & country code suffix (da_DK, pl_PL, de_DE etc.)
80
 
81
+
82
+ = How can I display the HTML/CSS source for debugging/developing templates? =
83
+ Add the following code to your theme's `functions.php`
84
+ `
85
+ add_filter( 'wpo_wcpdf_output_html', '__return_true' );
86
+ add_filter( 'wpo_wcpdf_use_path', '__return_false' );
87
+ `
88
+
89
  = How can I display custom fields in the invoice or packing slip? =
90
  First, you need to create a custom template following instructions from the first item in this FAQ.
91
  Then place the following snippet where you would like the custom field to appear:
182
 
183
  == Changelog ==
184
 
185
+ = 1.4.4 =
186
+ * Feature: Editable invoice date per order/invoice.
187
+ * Feature: HTML is now allowed in footer and other settings fields.
188
+ * Translations: Updated German (Thanks Nadine!)
189
+ * Fix: template paths are now saved relative to the site base path (ABSPATH) to prevent errors when moving to another server
190
+ * Tweak: Changed bulk action hook for better theme compatibility
191
+ * Tweak: Newlines in custom checkout fields
192
+
193
  = 1.4.3 =
194
  * Feature: Added function to call custom fields more easily (see FAQ)
195
  * Feature: Change the my account button text via a filter (wpo_wcpdf_myaccount_button_text)
templates/pdf/Simple/invoice.php CHANGED
@@ -77,6 +77,7 @@
77
  <?php $description_label = __( 'Description', 'wpo_wcpdf' ); // registering alternate label translation ?>
78
  <span class="item-name"><?php echo $item['name']; ?></span><span class="item-meta"><?php echo $item['meta']; ?></span>
79
  <dl class="meta">
 
80
  <?php if( !empty( $item['sku'] ) ) : ?><dt><?php _e( 'SKU:', 'wpo_wcpdf' ); ?></dt><dd><?php echo $item['sku']; ?></dd><?php endif; ?>
81
  <?php if( !empty( $item['weight'] ) ) : ?><dt><?php _e( 'Weight:', 'wpo_wcpdf' ); ?></dt><dd><?php echo $item['weight']; ?><?php echo get_option('woocommerce_weight_unit'); ?></dd><?php endif; ?>
82
  </dl>
77
  <?php $description_label = __( 'Description', 'wpo_wcpdf' ); // registering alternate label translation ?>
78
  <span class="item-name"><?php echo $item['name']; ?></span><span class="item-meta"><?php echo $item['meta']; ?></span>
79
  <dl class="meta">
80
+ <?php $description_label = __( 'SKU', 'wpo_wcpdf' ); // registering alternate label translation ?>
81
  <?php if( !empty( $item['sku'] ) ) : ?><dt><?php _e( 'SKU:', 'wpo_wcpdf' ); ?></dt><dd><?php echo $item['sku']; ?></dd><?php endif; ?>
82
  <?php if( !empty( $item['weight'] ) ) : ?><dt><?php _e( 'Weight:', 'wpo_wcpdf' ); ?></dt><dd><?php echo $item['weight']; ?><?php echo get_option('woocommerce_weight_unit'); ?></dd><?php endif; ?>
83
  </dl>
woocommerce-pdf-invoices-packingslips.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce PDF Invoices & Packing Slips
4
  * Plugin URI: http://www.wpovernight.com
5
  * Description: Create, print & email PDF invoices & packing slips for WooCommerce orders.
6
- * Version: 1.4.3
7
  * Author: Ewout Fernhout
8
  * Author URI: http://www.wpovernight.com
9
  * License: GPLv2 or later
@@ -243,7 +243,7 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices' ) ) {
243
  }
244
 
245
  if (!empty($custom_field) || $display_empty) {
246
- echo $field_label . $custom_field;
247
  }
248
  }
249
 
@@ -468,11 +468,16 @@ if ( !class_exists( 'WooCommerce_PDF_Invoices' ) ) {
468
  */
469
  public function get_order_taxes() {
470
  $tax_label = __( 'VAT', 'wpo_wcpdf' ); // register alternate label translation
 
471
  if ($this->export->order->get_taxes()) {
472
  foreach ( $this->export->order->get_taxes() as $key => $tax ) {
473
  $taxes[ $key ] = array(
474
- 'label' => isset( $tax[ 'label' ] ) ? $tax[ 'label' ] : $tax[ 'name' ],
475
- 'value' => woocommerce_price( ( $tax[ 'tax_amount' ] + $tax[ 'shipping_tax_amount' ] ) )
 
 
 
 
476
  );
477
  }
478
 
3
  * Plugin Name: WooCommerce PDF Invoices & Packing Slips
4
  * Plugin URI: http://www.wpovernight.com
5
  * Description: Create, print & email PDF invoices & packing slips for WooCommerce orders.
6
+ * Version: 1.4.4
7
  * Author: Ewout Fernhout
8
  * Author URI: http://www.wpovernight.com
9
  * License: GPLv2 or later
243
  }
244
 
245
  if (!empty($custom_field) || $display_empty) {
246
+ echo $field_label . nl2br ($custom_field);
247
  }
248
  }
249
 
468
  */
469
  public function get_order_taxes() {
470
  $tax_label = __( 'VAT', 'wpo_wcpdf' ); // register alternate label translation
471
+ $tax_rate_ids = $this->export->get_tax_rate_ids();
472
  if ($this->export->order->get_taxes()) {
473
  foreach ( $this->export->order->get_taxes() as $key => $tax ) {
474
  $taxes[ $key ] = array(
475
+ 'label' => isset( $tax[ 'label' ] ) ? $tax[ 'label' ] : $tax[ 'name' ],
476
+ 'value' => woocommerce_price( ( $tax[ 'tax_amount' ] + $tax[ 'shipping_tax_amount' ] ) ),
477
+ 'rate_id' => $tax['rate_id'],
478
+ 'tax_amount' => $tax['tax_amount'],
479
+ 'shipping_tax_amount' => $tax['shipping_tax_amount'],
480
+ 'rate' => isset( $tax_rate_ids[ $tax['rate_id'] ] ) ? ( (float) $tax_rate_ids[$tax['rate_id']]['tax_rate'] ) . ' %': '',
481
  );
482
  }
483