Version Description
May 11, 2015 =
Fixed: Admin notice
Fixed: VAT translation
Improved: Invoice header repeating on every page
Improved: Template into separate files
Download this release
Release Info
Developer | baaaaas |
Plugin | WooCommerce PDF Invoices |
Version | 2.2.4 |
Comparing to | |
See all releases |
Code changes from version 2.2.3 to 2.2.4
- admin/classes/be-woocommerce-pdf-invoices.php +21 -2
- admin/classes/bewpi-template-settings.php +5 -5
- bootstrap.php +3 -3
- includes/classes/bewpi-document.php +5 -7
- includes/classes/bewpi-invoice.php +90 -45
- includes/views/templates/{invoice-micro.php → micro/body.php} +25 -222
- includes/views/templates/micro/footer.php +24 -0
- includes/views/templates/micro/header.php +49 -0
- includes/views/templates/micro/style.css +138 -0
- lang/be-woocommerce-pdf-invoices-nl_NL.mo +0 -0
- lang/be-woocommerce-pdf-invoices-nl_NL.po +56 -55
- readme.txt +8 -1
admin/classes/be-woocommerce-pdf-invoices.php
CHANGED
@@ -31,7 +31,14 @@ if ( ! class_exists( 'BE_WooCommerce_PDF_Invoices' ) ) {
|
|
31 |
*/
|
32 |
private $textdomain = 'be-woocommerce-pdf-invoices';
|
33 |
|
|
|
|
|
|
|
34 |
const OPTION_INSTALL_DATE = 'bewpi-install-date';
|
|
|
|
|
|
|
|
|
35 |
const OPTION_ADMIN_NOTICE_KEY = 'bewpi-hide-notice';
|
36 |
|
37 |
/**
|
@@ -98,6 +105,9 @@ if ( ! class_exists( 'BE_WooCommerce_PDF_Invoices' ) ) {
|
|
98 |
|
99 |
}
|
100 |
|
|
|
|
|
|
|
101 |
public function init() {
|
102 |
|
103 |
$this->load_textdomain();
|
@@ -110,10 +120,17 @@ if ( ! class_exists( 'BE_WooCommerce_PDF_Invoices' ) ) {
|
|
110 |
|
111 |
}
|
112 |
|
|
|
|
|
|
|
113 |
public static function plugin_activation() {
|
114 |
self::insert_install_date();
|
115 |
}
|
116 |
|
|
|
|
|
|
|
|
|
117 |
public function init_review_admin_notice() {
|
118 |
// Check if user is an administrator
|
119 |
if ( ! current_user_can( 'manage_options' ) ) {
|
@@ -430,6 +447,7 @@ if ( ! class_exists( 'BE_WooCommerce_PDF_Invoices' ) ) {
|
|
430 |
}
|
431 |
|
432 |
/**
|
|
|
433 |
* @return DateTime
|
434 |
*/
|
435 |
private function get_install_date() {
|
@@ -452,13 +470,14 @@ if ( ! class_exists( 'BE_WooCommerce_PDF_Invoices' ) ) {
|
|
452 |
}
|
453 |
|
454 |
/**
|
455 |
-
*
|
456 |
*/
|
457 |
public function catch_hide_notice() {
|
458 |
if ( isset( $_GET[self::OPTION_ADMIN_NOTICE_KEY] ) && current_user_can( 'install_plugins' ) ) {
|
459 |
// Add user meta
|
460 |
global $current_user;
|
461 |
-
add_user_meta( $current_user->ID, self::OPTION_ADMIN_NOTICE_KEY, '1', true );
|
|
|
462 |
|
463 |
// Build redirect URL
|
464 |
$query_params = $this->get_admin_querystring_array();
|
31 |
*/
|
32 |
private $textdomain = 'be-woocommerce-pdf-invoices';
|
33 |
|
34 |
+
/**
|
35 |
+
* Install date constant for admin notice
|
36 |
+
*/
|
37 |
const OPTION_INSTALL_DATE = 'bewpi-install-date';
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Admin notice key constant
|
41 |
+
*/
|
42 |
const OPTION_ADMIN_NOTICE_KEY = 'bewpi-hide-notice';
|
43 |
|
44 |
/**
|
105 |
|
106 |
}
|
107 |
|
108 |
+
/**
|
109 |
+
* Initialize...
|
110 |
+
*/
|
111 |
public function init() {
|
112 |
|
113 |
$this->load_textdomain();
|
120 |
|
121 |
}
|
122 |
|
123 |
+
/**
|
124 |
+
* Get installation date on activation
|
125 |
+
*/
|
126 |
public static function plugin_activation() {
|
127 |
self::insert_install_date();
|
128 |
}
|
129 |
|
130 |
+
/**
|
131 |
+
* Check if we should show the admin notice
|
132 |
+
* @return bool|void
|
133 |
+
*/
|
134 |
public function init_review_admin_notice() {
|
135 |
// Check if user is an administrator
|
136 |
if ( ! current_user_can( 'manage_options' ) ) {
|
447 |
}
|
448 |
|
449 |
/**
|
450 |
+
* Get the installation date of the plugin
|
451 |
* @return DateTime
|
452 |
*/
|
453 |
private function get_install_date() {
|
470 |
}
|
471 |
|
472 |
/**
|
473 |
+
* Callback to hide the admin notice.
|
474 |
*/
|
475 |
public function catch_hide_notice() {
|
476 |
if ( isset( $_GET[self::OPTION_ADMIN_NOTICE_KEY] ) && current_user_can( 'install_plugins' ) ) {
|
477 |
// Add user meta
|
478 |
global $current_user;
|
479 |
+
//add_user_meta( $current_user->ID, self::OPTION_ADMIN_NOTICE_KEY, '1', true );
|
480 |
+
update_user_meta( $current_user->ID, self::OPTION_ADMIN_NOTICE_KEY, '1' );
|
481 |
|
482 |
// Build redirect URL
|
483 |
$query_params = $this->get_admin_querystring_array();
|
admin/classes/bewpi-template-settings.php
CHANGED
@@ -81,8 +81,8 @@ if ( ! class_exists( 'BEWPI_Template_Settings' ) ) {
|
|
81 |
$settings = array(
|
82 |
// General section
|
83 |
array(
|
84 |
-
'id' => 'bewpi-template-
|
85 |
-
'name' => $this->prefix . '
|
86 |
'title' => __( 'Template', $this->textdomain ),
|
87 |
'callback' => array( &$this, 'select_callback' ),
|
88 |
'page' => $this->settings_key,
|
@@ -93,10 +93,10 @@ if ( ! class_exists( 'BEWPI_Template_Settings' ) ) {
|
|
93 |
array(
|
94 |
'id' => 1,
|
95 |
'name' => 'Micro',
|
96 |
-
'value' => '
|
97 |
)
|
98 |
),
|
99 |
-
'default' => '
|
100 |
),
|
101 |
array(
|
102 |
'id' => 'bewpi-color-theme',
|
@@ -518,7 +518,7 @@ if ( ! class_exists( 'BEWPI_Template_Settings' ) ) {
|
|
518 |
}
|
519 |
|
520 |
// Invoice number
|
521 |
-
if ( !isset( $input['bewpi_next_invoice_number'] ) ) {
|
522 |
// Reset the next invoice number so it's visible in the disabled input field.
|
523 |
$output['bewpi_next_invoice_number'] = $template_options['bewpi_next_invoice_number'];
|
524 |
}
|
81 |
$settings = array(
|
82 |
// General section
|
83 |
array(
|
84 |
+
'id' => 'bewpi-template-name',
|
85 |
+
'name' => $this->prefix . 'template_name',
|
86 |
'title' => __( 'Template', $this->textdomain ),
|
87 |
'callback' => array( &$this, 'select_callback' ),
|
88 |
'page' => $this->settings_key,
|
93 |
array(
|
94 |
'id' => 1,
|
95 |
'name' => 'Micro',
|
96 |
+
'value' => 'micro'
|
97 |
)
|
98 |
),
|
99 |
+
'default' => 'micro'
|
100 |
),
|
101 |
array(
|
102 |
'id' => 'bewpi-color-theme',
|
518 |
}
|
519 |
|
520 |
// Invoice number
|
521 |
+
if ( ! isset( $input['bewpi_next_invoice_number'] ) ) {
|
522 |
// Reset the next invoice number so it's visible in the disabled input field.
|
523 |
$output['bewpi_next_invoice_number'] = $template_options['bewpi_next_invoice_number'];
|
524 |
}
|
bootstrap.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* @version 2.2.
|
5 |
* @package WooCommerce PDF Invoices
|
6 |
* @author baaaaas
|
7 |
*
|
@@ -9,7 +9,7 @@
|
|
9 |
* Plugin Name: WooCommerce PDF Invoices
|
10 |
* Plugin URI:
|
11 |
* Description: Automatically or manually create and send PDF Invoices for WooCommerce orders and connect with Dropbox, Google Drive, OneDrive or Egnyte.
|
12 |
-
* Version: 2.2.
|
13 |
* Author: baaaaas
|
14 |
* Author URI:
|
15 |
* License: GPL-2.0+
|
@@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) )
|
|
22 |
die( 'Access denied.' );
|
23 |
|
24 |
if( !defined( 'BEWPI_VERSION' ) )
|
25 |
-
define( 'BEWPI_VERSION', '2.2.
|
26 |
|
27 |
if( !defined( 'BEWPI_URL' ) )
|
28 |
define( 'BEWPI_URL', plugins_url( '', __FILE__ ) . '/' );
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* @version 2.2.4
|
5 |
* @package WooCommerce PDF Invoices
|
6 |
* @author baaaaas
|
7 |
*
|
9 |
* Plugin Name: WooCommerce PDF Invoices
|
10 |
* Plugin URI:
|
11 |
* Description: Automatically or manually create and send PDF Invoices for WooCommerce orders and connect with Dropbox, Google Drive, OneDrive or Egnyte.
|
12 |
+
* Version: 2.2.4
|
13 |
* Author: baaaaas
|
14 |
* Author URI:
|
15 |
* License: GPL-2.0+
|
22 |
die( 'Access denied.' );
|
23 |
|
24 |
if( !defined( 'BEWPI_VERSION' ) )
|
25 |
+
define( 'BEWPI_VERSION', '2.2.4' );
|
26 |
|
27 |
if( !defined( 'BEWPI_URL' ) )
|
28 |
define( 'BEWPI_URL', plugins_url( '', __FILE__ ) . '/' );
|
includes/classes/bewpi-document.php
CHANGED
@@ -66,20 +66,18 @@ if ( ! class_exists( 'BEWPI_Document' ) ) {
|
|
66 |
*/
|
67 |
protected function generate( $dest, $document ) {
|
68 |
set_time_limit(0);
|
69 |
-
|
70 |
-
$
|
|
|
71 |
$mpdf->useOnlyCoreFonts = false; // false is default
|
72 |
$mpdf->SetTitle( $this->title );
|
73 |
$mpdf->SetAuthor( $this->author );
|
74 |
$mpdf->showWatermarkText = false;
|
75 |
$mpdf->SetDisplayMode('fullpage');
|
76 |
$mpdf->useSubstitutions = true;
|
77 |
-
|
78 |
-
require_once $document->template_filename;
|
79 |
-
$html = ob_get_contents();
|
80 |
-
ob_end_clean();
|
81 |
$mpdf->SetHTMLFooter( $document->footer );
|
82 |
-
$mpdf->WriteHTML( $
|
83 |
$mpdf->Output( $document->filename, $dest );
|
84 |
}
|
85 |
|
66 |
*/
|
67 |
protected function generate( $dest, $document ) {
|
68 |
set_time_limit(0);
|
69 |
+
$mpdf_filename = BEWPI_LIB_DIR . 'mpdf/mpdf.php';
|
70 |
+
include $mpdf_filename;
|
71 |
+
$mpdf = new mPDF('', 'A4', 0, 'opensans', 17, 17, 150, 50, 20, 0, '');
|
72 |
$mpdf->useOnlyCoreFonts = false; // false is default
|
73 |
$mpdf->SetTitle( $this->title );
|
74 |
$mpdf->SetAuthor( $this->author );
|
75 |
$mpdf->showWatermarkText = false;
|
76 |
$mpdf->SetDisplayMode('fullpage');
|
77 |
$mpdf->useSubstitutions = true;
|
78 |
+
$mpdf->SetHTMLHeader( $document->header );
|
|
|
|
|
|
|
79 |
$mpdf->SetHTMLFooter( $document->footer );
|
80 |
+
$mpdf->WriteHTML( $document->css . $document->body );
|
81 |
$mpdf->Output( $document->filename, $dest );
|
82 |
}
|
83 |
|
includes/classes/bewpi-invoice.php
CHANGED
@@ -40,8 +40,26 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
40 |
*/
|
41 |
protected $year;
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
/**
|
44 |
-
*
|
45 |
* @var string
|
46 |
*/
|
47 |
protected $footer;
|
@@ -64,19 +82,22 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
64 |
*/
|
65 |
protected $desc_cell_width;
|
66 |
|
|
|
|
|
|
|
|
|
|
|
67 |
/**
|
68 |
* Initialize invoice with WooCommerce order
|
69 |
* @param string $order
|
70 |
*/
|
71 |
public function __construct( $order_id ) {
|
72 |
parent::__construct();
|
73 |
-
$this->order
|
74 |
-
$this->template_filename = BEWPI_TEMPLATES_DIR . $this->template_options['bewpi_template_filename'];
|
75 |
-
$this->footer = $this->get_footer();
|
76 |
$this->formatted_number = get_post_meta( $this->order->id, '_bewpi_formatted_invoice_number', true );
|
77 |
|
78 |
// Check if the invoice already exists.
|
79 |
-
if( ! empty( $this->formatted_number ) )
|
80 |
$this->init();
|
81 |
}
|
82 |
|
@@ -89,6 +110,7 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
89 |
$this->file = $this->formatted_number . '.pdf';
|
90 |
$this->filename = BEWPI_INVOICES_DIR . (string)$this->year . '/' . $this->file;
|
91 |
$this->date = get_post_meta( $this->order->id, '_bewpi_invoice_date', true );
|
|
|
92 |
}
|
93 |
|
94 |
/**
|
@@ -144,41 +166,6 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
144 |
}
|
145 |
}
|
146 |
|
147 |
-
/**
|
148 |
-
* The footer for the invoice.
|
149 |
-
* @return string
|
150 |
-
*/
|
151 |
-
protected function get_footer() {
|
152 |
-
ob_start(); ?>
|
153 |
-
<table class="foot small-font">
|
154 |
-
<tbody>
|
155 |
-
<tr>
|
156 |
-
<td class="border" colspan="2">
|
157 |
-
<?php echo $this->template_options['bewpi_terms']; ?><br/>
|
158 |
-
<?php
|
159 |
-
if ( $this->template_options['bewpi_show_customer_notes'] && $this->order->post->post_excerpt != "" ) :
|
160 |
-
// Note added by customer.
|
161 |
-
echo '<p><strong>' . __( 'Customer note', $this->textdomain ) . '</strong> ' . $this->order->post->post_excerpt . '</p>';
|
162 |
-
// Notes added administrator on order details page.
|
163 |
-
$customer_order_notes = $this->order->get_customer_order_notes();
|
164 |
-
if ( count( $customer_order_notes ) > 0 ) {
|
165 |
-
echo '<p><strong>' . __('Customer note', $this->textdomain) . '</strong>' . $customer_order_notes[0]->comment_content . '</p>';
|
166 |
-
}
|
167 |
-
endif;
|
168 |
-
?>
|
169 |
-
</td>
|
170 |
-
</tr>
|
171 |
-
<tr>
|
172 |
-
<td class="company-details"><p><?php echo nl2br( $this->template_options['bewpi_company_details'] ); ?></p></td>
|
173 |
-
<td class="payment"><p><?php printf( __( '%sPayment%s via', $this->textdomain ), '<b>', '</b>' ); ?> <?php echo $this->order->payment_method_title; ?></p></td>
|
174 |
-
</tr>
|
175 |
-
</tbody>
|
176 |
-
</table>
|
177 |
-
<?php $html = ob_get_contents();
|
178 |
-
ob_end_clean();
|
179 |
-
return $html;
|
180 |
-
}
|
181 |
-
|
182 |
/**
|
183 |
* Number of table columns that will be displayed
|
184 |
* @return int
|
@@ -203,15 +190,15 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
203 |
$colspan = array();
|
204 |
$number_of_columns = $this->get_number_of_columns();
|
205 |
$number_of_left_half_columns = 3;
|
206 |
-
$this->desc_cell_width = '
|
207 |
|
208 |
// The product table will be split into 2 where on the right 5 columns are the max
|
209 |
if ( $number_of_columns <= 4 ) :
|
210 |
$number_of_left_half_columns = 1;
|
211 |
-
$this->desc_cell_width = '
|
212 |
elseif ( $number_of_columns <= 6 ) :
|
213 |
$number_of_left_half_columns = 2;
|
214 |
-
$this->desc_cell_width = '
|
215 |
endif;
|
216 |
|
217 |
$colspan['left'] = $number_of_left_half_columns;
|
@@ -281,8 +268,13 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
281 |
$this->number_of_columns = $this->get_number_of_columns();
|
282 |
$this->colspan = $this->get_colspan();
|
283 |
$this->formatted_number = $this->get_formatted_number( true );
|
284 |
-
$this->year = date( 'Y' );
|
285 |
$this->filename = BEWPI_INVOICES_DIR . (string)$this->year . '/' . $this->formatted_number . '.pdf';
|
|
|
|
|
|
|
|
|
|
|
286 |
|
287 |
add_post_meta( $this->order->id, '_bewpi_invoice_number', $this->number );
|
288 |
add_post_meta( $this->order->id, '_bewpi_invoice_year', $this->year );
|
@@ -332,8 +324,14 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
332 |
return $allowed;
|
333 |
}
|
334 |
|
|
|
|
|
|
|
|
|
335 |
public function get_total() {
|
336 |
-
|
|
|
|
|
337 |
if ( $this->order->get_total_refunded() > 0 ) :
|
338 |
$total_after_refund = $this->order->get_total() - $this->order->get_total_refunded();
|
339 |
$total = '<del class="total-without-refund">' . strip_tags( $this->order->get_formatted_order_total() ) . '</del> <ins>' . wc_price( $total_after_refund, array( 'currency' => $this->order->get_order_currency() ) ) . '</ins>';
|
@@ -342,5 +340,52 @@ if ( ! class_exists( 'BEWPI_Invoice' ) ) {
|
|
342 |
endif;
|
343 |
return $total;
|
344 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
346 |
}
|
40 |
*/
|
41 |
protected $year;
|
42 |
|
43 |
+
/**
|
44 |
+
* Template header html
|
45 |
+
* @var string
|
46 |
+
*/
|
47 |
+
protected $header;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Template body html
|
51 |
+
* @var string
|
52 |
+
*/
|
53 |
+
protected $body;
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Template CSS
|
57 |
+
* @var string
|
58 |
+
*/
|
59 |
+
protected $css;
|
60 |
+
|
61 |
/**
|
62 |
+
* Template footer html
|
63 |
* @var string
|
64 |
*/
|
65 |
protected $footer;
|
82 |
*/
|
83 |
protected $desc_cell_width;
|
84 |
|
85 |
+
/**
|
86 |
+
* @var string
|
87 |
+
*/
|
88 |
+
protected $template_folder;
|
89 |
+
|
90 |
/**
|
91 |
* Initialize invoice with WooCommerce order
|
92 |
* @param string $order
|
93 |
*/
|
94 |
public function __construct( $order_id ) {
|
95 |
parent::__construct();
|
96 |
+
$this->order = wc_get_order( $order_id );
|
|
|
|
|
97 |
$this->formatted_number = get_post_meta( $this->order->id, '_bewpi_formatted_invoice_number', true );
|
98 |
|
99 |
// Check if the invoice already exists.
|
100 |
+
if( ! empty( $this->formatted_number ) || isset( $_GET['bewpi_action'] ) && $_GET['bewpi_action'] !== 'cancel' )
|
101 |
$this->init();
|
102 |
}
|
103 |
|
110 |
$this->file = $this->formatted_number . '.pdf';
|
111 |
$this->filename = BEWPI_INVOICES_DIR . (string)$this->year . '/' . $this->file;
|
112 |
$this->date = get_post_meta( $this->order->id, '_bewpi_invoice_date', true );
|
113 |
+
$this->template_folder = BEWPI_TEMPLATES_DIR . $this->template_options['bewpi_template_name'];
|
114 |
}
|
115 |
|
116 |
/**
|
166 |
}
|
167 |
}
|
168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
/**
|
170 |
* Number of table columns that will be displayed
|
171 |
* @return int
|
190 |
$colspan = array();
|
191 |
$number_of_columns = $this->get_number_of_columns();
|
192 |
$number_of_left_half_columns = 3;
|
193 |
+
$this->desc_cell_width = '28%';
|
194 |
|
195 |
// The product table will be split into 2 where on the right 5 columns are the max
|
196 |
if ( $number_of_columns <= 4 ) :
|
197 |
$number_of_left_half_columns = 1;
|
198 |
+
$this->desc_cell_width = '48%';
|
199 |
elseif ( $number_of_columns <= 6 ) :
|
200 |
$number_of_left_half_columns = 2;
|
201 |
+
$this->desc_cell_width = '35.50%';
|
202 |
endif;
|
203 |
|
204 |
$colspan['left'] = $number_of_left_half_columns;
|
268 |
$this->number_of_columns = $this->get_number_of_columns();
|
269 |
$this->colspan = $this->get_colspan();
|
270 |
$this->formatted_number = $this->get_formatted_number( true );
|
271 |
+
$this->year = (string) date( 'Y' );
|
272 |
$this->filename = BEWPI_INVOICES_DIR . (string)$this->year . '/' . $this->formatted_number . '.pdf';
|
273 |
+
// Template
|
274 |
+
$this->css = $this->get_css();
|
275 |
+
$this->header = $this->get_header_html();
|
276 |
+
$this->body = $this->get_body_html();
|
277 |
+
$this->footer = $this->get_footer_html();
|
278 |
|
279 |
add_post_meta( $this->order->id, '_bewpi_invoice_number', $this->number );
|
280 |
add_post_meta( $this->order->id, '_bewpi_invoice_year', $this->year );
|
324 |
return $allowed;
|
325 |
}
|
326 |
|
327 |
+
/**
|
328 |
+
* Get the total amount with or without refunds
|
329 |
+
* @return string
|
330 |
+
*/
|
331 |
public function get_total() {
|
332 |
+
global $woocommerce;
|
333 |
+
|
334 |
+
$total = '';
|
335 |
if ( $this->order->get_total_refunded() > 0 ) :
|
336 |
$total_after_refund = $this->order->get_total() - $this->order->get_total_refunded();
|
337 |
$total = '<del class="total-without-refund">' . strip_tags( $this->order->get_formatted_order_total() ) . '</del> <ins>' . wc_price( $total_after_refund, array( 'currency' => $this->order->get_order_currency() ) ) . '</ins>';
|
340 |
endif;
|
341 |
return $total;
|
342 |
}
|
343 |
+
|
344 |
+
/**
|
345 |
+
* Get the header html
|
346 |
+
* @return string
|
347 |
+
*/
|
348 |
+
protected function get_header_html() {
|
349 |
+
$filename = $this->template_folder . '/header.php';
|
350 |
+
ob_start();
|
351 |
+
require_once $filename;
|
352 |
+
$html = ob_get_contents();
|
353 |
+
ob_end_clean();
|
354 |
+
return $html;
|
355 |
+
}
|
356 |
+
|
357 |
+
/**
|
358 |
+
* Get the footer as html
|
359 |
+
* @return string
|
360 |
+
*/
|
361 |
+
protected function get_footer_html() {
|
362 |
+
$filename = $this->template_folder . '/footer.php';
|
363 |
+
ob_start();
|
364 |
+
require_once $filename;
|
365 |
+
$html = ob_get_contents();
|
366 |
+
ob_end_clean();
|
367 |
+
return $html;
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* Get the template CSS
|
372 |
+
* @return string
|
373 |
+
*/
|
374 |
+
protected function get_css() {
|
375 |
+
return '<style>' . file_get_contents( $this->template_folder . '/style.css' ) . '</style>';
|
376 |
+
}
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Get the body with the products table html
|
380 |
+
* @return string
|
381 |
+
*/
|
382 |
+
protected function get_body_html() {
|
383 |
+
$filename = $this->template_folder . '/body.php';
|
384 |
+
ob_start();
|
385 |
+
require_once $filename;
|
386 |
+
$html = ob_get_contents();
|
387 |
+
ob_end_clean();
|
388 |
+
return $html;
|
389 |
+
}
|
390 |
}
|
391 |
}
|
includes/views/templates/{invoice-micro.php → micro/body.php}
RENAMED
@@ -1,217 +1,22 @@
|
|
1 |
-
<
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
border-bottom: 2px solid #A5A5A5;
|
21 |
-
}
|
22 |
-
table.products td{
|
23 |
-
vertical-align: top;
|
24 |
-
}
|
25 |
-
table.products td, table.products th {
|
26 |
-
padding: 5px;
|
27 |
-
}
|
28 |
-
tr.product-row td {
|
29 |
-
border-bottom: 1px solid #CECECE;
|
30 |
-
}
|
31 |
-
td.total, td.grand-total {
|
32 |
-
border-top: 4px solid #8D8D8D;
|
33 |
-
padding-bottom: 0; margin-bottom: 0;
|
34 |
-
}
|
35 |
-
td.grand-total {
|
36 |
-
font-size: 16px !important;
|
37 |
-
}
|
38 |
-
table, tbody, h1 {
|
39 |
-
margin: 0;
|
40 |
-
padding: 0;
|
41 |
-
}
|
42 |
-
h1 {
|
43 |
-
font-size: 36px;
|
44 |
-
}
|
45 |
-
span {
|
46 |
-
display: block;
|
47 |
-
width: 100%;
|
48 |
-
}
|
49 |
-
.align-left { text-align: left; }
|
50 |
-
.align-right { text-align: right; }
|
51 |
-
.company {
|
52 |
-
margin-bottom: 40px;
|
53 |
-
}
|
54 |
-
.company .logo {
|
55 |
-
text-align: left;
|
56 |
-
}
|
57 |
-
.company .info {
|
58 |
-
text-align: left;
|
59 |
-
vertical-align: middle;
|
60 |
-
}
|
61 |
-
.two-column {
|
62 |
-
margin-bottom: 40px;
|
63 |
-
width: 100%;
|
64 |
-
}
|
65 |
-
.two-column td {
|
66 |
-
text-align: left;
|
67 |
-
vertical-align: top;
|
68 |
-
width: 50%;
|
69 |
-
}
|
70 |
-
.invoice-head {
|
71 |
-
margin-bottom: 20px;
|
72 |
-
margin-right: -64px;
|
73 |
-
}
|
74 |
-
.invoice-head td {
|
75 |
-
text-align: left;
|
76 |
-
}
|
77 |
-
.invoice-head .title {
|
78 |
-
color: #525252;
|
79 |
-
}
|
80 |
-
td.invoice-details {
|
81 |
-
vertical-align: top;
|
82 |
-
}
|
83 |
-
.number {
|
84 |
-
font-size: 16px;
|
85 |
-
}
|
86 |
-
.small-font {
|
87 |
-
font-size: 12px;
|
88 |
-
}
|
89 |
-
.total-amount p {
|
90 |
-
margin: 0; padding: 0;
|
91 |
-
}
|
92 |
-
.total-amount {
|
93 |
-
padding: 20px 20px 30px 20px;
|
94 |
-
width: 54%;
|
95 |
-
}
|
96 |
-
.total-amount, .total-amount h1 {
|
97 |
-
color: white;
|
98 |
-
}
|
99 |
-
div.item-attribute {
|
100 |
-
font-size: 12px;
|
101 |
-
margin-top: 10px;
|
102 |
-
}
|
103 |
-
.invoice {
|
104 |
-
margin-bottom: 20px;
|
105 |
-
}
|
106 |
-
.foot {
|
107 |
-
margin: 0 -64px;
|
108 |
-
}
|
109 |
-
.foot td.border {
|
110 |
-
padding: 20px 40px;
|
111 |
-
width: 100%;
|
112 |
-
text-align: center;
|
113 |
-
}
|
114 |
-
td.company-details, td.payment {
|
115 |
-
padding: 20px 40px 40px 40px;
|
116 |
-
text-align: center;
|
117 |
-
vertical-align: top;
|
118 |
-
width: 50%;
|
119 |
-
}
|
120 |
-
.foot td {
|
121 |
-
border: 1px solid white;
|
122 |
-
}
|
123 |
-
.refunded {
|
124 |
-
color: #a00 !important;
|
125 |
-
}
|
126 |
-
.number, .grand-total {
|
127 |
-
color: <?php echo $this->template_options['bewpi_color_theme']; ?>;
|
128 |
-
}
|
129 |
-
.total-without-refund {
|
130 |
-
color: #757575 !important;
|
131 |
-
}
|
132 |
-
.foot td.border {
|
133 |
-
border-bottom: 8px solid <?php echo $this->template_options['bewpi_color_theme']; ?>;
|
134 |
-
}
|
135 |
-
/* End change colors */
|
136 |
-
.space td {
|
137 |
-
padding-bottom: 50px;
|
138 |
-
}
|
139 |
-
<?php
|
140 |
-
// Create css for outlining the product cells.
|
141 |
-
$righter_product_row_tds_css = "";
|
142 |
-
for ( $td = $this->colspan['left'] + 1; $td <= $this->number_of_columns; $td++ ) {
|
143 |
-
if ( $td !== $this->number_of_columns ) {
|
144 |
-
$righter_product_row_tds_css .= "tr.product-row td:nth-child(" . $td . "),";
|
145 |
-
} else {
|
146 |
-
$righter_product_row_tds_css .= "tr.product-row td:nth-child(" . $td . ")";
|
147 |
-
$righter_product_row_tds_css .= "{ width: " . ( 50 / $this->colspan['right'] ) . "%; }";
|
148 |
-
}
|
149 |
-
}
|
150 |
-
echo $righter_product_row_tds_css;
|
151 |
-
?>
|
152 |
-
tr.product-row td:nth-child(1) { /* Description td */
|
153 |
-
width: <?php echo $this->desc_cell_width; ?>;
|
154 |
-
}
|
155 |
-
table.products {
|
156 |
-
table-layout: fixed;
|
157 |
-
}
|
158 |
-
table.products td {
|
159 |
-
overflow: hidden;
|
160 |
-
}
|
161 |
-
</style>
|
162 |
-
</head>
|
163 |
-
<body>
|
164 |
-
<div id="container">
|
165 |
-
<table class="company two-column">
|
166 |
-
<tbody>
|
167 |
-
<tr>
|
168 |
-
<td class="logo">
|
169 |
-
<?php if ( !empty( $this->template_options['bewpi_company_logo'] ) ) { ?>
|
170 |
-
<img class="company-logo" src="<?php echo $this->template_options['bewpi_company_logo']; ?>"/>
|
171 |
-
<?php } else { ?>
|
172 |
-
<h1 class="company-logo"><?php echo $this->template_options['bewpi_company_name']; ?></h1>
|
173 |
-
<?php } ?>
|
174 |
-
</td>
|
175 |
-
<td class="info">
|
176 |
-
<?php echo nl2br( $this->template_options['bewpi_company_address'] ); ?>
|
177 |
-
</td>
|
178 |
-
</tr>
|
179 |
-
</tbody>
|
180 |
-
</table>
|
181 |
-
<table class="two-column customer">
|
182 |
-
<tbody>
|
183 |
-
<tr>
|
184 |
-
<td class="address small-font">
|
185 |
-
<b><?php _e( 'Invoice to', $this->textdomain ); ?></b><br/>
|
186 |
-
<?php echo $this->order->get_formatted_billing_address(); ?>
|
187 |
-
</td>
|
188 |
-
<td class="address small-font">
|
189 |
-
<b><?php _e( 'Ship to', $this->textdomain ); ?></b><br/>
|
190 |
-
<?php echo $this->order->get_formatted_shipping_address(); ?>
|
191 |
-
</td>
|
192 |
-
</tr>
|
193 |
-
</tbody>
|
194 |
-
</table>
|
195 |
-
<table class="invoice-head">
|
196 |
-
<tbody>
|
197 |
-
<tr>
|
198 |
-
<td class="invoice-details">
|
199 |
-
<h1 class="title"><?php _e( 'Invoice', $this->textdomain ); ?></h1>
|
200 |
-
<span class="number"><?php echo $this->get_formatted_number(); ?></span><br/>
|
201 |
-
<span class="small-font"><?php echo $this->get_formatted_invoice_date(); ?></span><br/><br/>
|
202 |
-
<span class="small-font"><?php printf( __( 'Order Number %s', $this->textdomain ), $this->order->get_order_number() ); ?></span><br/>
|
203 |
-
<span class="small-font"><?php printf( __( 'Order Date %s', $this->textdomain ), $this->get_formatted_order_date() ); ?></span><br/>
|
204 |
-
</td>
|
205 |
-
<td class="total-amount" bgcolor="<?php echo $this->template_options['bewpi_color_theme']; ?>">
|
206 |
-
<span>
|
207 |
-
<h1 class="amount"><?php echo wc_price( $this->order->get_total(), array( 'currency' => $this->order->get_order_currency() ) ); ?></h1>
|
208 |
-
<p class="small-font"><?php echo $this->template_options['bewpi_intro_text']; ?></p>
|
209 |
-
</span>
|
210 |
-
</td>
|
211 |
-
</tr>
|
212 |
-
</tbody>
|
213 |
-
</table>
|
214 |
-
<table class="products small-font">
|
215 |
<thead>
|
216 |
<tr class="table-headers">
|
217 |
<th class="align-left"><?php _e( 'Description', $this->textdomain ); ?></th>
|
@@ -228,10 +33,11 @@
|
|
228 |
$order_taxes = $this->order->get_taxes();
|
229 |
if ( $this->template_options['bewpi_show_tax'] && wc_tax_enabled() && empty( $legacy_order ) && ! empty( $order_taxes ) ) :
|
230 |
foreach ( $order_taxes as $tax_id => $tax_item ) :
|
231 |
-
|
|
|
232 |
?>
|
233 |
<th class="align-left">
|
234 |
-
<?php echo
|
235 |
</th>
|
236 |
<?php
|
237 |
endforeach;
|
@@ -395,7 +201,7 @@
|
|
395 |
<tr class="after-products">
|
396 |
<td colspan="<?php echo $this->colspan['left']; ?>"></td>
|
397 |
<td colspan="<?php echo $this->colspan['right_left']; ?>">
|
398 |
-
<?php
|
399 |
</td>
|
400 |
<td colspan="<?php echo $this->colspan['right_right']; ?>" class="align-right"><?php echo $tax->formatted_amount; ?></td>
|
401 |
</tr>
|
@@ -405,7 +211,7 @@
|
|
405 |
<tr class="after-products">
|
406 |
<td colspan="<?php echo $this->colspan['left']; ?>"></td>
|
407 |
<td colspan="<?php echo $this->colspan['right_left']; ?>" class="total"><?php _e( 'Total', $this->textdomain ); ?></td>
|
408 |
-
<td colspan="<?php echo $this->colspan['right_right']; ?>" class="grand-total align-right"><?php echo $this->get_total(); ?></td>
|
409 |
</tr>
|
410 |
<!-- Refunded -->
|
411 |
<?php if ( $this->order->get_total_refunded() > 0 ) { ?>
|
@@ -416,7 +222,4 @@
|
|
416 |
</tr>
|
417 |
<?php } ?>
|
418 |
</tbody>
|
419 |
-
</table>
|
420 |
-
</div>
|
421 |
-
</body>
|
422 |
-
</html>
|
1 |
+
<style>
|
2 |
+
<?php
|
3 |
+
// Create css for outlining the product cells.
|
4 |
+
$righter_product_row_tds_css = "";
|
5 |
+
for ( $td = $this->colspan['left'] + 1; $td <= $this->number_of_columns; $td++ ) {
|
6 |
+
if ( $td !== $this->number_of_columns ) {
|
7 |
+
$righter_product_row_tds_css .= "tr.product-row td:nth-child(" . $td . "),";
|
8 |
+
} else {
|
9 |
+
$righter_product_row_tds_css .= "tr.product-row td:nth-child(" . $td . ")";
|
10 |
+
$righter_product_row_tds_css .= "{ width: " . ( 50 / $this->colspan['right'] ) . "%; }";
|
11 |
+
}
|
12 |
+
}
|
13 |
+
echo $righter_product_row_tds_css;
|
14 |
+
?>
|
15 |
+
tr.product-row td:nth-child(1) {
|
16 |
+
width: <?php echo $this->desc_cell_width; ?>;
|
17 |
+
}
|
18 |
+
</style>
|
19 |
+
<table class="products small-font">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
<thead>
|
21 |
<tr class="table-headers">
|
22 |
<th class="align-left"><?php _e( 'Description', $this->textdomain ); ?></th>
|
33 |
$order_taxes = $this->order->get_taxes();
|
34 |
if ( $this->template_options['bewpi_show_tax'] && wc_tax_enabled() && empty( $legacy_order ) && ! empty( $order_taxes ) ) :
|
35 |
foreach ( $order_taxes as $tax_id => $tax_item ) :
|
36 |
+
$tax_label = __( 'VAT', $this->textdomain );
|
37 |
+
$column_label = ! empty( $tax_item['label'] ) ? $tax_item['label'] : $tax_label;
|
38 |
?>
|
39 |
<th class="align-left">
|
40 |
+
<?php echo $column_label; ?>
|
41 |
</th>
|
42 |
<?php
|
43 |
endforeach;
|
201 |
<tr class="after-products">
|
202 |
<td colspan="<?php echo $this->colspan['left']; ?>"></td>
|
203 |
<td colspan="<?php echo $this->colspan['right_left']; ?>">
|
204 |
+
<?php echo __( 'VAT', $this->textdomain ) . ' ' . WC_Tax::get_rate_percent( $tax->rate_id ); ?>
|
205 |
</td>
|
206 |
<td colspan="<?php echo $this->colspan['right_right']; ?>" class="align-right"><?php echo $tax->formatted_amount; ?></td>
|
207 |
</tr>
|
211 |
<tr class="after-products">
|
212 |
<td colspan="<?php echo $this->colspan['left']; ?>"></td>
|
213 |
<td colspan="<?php echo $this->colspan['right_left']; ?>" class="total"><?php _e( 'Total', $this->textdomain ); ?></td>
|
214 |
+
<td colspan="<?php echo $this->colspan['right_right']; ?>" class="grand-total align-right" style="color: <?php echo $this->template_options['bewpi_color_theme']; ?>;"><?php echo $this->get_total(); ?></td>
|
215 |
</tr>
|
216 |
<!-- Refunded -->
|
217 |
<?php if ( $this->order->get_total_refunded() > 0 ) { ?>
|
222 |
</tr>
|
223 |
<?php } ?>
|
224 |
</tbody>
|
225 |
+
</table>
|
|
|
|
|
|
includes/views/templates/micro/footer.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<table class="foot small-font">
|
2 |
+
<tbody>
|
3 |
+
<tr>
|
4 |
+
<td class="border" colspan="2" style="border-bottom: 8px solid <?php echo $this->template_options['bewpi_color_theme']; ?>;">
|
5 |
+
<?php echo $this->template_options['bewpi_terms']; ?><br/>
|
6 |
+
<?php
|
7 |
+
if ( $this->template_options['bewpi_show_customer_notes'] && $this->order->post->post_excerpt != "" ) :
|
8 |
+
// Note added by customer.
|
9 |
+
echo '<p><strong>' . __( 'Customer note', $this->textdomain ) . '</strong> ' . $this->order->post->post_excerpt . '</p>';
|
10 |
+
// Notes added administrator on order details page.
|
11 |
+
$customer_order_notes = $this->order->get_customer_order_notes();
|
12 |
+
if ( count( $customer_order_notes ) > 0 ) {
|
13 |
+
echo '<p><strong>' . __('Customer note', $this->textdomain) . '</strong>' . $customer_order_notes[0]->comment_content . '</p>';
|
14 |
+
}
|
15 |
+
endif;
|
16 |
+
?>
|
17 |
+
</td>
|
18 |
+
</tr>
|
19 |
+
<tr>
|
20 |
+
<td class="company-details"><p><?php echo nl2br( $this->template_options['bewpi_company_details'] ); ?></p></td>
|
21 |
+
<td class="payment"><p><?php printf( __( '%sPayment%s via', $this->textdomain ), '<b>', '</b>' ); ?> <?php echo $this->order->payment_method_title; ?></p></td>
|
22 |
+
</tr>
|
23 |
+
</tbody>
|
24 |
+
</table>
|
includes/views/templates/micro/header.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<table class="company two-column">
|
2 |
+
<tbody>
|
3 |
+
<tr>
|
4 |
+
<td class="logo">
|
5 |
+
<?php if ( !empty( $this->template_options['bewpi_company_logo'] ) ) { ?>
|
6 |
+
<img class="company-logo" src="<?php echo $this->template_options['bewpi_company_logo']; ?>"/>
|
7 |
+
<?php } else { ?>
|
8 |
+
<h1 class="company-logo"><?php echo $this->template_options['bewpi_company_name']; ?></h1>
|
9 |
+
<?php } ?>
|
10 |
+
</td>
|
11 |
+
<td class="info">
|
12 |
+
<?php echo nl2br( $this->template_options['bewpi_company_address'] ); ?>
|
13 |
+
</td>
|
14 |
+
</tr>
|
15 |
+
</tbody>
|
16 |
+
</table>
|
17 |
+
<table class="two-column customer">
|
18 |
+
<tbody>
|
19 |
+
<tr>
|
20 |
+
<td class="address small-font">
|
21 |
+
<b><?php _e( 'Invoice to', $this->textdomain ); ?></b><br/>
|
22 |
+
<?php echo $this->order->get_formatted_billing_address(); ?>
|
23 |
+
</td>
|
24 |
+
<td class="address small-font">
|
25 |
+
<b><?php _e( 'Ship to', $this->textdomain ); ?></b><br/>
|
26 |
+
<?php echo $this->order->get_formatted_shipping_address(); ?>
|
27 |
+
</td>
|
28 |
+
</tr>
|
29 |
+
</tbody>
|
30 |
+
</table>
|
31 |
+
<table class="invoice-head">
|
32 |
+
<tbody>
|
33 |
+
<tr>
|
34 |
+
<td class="invoice-details">
|
35 |
+
<h1 class="title"><?php _e( 'Invoice', $this->textdomain ); ?></h1>
|
36 |
+
<span class="number" style="color: <?php echo $this->template_options['bewpi_color_theme']; ?>;"><?php echo $this->get_formatted_number(); ?></span><br/>
|
37 |
+
<span class="small-font"><?php echo $this->get_formatted_invoice_date(); ?></span><br/><br/>
|
38 |
+
<span class="small-font"><?php printf( __( 'Order Number %s', $this->textdomain ), $this->order->get_order_number() ); ?></span><br/>
|
39 |
+
<span class="small-font"><?php printf( __( 'Order Date %s', $this->textdomain ), $this->get_formatted_order_date() ); ?></span><br/>
|
40 |
+
</td>
|
41 |
+
<td class="total-amount" bgcolor="<?php echo $this->template_options['bewpi_color_theme']; ?>">
|
42 |
+
<span>
|
43 |
+
<h1 class="amount"><?php echo wc_price( $this->order->get_total(), array( 'currency' => $this->order->get_order_currency() ) ); ?></h1>
|
44 |
+
<p class="small-font"><?php echo $this->template_options['bewpi_intro_text']; ?></p>
|
45 |
+
</span>
|
46 |
+
</td>
|
47 |
+
</tr>
|
48 |
+
</tbody>
|
49 |
+
</table>
|
includes/views/templates/micro/style.css
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
div, table, td, tr, tfoot, tbody, thead, span, h1, h2, h3, h4 {
|
2 |
+
/*border: 1px solid black;*/
|
3 |
+
}
|
4 |
+
h1.company-logo {
|
5 |
+
font-size: 30px;
|
6 |
+
}
|
7 |
+
img.company-logo {
|
8 |
+
max-height: 150px;
|
9 |
+
}
|
10 |
+
.logo {
|
11 |
+
background-image: url( "http://ninja.adsoft-solutions.com/wp-content/uploads/2015/05/logo-invoice.png" );
|
12 |
+
}
|
13 |
+
table {
|
14 |
+
border-collapse: collapse;
|
15 |
+
font-size: 14px;
|
16 |
+
width: 100%;
|
17 |
+
color: #757575;
|
18 |
+
}
|
19 |
+
table.products th {
|
20 |
+
border-bottom: 2px solid #A5A5A5;
|
21 |
+
}
|
22 |
+
table.products td{
|
23 |
+
vertical-align: top;
|
24 |
+
}
|
25 |
+
table.products td, table.products th {
|
26 |
+
padding: 5px;
|
27 |
+
}
|
28 |
+
tr.product-row td {
|
29 |
+
border-bottom: 1px solid #CECECE;
|
30 |
+
}
|
31 |
+
td.total, td.grand-total {
|
32 |
+
border-top: 4px solid #8D8D8D;
|
33 |
+
padding-bottom: 0; margin-bottom: 0;
|
34 |
+
}
|
35 |
+
td.grand-total {
|
36 |
+
font-size: 16px !important;
|
37 |
+
}
|
38 |
+
table, tbody, h1 {
|
39 |
+
margin: 0;
|
40 |
+
padding: 0;
|
41 |
+
}
|
42 |
+
h1 {
|
43 |
+
font-size: 36px;
|
44 |
+
}
|
45 |
+
span {
|
46 |
+
display: block;
|
47 |
+
width: 100%;
|
48 |
+
}
|
49 |
+
.align-left { text-align: left; }
|
50 |
+
.align-right { text-align: right; }
|
51 |
+
.company {
|
52 |
+
margin-bottom: 40px;
|
53 |
+
}
|
54 |
+
.company .logo {
|
55 |
+
text-align: left;
|
56 |
+
}
|
57 |
+
.company .info {
|
58 |
+
text-align: left;
|
59 |
+
vertical-align: middle;
|
60 |
+
}
|
61 |
+
.two-column {
|
62 |
+
margin-bottom: 40px;
|
63 |
+
width: 100%;
|
64 |
+
}
|
65 |
+
.two-column td {
|
66 |
+
text-align: left;
|
67 |
+
vertical-align: top;
|
68 |
+
width: 50%;
|
69 |
+
}
|
70 |
+
.invoice-head {
|
71 |
+
margin-bottom: 20px;
|
72 |
+
margin-right: -64px;
|
73 |
+
}
|
74 |
+
.invoice-head td {
|
75 |
+
text-align: left;
|
76 |
+
}
|
77 |
+
.invoice-head .title {
|
78 |
+
color: #525252;
|
79 |
+
}
|
80 |
+
td.invoice-details {
|
81 |
+
vertical-align: top;
|
82 |
+
}
|
83 |
+
.number {
|
84 |
+
font-size: 16px;
|
85 |
+
}
|
86 |
+
.small-font {
|
87 |
+
font-size: 12px;
|
88 |
+
}
|
89 |
+
.total-amount p {
|
90 |
+
margin: 0; padding: 0;
|
91 |
+
}
|
92 |
+
.total-amount {
|
93 |
+
padding: 20px 20px 30px 20px;
|
94 |
+
width: 54%;
|
95 |
+
}
|
96 |
+
.total-amount, .total-amount h1 {
|
97 |
+
color: white;
|
98 |
+
}
|
99 |
+
div.item-attribute {
|
100 |
+
font-size: 12px;
|
101 |
+
margin-top: 10px;
|
102 |
+
}
|
103 |
+
.invoice {
|
104 |
+
margin-bottom: 20px;
|
105 |
+
}
|
106 |
+
.foot {
|
107 |
+
margin: 0 -64px;
|
108 |
+
}
|
109 |
+
.foot td.border {
|
110 |
+
padding: 20px 40px;
|
111 |
+
width: 100%;
|
112 |
+
text-align: center;
|
113 |
+
}
|
114 |
+
td.company-details, td.payment {
|
115 |
+
padding: 20px 40px 40px 40px;
|
116 |
+
text-align: center;
|
117 |
+
vertical-align: top;
|
118 |
+
width: 50%;
|
119 |
+
}
|
120 |
+
.foot td {
|
121 |
+
border: 1px solid white;
|
122 |
+
}
|
123 |
+
.refunded {
|
124 |
+
color: #a00 !important;
|
125 |
+
}
|
126 |
+
.total-without-refund {
|
127 |
+
color: #757575 !important;
|
128 |
+
}
|
129 |
+
/* End change colors */
|
130 |
+
.space td {
|
131 |
+
padding-bottom: 50px;
|
132 |
+
}
|
133 |
+
table.products {
|
134 |
+
/*table-layout: fixed;*/
|
135 |
+
}
|
136 |
+
table.products td {
|
137 |
+
overflow: hidden;
|
138 |
+
}
|
lang/be-woocommerce-pdf-invoices-nl_NL.mo
CHANGED
Binary file
|
lang/be-woocommerce-pdf-invoices-nl_NL.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: WooCommerce PDF Invoices\n"
|
4 |
-
"POT-Creation-Date: 2015-
|
5 |
-
"PO-Revision-Date: 2015-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: nl_NL\n"
|
@@ -19,65 +19,65 @@ msgstr ""
|
|
19 |
"X-Poedit-SearchPath-0: .\n"
|
20 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
21 |
|
22 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
23 |
msgid "General"
|
24 |
msgstr "Algemeen"
|
25 |
|
26 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
27 |
#: admin/classes/bewpi-template-settings.php:86
|
28 |
msgid "Template"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
32 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
33 |
msgid "Invoices"
|
34 |
msgstr "Facturen"
|
35 |
|
36 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
37 |
msgid "PDF Invoice"
|
38 |
msgstr "PDF Factuur"
|
39 |
|
40 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
41 |
msgid "Invoiced on:"
|
42 |
msgstr "Gefactureerd op:"
|
43 |
|
44 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
45 |
msgid "Invoice number:"
|
46 |
msgstr "Factuurnummer:"
|
47 |
|
48 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
49 |
msgid "View invoice"
|
50 |
msgstr "Toon factuur"
|
51 |
|
52 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
53 |
msgid "View"
|
54 |
msgstr "Bekijk"
|
55 |
|
56 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
57 |
msgid "Cancel invoice"
|
58 |
msgstr "Factuur annuleren"
|
59 |
|
60 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
61 |
msgid "Cancel"
|
62 |
msgstr "Annuleer"
|
63 |
|
64 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
65 |
msgid "Are you sure to delete the invoice?"
|
66 |
msgstr "Weet u zeker dat u de factuur wilt verwijderen?"
|
67 |
|
68 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
69 |
msgid "Create invoice"
|
70 |
msgstr "Maak factuur"
|
71 |
|
72 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
73 |
msgid "Create"
|
74 |
msgstr "Aanmaken"
|
75 |
|
76 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
77 |
msgid "Download invoice (PDF)"
|
78 |
msgstr "Download factuur (PDF)"
|
79 |
|
80 |
-
#: admin/classes/be-woocommerce-pdf-invoices.php:
|
81 |
#, php-format
|
82 |
msgid ""
|
83 |
"Thank you for using <b>WooCommerce PDF Invoices</b> for some time now. "
|
@@ -242,12 +242,12 @@ msgid "Reset on 1st of january"
|
|
242 |
msgstr "Reset op 1 januari"
|
243 |
|
244 |
#: admin/classes/bewpi-template-settings.php:331
|
245 |
-
#: includes/views/templates/
|
246 |
msgid "SKU"
|
247 |
msgstr "Productcode"
|
248 |
|
249 |
#: admin/classes/bewpi-template-settings.php:343
|
250 |
-
#: includes/views/templates/
|
251 |
msgid "Subtotal"
|
252 |
msgstr "Subtotaal"
|
253 |
|
@@ -256,12 +256,12 @@ msgid "Tax"
|
|
256 |
msgstr "BTW"
|
257 |
|
258 |
#: admin/classes/bewpi-template-settings.php:367
|
259 |
-
#: includes/views/templates/
|
260 |
msgid "Discount"
|
261 |
msgstr "Korting"
|
262 |
|
263 |
#: admin/classes/bewpi-template-settings.php:379
|
264 |
-
#: includes/views/templates/
|
265 |
msgid "Shipping"
|
266 |
msgstr "Verzending"
|
267 |
|
@@ -317,63 +317,64 @@ msgstr "Bestand is niet valide en bevat ':' na het eerste teken."
|
|
317 |
msgid "File should be less then 2MB."
|
318 |
msgstr "Bestand moet minder dan 2MB zijn."
|
319 |
|
320 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
321 |
msgid "Customer note"
|
322 |
msgstr "Opmerking klant"
|
323 |
|
324 |
-
#: includes/
|
325 |
#, php-format
|
326 |
msgid "%sPayment%s via"
|
327 |
msgstr "%sBetaling%s via"
|
328 |
|
329 |
-
#: includes/views/templates/
|
330 |
msgid "Invoice to"
|
331 |
msgstr "Facturatie aan"
|
332 |
|
333 |
-
#: includes/views/templates/
|
334 |
msgid "Ship to"
|
335 |
msgstr "Verzend naar"
|
336 |
|
337 |
-
#: includes/views/templates/
|
338 |
msgid "Invoice"
|
339 |
msgstr "Factuur"
|
340 |
|
341 |
-
#: includes/views/templates/
|
342 |
#, php-format
|
343 |
msgid "Order Number %s"
|
344 |
msgstr "Bestelnummer %s"
|
345 |
|
346 |
-
#: includes/views/templates/
|
347 |
#, php-format
|
348 |
msgid "Order Date %s"
|
349 |
msgstr "Besteldatum: %s"
|
350 |
|
351 |
-
#: includes/views/templates/invoice-micro.php:217
|
352 |
-
msgid "Description"
|
353 |
-
msgstr "Beschrijving"
|
354 |
-
|
355 |
-
#: includes/views/templates/invoice-micro.php:223
|
356 |
-
msgid "Cost"
|
357 |
-
msgstr "Kosten"
|
358 |
-
|
359 |
-
#: includes/views/templates/invoice-micro.php:224
|
360 |
-
msgid "Qty"
|
361 |
-
msgstr "Aantal"
|
362 |
-
|
363 |
-
#: includes/views/templates/invoice-micro.php:231
|
364 |
-
#: includes/views/templates/invoice-micro.php:398
|
365 |
-
msgid "VAT"
|
366 |
-
msgstr "BTW"
|
367 |
-
|
368 |
-
#: includes/views/templates/invoice-micro.php:241
|
369 |
-
#: includes/views/templates/invoice-micro.php:407
|
370 |
-
msgid "Total"
|
371 |
-
msgstr "Totaal"
|
372 |
-
|
373 |
-
#: includes/views/templates/invoice-micro.php:414
|
374 |
-
msgid "Refunded"
|
375 |
-
msgstr "Terugbetaald"
|
376 |
-
|
377 |
#~ msgid "VAT %s"
|
378 |
#~ msgstr "BTW %s"
|
379 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: WooCommerce PDF Invoices\n"
|
4 |
+
"POT-Creation-Date: 2015-05-11 20:07+0100\n"
|
5 |
+
"PO-Revision-Date: 2015-05-11 20:08+0100\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: nl_NL\n"
|
19 |
"X-Poedit-SearchPath-0: .\n"
|
20 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
21 |
|
22 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:201
|
23 |
msgid "General"
|
24 |
msgstr "Algemeen"
|
25 |
|
26 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:202
|
27 |
#: admin/classes/bewpi-template-settings.php:86
|
28 |
msgid "Template"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:221
|
32 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:222
|
33 |
msgid "Invoices"
|
34 |
msgstr "Facturen"
|
35 |
|
36 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:327
|
37 |
msgid "PDF Invoice"
|
38 |
msgstr "PDF Factuur"
|
39 |
|
40 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:354
|
41 |
msgid "Invoiced on:"
|
42 |
msgstr "Gefactureerd op:"
|
43 |
|
44 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:358
|
45 |
msgid "Invoice number:"
|
46 |
msgstr "Factuurnummer:"
|
47 |
|
48 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:396
|
49 |
msgid "View invoice"
|
50 |
msgstr "Toon factuur"
|
51 |
|
52 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:396
|
53 |
msgid "View"
|
54 |
msgstr "Bekijk"
|
55 |
|
56 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:397
|
57 |
msgid "Cancel invoice"
|
58 |
msgstr "Factuur annuleren"
|
59 |
|
60 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:397
|
61 |
msgid "Cancel"
|
62 |
msgstr "Annuleer"
|
63 |
|
64 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:397
|
65 |
msgid "Are you sure to delete the invoice?"
|
66 |
msgstr "Weet u zeker dat u de factuur wilt verwijderen?"
|
67 |
|
68 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:399
|
69 |
msgid "Create invoice"
|
70 |
msgstr "Maak factuur"
|
71 |
|
72 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:399
|
73 |
msgid "Create"
|
74 |
msgstr "Aanmaken"
|
75 |
|
76 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:432
|
77 |
msgid "Download invoice (PDF)"
|
78 |
msgstr "Download factuur (PDF)"
|
79 |
|
80 |
+
#: admin/classes/be-woocommerce-pdf-invoices.php:511
|
81 |
#, php-format
|
82 |
msgid ""
|
83 |
"Thank you for using <b>WooCommerce PDF Invoices</b> for some time now. "
|
242 |
msgstr "Reset op 1 januari"
|
243 |
|
244 |
#: admin/classes/bewpi-template-settings.php:331
|
245 |
+
#: includes/views/templates/micro/body.php:25
|
246 |
msgid "SKU"
|
247 |
msgstr "Productcode"
|
248 |
|
249 |
#: admin/classes/bewpi-template-settings.php:343
|
250 |
+
#: includes/views/templates/micro/body.php:194
|
251 |
msgid "Subtotal"
|
252 |
msgstr "Subtotaal"
|
253 |
|
256 |
msgstr "BTW"
|
257 |
|
258 |
#: admin/classes/bewpi-template-settings.php:367
|
259 |
+
#: includes/views/templates/micro/body.php:178
|
260 |
msgid "Discount"
|
261 |
msgstr "Korting"
|
262 |
|
263 |
#: admin/classes/bewpi-template-settings.php:379
|
264 |
+
#: includes/views/templates/micro/body.php:186
|
265 |
msgid "Shipping"
|
266 |
msgstr "Verzending"
|
267 |
|
317 |
msgid "File should be less then 2MB."
|
318 |
msgstr "Bestand moet minder dan 2MB zijn."
|
319 |
|
320 |
+
#: includes/views/templates/micro/body.php:22
|
321 |
+
msgid "Description"
|
322 |
+
msgstr "Beschrijving"
|
323 |
+
|
324 |
+
#: includes/views/templates/micro/body.php:28
|
325 |
+
msgid "Cost"
|
326 |
+
msgstr "Kosten"
|
327 |
+
|
328 |
+
#: includes/views/templates/micro/body.php:29
|
329 |
+
msgid "Qty"
|
330 |
+
msgstr "Aantal"
|
331 |
+
|
332 |
+
#: includes/views/templates/micro/body.php:36
|
333 |
+
#: includes/views/templates/micro/body.php:204
|
334 |
+
msgid "VAT"
|
335 |
+
msgstr "BTW"
|
336 |
+
|
337 |
+
#: includes/views/templates/micro/body.php:47
|
338 |
+
#: includes/views/templates/micro/body.php:213
|
339 |
+
msgid "Total"
|
340 |
+
msgstr "Totaal"
|
341 |
+
|
342 |
+
#: includes/views/templates/micro/body.php:220
|
343 |
+
msgid "Refunded"
|
344 |
+
msgstr "Terugbetaald"
|
345 |
+
|
346 |
+
#: includes/views/templates/micro/footer.php:9
|
347 |
+
#: includes/views/templates/micro/footer.php:13
|
348 |
msgid "Customer note"
|
349 |
msgstr "Opmerking klant"
|
350 |
|
351 |
+
#: includes/views/templates/micro/footer.php:21
|
352 |
#, php-format
|
353 |
msgid "%sPayment%s via"
|
354 |
msgstr "%sBetaling%s via"
|
355 |
|
356 |
+
#: includes/views/templates/micro/header.php:21
|
357 |
msgid "Invoice to"
|
358 |
msgstr "Facturatie aan"
|
359 |
|
360 |
+
#: includes/views/templates/micro/header.php:25
|
361 |
msgid "Ship to"
|
362 |
msgstr "Verzend naar"
|
363 |
|
364 |
+
#: includes/views/templates/micro/header.php:35
|
365 |
msgid "Invoice"
|
366 |
msgstr "Factuur"
|
367 |
|
368 |
+
#: includes/views/templates/micro/header.php:38
|
369 |
#, php-format
|
370 |
msgid "Order Number %s"
|
371 |
msgstr "Bestelnummer %s"
|
372 |
|
373 |
+
#: includes/views/templates/micro/header.php:39
|
374 |
#, php-format
|
375 |
msgid "Order Date %s"
|
376 |
msgstr "Besteldatum: %s"
|
377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
#~ msgid "VAT %s"
|
379 |
#~ msgstr "BTW %s"
|
380 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ 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: 4.2
|
7 |
-
Stable tag: 2.2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -66,6 +66,13 @@ The manual installation method involves downloading our plugin and uploading it
|
|
66 |
|
67 |
== Changelog ==
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
= 2.2.3 - April 28, 2015 =
|
70 |
|
71 |
- Added: Customer notes added via order details page
|
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: 4.2
|
7 |
+
Stable tag: 2.2.4
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
66 |
|
67 |
== Changelog ==
|
68 |
|
69 |
+
= 2.2.4 - May 11, 2015 =
|
70 |
+
|
71 |
+
- Fixed: Admin notice
|
72 |
+
- Fixed: VAT translation
|
73 |
+
- Improved: Invoice header repeating on every page
|
74 |
+
- Improved: Template into separate files
|
75 |
+
|
76 |
= 2.2.3 - April 28, 2015 =
|
77 |
|
78 |
- Added: Customer notes added via order details page
|