Version Description
August 31, 2020 =
Fixed: Fatal error.
Download this release
Release Info
Developer | baaaaas |
Plugin | WooCommerce PDF Invoices |
Version | 3.1.3 |
Comparing to | |
See all releases |
Code changes from version 3.1.0 to 3.1.3
- bootstrap.php +3 -3
- includes/abstracts/abstract-document.php +1 -1
- includes/abstracts/abstract-invoice.php +1 -1
- includes/abstracts/abstract-settings.php +71 -65
- includes/templates/invoice/simple/minimal/body.php +40 -30
- includes/templates/invoice/simple/minimal/header.php +1 -1
- includes/templates/invoice/simple/minimal/style.css +4 -5
- includes/templates/packing-slip/simple/minimal/body.php +1 -1
- includes/templates/packing-slip/simple/minimal/header.php +1 -1
- readme.txt +18 -2
- vendor/autoload_52.php +1 -1
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/installed.json +4 -4
- vendor/mpdf/mpdf/mpdf.php +1 -1
bootstrap.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WooCommerce PDF Invoices
|
4 |
* Plugin URI: https://wordpress.org/plugins/woocommerce-pdf-invoices
|
5 |
* Description: Automatically generate and attach customizable PDF Invoices to WooCommerce emails and connect with Dropbox, Google Drive, OneDrive or Egnyte.
|
6 |
-
* Version: 3.1.
|
7 |
* Author: Bas Elbers
|
8 |
* Author URI: http://wcpdfinvoices.com
|
9 |
* License: GPL-2.0+
|
@@ -11,12 +11,12 @@
|
|
11 |
* Text Domain: woocommerce-pdf-invoices
|
12 |
* Domain Path: /lang
|
13 |
* WC requires at least: 3.0.0
|
14 |
-
* WC tested up to: 4.
|
15 |
*/
|
16 |
|
17 |
defined( 'ABSPATH' ) || exit;
|
18 |
|
19 |
-
define( 'WPI_VERSION', '3.1.
|
20 |
|
21 |
/**
|
22 |
* Load WooCommerce PDF Invoices plugin.
|
3 |
* Plugin Name: WooCommerce PDF Invoices
|
4 |
* Plugin URI: https://wordpress.org/plugins/woocommerce-pdf-invoices
|
5 |
* Description: Automatically generate and attach customizable PDF Invoices to WooCommerce emails and connect with Dropbox, Google Drive, OneDrive or Egnyte.
|
6 |
+
* Version: 3.1.3
|
7 |
* Author: Bas Elbers
|
8 |
* Author URI: http://wcpdfinvoices.com
|
9 |
* License: GPL-2.0+
|
11 |
* Text Domain: woocommerce-pdf-invoices
|
12 |
* Domain Path: /lang
|
13 |
* WC requires at least: 3.0.0
|
14 |
+
* WC tested up to: 4.4
|
15 |
*/
|
16 |
|
17 |
defined( 'ABSPATH' ) || exit;
|
18 |
|
19 |
+
define( 'WPI_VERSION', '3.1.3' );
|
20 |
|
21 |
/**
|
22 |
* Load WooCommerce PDF Invoices plugin.
|
includes/abstracts/abstract-document.php
CHANGED
@@ -156,7 +156,7 @@ if ( ! class_exists( 'BEWPI_Abstract_Document' ) ) {
|
|
156 |
}
|
157 |
|
158 |
// mPDF debugging.
|
159 |
-
if ( WPI()->get_option( '
|
160 |
$mpdf->debug = true;
|
161 |
$mpdf->showImageErrors = true;
|
162 |
}
|
156 |
}
|
157 |
|
158 |
// mPDF debugging.
|
159 |
+
if ( WPI()->get_option( 'debug', 'mpdf_debug' ) ) {
|
160 |
$mpdf->debug = true;
|
161 |
$mpdf->showImageErrors = true;
|
162 |
}
|
includes/abstracts/abstract-invoice.php
CHANGED
@@ -438,7 +438,7 @@ abstract class BEWPI_Abstract_Invoice extends BEWPI_Abstract_Document {
|
|
438 |
echo esc_html( $item['name'] );
|
439 |
|
440 |
do_action( 'wpi_order_item_meta_start', $item, $this->order );
|
441 |
-
do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $this->order );
|
442 |
|
443 |
WPI()->templater()->display_item_meta( $item );
|
444 |
|
438 |
echo esc_html( $item['name'] );
|
439 |
|
440 |
do_action( 'wpi_order_item_meta_start', $item, $this->order );
|
441 |
+
do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $this->order, false );
|
442 |
|
443 |
WPI()->templater()->display_item_meta( $item );
|
444 |
|
includes/abstracts/abstract-settings.php
CHANGED
@@ -217,8 +217,8 @@ abstract class BEWPI_Abstract_Settings {
|
|
217 |
?>
|
218 |
</h2>
|
219 |
<form method="post"
|
220 |
-
|
221 |
-
|
222 |
<?php
|
223 |
settings_fields( self::$setting->settings_key );
|
224 |
do_settings_sections( self::$setting->settings_key );
|
@@ -387,11 +387,11 @@ abstract class BEWPI_Abstract_Settings {
|
|
387 |
$options = array_merge( array_flip( $selections ), $args['options'] );
|
388 |
?>
|
389 |
<select multiple="multiple"
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
<?php
|
396 |
foreach ( $options as $id => $option ) {
|
397 |
echo '<option value="' . esc_attr( $option['value'] ) . '" ' . selected( in_array( $id, $selections, true ), true, false ) . '>' . $option['name'] . '</option>';
|
@@ -414,9 +414,9 @@ abstract class BEWPI_Abstract_Settings {
|
|
414 |
?>
|
415 |
<input type="hidden" name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>" value="0"/>
|
416 |
<input id="<?php echo $args['id']; ?>"
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
<?php
|
421 |
checked( (bool) get_transient( 'bewpi_next_invoice_number' ) );
|
422 |
|
@@ -441,11 +441,13 @@ abstract class BEWPI_Abstract_Settings {
|
|
441 |
public function next_invoice_number_callback( $args ) {
|
442 |
$class = isset( $args['class'] ) ? $args['class'] : 'bewpi-notes';
|
443 |
$next_invoice_number = get_transient( 'bewpi_next_invoice_number' );
|
|
|
|
|
444 |
?>
|
445 |
<input id="<?php echo $args['id']; ?>"
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
<?php
|
450 |
if ( isset( $args['attrs'] ) ) {
|
451 |
foreach ( $args['attrs'] as $attr ) {
|
@@ -471,9 +473,9 @@ abstract class BEWPI_Abstract_Settings {
|
|
471 |
<input type="hidden" name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>" value="0"/>
|
472 |
<?php } ?>
|
473 |
<input id="<?php echo $args['id']; ?>"
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
|
478 |
<?php
|
479 |
if ( $is_checkbox ) {
|
@@ -504,8 +506,8 @@ abstract class BEWPI_Abstract_Settings {
|
|
504 |
$options = get_option( $args['page'] );
|
505 |
?>
|
506 |
<textarea id="<?php echo $args['id']; ?>"
|
507 |
-
|
508 |
-
|
509 |
><?php echo esc_textarea( $options[ $args['name'] ] ); ?></textarea>
|
510 |
<div class="bewpi-notes"><?php echo $args['desc']; ?></div>
|
511 |
<?php
|
@@ -522,55 +524,59 @@ abstract class BEWPI_Abstract_Settings {
|
|
522 |
$file_url = wp_get_attachment_url( $attachment_id );
|
523 |
?>
|
524 |
<p class="form-field">
|
525 |
-
<input type="hidden" class="file_id"
|
526 |
-
|
527 |
-
|
|
|
|
|
|
|
|
|
528 |
</p>
|
529 |
<script type="text/javascript">
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
</script>
|
575 |
<?php
|
576 |
}
|
217 |
?>
|
218 |
</h2>
|
219 |
<form method="post"
|
220 |
+
action="options.php?tab=<?php echo self::$current_tab; ?>&key=<?php echo md5( WPI()->get_plugin_slug() ); ?>"
|
221 |
+
enctype="multipart/form-data" <?php echo $width; ?>>
|
222 |
<?php
|
223 |
settings_fields( self::$setting->settings_key );
|
224 |
do_settings_sections( self::$setting->settings_key );
|
387 |
$options = array_merge( array_flip( $selections ), $args['options'] );
|
388 |
?>
|
389 |
<select multiple="multiple"
|
390 |
+
name="<?php echo esc_attr( $args['page'] . '[' . $args['name'] . '][]' ); ?>"
|
391 |
+
title="<?php echo esc_attr( $args['title'] ); ?>"
|
392 |
+
data-placeholder="<?php esc_attr_e( 'Choose…', 'woocommerce-pdf-invoices' ); ?>"
|
393 |
+
aria-label="<?php esc_attr_e( 'Column', 'woocommerce-pdf-invoices' ) ?>"
|
394 |
+
class="wc-enhanced-select">
|
395 |
<?php
|
396 |
foreach ( $options as $id => $option ) {
|
397 |
echo '<option value="' . esc_attr( $option['value'] ) . '" ' . selected( in_array( $id, $selections, true ), true, false ) . '>' . $option['name'] . '</option>';
|
414 |
?>
|
415 |
<input type="hidden" name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>" value="0"/>
|
416 |
<input id="<?php echo $args['id']; ?>"
|
417 |
+
name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>"
|
418 |
+
type="<?php echo $args['type']; ?>"
|
419 |
+
value="1"
|
420 |
<?php
|
421 |
checked( (bool) get_transient( 'bewpi_next_invoice_number' ) );
|
422 |
|
441 |
public function next_invoice_number_callback( $args ) {
|
442 |
$class = isset( $args['class'] ) ? $args['class'] : 'bewpi-notes';
|
443 |
$next_invoice_number = get_transient( 'bewpi_next_invoice_number' );
|
444 |
+
$max_invoice_number = BEWPI_Invoice::get_max_invoice_number( date( 'Y' ) );
|
445 |
+
|
446 |
?>
|
447 |
<input id="<?php echo $args['id']; ?>"
|
448 |
+
name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>"
|
449 |
+
type="<?php echo $args['type']; ?>"
|
450 |
+
value="<?php echo esc_attr( false !== $next_invoice_number ? $next_invoice_number : $max_invoice_number + 1 ); ?>"
|
451 |
<?php
|
452 |
if ( isset( $args['attrs'] ) ) {
|
453 |
foreach ( $args['attrs'] as $attr ) {
|
473 |
<input type="hidden" name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>" value="0"/>
|
474 |
<?php } ?>
|
475 |
<input id="<?php echo $args['id']; ?>"
|
476 |
+
name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>"
|
477 |
+
type="<?php echo $args['type']; ?>"
|
478 |
+
value="<?php echo $is_checkbox ? 1 : esc_attr( $options[ $args['name'] ] ); ?>"
|
479 |
|
480 |
<?php
|
481 |
if ( $is_checkbox ) {
|
506 |
$options = get_option( $args['page'] );
|
507 |
?>
|
508 |
<textarea id="<?php echo $args['id']; ?>"
|
509 |
+
name="<?php echo $args['page'] . '[' . $args['name'] . ']'; ?>"
|
510 |
+
rows="5"
|
511 |
><?php echo esc_textarea( $options[ $args['name'] ] ); ?></textarea>
|
512 |
<div class="bewpi-notes"><?php echo $args['desc']; ?></div>
|
513 |
<?php
|
524 |
$file_url = wp_get_attachment_url( $attachment_id );
|
525 |
?>
|
526 |
<p class="form-field">
|
527 |
+
<input type="hidden" class="file_id"
|
528 |
+
name="<?php echo esc_attr( $args['page'] . '[' . $args['name'] . ']' ); ?>"
|
529 |
+
value="<?php echo esc_attr( $attachment_id ); ?>"/>
|
530 |
+
<input type="<?php echo esc_attr( $args['type'] ); ?>" class="file_url"
|
531 |
+
placeholder="<?php echo esc_attr( $file_url ); ?>" value="<?php echo esc_attr( $file_url ); ?>"/>
|
532 |
+
<button class="button upload_image_button"
|
533 |
+
data-uploader_button_text="<?php _e( 'Use file', 'woocommerce-pdf-invoices' ); ?>"><?php _e( 'Upload', 'woocommerce-pdf-invoices' ); ?></button>
|
534 |
</p>
|
535 |
<script type="text/javascript">
|
536 |
+
// Uploading files
|
537 |
+
var file_frame;
|
538 |
+
var file_target_input;
|
539 |
+
var file_id_input;
|
540 |
+
|
541 |
+
jQuery('.upload_image_button').on('click', function (event) {
|
542 |
+
|
543 |
+
event.preventDefault();
|
544 |
+
|
545 |
+
file_target_input = jQuery(this).closest('.form-field').find('.file_url');
|
546 |
+
file_id_input = jQuery(this).closest('.form-field').find('.file_id');
|
547 |
+
|
548 |
+
// If the media frame already exists, reopen it.
|
549 |
+
if (file_frame) {
|
550 |
+
file_frame.open();
|
551 |
+
return;
|
552 |
+
}
|
553 |
+
|
554 |
+
// Create the media frame.
|
555 |
+
file_frame = wp.media.frames.file_frame = wp.media({
|
556 |
+
title: jQuery(this).data('uploader_title'),
|
557 |
+
button: {
|
558 |
+
text: jQuery(this).data('uploader_button_text')
|
559 |
+
},
|
560 |
+
multiple: false // Set to true to allow multiple files to be selected,
|
561 |
+
});
|
562 |
+
|
563 |
+
// When an image is selected, run a callback.
|
564 |
+
file_frame.on('select', function () {
|
565 |
+
// We set multiple to false so only get one image from the uploader
|
566 |
+
attachment = file_frame.state().get('selection').first().toJSON();
|
567 |
+
|
568 |
+
jQuery(file_target_input).val(attachment.url);
|
569 |
+
jQuery(file_id_input).val(attachment.id);
|
570 |
+
});
|
571 |
+
|
572 |
+
// Finally, open the modal
|
573 |
+
file_frame.open();
|
574 |
+
});
|
575 |
+
|
576 |
+
jQuery('.upload_image_button').closest('.form-field').find('.file_url').on('change', function (event) {
|
577 |
+
file_id_input = jQuery(this).closest('.form-field').find('.file_id');
|
578 |
+
jQuery(file_id_input).val('');
|
579 |
+
});
|
580 |
</script>
|
581 |
<?php
|
582 |
}
|
includes/templates/invoice/simple/minimal/body.php
CHANGED
@@ -15,15 +15,15 @@
|
|
15 |
* @version 0.0.1
|
16 |
*/
|
17 |
|
18 |
-
$templater
|
19 |
-
$
|
20 |
-
$
|
21 |
-
$line_items
|
22 |
-
$formatted_shipping_address
|
23 |
-
$formatted_billing_address
|
24 |
-
$columns
|
25 |
-
$color
|
26 |
-
$terms
|
27 |
?>
|
28 |
|
29 |
<div class="title">
|
@@ -47,7 +47,7 @@ $terms = $templater->get_option( 'bewpi_terms' );
|
|
47 |
/**
|
48 |
* Invoice object.
|
49 |
*
|
50 |
-
* @var BEWPI_Invoice $invoice.
|
51 |
*/
|
52 |
foreach ( $invoice->get_invoice_info() as $info_id => $info ) {
|
53 |
if ( empty( $info['value'] ) ) {
|
@@ -80,16 +80,21 @@ $terms = $templater->get_option( 'bewpi_terms' );
|
|
80 |
?>
|
81 |
</td>
|
82 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
83 |
</table>
|
84 |
<table cellpadding="0" cellspacing="0">
|
85 |
<thead>
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
</thead>
|
94 |
<tbody>
|
95 |
<?php
|
@@ -116,6 +121,8 @@ $terms = $templater->get_option( 'bewpi_terms' );
|
|
116 |
<tbody>
|
117 |
|
118 |
<?php
|
|
|
|
|
119 |
foreach ( $invoice->get_order_item_totals() as $key => $total ) {
|
120 |
$class = str_replace( '_', '-', $key );
|
121 |
?>
|
@@ -125,16 +132,19 @@ $terms = $templater->get_option( 'bewpi_terms' );
|
|
125 |
<?php do_action( 'wpi_order_item_totals_left', $key, $invoice ); ?>
|
126 |
</td>
|
127 |
|
128 |
-
<td width="25%" align="left" class="border <?php echo esc_attr( $class ); ?>">
|
129 |
<?php echo $total['label']; ?>
|
130 |
</td>
|
131 |
|
132 |
-
<td width="25%" align="right" class="border <?php echo esc_attr( $class ); ?>">
|
133 |
<?php echo str_replace( ' ', '', $total['value'] ); ?>
|
134 |
</td>
|
135 |
</tr>
|
136 |
|
137 |
-
|
|
|
|
|
|
|
138 |
</tbody>
|
139 |
</table>
|
140 |
|
@@ -172,14 +182,14 @@ $terms = $templater->get_option( 'bewpi_terms' );
|
|
172 |
</table>
|
173 |
|
174 |
<?php if ( $terms ) { ?>
|
175 |
-
<!-- Using div to position absolute the block. -->
|
176 |
-
<div class="terms">
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
</div>
|
185 |
<?php } ?>
|
15 |
* @version 0.0.1
|
16 |
*/
|
17 |
|
18 |
+
$templater = WPI()->templater();
|
19 |
+
$invoice = $templater->invoice;
|
20 |
+
$order = $invoice->order;
|
21 |
+
$line_items = $order->get_items( 'line_item' );
|
22 |
+
$formatted_shipping_address = $order->get_formatted_shipping_address();
|
23 |
+
$formatted_billing_address = $order->get_formatted_billing_address();
|
24 |
+
$columns = $invoice->get_columns();
|
25 |
+
$color = $templater->get_option( 'bewpi_color_theme' );
|
26 |
+
$terms = $templater->get_option( 'bewpi_terms' );
|
27 |
?>
|
28 |
|
29 |
<div class="title">
|
47 |
/**
|
48 |
* Invoice object.
|
49 |
*
|
50 |
+
* @var BEWPI_Invoice $invoice .
|
51 |
*/
|
52 |
foreach ( $invoice->get_invoice_info() as $info_id => $info ) {
|
53 |
if ( empty( $info['value'] ) ) {
|
80 |
?>
|
81 |
</td>
|
82 |
</tr>
|
83 |
+
<tr class="custom-information">
|
84 |
+
<td>
|
85 |
+
<?php echo apply_filters( 'wpi_custom_information', '', $invoice ); ?>
|
86 |
+
</td>
|
87 |
+
</tr>
|
88 |
</table>
|
89 |
<table cellpadding="0" cellspacing="0">
|
90 |
<thead>
|
91 |
+
<tr class="heading" bgcolor="<?php echo esc_attr( $color ); ?>;">
|
92 |
+
<?php
|
93 |
+
foreach ( $columns as $key => $data ) {
|
94 |
+
$templater->display_header_recursive( $key, $data );
|
95 |
+
}
|
96 |
+
?>
|
97 |
+
</tr>
|
98 |
</thead>
|
99 |
<tbody>
|
100 |
<?php
|
121 |
<tbody>
|
122 |
|
123 |
<?php
|
124 |
+
$i = 1;
|
125 |
+
$length = count( $invoice->get_order_item_totals() );
|
126 |
foreach ( $invoice->get_order_item_totals() as $key => $total ) {
|
127 |
$class = str_replace( '_', '-', $key );
|
128 |
?>
|
132 |
<?php do_action( 'wpi_order_item_totals_left', $key, $invoice ); ?>
|
133 |
</td>
|
134 |
|
135 |
+
<td width="25%" align="left" class="border <?php echo $i === $length ? 'last' : ''; ?> <?php echo esc_attr( $class ); ?>">
|
136 |
<?php echo $total['label']; ?>
|
137 |
</td>
|
138 |
|
139 |
+
<td width="25%" align="right" class="border <?php echo $i === $length ? 'last' : ''; ?> <?php echo esc_attr( $class ); ?>">
|
140 |
<?php echo str_replace( ' ', '', $total['value'] ); ?>
|
141 |
</td>
|
142 |
</tr>
|
143 |
|
144 |
+
<?php
|
145 |
+
$i ++;
|
146 |
+
}
|
147 |
+
?>
|
148 |
</tbody>
|
149 |
</table>
|
150 |
|
182 |
</table>
|
183 |
|
184 |
<?php if ( $terms ) { ?>
|
185 |
+
<!-- Using div to position absolute the block. -->
|
186 |
+
<div class="terms">
|
187 |
+
<table>
|
188 |
+
<tr>
|
189 |
+
<td style="border: 1px solid #000;">
|
190 |
+
<?php echo nl2br( $terms ); ?>
|
191 |
+
</td>
|
192 |
+
</tr>
|
193 |
+
</table>
|
194 |
+
</div>
|
195 |
<?php } ?>
|
includes/templates/invoice/simple/minimal/header.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
</td>
|
30 |
|
31 |
<td>
|
32 |
-
<?php echo WPI()->get_formatted_company_address(); ?>
|
33 |
</td>
|
34 |
</tr>
|
35 |
</table>
|
29 |
</td>
|
30 |
|
31 |
<td>
|
32 |
+
<?php echo WPI()->get_formatted_company_address() . '<br>' . WPI()->get_formatted_company_details(); ?>
|
33 |
</td>
|
34 |
</tr>
|
35 |
</table>
|
includes/templates/invoice/simple/minimal/style.css
CHANGED
@@ -116,6 +116,10 @@ table tr.spacer td {
|
|
116 |
/* Totals */
|
117 |
table tr.total td.border {
|
118 |
border-top: 2px solid #eee;
|
|
|
|
|
|
|
|
|
119 |
font-weight: bold;
|
120 |
}
|
121 |
|
@@ -123,11 +127,6 @@ small.shipped_via {
|
|
123 |
display: none;
|
124 |
}
|
125 |
|
126 |
-
/* Dynamic class */
|
127 |
-
table tr.total td.order-total{
|
128 |
-
border-top: 2px solid #000;
|
129 |
-
}
|
130 |
-
|
131 |
table.notes {
|
132 |
margin-top: 40px;
|
133 |
}
|
116 |
/* Totals */
|
117 |
table tr.total td.border {
|
118 |
border-top: 2px solid #eee;
|
119 |
+
}
|
120 |
+
|
121 |
+
table tr.total td.last {
|
122 |
+
border-top: 2px solid #000;
|
123 |
font-weight: bold;
|
124 |
}
|
125 |
|
127 |
display: none;
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
130 |
table.notes {
|
131 |
margin-top: 40px;
|
132 |
}
|
includes/templates/packing-slip/simple/minimal/body.php
CHANGED
@@ -102,7 +102,7 @@ $color = $templater->get_option( 'bewpi_color_theme' );
|
|
102 |
echo esc_html( $item['name'] );
|
103 |
|
104 |
do_action( 'wpi_order_item_meta_start', $item, $this->order );
|
105 |
-
do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $this->order );
|
106 |
|
107 |
WPI()->templater()->display_item_meta( $item );
|
108 |
|
102 |
echo esc_html( $item['name'] );
|
103 |
|
104 |
do_action( 'wpi_order_item_meta_start', $item, $this->order );
|
105 |
+
do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $this->order, false );
|
106 |
|
107 |
WPI()->templater()->display_item_meta( $item );
|
108 |
|
includes/templates/packing-slip/simple/minimal/header.php
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
</td>
|
30 |
|
31 |
<td>
|
32 |
-
<?php echo WPI()->get_formatted_company_address(); ?>
|
33 |
</td>
|
34 |
</tr>
|
35 |
</table>
|
29 |
</td>
|
30 |
|
31 |
<td>
|
32 |
+
<?php echo WPI()->get_formatted_company_address() . '<br>' . WPI()->get_formatted_company_details(); ?>
|
33 |
</td>
|
34 |
</tr>
|
35 |
</table>
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: baaaaas
|
|
3 |
Donate link:
|
4 |
Tags: woocommerce pdf invoices, invoice, packing slips, delivery note, packing list, shipping list, generate, pdf, woocommerce, attachment, email, customer invoice, processing, vat, tax, sequential, number, dropbox, google drive, onedrive, egnyte, cloud, storage
|
5 |
Requires at least: 4.0
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 3.1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -344,6 +344,22 @@ Since version 2.9.4 the plugin removed the ability to update the PDF invoice whe
|
|
344 |
|
345 |
== Changelog ==
|
346 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
= 3.1.0 - June 17, 2020 =
|
348 |
|
349 |
- Added: Packing slip meta box to Edit Order page to generate packing slip.
|
3 |
Donate link:
|
4 |
Tags: woocommerce pdf invoices, invoice, packing slips, delivery note, packing list, shipping list, generate, pdf, woocommerce, attachment, email, customer invoice, processing, vat, tax, sequential, number, dropbox, google drive, onedrive, egnyte, cloud, storage
|
5 |
Requires at least: 4.0
|
6 |
+
Tested up to: 5.5
|
7 |
+
Stable tag: 3.1.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
344 |
|
345 |
== Changelog ==
|
346 |
|
347 |
+
= 3.1.3 - August 31, 2020 =
|
348 |
+
|
349 |
+
- Fixed: Fatal error.
|
350 |
+
|
351 |
+
= 3.1.2 - August 31, 2020 =
|
352 |
+
|
353 |
+
- Added: Filter to add custom information.
|
354 |
+
- Fixed: Fixed last total row border weight.
|
355 |
+
- Fixed: jQuery .live() has been removed.
|
356 |
+
- Fixed: Inconsistent number of args passed to woocommerce_order_item_meta_start thanks to @cyjosh.
|
357 |
+
|
358 |
+
= 3.1.1 - June 21, 2020 =
|
359 |
+
|
360 |
+
- Fixed: Company logo PNG not working.
|
361 |
+
- Fixed: Company details not showing in template.
|
362 |
+
|
363 |
= 3.1.0 - June 17, 2020 =
|
364 |
|
365 |
- Added: Packing slip meta box to Edit Order page to generate packing slip.
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit8fd232a2f678d4a9e9948da61a15b62e::getLoader();
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit0aec1cc4eb979f7984089e691c52ce42 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit8fd232a2f678d4a9e9948da61a15b62e {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit8fd232a2f678d4a9e9948da61a15b62e', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit8fd232a2f678d4a9e9948da61a15b62e', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/installed.json
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/baselbers/mpdf.git",
|
9 |
-
"reference": "
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/baselbers/mpdf/zipball/
|
14 |
-
"reference": "
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
@@ -25,7 +25,7 @@
|
|
25 |
"suggest": {
|
26 |
"ext-zlib": "Needed for compression of embedded resources, such as fonts"
|
27 |
},
|
28 |
-
"time": "2020-06-
|
29 |
"type": "library",
|
30 |
"installation-source": "source",
|
31 |
"autoload": {
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
"url": "https://github.com/baselbers/mpdf.git",
|
9 |
+
"reference": "e65509d36a2e5b14bea72a4a80439c55e6062071"
|
10 |
},
|
11 |
"dist": {
|
12 |
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/baselbers/mpdf/zipball/e65509d36a2e5b14bea72a4a80439c55e6062071",
|
14 |
+
"reference": "e65509d36a2e5b14bea72a4a80439c55e6062071",
|
15 |
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
25 |
"suggest": {
|
26 |
"ext-zlib": "Needed for compression of embedded resources, such as fonts"
|
27 |
},
|
28 |
+
"time": "2020-06-21T19:52:50+00:00",
|
29 |
"type": "library",
|
30 |
"installation-source": "source",
|
31 |
"autoload": {
|
vendor/mpdf/mpdf/mpdf.php
CHANGED
@@ -12432,7 +12432,7 @@ class mPDF
|
|
12432 |
$p += 4;
|
12433 |
} elseif ($type == 'IEND') {
|
12434 |
break;
|
12435 |
-
} elseif (preg_match('/[a-zA-Z]
|
12436 |
$p += $n + 4;
|
12437 |
} else {
|
12438 |
return $this->_imageError($file, $firsttime, 'Error parsing PNG image data');
|
12432 |
$p += 4;
|
12433 |
} elseif ($type == 'IEND') {
|
12434 |
break;
|
12435 |
+
} elseif (preg_match('/[a-zA-Z]{4}/', $type)) {
|
12436 |
$p += $n + 4;
|
12437 |
} else {
|
12438 |
return $this->_imageError($file, $firsttime, 'Error parsing PNG image data');
|