Version Description
- 2019-02-06 =
- New format - PDF
- Fixed some vulnerabilities
- Added button "Reset settings"
- Section "Setup fields" works on phone/tablet
- New XLS option to avoid formatting - "Force general format for all cells"
- Fixed bug - fields "Summary Report Total xxxx" stayed at bottom
- Fixed bug - "Summary report" was not sorted by item name
- Fixed bug - fields reset when user switches between flat formats
- Fixed bug - field "full categories" was empty for variations
- Tested for jQuery 3.0+
Download this release
Release Info
Developer | algol.plus |
Plugin | Advanced Order Export For WooCommerce |
Version | 2.1.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.1 to 2.1.0
- assets/css/export.css +15 -0
- assets/js/export.js +25 -14
- assets/js/settings-form.js +100 -41
- classes/FPDF/class-woe-pdf-mc-table.php +433 -0
- classes/FPDF/font/courier.php +10 -0
- classes/FPDF/font/courierb.php +10 -0
- classes/FPDF/font/courierbi.php +10 -0
- classes/FPDF/font/courieri.php +10 -0
- classes/FPDF/font/helvetica.php +21 -0
- classes/FPDF/font/helveticab.php +21 -0
- classes/FPDF/font/helveticabi.php +21 -0
- classes/FPDF/font/helveticai.php +21 -0
- classes/FPDF/font/symbol.php +20 -0
- classes/FPDF/font/times.php +21 -0
- classes/FPDF/font/timesb.php +21 -0
- classes/FPDF/font/timesbi.php +21 -0
- classes/FPDF/font/timesi.php +21 -0
- classes/FPDF/font/zapfdingbats.php +20 -0
- classes/FPDF/fpdf.php +1898 -0
- classes/admin/class-wc-order-export-ajax.php +17 -3
- classes/admin/class-wc-order-export-manage.php +75 -19
- classes/class-wc-order-export-admin.php +122 -28
- classes/core/class-wc-order-export-data-extractor-ui.php +25 -14
- classes/core/class-wc-order-export-data-extractor.php +23 -9
- classes/core/class-wc-order-export-engine.php +4 -2
- classes/formats/abstract-class-woe-formatter-plain-format.php +9 -0
- classes/formats/abstract-class-woe-formatter-sv.php +3 -3
- classes/formats/abstract-class-woe-formatter.php +4 -4
- classes/formats/class-woe-formatter-csv.php +1 -1
- classes/formats/class-woe-formatter-pdf.php +142 -0
- classes/formats/class-woe-formatter-xls.php +24 -23
- classes/formats/trait-woe-plain-format.php +16 -0
- i18n/languages/woo-order-export-lite.pot +913 -779
- readme.txt +13 -1
- view/main.php +1 -0
- view/settings-form.php +177 -5
- view/tab/order-actions.php +1 -1
- view/tab/profiles.php +1 -1
- view/tab/schedules.php +1 -1
- view/tab/tools.php +20 -13
- woo-order-export-lite.php +2 -2
assets/css/export.css
CHANGED
@@ -905,4 +905,19 @@ input.date{
|
|
905 |
position: absolute;
|
906 |
top: 5px;
|
907 |
right: 5px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
908 |
}
|
905 |
position: absolute;
|
906 |
top: 5px;
|
907 |
right: 5px;
|
908 |
+
}
|
909 |
+
|
910 |
+
.pdf_two_col_block {
|
911 |
+
display: inline-block;
|
912 |
+
width: 48%;
|
913 |
+
vertical-align: top;
|
914 |
+
}
|
915 |
+
|
916 |
+
.pdf_two_col_block input[type=number]{
|
917 |
+
width: 40%;
|
918 |
+
}
|
919 |
+
|
920 |
+
#unselected_fields_list {
|
921 |
+
overflow-y: scroll;
|
922 |
+
height: 700px;
|
923 |
}
|
assets/js/export.js
CHANGED
@@ -50,7 +50,8 @@ function bind_events() {
|
|
50 |
var data = {
|
51 |
'cf_name': jQuery( this ).val(),
|
52 |
method: "get_order_custom_fields_values",
|
53 |
-
action: "order_exporter"
|
|
|
54 |
};
|
55 |
var val_op = jQuery( '#custom_fields_compare' ).val();
|
56 |
jQuery( '#text_custom_fields' ).val( '' );
|
@@ -141,7 +142,8 @@ function bind_events() {
|
|
141 |
var data = {
|
142 |
'attr': jQuery( this ).val(),
|
143 |
method: "get_products_attributes_values",
|
144 |
-
action: "order_exporter"
|
|
|
145 |
};
|
146 |
|
147 |
var val_op = jQuery( '#attributes_compare' ).val();
|
@@ -221,7 +223,8 @@ function bind_events() {
|
|
221 |
var data = {
|
222 |
'item': window.atob(selected64),
|
223 |
method: "get_products_itemmeta_values",
|
224 |
-
action: "order_exporter"
|
|
|
225 |
};
|
226 |
|
227 |
var val_op = jQuery( '#itemmeta_compare' ).val();
|
@@ -300,7 +303,8 @@ function bind_events() {
|
|
300 |
var data = {
|
301 |
'tax': jQuery( this ).val(),
|
302 |
method: "get_products_taxonomies_values",
|
303 |
-
action: "order_exporter"
|
|
|
304 |
};
|
305 |
|
306 |
jQuery.post( ajaxurl, data, function( response ) {
|
@@ -373,7 +377,8 @@ function bind_events() {
|
|
373 |
var data = {
|
374 |
'cf_name': jQuery( this ).val(),
|
375 |
method: "get_product_custom_fields_values",
|
376 |
-
action: "order_exporter"
|
|
|
377 |
};
|
378 |
|
379 |
var val_op = jQuery( '#product_custom_fields_compare' ).val();
|
@@ -500,7 +505,7 @@ function bind_events() {
|
|
500 |
}
|
501 |
else {
|
502 |
var json = makeJsonVar(jQuery( '#export_job_settings' ));
|
503 |
-
var data = "json="+ json +"&action=order_exporter&method=get_used_custom_order_meta";
|
504 |
|
505 |
jQuery.post( ajaxurl, data, function( response ) {
|
506 |
if ( response ) {
|
@@ -535,8 +540,8 @@ function bind_events() {
|
|
535 |
else {
|
536 |
// jQuery('#modal-manage-products').html(jQuery('#TB_ajaxContent').html());
|
537 |
var data = jQuery( '#export_job_settings' ).serialize(),
|
538 |
-
data_products = data + "&action=order_exporter&method=get_used_custom_products_meta&mode=" + mode + "&id=" + job_id
|
539 |
-
data_order_items = data + "&action=order_exporter&method=get_used_custom_order_items_meta&mode=" + mode + "&id=" + job_id;
|
540 |
|
541 |
jQuery.post( ajaxurl, data_products, function( response ) {
|
542 |
if ( response ) {
|
@@ -575,7 +580,7 @@ function bind_events() {
|
|
575 |
}
|
576 |
else {
|
577 |
var data = jQuery( '#export_job_settings' ).serialize()
|
578 |
-
data = data + "&action=order_exporter&method=get_used_custom_coupons_meta";
|
579 |
|
580 |
jQuery.post( ajaxurl, data, function( response ) {
|
581 |
if ( response ) {
|
@@ -628,7 +633,8 @@ function bind_events() {
|
|
628 |
var data = {
|
629 |
'item': jQuery( this ).val(),
|
630 |
method: "get_order_shipping_values",
|
631 |
-
action: "order_exporter"
|
|
|
632 |
};
|
633 |
|
634 |
jQuery.post( ajaxurl, data, function( response ) {
|
@@ -687,7 +693,8 @@ function bind_events() {
|
|
687 |
var data = {
|
688 |
'item': jQuery( this ).val(),
|
689 |
method: "get_order_billing_values",
|
690 |
-
action: "order_exporter"
|
|
|
691 |
};
|
692 |
|
693 |
jQuery.post( ajaxurl, data, function( response ) {
|
@@ -747,7 +754,8 @@ function bind_events() {
|
|
747 |
var data = {
|
748 |
'item_type': jQuery( this ).val(),
|
749 |
method: "get_order_item_names",
|
750 |
-
action: "order_exporter"
|
|
|
751 |
};
|
752 |
|
753 |
jQuery.post( ajaxurl, data, function( response ) {
|
@@ -806,7 +814,8 @@ function bind_events() {
|
|
806 |
var data = {
|
807 |
'meta_key': jQuery( this ).val(),
|
808 |
method: "get_order_item_meta_key_values",
|
809 |
-
action: "order_exporter"
|
|
|
810 |
};
|
811 |
|
812 |
jQuery.post( ajaxurl, data, function( response ) {
|
@@ -868,7 +877,8 @@ function bind_events_users() {
|
|
868 |
var data = {
|
869 |
'cf_name': jQuery( this ).val(),
|
870 |
method: "get_user_custom_fields_values",
|
871 |
-
action: "order_exporter"
|
|
|
872 |
};
|
873 |
var val_op = jQuery( '#select_user_custom_fields' ).val();
|
874 |
jQuery( '#text_user_custom_fields' ).val( '' );
|
@@ -1538,6 +1548,7 @@ jQuery( document ).ready( function ($) {
|
|
1538 |
'method': 'reorder_jobs',
|
1539 |
'new_jobs_order': $( "#the-list" ).sortable( "toArray", {attribute: 'data-job_id'} ),
|
1540 |
'tab_name': $tab_name,
|
|
|
1541 |
},
|
1542 |
error: function ( response ) {},
|
1543 |
dataType: 'json',
|
50 |
var data = {
|
51 |
'cf_name': jQuery( this ).val(),
|
52 |
method: "get_order_custom_fields_values",
|
53 |
+
action: "order_exporter",
|
54 |
+
woe_nonce: woe_nonce,
|
55 |
};
|
56 |
var val_op = jQuery( '#custom_fields_compare' ).val();
|
57 |
jQuery( '#text_custom_fields' ).val( '' );
|
142 |
var data = {
|
143 |
'attr': jQuery( this ).val(),
|
144 |
method: "get_products_attributes_values",
|
145 |
+
action: "order_exporter",
|
146 |
+
woe_nonce: woe_nonce,
|
147 |
};
|
148 |
|
149 |
var val_op = jQuery( '#attributes_compare' ).val();
|
223 |
var data = {
|
224 |
'item': window.atob(selected64),
|
225 |
method: "get_products_itemmeta_values",
|
226 |
+
action: "order_exporter",
|
227 |
+
woe_nonce: woe_nonce,
|
228 |
};
|
229 |
|
230 |
var val_op = jQuery( '#itemmeta_compare' ).val();
|
303 |
var data = {
|
304 |
'tax': jQuery( this ).val(),
|
305 |
method: "get_products_taxonomies_values",
|
306 |
+
action: "order_exporter",
|
307 |
+
woe_nonce: woe_nonce,
|
308 |
};
|
309 |
|
310 |
jQuery.post( ajaxurl, data, function( response ) {
|
377 |
var data = {
|
378 |
'cf_name': jQuery( this ).val(),
|
379 |
method: "get_product_custom_fields_values",
|
380 |
+
action: "order_exporter",
|
381 |
+
woe_nonce: woe_nonce,
|
382 |
};
|
383 |
|
384 |
var val_op = jQuery( '#product_custom_fields_compare' ).val();
|
505 |
}
|
506 |
else {
|
507 |
var json = makeJsonVar(jQuery( '#export_job_settings' ));
|
508 |
+
var data = "json="+ json +"&action=order_exporter&method=get_used_custom_order_meta&woe_nonce=" + woe_nonce;
|
509 |
|
510 |
jQuery.post( ajaxurl, data, function( response ) {
|
511 |
if ( response ) {
|
540 |
else {
|
541 |
// jQuery('#modal-manage-products').html(jQuery('#TB_ajaxContent').html());
|
542 |
var data = jQuery( '#export_job_settings' ).serialize(),
|
543 |
+
data_products = data + "&action=order_exporter&method=get_used_custom_products_meta&mode=" + mode + "&id=" + job_id + '&woe_nonce=' + woe_nonce;
|
544 |
+
data_order_items = data + "&action=order_exporter&method=get_used_custom_order_items_meta&mode=" + mode + "&id=" + job_id + '&woe_nonce='+ woe_nonce;
|
545 |
|
546 |
jQuery.post( ajaxurl, data_products, function( response ) {
|
547 |
if ( response ) {
|
580 |
}
|
581 |
else {
|
582 |
var data = jQuery( '#export_job_settings' ).serialize()
|
583 |
+
data = data + "&action=order_exporter&method=get_used_custom_coupons_meta&woe_nonce=" + woe_nonce;
|
584 |
|
585 |
jQuery.post( ajaxurl, data, function( response ) {
|
586 |
if ( response ) {
|
633 |
var data = {
|
634 |
'item': jQuery( this ).val(),
|
635 |
method: "get_order_shipping_values",
|
636 |
+
action: "order_exporter",
|
637 |
+
woe_nonce: woe_nonce,
|
638 |
};
|
639 |
|
640 |
jQuery.post( ajaxurl, data, function( response ) {
|
693 |
var data = {
|
694 |
'item': jQuery( this ).val(),
|
695 |
method: "get_order_billing_values",
|
696 |
+
action: "order_exporter",
|
697 |
+
woe_nonce: woe_nonce,
|
698 |
};
|
699 |
|
700 |
jQuery.post( ajaxurl, data, function( response ) {
|
754 |
var data = {
|
755 |
'item_type': jQuery( this ).val(),
|
756 |
method: "get_order_item_names",
|
757 |
+
action: "order_exporter",
|
758 |
+
woe_nonce: woe_nonce,
|
759 |
};
|
760 |
|
761 |
jQuery.post( ajaxurl, data, function( response ) {
|
814 |
var data = {
|
815 |
'meta_key': jQuery( this ).val(),
|
816 |
method: "get_order_item_meta_key_values",
|
817 |
+
action: "order_exporter",
|
818 |
+
woe_nonce: woe_nonce,
|
819 |
};
|
820 |
|
821 |
jQuery.post( ajaxurl, data, function( response ) {
|
877 |
var data = {
|
878 |
'cf_name': jQuery( this ).val(),
|
879 |
method: "get_user_custom_fields_values",
|
880 |
+
action: "order_exporter",
|
881 |
+
woe_nonce: woe_nonce,
|
882 |
};
|
883 |
var val_op = jQuery( '#select_user_custom_fields' ).val();
|
884 |
jQuery( '#text_user_custom_fields' ).val( '' );
|
1548 |
'method': 'reorder_jobs',
|
1549 |
'new_jobs_order': $( "#the-list" ).sortable( "toArray", {attribute: 'data-job_id'} ),
|
1550 |
'tab_name': $tab_name,
|
1551 |
+
woe_nonce: woe_nonce,
|
1552 |
},
|
1553 |
error: function ( response ) {},
|
1554 |
dataType: 'json',
|
assets/js/settings-form.js
CHANGED
@@ -268,7 +268,7 @@ jQuery( document ).ready( function( $ ) {
|
|
268 |
$( '.wc_oe_test' ).click( function() {
|
269 |
var test = $( this ).attr( 'data-test' );
|
270 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
271 |
-
data = data + "&action=order_exporter&method=test_destination&mode=" + mode + "&id=" + job_id + "&destination=" + test;
|
272 |
$( '#test_reply_div' ).hide();
|
273 |
$.post( ajaxurl, data, function( data ) {
|
274 |
$( '#test_reply' ).val( data );
|
@@ -292,16 +292,17 @@ jQuery( document ).ready( function( $ ) {
|
|
292 |
} );
|
293 |
|
294 |
setTimeout( function () {
|
295 |
-
if (
|
|
|
|
|
296 |
$('.segment_choice[href="'+ window.location.hash +'"]').click()
|
297 |
} else {
|
298 |
-
$('.segment_choice').first().
|
299 |
-
$('.settings-segment').first().addClass('active');
|
300 |
}
|
301 |
}, 1000 );
|
302 |
|
303 |
|
304 |
-
|
305 |
|
306 |
$( '#show-email-body' ).click( function () {
|
307 |
text_area.toggle();
|
@@ -614,7 +615,7 @@ function to_xml_tags( str ) {
|
|
614 |
|
615 |
|
616 |
function change_filename_ext() {
|
617 |
-
if ( jQuery( '#export_filename' ).
|
618 |
var filename = jQuery( '#export_filename input' ).val();
|
619 |
var ext = output_format.toLowerCase();
|
620 |
if( ext=='xls' && !jQuery( '#format_xls_use_xls_format' ).prop('checked') ) //fix for XLSX
|
@@ -727,10 +728,11 @@ jQuery( document ).ready( function( $ ) {
|
|
727 |
jQuery( this ).next().addClass( 'ui-icon-triangle-1-n' );
|
728 |
jQuery( '#' + output_format + '_options' ).hide();
|
729 |
jQuery( '#' + new_format + '_options' ).show();
|
|
|
730 |
old_output_format = output_format;
|
731 |
output_format = new_format;
|
732 |
-
|
733 |
-
|
734 |
jQuery( '.field_section' ).prop('checked', true);
|
735 |
jQuery( '#output_preview, #output_preview_csv' ).hide();
|
736 |
// jQuery( '#fields' ).hide();
|
@@ -778,7 +780,7 @@ jQuery( document ).ready( function( $ ) {
|
|
778 |
} );
|
779 |
|
780 |
$( '#order_fields input[type=checkbox]' ).change( function() {
|
781 |
-
if ( $( '#order_fields input[type=checkbox]:not(:checked)' ).
|
782 |
$( 'input[name=orders_all]' ).attr( 'checked', false );
|
783 |
}
|
784 |
else {
|
@@ -795,7 +797,7 @@ jQuery( document ).ready( function( $ ) {
|
|
795 |
}
|
796 |
} );
|
797 |
|
798 |
-
if ( $( '#order_fields input[type=checkbox]' ).
|
799 |
$( '#order_fields input[type=checkbox]:first' ).change();
|
800 |
}
|
801 |
|
@@ -818,7 +820,7 @@ jQuery( document ).ready( function( $ ) {
|
|
818 |
function preview(size) {
|
819 |
jQuery( '#output_preview, #output_preview_csv' ).hide();
|
820 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) );
|
821 |
-
var estimate_data = data + "&action=order_exporter&method=estimate&mode=" + mode + "&id=" + job_id;
|
822 |
$.post( ajaxurl, estimate_data, function( response ) {
|
823 |
if (!response || typeof response.total == 'undefined') {
|
824 |
woe_show_error_message(response);
|
@@ -845,7 +847,7 @@ jQuery( document ).ready( function( $ ) {
|
|
845 |
window.scrollTo( 0, document.body.scrollHeight );
|
846 |
}
|
847 |
|
848 |
-
data = data + "&action=order_exporter&method=preview&limit="+size+"&mode=" + mode + "&id=" + job_id;
|
849 |
$.post( ajaxurl, data, showPreview, "html" ).fail( function( xhr, textStatus, errorThrown ) {
|
850 |
showPreview( xhr.responseText );
|
851 |
});
|
@@ -892,6 +894,7 @@ jQuery( document ).ready( function( $ ) {
|
|
892 |
data.push( { name: 'method', value: method } );
|
893 |
data.push( { name: 'start', value: start } );
|
894 |
data.push( { name: 'file_id', value: window.file_id } );
|
|
|
895 |
|
896 |
jQuery.ajax( {
|
897 |
type: "post",
|
@@ -918,6 +921,7 @@ jQuery( document ).ready( function( $ ) {
|
|
918 |
data = get_data();
|
919 |
data.push( { name: 'method', value: 'export_finish' } );
|
920 |
data.push( { name: 'file_id', value: window.file_id } );
|
|
|
921 |
jQuery.ajax( {
|
922 |
type: "post",
|
923 |
data: data,
|
@@ -994,7 +998,7 @@ jQuery( document ).ready( function( $ ) {
|
|
994 |
verify_checkboxes = verify_checkboxes || 0;
|
995 |
var f = false;
|
996 |
$( '#'+object_id+' ul' ).each( function( index ) {
|
997 |
-
if ( $( this ).find( 'li:not(:first)' ).
|
998 |
f = true;
|
999 |
}
|
1000 |
} );
|
@@ -1020,7 +1024,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1020 |
return false;
|
1021 |
}
|
1022 |
}
|
1023 |
-
if ( $( '#order_fields > li' ).
|
1024 |
{
|
1025 |
alert( export_messages.no_fields );
|
1026 |
return false;
|
@@ -1042,7 +1046,10 @@ jQuery( document ).ready( function( $ ) {
|
|
1042 |
data = get_data();
|
1043 |
|
1044 |
data.push( { name: 'method', value: 'export_start' } );
|
1045 |
-
|
|
|
|
|
|
|
1046 |
var d1 = new Date( $( "#from_date" ).val() );
|
1047 |
var d2 = new Date( $( "#to_date" ).val() );
|
1048 |
if ( d1.getTime() > d2.getTime() ) {
|
@@ -1051,14 +1058,13 @@ jQuery( document ).ready( function( $ ) {
|
|
1051 |
}
|
1052 |
}
|
1053 |
|
1054 |
-
if ( $( '#order_fields > li' ).
|
1055 |
{
|
1056 |
alert( export_messages.no_fields );
|
1057 |
return false;
|
1058 |
}
|
1059 |
|
1060 |
-
|
1061 |
-
jQuery.ajax( {
|
1062 |
type: "post",
|
1063 |
data: data,
|
1064 |
cache: false,
|
@@ -1093,7 +1099,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1093 |
}
|
1094 |
setFormSubmitting();
|
1095 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1096 |
-
data = data + "&action=order_exporter&method=save_settings&mode=" + mode + "&id=" + job_id;
|
1097 |
$.post( ajaxurl, data, function( response ) {
|
1098 |
document.location = settings_form.save_settings_url;
|
1099 |
}, "json" );
|
@@ -1105,7 +1111,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1105 |
}
|
1106 |
setFormSubmitting();
|
1107 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1108 |
-
data = data + "&action=order_exporter&method=save_settings&mode=" + mode + "&id=" + job_id;
|
1109 |
$('#Settings_updated').hide();
|
1110 |
$.post( ajaxurl, data, function( response ) {
|
1111 |
$('#Settings_updated').show().delay(5000).fadeOut();
|
@@ -1118,13 +1124,26 @@ jQuery( document ).ready( function( $ ) {
|
|
1118 |
}
|
1119 |
|
1120 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1121 |
-
data = data + "&action=order_exporter&method=save_settings&mode=" + settings_form.EXPORT_PROFILE + "&id=";
|
1122 |
$.post( ajaxurl, data, function( response ) {
|
1123 |
document.location =settings_form.copy_to_profiles_url + '&profile_id=' + response.id;
|
1124 |
}, "json" );
|
1125 |
return false;
|
1126 |
} );
|
1127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1128 |
openFilter('my-order', 1);
|
1129 |
|
1130 |
openFilter('my-products');
|
@@ -1151,7 +1170,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1151 |
jQuery('#summary_setup_fields').hide();
|
1152 |
|
1153 |
//logic for setup link
|
1154 |
-
jQuery( "#summary_report_by_products_checkbox" ).change( function() {
|
1155 |
var summary_report_fields = [];
|
1156 |
summary_report_fields.push($('#products_unselected_segment input[value="plain_products_summary_report_total_qty"]').parents('li'));
|
1157 |
summary_report_fields.push($('#products_unselected_segment input[value="plain_products_summary_report_total_amount"]').parents('li'));
|
@@ -1172,22 +1191,24 @@ jQuery( document ).ready( function( $ ) {
|
|
1172 |
}
|
1173 |
} );
|
1174 |
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
|
|
|
|
1191 |
|
1192 |
} else {
|
1193 |
var segment = window.location.hash.replace('#segment=', '');
|
@@ -1198,7 +1219,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1198 |
if ( typeof $value === 'undefined' ) {
|
1199 |
return;
|
1200 |
}
|
1201 |
-
|
1202 |
if ( $value.match( /plain_products_(line|qty).*/ ) ) {
|
1203 |
$( this ).closest( '.mapping_row' ).show();
|
1204 |
}
|
@@ -1219,7 +1240,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1219 |
});
|
1220 |
|
1221 |
setTimeout(function () {
|
1222 |
-
jQuery( "#summary_report_by_products_checkbox" ).trigger('change');
|
1223 |
}, 1)
|
1224 |
|
1225 |
// this line must be last , we don't have any errors
|
@@ -1277,6 +1298,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1277 |
return false;
|
1278 |
});
|
1279 |
|
|
|
1280 |
|
1281 |
} );
|
1282 |
|
@@ -1667,4 +1689,41 @@ function woe_show_error_message(text) {
|
|
1667 |
if (!text)
|
1668 |
text = "Please, open section 'Misc Settings' and \n mark checkbox 'Enable debug output' \n to see exact error message";
|
1669 |
alert(text);
|
1670 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
$( '.wc_oe_test' ).click( function() {
|
269 |
var test = $( this ).attr( 'data-test' );
|
270 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
271 |
+
data = data + "&action=order_exporter&method=test_destination&mode=" + mode + "&id=" + job_id + "&destination=" + test + '&woe_nonce=' + woe_nonce;
|
272 |
$( '#test_reply_div' ).hide();
|
273 |
$.post( ajaxurl, data, function( data ) {
|
274 |
$( '#test_reply' ).val( data );
|
292 |
} );
|
293 |
|
294 |
setTimeout( function () {
|
295 |
+
if (summary_mode) {
|
296 |
+
$('.segment_choice[href="products"]').click()
|
297 |
+
} else if (window.location.hash.indexOf('segment') !== -1) {
|
298 |
$('.segment_choice[href="'+ window.location.hash +'"]').click()
|
299 |
} else {
|
300 |
+
$('.segment_choice').first().click();
|
|
|
301 |
}
|
302 |
}, 1000 );
|
303 |
|
304 |
|
305 |
+
var text_area = $( '#destination-email-body' );
|
306 |
|
307 |
$( '#show-email-body' ).click( function () {
|
308 |
text_area.toggle();
|
615 |
|
616 |
|
617 |
function change_filename_ext() {
|
618 |
+
if ( jQuery( '#export_filename' ).length ) {
|
619 |
var filename = jQuery( '#export_filename input' ).val();
|
620 |
var ext = output_format.toLowerCase();
|
621 |
if( ext=='xls' && !jQuery( '#format_xls_use_xls_format' ).prop('checked') ) //fix for XLSX
|
728 |
jQuery( this ).next().addClass( 'ui-icon-triangle-1-n' );
|
729 |
jQuery( '#' + output_format + '_options' ).hide();
|
730 |
jQuery( '#' + new_format + '_options' ).show();
|
731 |
+
var format_type_changed = ! (is_flat_format(new_format) && is_flat_format(output_format));
|
732 |
old_output_format = output_format;
|
733 |
output_format = new_format;
|
734 |
+
synch_selected_fields( old_output_format, output_format );
|
735 |
+
create_selected_fields( old_output_format, output_format, format_type_changed );
|
736 |
jQuery( '.field_section' ).prop('checked', true);
|
737 |
jQuery( '#output_preview, #output_preview_csv' ).hide();
|
738 |
// jQuery( '#fields' ).hide();
|
780 |
} );
|
781 |
|
782 |
$( '#order_fields input[type=checkbox]' ).change( function() {
|
783 |
+
if ( $( '#order_fields input[type=checkbox]:not(:checked)' ).length ) {
|
784 |
$( 'input[name=orders_all]' ).attr( 'checked', false );
|
785 |
}
|
786 |
else {
|
797 |
}
|
798 |
} );
|
799 |
|
800 |
+
if ( $( '#order_fields input[type=checkbox]' ).length ) {
|
801 |
$( '#order_fields input[type=checkbox]:first' ).change();
|
802 |
}
|
803 |
|
820 |
function preview(size) {
|
821 |
jQuery( '#output_preview, #output_preview_csv' ).hide();
|
822 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) );
|
823 |
+
var estimate_data = data + "&action=order_exporter&method=estimate&mode=" + mode + "&id=" + job_id + '&woe_nonce=' + woe_nonce;
|
824 |
$.post( ajaxurl, estimate_data, function( response ) {
|
825 |
if (!response || typeof response.total == 'undefined') {
|
826 |
woe_show_error_message(response);
|
847 |
window.scrollTo( 0, document.body.scrollHeight );
|
848 |
}
|
849 |
|
850 |
+
data = data + "&action=order_exporter&method=preview&limit="+size+"&mode=" + mode + "&id=" + job_id + '&woe_nonce=' + woe_nonce;
|
851 |
$.post( ajaxurl, data, showPreview, "html" ).fail( function( xhr, textStatus, errorThrown ) {
|
852 |
showPreview( xhr.responseText );
|
853 |
});
|
894 |
data.push( { name: 'method', value: method } );
|
895 |
data.push( { name: 'start', value: start } );
|
896 |
data.push( { name: 'file_id', value: window.file_id } );
|
897 |
+
data.push( { name: 'woe_nonce', value: woe_nonce } );
|
898 |
|
899 |
jQuery.ajax( {
|
900 |
type: "post",
|
921 |
data = get_data();
|
922 |
data.push( { name: 'method', value: 'export_finish' } );
|
923 |
data.push( { name: 'file_id', value: window.file_id } );
|
924 |
+
data.push( { name: 'woe_nonce', value: woe_nonce } );
|
925 |
jQuery.ajax( {
|
926 |
type: "post",
|
927 |
data: data,
|
998 |
verify_checkboxes = verify_checkboxes || 0;
|
999 |
var f = false;
|
1000 |
$( '#'+object_id+' ul' ).each( function( index ) {
|
1001 |
+
if ( $( this ).find( 'li:not(:first)' ).length ) {
|
1002 |
f = true;
|
1003 |
}
|
1004 |
} );
|
1024 |
return false;
|
1025 |
}
|
1026 |
}
|
1027 |
+
if ( $( '#order_fields > li' ).length == 0 )
|
1028 |
{
|
1029 |
alert( export_messages.no_fields );
|
1030 |
return false;
|
1046 |
data = get_data();
|
1047 |
|
1048 |
data.push( { name: 'method', value: 'export_start' } );
|
1049 |
+
|
1050 |
+
data.push( { name: 'woe_nonce', value: woe_nonce } );
|
1051 |
+
|
1052 |
+
if ( ( $( "#from_date" ).val() ) && ( $( "#to_date" ).val() ) ) {
|
1053 |
var d1 = new Date( $( "#from_date" ).val() );
|
1054 |
var d2 = new Date( $( "#to_date" ).val() );
|
1055 |
if ( d1.getTime() > d2.getTime() ) {
|
1058 |
}
|
1059 |
}
|
1060 |
|
1061 |
+
if ( $( '#order_fields > li' ).length == 0 )
|
1062 |
{
|
1063 |
alert( export_messages.no_fields );
|
1064 |
return false;
|
1065 |
}
|
1066 |
|
1067 |
+
jQuery.ajax( {
|
|
|
1068 |
type: "post",
|
1069 |
data: data,
|
1070 |
cache: false,
|
1099 |
}
|
1100 |
setFormSubmitting();
|
1101 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1102 |
+
data = data + "&action=order_exporter&method=save_settings&mode=" + mode + "&id=" + job_id + '&woe_nonce=' + woe_nonce;
|
1103 |
$.post( ajaxurl, data, function( response ) {
|
1104 |
document.location = settings_form.save_settings_url;
|
1105 |
}, "json" );
|
1111 |
}
|
1112 |
setFormSubmitting();
|
1113 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1114 |
+
data = data + "&action=order_exporter&method=save_settings&mode=" + mode + "&id=" + job_id + '&woe_nonce=' + woe_nonce;
|
1115 |
$('#Settings_updated').hide();
|
1116 |
$.post( ajaxurl, data, function( response ) {
|
1117 |
$('#Settings_updated').show().delay(5000).fadeOut();
|
1124 |
}
|
1125 |
|
1126 |
var data = 'json=' + makeJsonVar( $( '#export_job_settings' ) )
|
1127 |
+
data = data + "&action=order_exporter&method=save_settings&mode=" + settings_form.EXPORT_PROFILE + "&id=" + '&woe_nonce=' + woe_nonce;
|
1128 |
$.post( ajaxurl, data, function( response ) {
|
1129 |
document.location =settings_form.copy_to_profiles_url + '&profile_id=' + response.id;
|
1130 |
}, "json" );
|
1131 |
return false;
|
1132 |
} );
|
1133 |
|
1134 |
+
$( "#reset-profile" ).click( function () {
|
1135 |
+
if ( confirm( localize_settings_form.reset_profile_confirm ) ) {
|
1136 |
+
var data = "action=order_exporter&method=reset_profile&mode=" + mode + "&id=" + '&woe_nonce=' + woe_nonce;
|
1137 |
+
$.post( ajaxurl, data, function ( response ) {
|
1138 |
+
if (response.success) {
|
1139 |
+
document.location.reload();
|
1140 |
+
}
|
1141 |
+
}, "json" );
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
return false;
|
1145 |
+
} );
|
1146 |
+
|
1147 |
openFilter('my-order', 1);
|
1148 |
|
1149 |
openFilter('my-products');
|
1170 |
jQuery('#summary_setup_fields').hide();
|
1171 |
|
1172 |
//logic for setup link
|
1173 |
+
jQuery( "#summary_report_by_products_checkbox" ).change( function(e, action) {
|
1174 |
var summary_report_fields = [];
|
1175 |
summary_report_fields.push($('#products_unselected_segment input[value="plain_products_summary_report_total_qty"]').parents('li'));
|
1176 |
summary_report_fields.push($('#products_unselected_segment input[value="plain_products_summary_report_total_amount"]').parents('li'));
|
1191 |
}
|
1192 |
} );
|
1193 |
|
1194 |
+
if ( 'onstart' !== action ) {
|
1195 |
+
// purge summary report fields before insert
|
1196 |
+
$('#order_fields input[value="plain_products_summary_report_total_qty"]').closest('.mapping_row').remove();
|
1197 |
+
$('#order_fields input[value="plain_products_summary_report_total_amount"]').closest('.mapping_row').remove();
|
1198 |
+
|
1199 |
+
// insert summary report fields
|
1200 |
+
jQuery.each( summary_report_fields, function( i, value ) {
|
1201 |
+
$(value).show();
|
1202 |
+
var $field_to_copy = $(value).clone();
|
1203 |
+
$field_to_copy
|
1204 |
+
.attr('style', '')
|
1205 |
+
.addClass('ui-draggabled')
|
1206 |
+
.removeClass('segment_field')
|
1207 |
+
.find('input').prop('disabled', false);
|
1208 |
+
|
1209 |
+
jQuery('#manage_fields #order_fields').append($field_to_copy);
|
1210 |
+
} );
|
1211 |
+
}
|
1212 |
|
1213 |
} else {
|
1214 |
var segment = window.location.hash.replace('#segment=', '');
|
1219 |
if ( typeof $value === 'undefined' ) {
|
1220 |
return;
|
1221 |
}
|
1222 |
+
|
1223 |
if ( $value.match( /plain_products_(line|qty).*/ ) ) {
|
1224 |
$( this ).closest( '.mapping_row' ).show();
|
1225 |
}
|
1240 |
});
|
1241 |
|
1242 |
setTimeout(function () {
|
1243 |
+
jQuery( "#summary_report_by_products_checkbox" ).trigger('change', 'onstart');
|
1244 |
}, 1)
|
1245 |
|
1246 |
// this line must be last , we don't have any errors
|
1298 |
return false;
|
1299 |
});
|
1300 |
|
1301 |
+
init_image_uploaders();
|
1302 |
|
1303 |
} );
|
1304 |
|
1689 |
if (!text)
|
1690 |
text = "Please, open section 'Misc Settings' and \n mark checkbox 'Enable debug output' \n to see exact error message";
|
1691 |
alert(text);
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
function init_image_uploaders() {
|
1695 |
+
var custom_uploader;
|
1696 |
+
jQuery( '.image-upload-button' ).click( function ( e ) {
|
1697 |
+
e.preventDefault();
|
1698 |
+
if ( custom_uploader ) {
|
1699 |
+
custom_uploader.open();
|
1700 |
+
return;
|
1701 |
+
}
|
1702 |
+
|
1703 |
+
custom_uploader = wp.media.frames.file_frame = wp.media( {
|
1704 |
+
title: 'Choose Image',
|
1705 |
+
button: {
|
1706 |
+
text: 'Choose Image'
|
1707 |
+
},
|
1708 |
+
multiple: false
|
1709 |
+
} );
|
1710 |
+
|
1711 |
+
var self = this;
|
1712 |
+
custom_uploader.on( 'select', function () {
|
1713 |
+
attachment = custom_uploader.state().get( 'selection' ).first().toJSON();
|
1714 |
+
jQuery( self ).siblings( 'input[type="hidden"]' ).val( attachment.url );
|
1715 |
+
jQuery( self ).siblings( 'img' ).attr( 'src', attachment.url ).removeClass('hidden');
|
1716 |
+
jQuery( self ).siblings( '.image-clear-button' ).removeClass('hidden');
|
1717 |
+
} );
|
1718 |
+
|
1719 |
+
custom_uploader.open();
|
1720 |
+
} );
|
1721 |
+
|
1722 |
+
jQuery( '.image-clear-button' ).click( function ( e ) {
|
1723 |
+
jQuery( this ).siblings( 'input[type="hidden"]' ).val( '' );
|
1724 |
+
jQuery( this ).siblings( 'img' ).attr( 'src', '' ).addClass( 'hidden' );
|
1725 |
+
jQuery( this ).addClass( 'hidden' );
|
1726 |
+
} );
|
1727 |
+
|
1728 |
+
return custom_uploader;
|
1729 |
+
}
|
classes/FPDF/class-woe-pdf-mc-table.php
ADDED
@@ -0,0 +1,433 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! class_exists( 'FPDF' ) ) {
|
3 |
+
require( 'fpdf.php' );
|
4 |
+
}
|
5 |
+
|
6 |
+
class WOE_PDF_MC_Table extends FPDF {
|
7 |
+
protected $widths;
|
8 |
+
protected $aligns;
|
9 |
+
|
10 |
+
protected $table_header = array();
|
11 |
+
|
12 |
+
protected $header_props = array();
|
13 |
+
protected $footer_props = array();
|
14 |
+
protected $table_header_props = array();
|
15 |
+
protected $table_row_props = array();
|
16 |
+
protected $table_props = array();
|
17 |
+
|
18 |
+
protected $stretch_buffer = array();
|
19 |
+
protected $stretch_buffer_params = array();
|
20 |
+
|
21 |
+
protected $default_props = array(
|
22 |
+
'header' => array(
|
23 |
+
'title' => '',
|
24 |
+
'style' => 'B',
|
25 |
+
'size' => 5,
|
26 |
+
'text_color' => array( 0, 0, 0 ),
|
27 |
+
'logo' => array(
|
28 |
+
'source' => '',
|
29 |
+
'width' => 0,
|
30 |
+
'height' => 0,
|
31 |
+
'align' => 'R',
|
32 |
+
),
|
33 |
+
),
|
34 |
+
'table' => array(
|
35 |
+
'stretch' => false,
|
36 |
+
'column_width' => array(),
|
37 |
+
),
|
38 |
+
'table_header' => array(
|
39 |
+
'style' => '',
|
40 |
+
'size' => 5,
|
41 |
+
'text_color' => array( 0, 0, 0 ),
|
42 |
+
'background_color' => array( 255, 255, 255 ),
|
43 |
+
'repeat' => true,
|
44 |
+
),
|
45 |
+
'table_row' => array(
|
46 |
+
'style' => '',
|
47 |
+
'size' => 5,
|
48 |
+
'text_color' => array( 0, 0, 0 ),
|
49 |
+
'background_color' => array( 255, 255, 255 ),
|
50 |
+
),
|
51 |
+
'footer' => array(
|
52 |
+
'title' => '',
|
53 |
+
'style' => 'B',
|
54 |
+
'size' => 5,
|
55 |
+
'text_color' => array( 0, 0, 0 ),
|
56 |
+
'pagination_type' => '',
|
57 |
+
),
|
58 |
+
);
|
59 |
+
|
60 |
+
public function setProperties( $props ) {
|
61 |
+
foreach ( $this->default_props as $key => $default_props ) {
|
62 |
+
if ( ! empty( $props[ $key ] ) && is_array( $props[ $key ] ) ) {
|
63 |
+
|
64 |
+
$name = $key . '_props';
|
65 |
+
if ( ! isset( $this->$name ) ) {
|
66 |
+
continue;
|
67 |
+
}
|
68 |
+
|
69 |
+
$this->$name = array_merge( $default_props, $props[ $key ] );
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
public function setHeaderProperty( $props ) {
|
75 |
+
$this->header_props = array_merge( $this->default_props['header'], $props );
|
76 |
+
}
|
77 |
+
|
78 |
+
public function addTableHeader( $header ) {
|
79 |
+
$this->table_header = $header;
|
80 |
+
$this->changeBrushToDraw( 'table_header' );
|
81 |
+
$this->Row( $header );
|
82 |
+
}
|
83 |
+
|
84 |
+
public function setTableHeaderProperty( $props ) {
|
85 |
+
$this->table_header_props = array_merge( $this->default_props['table_header'], $props );
|
86 |
+
}
|
87 |
+
|
88 |
+
public function setTableRowProperty( $props ) {
|
89 |
+
$this->table_row_props = array_merge( $this->default_props['table_header'], $props );
|
90 |
+
}
|
91 |
+
|
92 |
+
public function setFooterProperty( $props ) {
|
93 |
+
$this->footer_props = array_merge( $this->default_props['footer'], $props );
|
94 |
+
}
|
95 |
+
|
96 |
+
public function Header() {
|
97 |
+
if ( ! empty( $this->header_props['title'] ) ) {
|
98 |
+
$this->changeBrushToDraw( 'header' );
|
99 |
+
$this->Cell( 0, 0, $this->header_props['title'], 0, 0, 'C' );
|
100 |
+
$this->Ln( 2 );
|
101 |
+
}
|
102 |
+
|
103 |
+
if ( $this->drawLogo() ) {
|
104 |
+
$this->Ln( 1 );
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
protected function drawLogo() {
|
109 |
+
$source = $this->header_props['logo']['source'];
|
110 |
+
$width = $this->header_props['logo']['width'];
|
111 |
+
$height = $this->header_props['logo']['height'];
|
112 |
+
$align = $this->header_props['logo']['align'];
|
113 |
+
|
114 |
+
if ( ! $source || ! $height ) {
|
115 |
+
return false;
|
116 |
+
}
|
117 |
+
|
118 |
+
$height = $this->validateHeight( $height );
|
119 |
+
if ( ! $width ) {
|
120 |
+
list( $img_width, $img_height, $type, $attr ) = getimagesize( $source );
|
121 |
+
$width = $height * $img_width / $img_height;
|
122 |
+
}
|
123 |
+
$width = $this->validateWidth( $width );
|
124 |
+
|
125 |
+
if ( $align == 'R' ) {
|
126 |
+
$x = $this->GetPageWidth() - $this->rMargin - $width;
|
127 |
+
} elseif ( $align == 'C' ) {
|
128 |
+
$x = ( $this->GetPageWidth() - $width ) / 2;
|
129 |
+
} else {
|
130 |
+
$x = $this->lMargin;
|
131 |
+
}
|
132 |
+
|
133 |
+
$type = strtoupper( pathinfo( $source, PATHINFO_EXTENSION ) );
|
134 |
+
|
135 |
+
$this->Image( $source, $x, $this->GetY(), $width, $height, $type );
|
136 |
+
$this->Ln( $height );
|
137 |
+
|
138 |
+
return true;
|
139 |
+
}
|
140 |
+
|
141 |
+
public function Footer() {
|
142 |
+
$this->SetY( - 15 );
|
143 |
+
|
144 |
+
$this->changeBrushToDraw( 'footer' );
|
145 |
+
|
146 |
+
if ( ! empty( $this->footer_props['title'] ) ) {
|
147 |
+
// Title
|
148 |
+
$this->Cell( 0, 0, $this->footer_props['title'], 0, 0, 'C' );
|
149 |
+
// Line break
|
150 |
+
$this->Ln( 10 );
|
151 |
+
}
|
152 |
+
|
153 |
+
// Position at 1.5 cm from bottom
|
154 |
+
$this->SetY( - 15 );
|
155 |
+
|
156 |
+
if ( ! empty( $this->footer_props['pagination'] ) ) {
|
157 |
+
// Page number
|
158 |
+
$align = in_array( $this->footer_props['pagination'], array( 'L', 'C', 'R', ) ) ? $this->footer_props['pagination'] : false;
|
159 |
+
if ( $align ) {
|
160 |
+
$this->Cell( 0, 10, 'Page ' . $this->PageNo() . '/{nb}', 0, 0, $align );
|
161 |
+
}
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
public function addRow( $data, $widths = null, $h = null ) {
|
166 |
+
$this->changeBrushToDraw( 'table_row' );
|
167 |
+
$this->Row( $data, $widths, $h );
|
168 |
+
}
|
169 |
+
|
170 |
+
protected function Row( $data, $widths = null, $h = null ) {
|
171 |
+
if ( ! $data ) {
|
172 |
+
return;
|
173 |
+
}
|
174 |
+
|
175 |
+
$widths = ! $widths ? $this->getRowWidths( $data ) : $widths;
|
176 |
+
$h = ! $h ? $this->getRowHeight( $widths, $data ) : $h;
|
177 |
+
|
178 |
+
//Issue a page break first if needed
|
179 |
+
$this->CheckPageBreak( $h );
|
180 |
+
|
181 |
+
$columns_count = $this->getColumnCountInPage( $widths );
|
182 |
+
if ( $extra_data = array_slice( $data, $columns_count ) ) {
|
183 |
+
$this->stretch_buffer[] = $extra_data;
|
184 |
+
$this->stretch_buffer_params[] = array(
|
185 |
+
'widths' => array_slice( $widths, $columns_count ),
|
186 |
+
'height' => $h,
|
187 |
+
);
|
188 |
+
}
|
189 |
+
$data = array_slice( $data, 0, $columns_count );
|
190 |
+
|
191 |
+
|
192 |
+
//Draw the cells of the row
|
193 |
+
for ( $i = 0; $i < count( $data ); $i ++ ) {
|
194 |
+
$w = $widths[ $i ];
|
195 |
+
$a = isset( $this->aligns[ $i ] ) ? $this->aligns[ $i ] : 'L';
|
196 |
+
//Save the current position
|
197 |
+
$x = $this->GetX();
|
198 |
+
$y = $this->GetY();
|
199 |
+
//Draw the border
|
200 |
+
$this->Rect( $x, $y, $w, $h, 'DF' );
|
201 |
+
//Print the text
|
202 |
+
$this->MultiCell( $w, 5, $data[ $i ], 0, $a );
|
203 |
+
//Put the position to the right of the cell
|
204 |
+
$this->SetXY( $x + $w, $y );
|
205 |
+
}
|
206 |
+
//Go to the next line
|
207 |
+
$this->Ln( $h );
|
208 |
+
}
|
209 |
+
|
210 |
+
protected function getColumnCountInPage( $widths ) {
|
211 |
+
$count = count( $widths );
|
212 |
+
if ( $this->table_props['stretch'] ) {
|
213 |
+
$sum_width = 0;
|
214 |
+
$page_width = $this->GetPageWidth() - $this->lMargin - $this->rMargin;
|
215 |
+
$count = 0;
|
216 |
+
foreach ( $widths as $width ) {
|
217 |
+
if ( $sum_width + $width > $page_width ) {
|
218 |
+
break;
|
219 |
+
}
|
220 |
+
$sum_width += $width;
|
221 |
+
$count ++;
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
+
return $count;
|
226 |
+
}
|
227 |
+
|
228 |
+
/**
|
229 |
+
* Calculate the width for every column of the row
|
230 |
+
*
|
231 |
+
* @param $row
|
232 |
+
*
|
233 |
+
* @return array
|
234 |
+
*/
|
235 |
+
protected function getRowWidths( $row ) {
|
236 |
+
if ( $this->table_props['stretch'] ) {
|
237 |
+
$widths = array();
|
238 |
+
for ( $i = 0; $i < count( $row ); $i ++ ) {
|
239 |
+
$width = isset( $this->table_props['column_width'][ $i ] ) ? $this->table_props['column_width'][ $i ] :
|
240 |
+
$this->table_props['column_width'][ $i % count( $this->table_props['column_width'] ) ];
|
241 |
+
|
242 |
+
$widths[ $i ] = $this->validateWidth( $width );
|
243 |
+
}
|
244 |
+
|
245 |
+
return $widths;
|
246 |
+
} else {
|
247 |
+
return array_fill( 0, count( $row ), ( $this->GetPageWidth() - $this->lMargin - $this->rMargin ) / count( $row ) );
|
248 |
+
}
|
249 |
+
}
|
250 |
+
|
251 |
+
protected function validateWidth( $width, $min_width = 5 ) {
|
252 |
+
$max_width = $this->GetPageWidth() - $this->lMargin - $this->rMargin - 50;
|
253 |
+
if ( $width < $min_width ) {
|
254 |
+
$width = $min_width;
|
255 |
+
} elseif ( $width > $max_width ) {
|
256 |
+
$width = $max_width;
|
257 |
+
}
|
258 |
+
|
259 |
+
return $width;
|
260 |
+
}
|
261 |
+
|
262 |
+
protected function validateHeight( $height, $min_height = 5 ) {
|
263 |
+
$max_height = $this->GetPageHeight() - $this->tMargin - $this->bMargin - 50;
|
264 |
+
if ( $height < $min_height ) {
|
265 |
+
$height = $min_height;
|
266 |
+
} elseif ( $height > $max_height ) {
|
267 |
+
$height = $max_height;
|
268 |
+
}
|
269 |
+
|
270 |
+
return $height;
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* Calculate the height of the row
|
275 |
+
*
|
276 |
+
* @param $widths
|
277 |
+
* @param $row
|
278 |
+
*
|
279 |
+
* @return int|mixed
|
280 |
+
*/
|
281 |
+
protected function getRowHeight( $widths, $row ) {
|
282 |
+
$nb = 0;
|
283 |
+
for ( $i = 0; $i < count( $row ); $i ++ ) {
|
284 |
+
$nb = max( $nb, $this->NbLines( $widths[ $i ], $row[ $i ] ) );
|
285 |
+
}
|
286 |
+
|
287 |
+
return 5 * $nb;
|
288 |
+
}
|
289 |
+
|
290 |
+
public function CheckPageBreak( $h ) {
|
291 |
+
//If the height h would cause an overflow, add a new page immediately
|
292 |
+
if ( $this->GetY() + $h > $this->PageBreakTrigger ) {
|
293 |
+
$this->flush_buffer();
|
294 |
+
|
295 |
+
$this->AddPage( $this->CurOrientation );
|
296 |
+
if ( $this->table_header_props['repeat'] && $this->table_header ) {
|
297 |
+
$this->changeBrushToDraw( 'table_header' );
|
298 |
+
$this->Row( $this->table_header );
|
299 |
+
$this->changeBrushToDraw( 'table_row' );
|
300 |
+
}
|
301 |
+
}
|
302 |
+
}
|
303 |
+
|
304 |
+
public function Output( $dest = '', $name = '', $isUTF8 = false ) {
|
305 |
+
$this->flush_buffer();
|
306 |
+
parent::Output( $dest, $name, $isUTF8 );
|
307 |
+
}
|
308 |
+
|
309 |
+
protected function flush_buffer() {
|
310 |
+
while ( $this->stretch_buffer ) {
|
311 |
+
$this->AddPage( $this->CurOrientation );
|
312 |
+
|
313 |
+
$buffer = $this->stretch_buffer;
|
314 |
+
$stretch_buffer_params = $this->stretch_buffer_params;
|
315 |
+
$this->stretch_buffer = array();
|
316 |
+
$this->stretch_buffer_params = array();
|
317 |
+
|
318 |
+
if ( $this->table_header ) {
|
319 |
+
$this->changeBrushToDraw( 'table_header' );
|
320 |
+
$params = array_shift( $stretch_buffer_params );
|
321 |
+
$this->Row( array_shift( $buffer ), $params['widths'], $params['height'] );
|
322 |
+
$this->changeBrushToDraw( 'table_row' );
|
323 |
+
}
|
324 |
+
|
325 |
+
foreach ( $buffer as $index => $row ) {
|
326 |
+
$params = $stretch_buffer_params[ $index ];
|
327 |
+
$this->addRow( $row, $params['widths'], $params['height'] );
|
328 |
+
}
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
public function NbLines( $w, $txt ) {
|
333 |
+
//Computes the number of lines a MultiCell of width w will take
|
334 |
+
$cw =& $this->CurrentFont['cw'];
|
335 |
+
if ( $w == 0 ) {
|
336 |
+
$w = $this->w - $this->rMargin - $this->x;
|
337 |
+
}
|
338 |
+
$wmax = ( $w - 2 * $this->cMargin ) * 1000 / $this->FontSize;
|
339 |
+
$s = str_replace( "\r", '', $txt );
|
340 |
+
$nb = strlen( $s );
|
341 |
+
if ( $nb > 0 and $s[ $nb - 1 ] == "\n" ) {
|
342 |
+
$nb --;
|
343 |
+
}
|
344 |
+
$sep = - 1;
|
345 |
+
$i = 0;
|
346 |
+
$j = 0;
|
347 |
+
$l = 0;
|
348 |
+
$nl = 1;
|
349 |
+
while ( $i < $nb ) {
|
350 |
+
$c = $s[ $i ];
|
351 |
+
if ( $c == "\n" ) {
|
352 |
+
$i ++;
|
353 |
+
$sep = - 1;
|
354 |
+
$j = $i;
|
355 |
+
$l = 0;
|
356 |
+
$nl ++;
|
357 |
+
continue;
|
358 |
+
}
|
359 |
+
if ( $c == ' ' ) {
|
360 |
+
$sep = $i;
|
361 |
+
}
|
362 |
+
$l += $cw[ $c ];
|
363 |
+
if ( $l > $wmax ) {
|
364 |
+
if ( $sep == - 1 ) {
|
365 |
+
if ( $i == $j ) {
|
366 |
+
$i ++;
|
367 |
+
}
|
368 |
+
} else {
|
369 |
+
$i = $sep + 1;
|
370 |
+
}
|
371 |
+
$sep = - 1;
|
372 |
+
$j = $i;
|
373 |
+
$l = 0;
|
374 |
+
$nl ++;
|
375 |
+
} else {
|
376 |
+
$i ++;
|
377 |
+
}
|
378 |
+
}
|
379 |
+
|
380 |
+
return $nl;
|
381 |
+
}
|
382 |
+
|
383 |
+
public function SetAligns( $a ) {
|
384 |
+
//Set the array of column alignments
|
385 |
+
$this->aligns = $a;
|
386 |
+
}
|
387 |
+
|
388 |
+
protected function changeBrushToDraw( $what ) {
|
389 |
+
if ( ! in_array( $what, array_keys( $this->default_props ) ) ) {
|
390 |
+
return false;
|
391 |
+
}
|
392 |
+
|
393 |
+
$name = $what . '_props';
|
394 |
+
if ( ! isset( $this->$name ) ) {
|
395 |
+
return false;
|
396 |
+
}
|
397 |
+
$props = $this->$name;
|
398 |
+
|
399 |
+
$this->SetFont( $this->FontFamily, $props['style'], $props['size'] );
|
400 |
+
$this->loadTextColor( $props );
|
401 |
+
$this->loadFillColor( $props );
|
402 |
+
|
403 |
+
return true;
|
404 |
+
}
|
405 |
+
|
406 |
+
private function loadTextColor( $props ) {
|
407 |
+
$color = ! empty( $props['text_color'] ) ? $props['text_color'] : array();
|
408 |
+
|
409 |
+
if ( $color ) {
|
410 |
+
$color = $this->convert_color( $color );
|
411 |
+
$this->SetTextColor( $color[0], $color[1], $color[2] );
|
412 |
+
}
|
413 |
+
}
|
414 |
+
|
415 |
+
private function loadFillColor( $props ) {
|
416 |
+
$color = ! empty( $props['background_color'] ) ? $props['background_color'] : array();
|
417 |
+
|
418 |
+
if ( $color ) {
|
419 |
+
$color = $this->convert_color( $color );
|
420 |
+
$this->SetFillColor( $color[0], $color[1], $color[2] );
|
421 |
+
}
|
422 |
+
}
|
423 |
+
|
424 |
+
private function convert_color( $array ) {
|
425 |
+
for ( $i = 0; $i < 2; $i ++ ) {
|
426 |
+
$array[ $i ] = ( isset( $array[ $i ] ) && is_numeric( $array[ $i ] ) && $array[ $i ] >= 0 && $array[ $i ] <= 255 ) ? $array[ $i ] : null;
|
427 |
+
}
|
428 |
+
|
429 |
+
return array_slice( $array, 0, 3 );
|
430 |
+
}
|
431 |
+
|
432 |
+
}
|
433 |
+
|
classes/FPDF/font/courier.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Courier';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
for($i=0;$i<=255;$i++)
|
7 |
+
$cw[chr($i)] = 600;
|
8 |
+
$enc = 'cp1252';
|
9 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
10 |
+
?>
|
classes/FPDF/font/courierb.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Courier-Bold';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
for($i=0;$i<=255;$i++)
|
7 |
+
$cw[chr($i)] = 600;
|
8 |
+
$enc = 'cp1252';
|
9 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
10 |
+
?>
|
classes/FPDF/font/courierbi.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Courier-BoldOblique';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
for($i=0;$i<=255;$i++)
|
7 |
+
$cw[chr($i)] = 600;
|
8 |
+
$enc = 'cp1252';
|
9 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
10 |
+
?>
|
classes/FPDF/font/courieri.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Courier-Oblique';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
for($i=0;$i<=255;$i++)
|
7 |
+
$cw[chr($i)] = 600;
|
8 |
+
$enc = 'cp1252';
|
9 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
10 |
+
?>
|
classes/FPDF/font/helvetica.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Helvetica';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
8 |
+
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
9 |
+
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
10 |
+
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
11 |
+
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
12 |
+
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
13 |
+
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
16 |
+
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
18 |
+
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/helveticab.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Helvetica-Bold';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
8 |
+
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
9 |
+
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
10 |
+
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
11 |
+
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
12 |
+
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
13 |
+
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
16 |
+
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
18 |
+
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/helveticabi.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Helvetica-BoldOblique';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
8 |
+
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
9 |
+
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
10 |
+
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
11 |
+
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
12 |
+
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
13 |
+
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
16 |
+
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
18 |
+
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/helveticai.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Helvetica-Oblique';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
8 |
+
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
9 |
+
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
10 |
+
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
11 |
+
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
12 |
+
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
13 |
+
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
16 |
+
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
18 |
+
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/symbol.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Symbol';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
8 |
+
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
|
9 |
+
','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
|
10 |
+
'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
|
11 |
+
'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
|
12 |
+
'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
|
13 |
+
chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
14 |
+
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
|
15 |
+
chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
|
16 |
+
chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
|
17 |
+
chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
|
18 |
+
chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
|
19 |
+
$uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9));
|
20 |
+
?>
|
classes/FPDF/font/times.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Times-Roman';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
8 |
+
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
|
9 |
+
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
|
10 |
+
'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
|
11 |
+
'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
12 |
+
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
13 |
+
chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
|
14 |
+
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
16 |
+
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
18 |
+
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/timesb.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Times-Bold';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
8 |
+
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
9 |
+
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
|
10 |
+
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
|
11 |
+
'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
|
12 |
+
'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
13 |
+
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
16 |
+
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
18 |
+
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/timesbi.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Times-BoldItalic';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
8 |
+
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
9 |
+
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
|
10 |
+
'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
|
11 |
+
'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
12 |
+
'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
13 |
+
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
14 |
+
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
16 |
+
chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
18 |
+
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/timesi.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'Times-Italic';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
8 |
+
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
|
9 |
+
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
|
10 |
+
'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
|
11 |
+
'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
|
12 |
+
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
13 |
+
chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
|
14 |
+
chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
15 |
+
chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
|
16 |
+
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
17 |
+
chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
18 |
+
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
19 |
+
$enc = 'cp1252';
|
20 |
+
$uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96));
|
21 |
+
?>
|
classes/FPDF/font/zapfdingbats.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$type = 'Core';
|
3 |
+
$name = 'ZapfDingbats';
|
4 |
+
$up = -100;
|
5 |
+
$ut = 50;
|
6 |
+
$cw = array(
|
7 |
+
chr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,
|
8 |
+
chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
|
9 |
+
','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
|
10 |
+
'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
|
11 |
+
'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
|
12 |
+
'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,
|
13 |
+
chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
14 |
+
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,
|
15 |
+
chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,
|
16 |
+
chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,
|
17 |
+
chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,
|
18 |
+
chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);
|
19 |
+
$uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14));
|
20 |
+
?>
|
classes/FPDF/fpdf.php
ADDED
@@ -0,0 +1,1898 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*******************************************************************************
|
3 |
+
* FPDF *
|
4 |
+
* *
|
5 |
+
* Version: 1.81 *
|
6 |
+
* Date: 2015-12-20 *
|
7 |
+
* Author: Olivier PLATHEY *
|
8 |
+
*******************************************************************************/
|
9 |
+
|
10 |
+
define('FPDF_VERSION','1.81');
|
11 |
+
|
12 |
+
class FPDF
|
13 |
+
{
|
14 |
+
protected $page; // current page number
|
15 |
+
protected $n; // current object number
|
16 |
+
protected $offsets; // array of object offsets
|
17 |
+
protected $buffer; // buffer holding in-memory PDF
|
18 |
+
protected $pages; // array containing pages
|
19 |
+
protected $state; // current document state
|
20 |
+
protected $compress; // compression flag
|
21 |
+
protected $k; // scale factor (number of points in user unit)
|
22 |
+
protected $DefOrientation; // default orientation
|
23 |
+
protected $CurOrientation; // current orientation
|
24 |
+
protected $StdPageSizes; // standard page sizes
|
25 |
+
protected $DefPageSize; // default page size
|
26 |
+
protected $CurPageSize; // current page size
|
27 |
+
protected $CurRotation; // current page rotation
|
28 |
+
protected $PageInfo; // page-related data
|
29 |
+
protected $wPt, $hPt; // dimensions of current page in points
|
30 |
+
protected $w, $h; // dimensions of current page in user unit
|
31 |
+
protected $lMargin; // left margin
|
32 |
+
protected $tMargin; // top margin
|
33 |
+
protected $rMargin; // right margin
|
34 |
+
protected $bMargin; // page break margin
|
35 |
+
protected $cMargin; // cell margin
|
36 |
+
protected $x, $y; // current position in user unit
|
37 |
+
protected $lasth; // height of last printed cell
|
38 |
+
protected $LineWidth; // line width in user unit
|
39 |
+
protected $fontpath; // path containing fonts
|
40 |
+
protected $CoreFonts; // array of core font names
|
41 |
+
protected $fonts; // array of used fonts
|
42 |
+
protected $FontFiles; // array of font files
|
43 |
+
protected $encodings; // array of encodings
|
44 |
+
protected $cmaps; // array of ToUnicode CMaps
|
45 |
+
protected $FontFamily; // current font family
|
46 |
+
protected $FontStyle; // current font style
|
47 |
+
protected $underline; // underlining flag
|
48 |
+
protected $CurrentFont; // current font info
|
49 |
+
protected $FontSizePt; // current font size in points
|
50 |
+
protected $FontSize; // current font size in user unit
|
51 |
+
protected $DrawColor; // commands for drawing color
|
52 |
+
protected $FillColor; // commands for filling color
|
53 |
+
protected $TextColor; // commands for text color
|
54 |
+
protected $ColorFlag; // indicates whether fill and text colors are different
|
55 |
+
protected $WithAlpha; // indicates whether alpha channel is used
|
56 |
+
protected $ws; // word spacing
|
57 |
+
protected $images; // array of used images
|
58 |
+
protected $PageLinks; // array of links in pages
|
59 |
+
protected $links; // array of internal links
|
60 |
+
protected $AutoPageBreak; // automatic page breaking
|
61 |
+
protected $PageBreakTrigger; // threshold used to trigger page breaks
|
62 |
+
protected $InHeader; // flag set when processing header
|
63 |
+
protected $InFooter; // flag set when processing footer
|
64 |
+
protected $AliasNbPages; // alias for total number of pages
|
65 |
+
protected $ZoomMode; // zoom display mode
|
66 |
+
protected $LayoutMode; // layout display mode
|
67 |
+
protected $metadata; // document properties
|
68 |
+
protected $PDFVersion; // PDF version number
|
69 |
+
|
70 |
+
/*******************************************************************************
|
71 |
+
* Public methods *
|
72 |
+
*******************************************************************************/
|
73 |
+
|
74 |
+
function __construct($orientation='P', $unit='mm', $size='A4')
|
75 |
+
{
|
76 |
+
// Some checks
|
77 |
+
$this->_dochecks();
|
78 |
+
// Initialization of properties
|
79 |
+
$this->state = 0;
|
80 |
+
$this->page = 0;
|
81 |
+
$this->n = 2;
|
82 |
+
$this->buffer = '';
|
83 |
+
$this->pages = array();
|
84 |
+
$this->PageInfo = array();
|
85 |
+
$this->fonts = array();
|
86 |
+
$this->FontFiles = array();
|
87 |
+
$this->encodings = array();
|
88 |
+
$this->cmaps = array();
|
89 |
+
$this->images = array();
|
90 |
+
$this->links = array();
|
91 |
+
$this->InHeader = false;
|
92 |
+
$this->InFooter = false;
|
93 |
+
$this->lasth = 0;
|
94 |
+
$this->FontFamily = '';
|
95 |
+
$this->FontStyle = '';
|
96 |
+
$this->FontSizePt = 12;
|
97 |
+
$this->underline = false;
|
98 |
+
$this->DrawColor = '0 G';
|
99 |
+
$this->FillColor = '0 g';
|
100 |
+
$this->TextColor = '0 g';
|
101 |
+
$this->ColorFlag = false;
|
102 |
+
$this->WithAlpha = false;
|
103 |
+
$this->ws = 0;
|
104 |
+
// Font path
|
105 |
+
if(defined('FPDF_FONTPATH'))
|
106 |
+
{
|
107 |
+
$this->fontpath = FPDF_FONTPATH;
|
108 |
+
if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
|
109 |
+
$this->fontpath .= '/';
|
110 |
+
}
|
111 |
+
elseif(is_dir(dirname(__FILE__).'/font'))
|
112 |
+
$this->fontpath = dirname(__FILE__).'/font/';
|
113 |
+
else
|
114 |
+
$this->fontpath = '';
|
115 |
+
// Core fonts
|
116 |
+
$this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats');
|
117 |
+
// Scale factor
|
118 |
+
if($unit=='pt')
|
119 |
+
$this->k = 1;
|
120 |
+
elseif($unit=='mm')
|
121 |
+
$this->k = 72/25.4;
|
122 |
+
elseif($unit=='cm')
|
123 |
+
$this->k = 72/2.54;
|
124 |
+
elseif($unit=='in')
|
125 |
+
$this->k = 72;
|
126 |
+
else
|
127 |
+
$this->Error('Incorrect unit: '.$unit);
|
128 |
+
// Page sizes
|
129 |
+
$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28),
|
130 |
+
'letter'=>array(612,792), 'legal'=>array(612,1008));
|
131 |
+
$size = $this->_getpagesize($size);
|
132 |
+
$this->DefPageSize = $size;
|
133 |
+
$this->CurPageSize = $size;
|
134 |
+
// Page orientation
|
135 |
+
$orientation = strtolower($orientation);
|
136 |
+
if($orientation=='p' || $orientation=='portrait')
|
137 |
+
{
|
138 |
+
$this->DefOrientation = 'P';
|
139 |
+
$this->w = $size[0];
|
140 |
+
$this->h = $size[1];
|
141 |
+
}
|
142 |
+
elseif($orientation=='l' || $orientation=='landscape')
|
143 |
+
{
|
144 |
+
$this->DefOrientation = 'L';
|
145 |
+
$this->w = $size[1];
|
146 |
+
$this->h = $size[0];
|
147 |
+
}
|
148 |
+
else
|
149 |
+
$this->Error('Incorrect orientation: '.$orientation);
|
150 |
+
$this->CurOrientation = $this->DefOrientation;
|
151 |
+
$this->wPt = $this->w*$this->k;
|
152 |
+
$this->hPt = $this->h*$this->k;
|
153 |
+
// Page rotation
|
154 |
+
$this->CurRotation = 0;
|
155 |
+
// Page margins (1 cm)
|
156 |
+
$margin = 28.35/$this->k;
|
157 |
+
$this->SetMargins($margin,$margin);
|
158 |
+
// Interior cell margin (1 mm)
|
159 |
+
$this->cMargin = $margin/10;
|
160 |
+
// Line width (0.2 mm)
|
161 |
+
$this->LineWidth = .567/$this->k;
|
162 |
+
// Automatic page break
|
163 |
+
$this->SetAutoPageBreak(true,2*$margin);
|
164 |
+
// Default display mode
|
165 |
+
$this->SetDisplayMode('default');
|
166 |
+
// Enable compression
|
167 |
+
$this->SetCompression(true);
|
168 |
+
// Set default PDF version number
|
169 |
+
$this->PDFVersion = '1.3';
|
170 |
+
}
|
171 |
+
|
172 |
+
function SetMargins($left, $top, $right=null)
|
173 |
+
{
|
174 |
+
// Set left, top and right margins
|
175 |
+
$this->lMargin = $left;
|
176 |
+
$this->tMargin = $top;
|
177 |
+
if($right===null)
|
178 |
+
$right = $left;
|
179 |
+
$this->rMargin = $right;
|
180 |
+
}
|
181 |
+
|
182 |
+
function SetLeftMargin($margin)
|
183 |
+
{
|
184 |
+
// Set left margin
|
185 |
+
$this->lMargin = $margin;
|
186 |
+
if($this->page>0 && $this->x<$margin)
|
187 |
+
$this->x = $margin;
|
188 |
+
}
|
189 |
+
|
190 |
+
function SetTopMargin($margin)
|
191 |
+
{
|
192 |
+
// Set top margin
|
193 |
+
$this->tMargin = $margin;
|
194 |
+
}
|
195 |
+
|
196 |
+
function SetRightMargin($margin)
|
197 |
+
{
|
198 |
+
// Set right margin
|
199 |
+
$this->rMargin = $margin;
|
200 |
+
}
|
201 |
+
|
202 |
+
function SetAutoPageBreak($auto, $margin=0)
|
203 |
+
{
|
204 |
+
// Set auto page break mode and triggering margin
|
205 |
+
$this->AutoPageBreak = $auto;
|
206 |
+
$this->bMargin = $margin;
|
207 |
+
$this->PageBreakTrigger = $this->h-$margin;
|
208 |
+
}
|
209 |
+
|
210 |
+
function SetDisplayMode($zoom, $layout='default')
|
211 |
+
{
|
212 |
+
// Set display mode in viewer
|
213 |
+
if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom))
|
214 |
+
$this->ZoomMode = $zoom;
|
215 |
+
else
|
216 |
+
$this->Error('Incorrect zoom display mode: '.$zoom);
|
217 |
+
if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default')
|
218 |
+
$this->LayoutMode = $layout;
|
219 |
+
else
|
220 |
+
$this->Error('Incorrect layout display mode: '.$layout);
|
221 |
+
}
|
222 |
+
|
223 |
+
function SetCompression($compress)
|
224 |
+
{
|
225 |
+
// Set page compression
|
226 |
+
if(function_exists('gzcompress'))
|
227 |
+
$this->compress = $compress;
|
228 |
+
else
|
229 |
+
$this->compress = false;
|
230 |
+
}
|
231 |
+
|
232 |
+
function SetTitle($title, $isUTF8=false)
|
233 |
+
{
|
234 |
+
// Title of document
|
235 |
+
$this->metadata['Title'] = $isUTF8 ? $title : utf8_encode($title);
|
236 |
+
}
|
237 |
+
|
238 |
+
function SetAuthor($author, $isUTF8=false)
|
239 |
+
{
|
240 |
+
// Author of document
|
241 |
+
$this->metadata['Author'] = $isUTF8 ? $author : utf8_encode($author);
|
242 |
+
}
|
243 |
+
|
244 |
+
function SetSubject($subject, $isUTF8=false)
|
245 |
+
{
|
246 |
+
// Subject of document
|
247 |
+
$this->metadata['Subject'] = $isUTF8 ? $subject : utf8_encode($subject);
|
248 |
+
}
|
249 |
+
|
250 |
+
function SetKeywords($keywords, $isUTF8=false)
|
251 |
+
{
|
252 |
+
// Keywords of document
|
253 |
+
$this->metadata['Keywords'] = $isUTF8 ? $keywords : utf8_encode($keywords);
|
254 |
+
}
|
255 |
+
|
256 |
+
function SetCreator($creator, $isUTF8=false)
|
257 |
+
{
|
258 |
+
// Creator of document
|
259 |
+
$this->metadata['Creator'] = $isUTF8 ? $creator : utf8_encode($creator);
|
260 |
+
}
|
261 |
+
|
262 |
+
function AliasNbPages($alias='{nb}')
|
263 |
+
{
|
264 |
+
// Define an alias for total number of pages
|
265 |
+
$this->AliasNbPages = $alias;
|
266 |
+
}
|
267 |
+
|
268 |
+
function Error($msg)
|
269 |
+
{
|
270 |
+
// Fatal error
|
271 |
+
throw new Exception('FPDF error: '.$msg);
|
272 |
+
}
|
273 |
+
|
274 |
+
function Close()
|
275 |
+
{
|
276 |
+
// Terminate document
|
277 |
+
if($this->state==3)
|
278 |
+
return;
|
279 |
+
if($this->page==0)
|
280 |
+
$this->AddPage();
|
281 |
+
// Page footer
|
282 |
+
$this->InFooter = true;
|
283 |
+
$this->Footer();
|
284 |
+
$this->InFooter = false;
|
285 |
+
// Close page
|
286 |
+
$this->_endpage();
|
287 |
+
// Close document
|
288 |
+
$this->_enddoc();
|
289 |
+
}
|
290 |
+
|
291 |
+
function AddPage($orientation='', $size='', $rotation=0)
|
292 |
+
{
|
293 |
+
// Start a new page
|
294 |
+
if($this->state==3)
|
295 |
+
$this->Error('The document is closed');
|
296 |
+
$family = $this->FontFamily;
|
297 |
+
$style = $this->FontStyle.($this->underline ? 'U' : '');
|
298 |
+
$fontsize = $this->FontSizePt;
|
299 |
+
$lw = $this->LineWidth;
|
300 |
+
$dc = $this->DrawColor;
|
301 |
+
$fc = $this->FillColor;
|
302 |
+
$tc = $this->TextColor;
|
303 |
+
$cf = $this->ColorFlag;
|
304 |
+
if($this->page>0)
|
305 |
+
{
|
306 |
+
// Page footer
|
307 |
+
$this->InFooter = true;
|
308 |
+
$this->Footer();
|
309 |
+
$this->InFooter = false;
|
310 |
+
// Close page
|
311 |
+
$this->_endpage();
|
312 |
+
}
|
313 |
+
// Start new page
|
314 |
+
$this->_beginpage($orientation,$size,$rotation);
|
315 |
+
// Set line cap style to square
|
316 |
+
$this->_out('2 J');
|
317 |
+
// Set line width
|
318 |
+
$this->LineWidth = $lw;
|
319 |
+
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
320 |
+
// Set font
|
321 |
+
if($family)
|
322 |
+
$this->SetFont($family,$style,$fontsize);
|
323 |
+
// Set colors
|
324 |
+
$this->DrawColor = $dc;
|
325 |
+
if($dc!='0 G')
|
326 |
+
$this->_out($dc);
|
327 |
+
$this->FillColor = $fc;
|
328 |
+
if($fc!='0 g')
|
329 |
+
$this->_out($fc);
|
330 |
+
$this->TextColor = $tc;
|
331 |
+
$this->ColorFlag = $cf;
|
332 |
+
// Page header
|
333 |
+
$this->InHeader = true;
|
334 |
+
$this->Header();
|
335 |
+
$this->InHeader = false;
|
336 |
+
// Restore line width
|
337 |
+
if($this->LineWidth!=$lw)
|
338 |
+
{
|
339 |
+
$this->LineWidth = $lw;
|
340 |
+
$this->_out(sprintf('%.2F w',$lw*$this->k));
|
341 |
+
}
|
342 |
+
// Restore font
|
343 |
+
if($family)
|
344 |
+
$this->SetFont($family,$style,$fontsize);
|
345 |
+
// Restore colors
|
346 |
+
if($this->DrawColor!=$dc)
|
347 |
+
{
|
348 |
+
$this->DrawColor = $dc;
|
349 |
+
$this->_out($dc);
|
350 |
+
}
|
351 |
+
if($this->FillColor!=$fc)
|
352 |
+
{
|
353 |
+
$this->FillColor = $fc;
|
354 |
+
$this->_out($fc);
|
355 |
+
}
|
356 |
+
$this->TextColor = $tc;
|
357 |
+
$this->ColorFlag = $cf;
|
358 |
+
}
|
359 |
+
|
360 |
+
function Header()
|
361 |
+
{
|
362 |
+
// To be implemented in your own inherited class
|
363 |
+
}
|
364 |
+
|
365 |
+
function Footer()
|
366 |
+
{
|
367 |
+
// To be implemented in your own inherited class
|
368 |
+
}
|
369 |
+
|
370 |
+
function PageNo()
|
371 |
+
{
|
372 |
+
// Get current page number
|
373 |
+
return $this->page;
|
374 |
+
}
|
375 |
+
|
376 |
+
function SetDrawColor($r, $g=null, $b=null)
|
377 |
+
{
|
378 |
+
// Set color for all stroking operations
|
379 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
380 |
+
$this->DrawColor = sprintf('%.3F G',$r/255);
|
381 |
+
else
|
382 |
+
$this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255);
|
383 |
+
if($this->page>0)
|
384 |
+
$this->_out($this->DrawColor);
|
385 |
+
}
|
386 |
+
|
387 |
+
function SetFillColor($r, $g=null, $b=null)
|
388 |
+
{
|
389 |
+
// Set color for all filling operations
|
390 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
391 |
+
$this->FillColor = sprintf('%.3F g',$r/255);
|
392 |
+
else
|
393 |
+
$this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
394 |
+
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
395 |
+
if($this->page>0)
|
396 |
+
$this->_out($this->FillColor);
|
397 |
+
}
|
398 |
+
|
399 |
+
function SetTextColor($r, $g=null, $b=null)
|
400 |
+
{
|
401 |
+
// Set color for text
|
402 |
+
if(($r==0 && $g==0 && $b==0) || $g===null)
|
403 |
+
$this->TextColor = sprintf('%.3F g',$r/255);
|
404 |
+
else
|
405 |
+
$this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255);
|
406 |
+
$this->ColorFlag = ($this->FillColor!=$this->TextColor);
|
407 |
+
}
|
408 |
+
|
409 |
+
function GetStringWidth($s)
|
410 |
+
{
|
411 |
+
// Get width of a string in the current font
|
412 |
+
$s = (string)$s;
|
413 |
+
$cw = &$this->CurrentFont['cw'];
|
414 |
+
$w = 0;
|
415 |
+
$l = strlen($s);
|
416 |
+
for($i=0;$i<$l;$i++)
|
417 |
+
$w += $cw[$s[$i]];
|
418 |
+
return $w*$this->FontSize/1000;
|
419 |
+
}
|
420 |
+
|
421 |
+
function SetLineWidth($width)
|
422 |
+
{
|
423 |
+
// Set line width
|
424 |
+
$this->LineWidth = $width;
|
425 |
+
if($this->page>0)
|
426 |
+
$this->_out(sprintf('%.2F w',$width*$this->k));
|
427 |
+
}
|
428 |
+
|
429 |
+
function Line($x1, $y1, $x2, $y2)
|
430 |
+
{
|
431 |
+
// Draw a line
|
432 |
+
$this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k));
|
433 |
+
}
|
434 |
+
|
435 |
+
function Rect($x, $y, $w, $h, $style='')
|
436 |
+
{
|
437 |
+
// Draw a rectangle
|
438 |
+
if($style=='F')
|
439 |
+
$op = 'f';
|
440 |
+
elseif($style=='FD' || $style=='DF')
|
441 |
+
$op = 'B';
|
442 |
+
else
|
443 |
+
$op = 'S';
|
444 |
+
$this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op));
|
445 |
+
}
|
446 |
+
|
447 |
+
function AddFont($family, $style='', $file='')
|
448 |
+
{
|
449 |
+
// Add a TrueType, OpenType or Type1 font
|
450 |
+
$family = strtolower($family);
|
451 |
+
if($file=='')
|
452 |
+
$file = str_replace(' ','',$family).strtolower($style).'.php';
|
453 |
+
$style = strtoupper($style);
|
454 |
+
if($style=='IB')
|
455 |
+
$style = 'BI';
|
456 |
+
$fontkey = $family.$style;
|
457 |
+
if(isset($this->fonts[$fontkey]))
|
458 |
+
return;
|
459 |
+
$info = $this->_loadfont($file);
|
460 |
+
$info['i'] = count($this->fonts)+1;
|
461 |
+
if(!empty($info['file']))
|
462 |
+
{
|
463 |
+
// Embedded font
|
464 |
+
if($info['type']=='TrueType')
|
465 |
+
$this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']);
|
466 |
+
else
|
467 |
+
$this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']);
|
468 |
+
}
|
469 |
+
$this->fonts[$fontkey] = $info;
|
470 |
+
}
|
471 |
+
|
472 |
+
function SetFont($family, $style='', $size=0)
|
473 |
+
{
|
474 |
+
// Select a font; size given in points
|
475 |
+
if($family=='')
|
476 |
+
$family = $this->FontFamily;
|
477 |
+
else
|
478 |
+
$family = strtolower($family);
|
479 |
+
$style = strtoupper($style);
|
480 |
+
if(strpos($style,'U')!==false)
|
481 |
+
{
|
482 |
+
$this->underline = true;
|
483 |
+
$style = str_replace('U','',$style);
|
484 |
+
}
|
485 |
+
else
|
486 |
+
$this->underline = false;
|
487 |
+
if($style=='IB')
|
488 |
+
$style = 'BI';
|
489 |
+
if($size==0)
|
490 |
+
$size = $this->FontSizePt;
|
491 |
+
// Test if font is already selected
|
492 |
+
if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)
|
493 |
+
return;
|
494 |
+
// Test if font is already loaded
|
495 |
+
$fontkey = $family.$style;
|
496 |
+
if(!isset($this->fonts[$fontkey]))
|
497 |
+
{
|
498 |
+
// Test if one of the core fonts
|
499 |
+
if($family=='arial')
|
500 |
+
$family = 'helvetica';
|
501 |
+
if(in_array($family,$this->CoreFonts))
|
502 |
+
{
|
503 |
+
if($family=='symbol' || $family=='zapfdingbats')
|
504 |
+
$style = '';
|
505 |
+
$fontkey = $family.$style;
|
506 |
+
if(!isset($this->fonts[$fontkey]))
|
507 |
+
$this->AddFont($family,$style);
|
508 |
+
}
|
509 |
+
else
|
510 |
+
$this->Error('Undefined font: '.$family.' '.$style);
|
511 |
+
}
|
512 |
+
// Select it
|
513 |
+
$this->FontFamily = $family;
|
514 |
+
$this->FontStyle = $style;
|
515 |
+
$this->FontSizePt = $size;
|
516 |
+
$this->FontSize = $size/$this->k;
|
517 |
+
$this->CurrentFont = &$this->fonts[$fontkey];
|
518 |
+
if($this->page>0)
|
519 |
+
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
520 |
+
}
|
521 |
+
|
522 |
+
function SetFontSize($size)
|
523 |
+
{
|
524 |
+
// Set font size in points
|
525 |
+
if($this->FontSizePt==$size)
|
526 |
+
return;
|
527 |
+
$this->FontSizePt = $size;
|
528 |
+
$this->FontSize = $size/$this->k;
|
529 |
+
if($this->page>0)
|
530 |
+
$this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));
|
531 |
+
}
|
532 |
+
|
533 |
+
function AddLink()
|
534 |
+
{
|
535 |
+
// Create a new internal link
|
536 |
+
$n = count($this->links)+1;
|
537 |
+
$this->links[$n] = array(0, 0);
|
538 |
+
return $n;
|
539 |
+
}
|
540 |
+
|
541 |
+
function SetLink($link, $y=0, $page=-1)
|
542 |
+
{
|
543 |
+
// Set destination of internal link
|
544 |
+
if($y==-1)
|
545 |
+
$y = $this->y;
|
546 |
+
if($page==-1)
|
547 |
+
$page = $this->page;
|
548 |
+
$this->links[$link] = array($page, $y);
|
549 |
+
}
|
550 |
+
|
551 |
+
function Link($x, $y, $w, $h, $link)
|
552 |
+
{
|
553 |
+
// Put a link on the page
|
554 |
+
$this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link);
|
555 |
+
}
|
556 |
+
|
557 |
+
function Text($x, $y, $txt)
|
558 |
+
{
|
559 |
+
// Output a string
|
560 |
+
if(!isset($this->CurrentFont))
|
561 |
+
$this->Error('No font has been set');
|
562 |
+
$s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
|
563 |
+
if($this->underline && $txt!='')
|
564 |
+
$s .= ' '.$this->_dounderline($x,$y,$txt);
|
565 |
+
if($this->ColorFlag)
|
566 |
+
$s = 'q '.$this->TextColor.' '.$s.' Q';
|
567 |
+
$this->_out($s);
|
568 |
+
}
|
569 |
+
|
570 |
+
function AcceptPageBreak()
|
571 |
+
{
|
572 |
+
// Accept automatic page break or not
|
573 |
+
return $this->AutoPageBreak;
|
574 |
+
}
|
575 |
+
|
576 |
+
function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='')
|
577 |
+
{
|
578 |
+
// Output a cell
|
579 |
+
$k = $this->k;
|
580 |
+
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
581 |
+
{
|
582 |
+
// Automatic page break
|
583 |
+
$x = $this->x;
|
584 |
+
$ws = $this->ws;
|
585 |
+
if($ws>0)
|
586 |
+
{
|
587 |
+
$this->ws = 0;
|
588 |
+
$this->_out('0 Tw');
|
589 |
+
}
|
590 |
+
$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);
|
591 |
+
$this->x = $x;
|
592 |
+
if($ws>0)
|
593 |
+
{
|
594 |
+
$this->ws = $ws;
|
595 |
+
$this->_out(sprintf('%.3F Tw',$ws*$k));
|
596 |
+
}
|
597 |
+
}
|
598 |
+
if($w==0)
|
599 |
+
$w = $this->w-$this->rMargin-$this->x;
|
600 |
+
$s = '';
|
601 |
+
if($fill || $border==1)
|
602 |
+
{
|
603 |
+
if($fill)
|
604 |
+
$op = ($border==1) ? 'B' : 'f';
|
605 |
+
else
|
606 |
+
$op = 'S';
|
607 |
+
$s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op);
|
608 |
+
}
|
609 |
+
if(is_string($border))
|
610 |
+
{
|
611 |
+
$x = $this->x;
|
612 |
+
$y = $this->y;
|
613 |
+
if(strpos($border,'L')!==false)
|
614 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k);
|
615 |
+
if(strpos($border,'T')!==false)
|
616 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k);
|
617 |
+
if(strpos($border,'R')!==false)
|
618 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
619 |
+
if(strpos($border,'B')!==false)
|
620 |
+
$s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k);
|
621 |
+
}
|
622 |
+
if($txt!=='')
|
623 |
+
{
|
624 |
+
if(!isset($this->CurrentFont))
|
625 |
+
$this->Error('No font has been set');
|
626 |
+
if($align=='R')
|
627 |
+
$dx = $w-$this->cMargin-$this->GetStringWidth($txt);
|
628 |
+
elseif($align=='C')
|
629 |
+
$dx = ($w-$this->GetStringWidth($txt))/2;
|
630 |
+
else
|
631 |
+
$dx = $this->cMargin;
|
632 |
+
if($this->ColorFlag)
|
633 |
+
$s .= 'q '.$this->TextColor.' ';
|
634 |
+
$s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$this->_escape($txt));
|
635 |
+
if($this->underline)
|
636 |
+
$s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt);
|
637 |
+
if($this->ColorFlag)
|
638 |
+
$s .= ' Q';
|
639 |
+
if($link)
|
640 |
+
$this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link);
|
641 |
+
}
|
642 |
+
if($s)
|
643 |
+
$this->_out($s);
|
644 |
+
$this->lasth = $h;
|
645 |
+
if($ln>0)
|
646 |
+
{
|
647 |
+
// Go to next line
|
648 |
+
$this->y += $h;
|
649 |
+
if($ln==1)
|
650 |
+
$this->x = $this->lMargin;
|
651 |
+
}
|
652 |
+
else
|
653 |
+
$this->x += $w;
|
654 |
+
}
|
655 |
+
|
656 |
+
function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false)
|
657 |
+
{
|
658 |
+
// Output text with automatic or explicit line breaks
|
659 |
+
if(!isset($this->CurrentFont))
|
660 |
+
$this->Error('No font has been set');
|
661 |
+
$cw = &$this->CurrentFont['cw'];
|
662 |
+
if($w==0)
|
663 |
+
$w = $this->w-$this->rMargin-$this->x;
|
664 |
+
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
665 |
+
$s = str_replace("\r",'',$txt);
|
666 |
+
$nb = strlen($s);
|
667 |
+
if($nb>0 && $s[$nb-1]=="\n")
|
668 |
+
$nb--;
|
669 |
+
$b = 0;
|
670 |
+
if($border)
|
671 |
+
{
|
672 |
+
if($border==1)
|
673 |
+
{
|
674 |
+
$border = 'LTRB';
|
675 |
+
$b = 'LRT';
|
676 |
+
$b2 = 'LR';
|
677 |
+
}
|
678 |
+
else
|
679 |
+
{
|
680 |
+
$b2 = '';
|
681 |
+
if(strpos($border,'L')!==false)
|
682 |
+
$b2 .= 'L';
|
683 |
+
if(strpos($border,'R')!==false)
|
684 |
+
$b2 .= 'R';
|
685 |
+
$b = (strpos($border,'T')!==false) ? $b2.'T' : $b2;
|
686 |
+
}
|
687 |
+
}
|
688 |
+
$sep = -1;
|
689 |
+
$i = 0;
|
690 |
+
$j = 0;
|
691 |
+
$l = 0;
|
692 |
+
$ns = 0;
|
693 |
+
$nl = 1;
|
694 |
+
while($i<$nb)
|
695 |
+
{
|
696 |
+
// Get next character
|
697 |
+
$c = $s[$i];
|
698 |
+
if($c=="\n")
|
699 |
+
{
|
700 |
+
// Explicit line break
|
701 |
+
if($this->ws>0)
|
702 |
+
{
|
703 |
+
$this->ws = 0;
|
704 |
+
$this->_out('0 Tw');
|
705 |
+
}
|
706 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
707 |
+
$i++;
|
708 |
+
$sep = -1;
|
709 |
+
$j = $i;
|
710 |
+
$l = 0;
|
711 |
+
$ns = 0;
|
712 |
+
$nl++;
|
713 |
+
if($border && $nl==2)
|
714 |
+
$b = $b2;
|
715 |
+
continue;
|
716 |
+
}
|
717 |
+
if($c==' ')
|
718 |
+
{
|
719 |
+
$sep = $i;
|
720 |
+
$ls = $l;
|
721 |
+
$ns++;
|
722 |
+
}
|
723 |
+
$l += $cw[$c];
|
724 |
+
if($l>$wmax)
|
725 |
+
{
|
726 |
+
// Automatic line break
|
727 |
+
if($sep==-1)
|
728 |
+
{
|
729 |
+
if($i==$j)
|
730 |
+
$i++;
|
731 |
+
if($this->ws>0)
|
732 |
+
{
|
733 |
+
$this->ws = 0;
|
734 |
+
$this->_out('0 Tw');
|
735 |
+
}
|
736 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
737 |
+
}
|
738 |
+
else
|
739 |
+
{
|
740 |
+
if($align=='J')
|
741 |
+
{
|
742 |
+
$this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0;
|
743 |
+
$this->_out(sprintf('%.3F Tw',$this->ws*$this->k));
|
744 |
+
}
|
745 |
+
$this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill);
|
746 |
+
$i = $sep+1;
|
747 |
+
}
|
748 |
+
$sep = -1;
|
749 |
+
$j = $i;
|
750 |
+
$l = 0;
|
751 |
+
$ns = 0;
|
752 |
+
$nl++;
|
753 |
+
if($border && $nl==2)
|
754 |
+
$b = $b2;
|
755 |
+
}
|
756 |
+
else
|
757 |
+
$i++;
|
758 |
+
}
|
759 |
+
// Last chunk
|
760 |
+
if($this->ws>0)
|
761 |
+
{
|
762 |
+
$this->ws = 0;
|
763 |
+
$this->_out('0 Tw');
|
764 |
+
}
|
765 |
+
if($border && strpos($border,'B')!==false)
|
766 |
+
$b .= 'B';
|
767 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill);
|
768 |
+
$this->x = $this->lMargin;
|
769 |
+
}
|
770 |
+
|
771 |
+
function Write($h, $txt, $link='')
|
772 |
+
{
|
773 |
+
// Output text in flowing mode
|
774 |
+
if(!isset($this->CurrentFont))
|
775 |
+
$this->Error('No font has been set');
|
776 |
+
$cw = &$this->CurrentFont['cw'];
|
777 |
+
$w = $this->w-$this->rMargin-$this->x;
|
778 |
+
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
779 |
+
$s = str_replace("\r",'',$txt);
|
780 |
+
$nb = strlen($s);
|
781 |
+
$sep = -1;
|
782 |
+
$i = 0;
|
783 |
+
$j = 0;
|
784 |
+
$l = 0;
|
785 |
+
$nl = 1;
|
786 |
+
while($i<$nb)
|
787 |
+
{
|
788 |
+
// Get next character
|
789 |
+
$c = $s[$i];
|
790 |
+
if($c=="\n")
|
791 |
+
{
|
792 |
+
// Explicit line break
|
793 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);
|
794 |
+
$i++;
|
795 |
+
$sep = -1;
|
796 |
+
$j = $i;
|
797 |
+
$l = 0;
|
798 |
+
if($nl==1)
|
799 |
+
{
|
800 |
+
$this->x = $this->lMargin;
|
801 |
+
$w = $this->w-$this->rMargin-$this->x;
|
802 |
+
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
803 |
+
}
|
804 |
+
$nl++;
|
805 |
+
continue;
|
806 |
+
}
|
807 |
+
if($c==' ')
|
808 |
+
$sep = $i;
|
809 |
+
$l += $cw[$c];
|
810 |
+
if($l>$wmax)
|
811 |
+
{
|
812 |
+
// Automatic line break
|
813 |
+
if($sep==-1)
|
814 |
+
{
|
815 |
+
if($this->x>$this->lMargin)
|
816 |
+
{
|
817 |
+
// Move to next line
|
818 |
+
$this->x = $this->lMargin;
|
819 |
+
$this->y += $h;
|
820 |
+
$w = $this->w-$this->rMargin-$this->x;
|
821 |
+
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
822 |
+
$i++;
|
823 |
+
$nl++;
|
824 |
+
continue;
|
825 |
+
}
|
826 |
+
if($i==$j)
|
827 |
+
$i++;
|
828 |
+
$this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link);
|
829 |
+
}
|
830 |
+
else
|
831 |
+
{
|
832 |
+
$this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link);
|
833 |
+
$i = $sep+1;
|
834 |
+
}
|
835 |
+
$sep = -1;
|
836 |
+
$j = $i;
|
837 |
+
$l = 0;
|
838 |
+
if($nl==1)
|
839 |
+
{
|
840 |
+
$this->x = $this->lMargin;
|
841 |
+
$w = $this->w-$this->rMargin-$this->x;
|
842 |
+
$wmax = ($w-2*$this->cMargin)*1000/$this->FontSize;
|
843 |
+
}
|
844 |
+
$nl++;
|
845 |
+
}
|
846 |
+
else
|
847 |
+
$i++;
|
848 |
+
}
|
849 |
+
// Last chunk
|
850 |
+
if($i!=$j)
|
851 |
+
$this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',false,$link);
|
852 |
+
}
|
853 |
+
|
854 |
+
function Ln($h=null)
|
855 |
+
{
|
856 |
+
// Line feed; default value is the last cell height
|
857 |
+
$this->x = $this->lMargin;
|
858 |
+
if($h===null)
|
859 |
+
$this->y += $this->lasth;
|
860 |
+
else
|
861 |
+
$this->y += $h;
|
862 |
+
}
|
863 |
+
|
864 |
+
function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='')
|
865 |
+
{
|
866 |
+
// Put an image on the page
|
867 |
+
if($file=='')
|
868 |
+
$this->Error('Image file name is empty');
|
869 |
+
if(!isset($this->images[$file]))
|
870 |
+
{
|
871 |
+
// First use of this image, get info
|
872 |
+
if($type=='')
|
873 |
+
{
|
874 |
+
$pos = strrpos($file,'.');
|
875 |
+
if(!$pos)
|
876 |
+
$this->Error('Image file has no extension and no type was specified: '.$file);
|
877 |
+
$type = substr($file,$pos+1);
|
878 |
+
}
|
879 |
+
$type = strtolower($type);
|
880 |
+
if($type=='jpeg')
|
881 |
+
$type = 'jpg';
|
882 |
+
$mtd = '_parse'.$type;
|
883 |
+
if(!method_exists($this,$mtd))
|
884 |
+
$this->Error('Unsupported image type: '.$type);
|
885 |
+
$info = $this->$mtd($file);
|
886 |
+
$info['i'] = count($this->images)+1;
|
887 |
+
$this->images[$file] = $info;
|
888 |
+
}
|
889 |
+
else
|
890 |
+
$info = $this->images[$file];
|
891 |
+
|
892 |
+
// Automatic width and height calculation if needed
|
893 |
+
if($w==0 && $h==0)
|
894 |
+
{
|
895 |
+
// Put image at 96 dpi
|
896 |
+
$w = -96;
|
897 |
+
$h = -96;
|
898 |
+
}
|
899 |
+
if($w<0)
|
900 |
+
$w = -$info['w']*72/$w/$this->k;
|
901 |
+
if($h<0)
|
902 |
+
$h = -$info['h']*72/$h/$this->k;
|
903 |
+
if($w==0)
|
904 |
+
$w = $h*$info['w']/$info['h'];
|
905 |
+
if($h==0)
|
906 |
+
$h = $w*$info['h']/$info['w'];
|
907 |
+
|
908 |
+
// Flowing mode
|
909 |
+
if($y===null)
|
910 |
+
{
|
911 |
+
if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak())
|
912 |
+
{
|
913 |
+
// Automatic page break
|
914 |
+
$x2 = $this->x;
|
915 |
+
$this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation);
|
916 |
+
$this->x = $x2;
|
917 |
+
}
|
918 |
+
$y = $this->y;
|
919 |
+
$this->y += $h;
|
920 |
+
}
|
921 |
+
|
922 |
+
if($x===null)
|
923 |
+
$x = $this->x;
|
924 |
+
$this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i']));
|
925 |
+
if($link)
|
926 |
+
$this->Link($x,$y,$w,$h,$link);
|
927 |
+
}
|
928 |
+
|
929 |
+
function GetPageWidth()
|
930 |
+
{
|
931 |
+
// Get current page width
|
932 |
+
return $this->w;
|
933 |
+
}
|
934 |
+
|
935 |
+
function GetPageHeight()
|
936 |
+
{
|
937 |
+
// Get current page height
|
938 |
+
return $this->h;
|
939 |
+
}
|
940 |
+
|
941 |
+
function GetX()
|
942 |
+
{
|
943 |
+
// Get x position
|
944 |
+
return $this->x;
|
945 |
+
}
|
946 |
+
|
947 |
+
function SetX($x)
|
948 |
+
{
|
949 |
+
// Set x position
|
950 |
+
if($x>=0)
|
951 |
+
$this->x = $x;
|
952 |
+
else
|
953 |
+
$this->x = $this->w+$x;
|
954 |
+
}
|
955 |
+
|
956 |
+
function GetY()
|
957 |
+
{
|
958 |
+
// Get y position
|
959 |
+
return $this->y;
|
960 |
+
}
|
961 |
+
|
962 |
+
function SetY($y, $resetX=true)
|
963 |
+
{
|
964 |
+
// Set y position and optionally reset x
|
965 |
+
if($y>=0)
|
966 |
+
$this->y = $y;
|
967 |
+
else
|
968 |
+
$this->y = $this->h+$y;
|
969 |
+
if($resetX)
|
970 |
+
$this->x = $this->lMargin;
|
971 |
+
}
|
972 |
+
|
973 |
+
function SetXY($x, $y)
|
974 |
+
{
|
975 |
+
// Set x and y positions
|
976 |
+
$this->SetX($x);
|
977 |
+
$this->SetY($y,false);
|
978 |
+
}
|
979 |
+
|
980 |
+
function Output($dest='', $name='', $isUTF8=false)
|
981 |
+
{
|
982 |
+
// Output PDF to some destination
|
983 |
+
$this->Close();
|
984 |
+
if(strlen($name)==1 && strlen($dest)!=1)
|
985 |
+
{
|
986 |
+
// Fix parameter order
|
987 |
+
$tmp = $dest;
|
988 |
+
$dest = $name;
|
989 |
+
$name = $tmp;
|
990 |
+
}
|
991 |
+
if($dest=='')
|
992 |
+
$dest = 'I';
|
993 |
+
if($name=='')
|
994 |
+
$name = 'doc.pdf';
|
995 |
+
switch(strtoupper($dest))
|
996 |
+
{
|
997 |
+
case 'I':
|
998 |
+
// Send to standard output
|
999 |
+
$this->_checkoutput();
|
1000 |
+
if(PHP_SAPI!='cli')
|
1001 |
+
{
|
1002 |
+
// We send to a browser
|
1003 |
+
header('Content-Type: application/pdf');
|
1004 |
+
header('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8));
|
1005 |
+
header('Cache-Control: private, max-age=0, must-revalidate');
|
1006 |
+
header('Pragma: public');
|
1007 |
+
}
|
1008 |
+
echo $this->buffer;
|
1009 |
+
break;
|
1010 |
+
case 'D':
|
1011 |
+
// Download file
|
1012 |
+
$this->_checkoutput();
|
1013 |
+
header('Content-Type: application/x-download');
|
1014 |
+
header('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8));
|
1015 |
+
header('Cache-Control: private, max-age=0, must-revalidate');
|
1016 |
+
header('Pragma: public');
|
1017 |
+
echo $this->buffer;
|
1018 |
+
break;
|
1019 |
+
case 'F':
|
1020 |
+
// Save to local file
|
1021 |
+
if(!file_put_contents($name,$this->buffer))
|
1022 |
+
$this->Error('Unable to create output file: '.$name);
|
1023 |
+
break;
|
1024 |
+
case 'S':
|
1025 |
+
// Return as a string
|
1026 |
+
return $this->buffer;
|
1027 |
+
default:
|
1028 |
+
$this->Error('Incorrect output destination: '.$dest);
|
1029 |
+
}
|
1030 |
+
return '';
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
/*******************************************************************************
|
1034 |
+
* Protected methods *
|
1035 |
+
*******************************************************************************/
|
1036 |
+
|
1037 |
+
protected function _dochecks()
|
1038 |
+
{
|
1039 |
+
// Check mbstring overloading
|
1040 |
+
if(ini_get('mbstring.func_overload') & 2)
|
1041 |
+
$this->Error('mbstring overloading must be disabled');
|
1042 |
+
// Ensure runtime magic quotes are disabled
|
1043 |
+
if(get_magic_quotes_runtime())
|
1044 |
+
@set_magic_quotes_runtime(0);
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
protected function _checkoutput()
|
1048 |
+
{
|
1049 |
+
if(PHP_SAPI!='cli')
|
1050 |
+
{
|
1051 |
+
if(headers_sent($file,$line))
|
1052 |
+
$this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)");
|
1053 |
+
}
|
1054 |
+
if(ob_get_length())
|
1055 |
+
{
|
1056 |
+
// The output buffer is not empty
|
1057 |
+
if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents()))
|
1058 |
+
{
|
1059 |
+
// It contains only a UTF-8 BOM and/or whitespace, let's clean it
|
1060 |
+
ob_clean();
|
1061 |
+
}
|
1062 |
+
else
|
1063 |
+
$this->Error("Some data has already been output, can't send PDF file");
|
1064 |
+
}
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
protected function _getpagesize($size)
|
1068 |
+
{
|
1069 |
+
if(is_string($size))
|
1070 |
+
{
|
1071 |
+
$size = strtolower($size);
|
1072 |
+
if(!isset($this->StdPageSizes[$size]))
|
1073 |
+
$this->Error('Unknown page size: '.$size);
|
1074 |
+
$a = $this->StdPageSizes[$size];
|
1075 |
+
return array($a[0]/$this->k, $a[1]/$this->k);
|
1076 |
+
}
|
1077 |
+
else
|
1078 |
+
{
|
1079 |
+
if($size[0]>$size[1])
|
1080 |
+
return array($size[1], $size[0]);
|
1081 |
+
else
|
1082 |
+
return $size;
|
1083 |
+
}
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
protected function _beginpage($orientation, $size, $rotation)
|
1087 |
+
{
|
1088 |
+
$this->page++;
|
1089 |
+
$this->pages[$this->page] = '';
|
1090 |
+
$this->state = 2;
|
1091 |
+
$this->x = $this->lMargin;
|
1092 |
+
$this->y = $this->tMargin;
|
1093 |
+
$this->FontFamily = '';
|
1094 |
+
// Check page size and orientation
|
1095 |
+
if($orientation=='')
|
1096 |
+
$orientation = $this->DefOrientation;
|
1097 |
+
else
|
1098 |
+
$orientation = strtoupper($orientation[0]);
|
1099 |
+
if($size=='')
|
1100 |
+
$size = $this->DefPageSize;
|
1101 |
+
else
|
1102 |
+
$size = $this->_getpagesize($size);
|
1103 |
+
if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1])
|
1104 |
+
{
|
1105 |
+
// New size or orientation
|
1106 |
+
if($orientation=='P')
|
1107 |
+
{
|
1108 |
+
$this->w = $size[0];
|
1109 |
+
$this->h = $size[1];
|
1110 |
+
}
|
1111 |
+
else
|
1112 |
+
{
|
1113 |
+
$this->w = $size[1];
|
1114 |
+
$this->h = $size[0];
|
1115 |
+
}
|
1116 |
+
$this->wPt = $this->w*$this->k;
|
1117 |
+
$this->hPt = $this->h*$this->k;
|
1118 |
+
$this->PageBreakTrigger = $this->h-$this->bMargin;
|
1119 |
+
$this->CurOrientation = $orientation;
|
1120 |
+
$this->CurPageSize = $size;
|
1121 |
+
}
|
1122 |
+
if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1])
|
1123 |
+
$this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt);
|
1124 |
+
if($rotation!=0)
|
1125 |
+
{
|
1126 |
+
if($rotation%90!=0)
|
1127 |
+
$this->Error('Incorrect rotation value: '.$rotation);
|
1128 |
+
$this->CurRotation = $rotation;
|
1129 |
+
$this->PageInfo[$this->page]['rotation'] = $rotation;
|
1130 |
+
}
|
1131 |
+
}
|
1132 |
+
|
1133 |
+
protected function _endpage()
|
1134 |
+
{
|
1135 |
+
$this->state = 1;
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
protected function _loadfont($font)
|
1139 |
+
{
|
1140 |
+
// Load a font definition file from the font directory
|
1141 |
+
if(strpos($font,'/')!==false || strpos($font,"\\")!==false)
|
1142 |
+
$this->Error('Incorrect font definition file name: '.$font);
|
1143 |
+
include($this->fontpath.$font);
|
1144 |
+
if(!isset($name))
|
1145 |
+
$this->Error('Could not include font definition file');
|
1146 |
+
if(isset($enc))
|
1147 |
+
$enc = strtolower($enc);
|
1148 |
+
if(!isset($subsetted))
|
1149 |
+
$subsetted = false;
|
1150 |
+
return get_defined_vars();
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
protected function _isascii($s)
|
1154 |
+
{
|
1155 |
+
// Test if string is ASCII
|
1156 |
+
$nb = strlen($s);
|
1157 |
+
for($i=0;$i<$nb;$i++)
|
1158 |
+
{
|
1159 |
+
if(ord($s[$i])>127)
|
1160 |
+
return false;
|
1161 |
+
}
|
1162 |
+
return true;
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
protected function _httpencode($param, $value, $isUTF8)
|
1166 |
+
{
|
1167 |
+
// Encode HTTP header field parameter
|
1168 |
+
if($this->_isascii($value))
|
1169 |
+
return $param.'="'.$value.'"';
|
1170 |
+
if(!$isUTF8)
|
1171 |
+
$value = utf8_encode($value);
|
1172 |
+
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')!==false)
|
1173 |
+
return $param.'="'.rawurlencode($value).'"';
|
1174 |
+
else
|
1175 |
+
return $param."*=UTF-8''".rawurlencode($value);
|
1176 |
+
}
|
1177 |
+
|
1178 |
+
protected function _UTF8toUTF16($s)
|
1179 |
+
{
|
1180 |
+
// Convert UTF-8 to UTF-16BE with BOM
|
1181 |
+
$res = "\xFE\xFF";
|
1182 |
+
$nb = strlen($s);
|
1183 |
+
$i = 0;
|
1184 |
+
while($i<$nb)
|
1185 |
+
{
|
1186 |
+
$c1 = ord($s[$i++]);
|
1187 |
+
if($c1>=224)
|
1188 |
+
{
|
1189 |
+
// 3-byte character
|
1190 |
+
$c2 = ord($s[$i++]);
|
1191 |
+
$c3 = ord($s[$i++]);
|
1192 |
+
$res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2));
|
1193 |
+
$res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F));
|
1194 |
+
}
|
1195 |
+
elseif($c1>=192)
|
1196 |
+
{
|
1197 |
+
// 2-byte character
|
1198 |
+
$c2 = ord($s[$i++]);
|
1199 |
+
$res .= chr(($c1 & 0x1C)>>2);
|
1200 |
+
$res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F));
|
1201 |
+
}
|
1202 |
+
else
|
1203 |
+
{
|
1204 |
+
// Single-byte character
|
1205 |
+
$res .= "\0".chr($c1);
|
1206 |
+
}
|
1207 |
+
}
|
1208 |
+
return $res;
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
protected function _escape($s)
|
1212 |
+
{
|
1213 |
+
// Escape special characters
|
1214 |
+
if(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\')!==false || strpos($s,"\r")!==false)
|
1215 |
+
return str_replace(array('\\','(',')',"\r"), array('\\\\','\\(','\\)','\\r'), $s);
|
1216 |
+
else
|
1217 |
+
return $s;
|
1218 |
+
}
|
1219 |
+
|
1220 |
+
protected function _textstring($s)
|
1221 |
+
{
|
1222 |
+
// Format a text string
|
1223 |
+
if(!$this->_isascii($s))
|
1224 |
+
$s = $this->_UTF8toUTF16($s);
|
1225 |
+
return '('.$this->_escape($s).')';
|
1226 |
+
}
|
1227 |
+
|
1228 |
+
protected function _dounderline($x, $y, $txt)
|
1229 |
+
{
|
1230 |
+
// Underline text
|
1231 |
+
$up = $this->CurrentFont['up'];
|
1232 |
+
$ut = $this->CurrentFont['ut'];
|
1233 |
+
$w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' ');
|
1234 |
+
return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt);
|
1235 |
+
}
|
1236 |
+
|
1237 |
+
protected function _parsejpg($file)
|
1238 |
+
{
|
1239 |
+
// Extract info from a JPEG file
|
1240 |
+
$a = getimagesize($file);
|
1241 |
+
if(!$a)
|
1242 |
+
$this->Error('Missing or incorrect image file: '.$file);
|
1243 |
+
if($a[2]!=2)
|
1244 |
+
$this->Error('Not a JPEG file: '.$file);
|
1245 |
+
if(!isset($a['channels']) || $a['channels']==3)
|
1246 |
+
$colspace = 'DeviceRGB';
|
1247 |
+
elseif($a['channels']==4)
|
1248 |
+
$colspace = 'DeviceCMYK';
|
1249 |
+
else
|
1250 |
+
$colspace = 'DeviceGray';
|
1251 |
+
$bpc = isset($a['bits']) ? $a['bits'] : 8;
|
1252 |
+
$data = file_get_contents($file);
|
1253 |
+
return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data);
|
1254 |
+
}
|
1255 |
+
|
1256 |
+
protected function _parsepng($file)
|
1257 |
+
{
|
1258 |
+
// Extract info from a PNG file
|
1259 |
+
$f = fopen($file,'rb');
|
1260 |
+
if(!$f)
|
1261 |
+
$this->Error('Can\'t open image file: '.$file);
|
1262 |
+
$info = $this->_parsepngstream($f,$file);
|
1263 |
+
fclose($f);
|
1264 |
+
return $info;
|
1265 |
+
}
|
1266 |
+
|
1267 |
+
protected function _parsepngstream($f, $file)
|
1268 |
+
{
|
1269 |
+
// Check signature
|
1270 |
+
if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10))
|
1271 |
+
$this->Error('Not a PNG file: '.$file);
|
1272 |
+
|
1273 |
+
// Read header chunk
|
1274 |
+
$this->_readstream($f,4);
|
1275 |
+
if($this->_readstream($f,4)!='IHDR')
|
1276 |
+
$this->Error('Incorrect PNG file: '.$file);
|
1277 |
+
$w = $this->_readint($f);
|
1278 |
+
$h = $this->_readint($f);
|
1279 |
+
$bpc = ord($this->_readstream($f,1));
|
1280 |
+
if($bpc>8)
|
1281 |
+
$this->Error('16-bit depth not supported: '.$file);
|
1282 |
+
$ct = ord($this->_readstream($f,1));
|
1283 |
+
if($ct==0 || $ct==4)
|
1284 |
+
$colspace = 'DeviceGray';
|
1285 |
+
elseif($ct==2 || $ct==6)
|
1286 |
+
$colspace = 'DeviceRGB';
|
1287 |
+
elseif($ct==3)
|
1288 |
+
$colspace = 'Indexed';
|
1289 |
+
else
|
1290 |
+
$this->Error('Unknown color type: '.$file);
|
1291 |
+
if(ord($this->_readstream($f,1))!=0)
|
1292 |
+
$this->Error('Unknown compression method: '.$file);
|
1293 |
+
if(ord($this->_readstream($f,1))!=0)
|
1294 |
+
$this->Error('Unknown filter method: '.$file);
|
1295 |
+
if(ord($this->_readstream($f,1))!=0)
|
1296 |
+
$this->Error('Interlacing not supported: '.$file);
|
1297 |
+
$this->_readstream($f,4);
|
1298 |
+
$dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w;
|
1299 |
+
|
1300 |
+
// Scan chunks looking for palette, transparency and image data
|
1301 |
+
$pal = '';
|
1302 |
+
$trns = '';
|
1303 |
+
$data = '';
|
1304 |
+
do
|
1305 |
+
{
|
1306 |
+
$n = $this->_readint($f);
|
1307 |
+
$type = $this->_readstream($f,4);
|
1308 |
+
if($type=='PLTE')
|
1309 |
+
{
|
1310 |
+
// Read palette
|
1311 |
+
$pal = $this->_readstream($f,$n);
|
1312 |
+
$this->_readstream($f,4);
|
1313 |
+
}
|
1314 |
+
elseif($type=='tRNS')
|
1315 |
+
{
|
1316 |
+
// Read transparency info
|
1317 |
+
$t = $this->_readstream($f,$n);
|
1318 |
+
if($ct==0)
|
1319 |
+
$trns = array(ord(substr($t,1,1)));
|
1320 |
+
elseif($ct==2)
|
1321 |
+
$trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1)));
|
1322 |
+
else
|
1323 |
+
{
|
1324 |
+
$pos = strpos($t,chr(0));
|
1325 |
+
if($pos!==false)
|
1326 |
+
$trns = array($pos);
|
1327 |
+
}
|
1328 |
+
$this->_readstream($f,4);
|
1329 |
+
}
|
1330 |
+
elseif($type=='IDAT')
|
1331 |
+
{
|
1332 |
+
// Read image data block
|
1333 |
+
$data .= $this->_readstream($f,$n);
|
1334 |
+
$this->_readstream($f,4);
|
1335 |
+
}
|
1336 |
+
elseif($type=='IEND')
|
1337 |
+
break;
|
1338 |
+
else
|
1339 |
+
$this->_readstream($f,$n+4);
|
1340 |
+
}
|
1341 |
+
while($n);
|
1342 |
+
|
1343 |
+
if($colspace=='Indexed' && empty($pal))
|
1344 |
+
$this->Error('Missing palette in '.$file);
|
1345 |
+
$info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns);
|
1346 |
+
if($ct>=4)
|
1347 |
+
{
|
1348 |
+
// Extract alpha channel
|
1349 |
+
if(!function_exists('gzuncompress'))
|
1350 |
+
$this->Error('Zlib not available, can\'t handle alpha channel: '.$file);
|
1351 |
+
$data = gzuncompress($data);
|
1352 |
+
$color = '';
|
1353 |
+
$alpha = '';
|
1354 |
+
if($ct==4)
|
1355 |
+
{
|
1356 |
+
// Gray image
|
1357 |
+
$len = 2*$w;
|
1358 |
+
for($i=0;$i<$h;$i++)
|
1359 |
+
{
|
1360 |
+
$pos = (1+$len)*$i;
|
1361 |
+
$color .= $data[$pos];
|
1362 |
+
$alpha .= $data[$pos];
|
1363 |
+
$line = substr($data,$pos+1,$len);
|
1364 |
+
$color .= preg_replace('/(.)./s','$1',$line);
|
1365 |
+
$alpha .= preg_replace('/.(.)/s','$1',$line);
|
1366 |
+
}
|
1367 |
+
}
|
1368 |
+
else
|
1369 |
+
{
|
1370 |
+
// RGB image
|
1371 |
+
$len = 4*$w;
|
1372 |
+
for($i=0;$i<$h;$i++)
|
1373 |
+
{
|
1374 |
+
$pos = (1+$len)*$i;
|
1375 |
+
$color .= $data[$pos];
|
1376 |
+
$alpha .= $data[$pos];
|
1377 |
+
$line = substr($data,$pos+1,$len);
|
1378 |
+
$color .= preg_replace('/(.{3})./s','$1',$line);
|
1379 |
+
$alpha .= preg_replace('/.{3}(.)/s','$1',$line);
|
1380 |
+
}
|
1381 |
+
}
|
1382 |
+
unset($data);
|
1383 |
+
$data = gzcompress($color);
|
1384 |
+
$info['smask'] = gzcompress($alpha);
|
1385 |
+
$this->WithAlpha = true;
|
1386 |
+
if($this->PDFVersion<'1.4')
|
1387 |
+
$this->PDFVersion = '1.4';
|
1388 |
+
}
|
1389 |
+
$info['data'] = $data;
|
1390 |
+
return $info;
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
protected function _readstream($f, $n)
|
1394 |
+
{
|
1395 |
+
// Read n bytes from stream
|
1396 |
+
$res = '';
|
1397 |
+
while($n>0 && !feof($f))
|
1398 |
+
{
|
1399 |
+
$s = fread($f,$n);
|
1400 |
+
if($s===false)
|
1401 |
+
$this->Error('Error while reading stream');
|
1402 |
+
$n -= strlen($s);
|
1403 |
+
$res .= $s;
|
1404 |
+
}
|
1405 |
+
if($n>0)
|
1406 |
+
$this->Error('Unexpected end of stream');
|
1407 |
+
return $res;
|
1408 |
+
}
|
1409 |
+
|
1410 |
+
protected function _readint($f)
|
1411 |
+
{
|
1412 |
+
// Read a 4-byte integer from stream
|
1413 |
+
$a = unpack('Ni',$this->_readstream($f,4));
|
1414 |
+
return $a['i'];
|
1415 |
+
}
|
1416 |
+
|
1417 |
+
protected function _parsegif($file)
|
1418 |
+
{
|
1419 |
+
// Extract info from a GIF file (via PNG conversion)
|
1420 |
+
if(!function_exists('imagepng'))
|
1421 |
+
$this->Error('GD extension is required for GIF support');
|
1422 |
+
if(!function_exists('imagecreatefromgif'))
|
1423 |
+
$this->Error('GD has no GIF read support');
|
1424 |
+
$im = imagecreatefromgif($file);
|
1425 |
+
if(!$im)
|
1426 |
+
$this->Error('Missing or incorrect image file: '.$file);
|
1427 |
+
imageinterlace($im,0);
|
1428 |
+
ob_start();
|
1429 |
+
imagepng($im);
|
1430 |
+
$data = ob_get_clean();
|
1431 |
+
imagedestroy($im);
|
1432 |
+
$f = fopen('php://temp','rb+');
|
1433 |
+
if(!$f)
|
1434 |
+
$this->Error('Unable to create memory stream');
|
1435 |
+
fwrite($f,$data);
|
1436 |
+
rewind($f);
|
1437 |
+
$info = $this->_parsepngstream($f,$file);
|
1438 |
+
fclose($f);
|
1439 |
+
return $info;
|
1440 |
+
}
|
1441 |
+
|
1442 |
+
protected function _out($s)
|
1443 |
+
{
|
1444 |
+
// Add a line to the document
|
1445 |
+
if($this->state==2)
|
1446 |
+
$this->pages[$this->page] .= $s."\n";
|
1447 |
+
elseif($this->state==1)
|
1448 |
+
$this->_put($s);
|
1449 |
+
elseif($this->state==0)
|
1450 |
+
$this->Error('No page has been added yet');
|
1451 |
+
elseif($this->state==3)
|
1452 |
+
$this->Error('The document is closed');
|
1453 |
+
}
|
1454 |
+
|
1455 |
+
protected function _put($s)
|
1456 |
+
{
|
1457 |
+
$this->buffer .= $s."\n";
|
1458 |
+
}
|
1459 |
+
|
1460 |
+
protected function _getoffset()
|
1461 |
+
{
|
1462 |
+
return strlen($this->buffer);
|
1463 |
+
}
|
1464 |
+
|
1465 |
+
protected function _newobj($n=null)
|
1466 |
+
{
|
1467 |
+
// Begin a new object
|
1468 |
+
if($n===null)
|
1469 |
+
$n = ++$this->n;
|
1470 |
+
$this->offsets[$n] = $this->_getoffset();
|
1471 |
+
$this->_put($n.' 0 obj');
|
1472 |
+
}
|
1473 |
+
|
1474 |
+
protected function _putstream($data)
|
1475 |
+
{
|
1476 |
+
$this->_put('stream');
|
1477 |
+
$this->_put($data);
|
1478 |
+
$this->_put('endstream');
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
protected function _putstreamobject($data)
|
1482 |
+
{
|
1483 |
+
if($this->compress)
|
1484 |
+
{
|
1485 |
+
$entries = '/Filter /FlateDecode ';
|
1486 |
+
$data = gzcompress($data);
|
1487 |
+
}
|
1488 |
+
else
|
1489 |
+
$entries = '';
|
1490 |
+
$entries .= '/Length '.strlen($data);
|
1491 |
+
$this->_newobj();
|
1492 |
+
$this->_put('<<'.$entries.'>>');
|
1493 |
+
$this->_putstream($data);
|
1494 |
+
$this->_put('endobj');
|
1495 |
+
}
|
1496 |
+
|
1497 |
+
protected function _putpage($n)
|
1498 |
+
{
|
1499 |
+
$this->_newobj();
|
1500 |
+
$this->_put('<</Type /Page');
|
1501 |
+
$this->_put('/Parent 1 0 R');
|
1502 |
+
if(isset($this->PageInfo[$n]['size']))
|
1503 |
+
$this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1]));
|
1504 |
+
if(isset($this->PageInfo[$n]['rotation']))
|
1505 |
+
$this->_put('/Rotate '.$this->PageInfo[$n]['rotation']);
|
1506 |
+
$this->_put('/Resources 2 0 R');
|
1507 |
+
if(isset($this->PageLinks[$n]))
|
1508 |
+
{
|
1509 |
+
// Links
|
1510 |
+
$annots = '/Annots [';
|
1511 |
+
foreach($this->PageLinks[$n] as $pl)
|
1512 |
+
{
|
1513 |
+
$rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]);
|
1514 |
+
$annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] ';
|
1515 |
+
if(is_string($pl[4]))
|
1516 |
+
$annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>';
|
1517 |
+
else
|
1518 |
+
{
|
1519 |
+
$l = $this->links[$pl[4]];
|
1520 |
+
if(isset($this->PageInfo[$l[0]]['size']))
|
1521 |
+
$h = $this->PageInfo[$l[0]]['size'][1];
|
1522 |
+
else
|
1523 |
+
$h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k;
|
1524 |
+
$annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k);
|
1525 |
+
}
|
1526 |
+
}
|
1527 |
+
$this->_put($annots.']');
|
1528 |
+
}
|
1529 |
+
if($this->WithAlpha)
|
1530 |
+
$this->_put('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>');
|
1531 |
+
$this->_put('/Contents '.($this->n+1).' 0 R>>');
|
1532 |
+
$this->_put('endobj');
|
1533 |
+
// Page content
|
1534 |
+
if(!empty($this->AliasNbPages))
|
1535 |
+
$this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]);
|
1536 |
+
$this->_putstreamobject($this->pages[$n]);
|
1537 |
+
}
|
1538 |
+
|
1539 |
+
protected function _putpages()
|
1540 |
+
{
|
1541 |
+
$nb = $this->page;
|
1542 |
+
for($n=1;$n<=$nb;$n++)
|
1543 |
+
$this->PageInfo[$n]['n'] = $this->n+1+2*($n-1);
|
1544 |
+
for($n=1;$n<=$nb;$n++)
|
1545 |
+
$this->_putpage($n);
|
1546 |
+
// Pages root
|
1547 |
+
$this->_newobj(1);
|
1548 |
+
$this->_put('<</Type /Pages');
|
1549 |
+
$kids = '/Kids [';
|
1550 |
+
for($n=1;$n<=$nb;$n++)
|
1551 |
+
$kids .= $this->PageInfo[$n]['n'].' 0 R ';
|
1552 |
+
$this->_put($kids.']');
|
1553 |
+
$this->_put('/Count '.$nb);
|
1554 |
+
if($this->DefOrientation=='P')
|
1555 |
+
{
|
1556 |
+
$w = $this->DefPageSize[0];
|
1557 |
+
$h = $this->DefPageSize[1];
|
1558 |
+
}
|
1559 |
+
else
|
1560 |
+
{
|
1561 |
+
$w = $this->DefPageSize[1];
|
1562 |
+
$h = $this->DefPageSize[0];
|
1563 |
+
}
|
1564 |
+
$this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k));
|
1565 |
+
$this->_put('>>');
|
1566 |
+
$this->_put('endobj');
|
1567 |
+
}
|
1568 |
+
|
1569 |
+
protected function _putfonts()
|
1570 |
+
{
|
1571 |
+
foreach($this->FontFiles as $file=>$info)
|
1572 |
+
{
|
1573 |
+
// Font file embedding
|
1574 |
+
$this->_newobj();
|
1575 |
+
$this->FontFiles[$file]['n'] = $this->n;
|
1576 |
+
$font = file_get_contents($this->fontpath.$file,true);
|
1577 |
+
if(!$font)
|
1578 |
+
$this->Error('Font file not found: '.$file);
|
1579 |
+
$compressed = (substr($file,-2)=='.z');
|
1580 |
+
if(!$compressed && isset($info['length2']))
|
1581 |
+
$font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']);
|
1582 |
+
$this->_put('<</Length '.strlen($font));
|
1583 |
+
if($compressed)
|
1584 |
+
$this->_put('/Filter /FlateDecode');
|
1585 |
+
$this->_put('/Length1 '.$info['length1']);
|
1586 |
+
if(isset($info['length2']))
|
1587 |
+
$this->_put('/Length2 '.$info['length2'].' /Length3 0');
|
1588 |
+
$this->_put('>>');
|
1589 |
+
$this->_putstream($font);
|
1590 |
+
$this->_put('endobj');
|
1591 |
+
}
|
1592 |
+
foreach($this->fonts as $k=>$font)
|
1593 |
+
{
|
1594 |
+
// Encoding
|
1595 |
+
if(isset($font['diff']))
|
1596 |
+
{
|
1597 |
+
if(!isset($this->encodings[$font['enc']]))
|
1598 |
+
{
|
1599 |
+
$this->_newobj();
|
1600 |
+
$this->_put('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$font['diff'].']>>');
|
1601 |
+
$this->_put('endobj');
|
1602 |
+
$this->encodings[$font['enc']] = $this->n;
|
1603 |
+
}
|
1604 |
+
}
|
1605 |
+
// ToUnicode CMap
|
1606 |
+
if(isset($font['uv']))
|
1607 |
+
{
|
1608 |
+
if(isset($font['enc']))
|
1609 |
+
$cmapkey = $font['enc'];
|
1610 |
+
else
|
1611 |
+
$cmapkey = $font['name'];
|
1612 |
+
if(!isset($this->cmaps[$cmapkey]))
|
1613 |
+
{
|
1614 |
+
$cmap = $this->_tounicodecmap($font['uv']);
|
1615 |
+
$this->_putstreamobject($cmap);
|
1616 |
+
$this->cmaps[$cmapkey] = $this->n;
|
1617 |
+
}
|
1618 |
+
}
|
1619 |
+
// Font object
|
1620 |
+
$this->fonts[$k]['n'] = $this->n+1;
|
1621 |
+
$type = $font['type'];
|
1622 |
+
$name = $font['name'];
|
1623 |
+
if($font['subsetted'])
|
1624 |
+
$name = 'AAAAAA+'.$name;
|
1625 |
+
if($type=='Core')
|
1626 |
+
{
|
1627 |
+
// Core font
|
1628 |
+
$this->_newobj();
|
1629 |
+
$this->_put('<</Type /Font');
|
1630 |
+
$this->_put('/BaseFont /'.$name);
|
1631 |
+
$this->_put('/Subtype /Type1');
|
1632 |
+
if($name!='Symbol' && $name!='ZapfDingbats')
|
1633 |
+
$this->_put('/Encoding /WinAnsiEncoding');
|
1634 |
+
if(isset($font['uv']))
|
1635 |
+
$this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R');
|
1636 |
+
$this->_put('>>');
|
1637 |
+
$this->_put('endobj');
|
1638 |
+
}
|
1639 |
+
elseif($type=='Type1' || $type=='TrueType')
|
1640 |
+
{
|
1641 |
+
// Additional Type1 or TrueType/OpenType font
|
1642 |
+
$this->_newobj();
|
1643 |
+
$this->_put('<</Type /Font');
|
1644 |
+
$this->_put('/BaseFont /'.$name);
|
1645 |
+
$this->_put('/Subtype /'.$type);
|
1646 |
+
$this->_put('/FirstChar 32 /LastChar 255');
|
1647 |
+
$this->_put('/Widths '.($this->n+1).' 0 R');
|
1648 |
+
$this->_put('/FontDescriptor '.($this->n+2).' 0 R');
|
1649 |
+
if(isset($font['diff']))
|
1650 |
+
$this->_put('/Encoding '.$this->encodings[$font['enc']].' 0 R');
|
1651 |
+
else
|
1652 |
+
$this->_put('/Encoding /WinAnsiEncoding');
|
1653 |
+
if(isset($font['uv']))
|
1654 |
+
$this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R');
|
1655 |
+
$this->_put('>>');
|
1656 |
+
$this->_put('endobj');
|
1657 |
+
// Widths
|
1658 |
+
$this->_newobj();
|
1659 |
+
$cw = &$font['cw'];
|
1660 |
+
$s = '[';
|
1661 |
+
for($i=32;$i<=255;$i++)
|
1662 |
+
$s .= $cw[chr($i)].' ';
|
1663 |
+
$this->_put($s.']');
|
1664 |
+
$this->_put('endobj');
|
1665 |
+
// Descriptor
|
1666 |
+
$this->_newobj();
|
1667 |
+
$s = '<</Type /FontDescriptor /FontName /'.$name;
|
1668 |
+
foreach($font['desc'] as $k=>$v)
|
1669 |
+
$s .= ' /'.$k.' '.$v;
|
1670 |
+
if(!empty($font['file']))
|
1671 |
+
$s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R';
|
1672 |
+
$this->_put($s.'>>');
|
1673 |
+
$this->_put('endobj');
|
1674 |
+
}
|
1675 |
+
else
|
1676 |
+
{
|
1677 |
+
// Allow for additional types
|
1678 |
+
$mtd = '_put'.strtolower($type);
|
1679 |
+
if(!method_exists($this,$mtd))
|
1680 |
+
$this->Error('Unsupported font type: '.$type);
|
1681 |
+
$this->$mtd($font);
|
1682 |
+
}
|
1683 |
+
}
|
1684 |
+
}
|
1685 |
+
|
1686 |
+
protected function _tounicodecmap($uv)
|
1687 |
+
{
|
1688 |
+
$ranges = '';
|
1689 |
+
$nbr = 0;
|
1690 |
+
$chars = '';
|
1691 |
+
$nbc = 0;
|
1692 |
+
foreach($uv as $c=>$v)
|
1693 |
+
{
|
1694 |
+
if(is_array($v))
|
1695 |
+
{
|
1696 |
+
$ranges .= sprintf("<%02X> <%02X> <%04X>\n",$c,$c+$v[1]-1,$v[0]);
|
1697 |
+
$nbr++;
|
1698 |
+
}
|
1699 |
+
else
|
1700 |
+
{
|
1701 |
+
$chars .= sprintf("<%02X> <%04X>\n",$c,$v);
|
1702 |
+
$nbc++;
|
1703 |
+
}
|
1704 |
+
}
|
1705 |
+
$s = "/CIDInit /ProcSet findresource begin\n";
|
1706 |
+
$s .= "12 dict begin\n";
|
1707 |
+
$s .= "begincmap\n";
|
1708 |
+
$s .= "/CIDSystemInfo\n";
|
1709 |
+
$s .= "<</Registry (Adobe)\n";
|
1710 |
+
$s .= "/Ordering (UCS)\n";
|
1711 |
+
$s .= "/Supplement 0\n";
|
1712 |
+
$s .= ">> def\n";
|
1713 |
+
$s .= "/CMapName /Adobe-Identity-UCS def\n";
|
1714 |
+
$s .= "/CMapType 2 def\n";
|
1715 |
+
$s .= "1 begincodespacerange\n";
|
1716 |
+
$s .= "<00> <FF>\n";
|
1717 |
+
$s .= "endcodespacerange\n";
|
1718 |
+
if($nbr>0)
|
1719 |
+
{
|
1720 |
+
$s .= "$nbr beginbfrange\n";
|
1721 |
+
$s .= $ranges;
|
1722 |
+
$s .= "endbfrange\n";
|
1723 |
+
}
|
1724 |
+
if($nbc>0)
|
1725 |
+
{
|
1726 |
+
$s .= "$nbc beginbfchar\n";
|
1727 |
+
$s .= $chars;
|
1728 |
+
$s .= "endbfchar\n";
|
1729 |
+
}
|
1730 |
+
$s .= "endcmap\n";
|
1731 |
+
$s .= "CMapName currentdict /CMap defineresource pop\n";
|
1732 |
+
$s .= "end\n";
|
1733 |
+
$s .= "end";
|
1734 |
+
return $s;
|
1735 |
+
}
|
1736 |
+
|
1737 |
+
protected function _putimages()
|
1738 |
+
{
|
1739 |
+
foreach(array_keys($this->images) as $file)
|
1740 |
+
{
|
1741 |
+
$this->_putimage($this->images[$file]);
|
1742 |
+
unset($this->images[$file]['data']);
|
1743 |
+
unset($this->images[$file]['smask']);
|
1744 |
+
}
|
1745 |
+
}
|
1746 |
+
|
1747 |
+
protected function _putimage(&$info)
|
1748 |
+
{
|
1749 |
+
$this->_newobj();
|
1750 |
+
$info['n'] = $this->n;
|
1751 |
+
$this->_put('<</Type /XObject');
|
1752 |
+
$this->_put('/Subtype /Image');
|
1753 |
+
$this->_put('/Width '.$info['w']);
|
1754 |
+
$this->_put('/Height '.$info['h']);
|
1755 |
+
if($info['cs']=='Indexed')
|
1756 |
+
$this->_put('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]');
|
1757 |
+
else
|
1758 |
+
{
|
1759 |
+
$this->_put('/ColorSpace /'.$info['cs']);
|
1760 |
+
if($info['cs']=='DeviceCMYK')
|
1761 |
+
$this->_put('/Decode [1 0 1 0 1 0 1 0]');
|
1762 |
+
}
|
1763 |
+
$this->_put('/BitsPerComponent '.$info['bpc']);
|
1764 |
+
if(isset($info['f']))
|
1765 |
+
$this->_put('/Filter /'.$info['f']);
|
1766 |
+
if(isset($info['dp']))
|
1767 |
+
$this->_put('/DecodeParms <<'.$info['dp'].'>>');
|
1768 |
+
if(isset($info['trns']) && is_array($info['trns']))
|
1769 |
+
{
|
1770 |
+
$trns = '';
|
1771 |
+
for($i=0;$i<count($info['trns']);$i++)
|
1772 |
+
$trns .= $info['trns'][$i].' '.$info['trns'][$i].' ';
|
1773 |
+
$this->_put('/Mask ['.$trns.']');
|
1774 |
+
}
|
1775 |
+
if(isset($info['smask']))
|
1776 |
+
$this->_put('/SMask '.($this->n+1).' 0 R');
|
1777 |
+
$this->_put('/Length '.strlen($info['data']).'>>');
|
1778 |
+
$this->_putstream($info['data']);
|
1779 |
+
$this->_put('endobj');
|
1780 |
+
// Soft mask
|
1781 |
+
if(isset($info['smask']))
|
1782 |
+
{
|
1783 |
+
$dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w'];
|
1784 |
+
$smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']);
|
1785 |
+
$this->_putimage($smask);
|
1786 |
+
}
|
1787 |
+
// Palette
|
1788 |
+
if($info['cs']=='Indexed')
|
1789 |
+
$this->_putstreamobject($info['pal']);
|
1790 |
+
}
|
1791 |
+
|
1792 |
+
protected function _putxobjectdict()
|
1793 |
+
{
|
1794 |
+
foreach($this->images as $image)
|
1795 |
+
$this->_put('/I'.$image['i'].' '.$image['n'].' 0 R');
|
1796 |
+
}
|
1797 |
+
|
1798 |
+
protected function _putresourcedict()
|
1799 |
+
{
|
1800 |
+
$this->_put('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]');
|
1801 |
+
$this->_put('/Font <<');
|
1802 |
+
foreach($this->fonts as $font)
|
1803 |
+
$this->_put('/F'.$font['i'].' '.$font['n'].' 0 R');
|
1804 |
+
$this->_put('>>');
|
1805 |
+
$this->_put('/XObject <<');
|
1806 |
+
$this->_putxobjectdict();
|
1807 |
+
$this->_put('>>');
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
protected function _putresources()
|
1811 |
+
{
|
1812 |
+
$this->_putfonts();
|
1813 |
+
$this->_putimages();
|
1814 |
+
// Resource dictionary
|
1815 |
+
$this->_newobj(2);
|
1816 |
+
$this->_put('<<');
|
1817 |
+
$this->_putresourcedict();
|
1818 |
+
$this->_put('>>');
|
1819 |
+
$this->_put('endobj');
|
1820 |
+
}
|
1821 |
+
|
1822 |
+
protected function _putinfo()
|
1823 |
+
{
|
1824 |
+
$this->metadata['Producer'] = 'FPDF '.FPDF_VERSION;
|
1825 |
+
$this->metadata['CreationDate'] = 'D:'.@date('YmdHis');
|
1826 |
+
foreach($this->metadata as $key=>$value)
|
1827 |
+
$this->_put('/'.$key.' '.$this->_textstring($value));
|
1828 |
+
}
|
1829 |
+
|
1830 |
+
protected function _putcatalog()
|
1831 |
+
{
|
1832 |
+
$n = $this->PageInfo[1]['n'];
|
1833 |
+
$this->_put('/Type /Catalog');
|
1834 |
+
$this->_put('/Pages 1 0 R');
|
1835 |
+
if($this->ZoomMode=='fullpage')
|
1836 |
+
$this->_put('/OpenAction ['.$n.' 0 R /Fit]');
|
1837 |
+
elseif($this->ZoomMode=='fullwidth')
|
1838 |
+
$this->_put('/OpenAction ['.$n.' 0 R /FitH null]');
|
1839 |
+
elseif($this->ZoomMode=='real')
|
1840 |
+
$this->_put('/OpenAction ['.$n.' 0 R /XYZ null null 1]');
|
1841 |
+
elseif(!is_string($this->ZoomMode))
|
1842 |
+
$this->_put('/OpenAction ['.$n.' 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']');
|
1843 |
+
if($this->LayoutMode=='single')
|
1844 |
+
$this->_put('/PageLayout /SinglePage');
|
1845 |
+
elseif($this->LayoutMode=='continuous')
|
1846 |
+
$this->_put('/PageLayout /OneColumn');
|
1847 |
+
elseif($this->LayoutMode=='two')
|
1848 |
+
$this->_put('/PageLayout /TwoColumnLeft');
|
1849 |
+
}
|
1850 |
+
|
1851 |
+
protected function _putheader()
|
1852 |
+
{
|
1853 |
+
$this->_put('%PDF-'.$this->PDFVersion);
|
1854 |
+
}
|
1855 |
+
|
1856 |
+
protected function _puttrailer()
|
1857 |
+
{
|
1858 |
+
$this->_put('/Size '.($this->n+1));
|
1859 |
+
$this->_put('/Root '.$this->n.' 0 R');
|
1860 |
+
$this->_put('/Info '.($this->n-1).' 0 R');
|
1861 |
+
}
|
1862 |
+
|
1863 |
+
protected function _enddoc()
|
1864 |
+
{
|
1865 |
+
$this->_putheader();
|
1866 |
+
$this->_putpages();
|
1867 |
+
$this->_putresources();
|
1868 |
+
// Info
|
1869 |
+
$this->_newobj();
|
1870 |
+
$this->_put('<<');
|
1871 |
+
$this->_putinfo();
|
1872 |
+
$this->_put('>>');
|
1873 |
+
$this->_put('endobj');
|
1874 |
+
// Catalog
|
1875 |
+
$this->_newobj();
|
1876 |
+
$this->_put('<<');
|
1877 |
+
$this->_putcatalog();
|
1878 |
+
$this->_put('>>');
|
1879 |
+
$this->_put('endobj');
|
1880 |
+
// Cross-ref
|
1881 |
+
$offset = $this->_getoffset();
|
1882 |
+
$this->_put('xref');
|
1883 |
+
$this->_put('0 '.($this->n+1));
|
1884 |
+
$this->_put('0000000000 65535 f ');
|
1885 |
+
for($i=1;$i<=$this->n;$i++)
|
1886 |
+
$this->_put(sprintf('%010d 00000 n ',$this->offsets[$i]));
|
1887 |
+
// Trailer
|
1888 |
+
$this->_put('trailer');
|
1889 |
+
$this->_put('<<');
|
1890 |
+
$this->_puttrailer();
|
1891 |
+
$this->_put('>>');
|
1892 |
+
$this->_put('startxref');
|
1893 |
+
$this->_put($offset);
|
1894 |
+
$this->_put('%%EOF');
|
1895 |
+
$this->state = 3;
|
1896 |
+
}
|
1897 |
+
}
|
1898 |
+
?>
|
classes/admin/class-wc-order-export-ajax.php
CHANGED
@@ -9,11 +9,24 @@ class WC_Order_Export_Ajax {
|
|
9 |
var $_wp_using_ext_object_cache_previous;
|
10 |
|
11 |
public function save_settings() {
|
|
|
12 |
$settings = WC_Order_Export_Manage::make_new_settings( $_POST );
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
echo json_encode( array( 'id' => $id ) );
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
|
|
17 |
public function validate_url_key() {
|
18 |
$main_settings = WC_Order_Export_Admin::load_main_settings();
|
19 |
if ( ! isset( $_REQUEST['key'] ) OR $_REQUEST['key'] != $main_settings['cron_key'] ) {
|
@@ -54,12 +67,13 @@ class WC_Order_Export_Ajax {
|
|
54 |
}
|
55 |
|
56 |
public function save_settings_tab() {
|
57 |
-
|
58 |
}
|
59 |
|
60 |
public function get_products() {
|
61 |
$main_settings = WC_Order_Export_Admin::load_main_settings();
|
62 |
-
echo json_encode( WC_Order_Export_Data_Extractor_UI::get_products_like( $_REQUEST['q'],
|
|
|
63 |
}
|
64 |
|
65 |
public function get_users() {
|
9 |
var $_wp_using_ext_object_cache_previous;
|
10 |
|
11 |
public function save_settings() {
|
12 |
+
|
13 |
$settings = WC_Order_Export_Manage::make_new_settings( $_POST );
|
14 |
+
|
15 |
+
array_walk_recursive($settings, function(&$_value, $_key) {
|
16 |
+
if ($_key !== 'custom_php_code' AND $_key !== 'email_body') {
|
17 |
+
$_value = esc_attr($_value);
|
18 |
+
}
|
19 |
+
});
|
20 |
+
|
21 |
+
$id = WC_Order_Export_Manage::save_export_settings( $_POST['mode'], (int)$_POST['id'], $settings );
|
22 |
echo json_encode( array( 'id' => $id ) );
|
23 |
}
|
24 |
|
25 |
+
public function reset_profile() {
|
26 |
+
$id = WC_Order_Export_Manage::save_export_settings( $_POST['mode'], $_POST['id'], array() );
|
27 |
+
wp_send_json_success();
|
28 |
+
}
|
29 |
+
|
30 |
public function validate_url_key() {
|
31 |
$main_settings = WC_Order_Export_Admin::load_main_settings();
|
32 |
if ( ! isset( $_REQUEST['key'] ) OR $_REQUEST['key'] != $main_settings['cron_key'] ) {
|
67 |
}
|
68 |
|
69 |
public function save_settings_tab() {
|
70 |
+
WC_Order_Export_Admin::save_main_settings();
|
71 |
}
|
72 |
|
73 |
public function get_products() {
|
74 |
$main_settings = WC_Order_Export_Admin::load_main_settings();
|
75 |
+
echo json_encode( WC_Order_Export_Data_Extractor_UI::get_products_like( $_REQUEST['q'],
|
76 |
+
$main_settings['autocomplete_products_max'] ) );
|
77 |
}
|
78 |
|
79 |
public function get_users() {
|
classes/admin/class-wc-order-export-manage.php
CHANGED
@@ -65,8 +65,13 @@ class WC_Order_Export_Manage {
|
|
65 |
|
66 |
static function save_export_settings_collection( $mode, $jobs ) {
|
67 |
$name = self::get_settings_name_for_mode( $mode );
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
-
return
|
70 |
}
|
71 |
|
72 |
|
@@ -108,8 +113,16 @@ class WC_Order_Export_Manage {
|
|
108 |
}
|
109 |
}
|
110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
$settings = self::get( $in['mode'], $in['id'] );
|
112 |
-
$settings['id'] = $in['id'];
|
113 |
$settings['duplicated_fields_settings'] = isset( $in['duplicated_fields_settings'] ) ? $in['duplicated_fields_settings'] : array();
|
114 |
|
115 |
// setup new values for same keys
|
@@ -121,8 +134,7 @@ class WC_Order_Export_Manage {
|
|
121 |
'orders' => 'order_fields',
|
122 |
);
|
123 |
|
124 |
-
|
125 |
-
if ( ! in_array( $new_settings['format'], $flat_formats ) ) {
|
126 |
$sections['products'] = 'order_product_fields';
|
127 |
$sections['coupons'] = 'order_coupon_fields';
|
128 |
}
|
@@ -207,6 +219,7 @@ class WC_Order_Export_Manage {
|
|
207 |
'format_xls_display_column_names' => 1,
|
208 |
'format_xls_auto_width' => 1,
|
209 |
'format_xls_direction_rtl' => 0,
|
|
|
210 |
'format_csv_enclosure' => '"',
|
211 |
'format_csv_delimiter' => ',',
|
212 |
'format_csv_linebreak' => '\r\n',
|
@@ -226,6 +239,29 @@ class WC_Order_Export_Manage {
|
|
226 |
'format_xml_prepend_raw_xml' => '',
|
227 |
'format_xml_append_raw_xml' => '',
|
228 |
'format_xml_self_closing_tags' => 1,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
'all_products_from_order' => 1,
|
230 |
'skip_refunded_items' => 1,
|
231 |
'skip_suborders' => 0,
|
@@ -305,6 +341,31 @@ class WC_Order_Export_Manage {
|
|
305 |
}
|
306 |
}
|
307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
return array_merge( $defaults, $settings );
|
309 |
}
|
310 |
|
@@ -461,13 +522,13 @@ class WC_Order_Export_Manage {
|
|
461 |
$all_jobs = $options;// just replace
|
462 |
} elseif ( $mode == self::EXPORT_SCHEDULE ) {
|
463 |
if ( $id ) {
|
464 |
-
$options['schedule']['last_run'] = isset( $all_jobs[ $id ] ) ? $all_jobs[ $id ]['schedule']['last_run'] : current_time( "timestamp",
|
465 |
-
|
466 |
-
$options['schedule']['next_run'] = WC_Order_Export_Cron::next_event_timestamp_for_schedule( $options['schedule'],
|
467 |
-
$id );
|
468 |
$all_jobs[ $id ] = $options;
|
469 |
} else {
|
470 |
$options['schedule']['last_run'] = current_time( "timestamp", 0 );
|
|
|
471 |
$options['schedule']['next_run'] = WC_Order_Export_Cron::next_event_timestamp_for_schedule( $options['schedule'] );
|
472 |
$all_jobs[] = $options; // new job
|
473 |
end( $all_jobs );
|
@@ -485,10 +546,6 @@ class WC_Order_Export_Manage {
|
|
485 |
|
486 |
self::save_export_settings_collection( $mode, $all_jobs );
|
487 |
|
488 |
-
if ( $mode == self::EXPORT_SCHEDULE ) {
|
489 |
-
WC_Order_Export_Cron::install_job();
|
490 |
-
}
|
491 |
-
|
492 |
return $id;
|
493 |
}
|
494 |
|
@@ -626,8 +683,7 @@ class WC_Order_Export_Manage {
|
|
626 |
}
|
627 |
self::backup_settings_before_version_2( $mode );
|
628 |
|
629 |
-
$
|
630 |
-
$is_flat_format = in_array( $settings['format'], $flat_formats );
|
631 |
$is_json_format = $settings['format'] === 'JSON';
|
632 |
|
633 |
$order_fields = array();
|
@@ -660,6 +716,9 @@ class WC_Order_Export_Manage {
|
|
660 |
if ( isset( $values['value'] ) ) {
|
661 |
$field['value'] = $values['value'];
|
662 |
}
|
|
|
|
|
|
|
663 |
// end FOR STATIC FIELDS
|
664 |
|
665 |
|
@@ -756,10 +815,8 @@ class WC_Order_Export_Manage {
|
|
756 |
if ( isset( $values['value'] ) ) {
|
757 |
$order_field['value'] = $values['value'];
|
758 |
}
|
759 |
-
if ( $
|
760 |
-
|
761 |
-
$order_field['key'] = "static_field_" . $matches[1];
|
762 |
-
}
|
763 |
}
|
764 |
// end FOR STATIC FIELDS
|
765 |
|
@@ -805,7 +862,6 @@ class WC_Order_Export_Manage {
|
|
805 |
$settings['order_coupon_fields'] = $is_flat_format ? array() : $order_coupon_fields;
|
806 |
|
807 |
unset( $duplicated_fields_settings, $order_coupon_fields, $order_product_fields, $order_fields );
|
808 |
-
|
809 |
return $settings;
|
810 |
}
|
811 |
|
65 |
|
66 |
static function save_export_settings_collection( $mode, $jobs ) {
|
67 |
$name = self::get_settings_name_for_mode( $mode );
|
68 |
+
$result = update_option( $name, $jobs, false );
|
69 |
+
|
70 |
+
if ( $mode == self::EXPORT_SCHEDULE ) {
|
71 |
+
WC_Order_Export_Cron::try_install_job( true ); // must delete existing job!
|
72 |
+
}
|
73 |
|
74 |
+
return $result;
|
75 |
}
|
76 |
|
77 |
|
113 |
}
|
114 |
}
|
115 |
|
116 |
+
if ( ! isset( $in['mode'] ) ) {
|
117 |
+
$in['mode'] = null;
|
118 |
+
}
|
119 |
+
|
120 |
+
if ( ! isset( $in['id'] ) ) {
|
121 |
+
$in['id'] = null;
|
122 |
+
}
|
123 |
+
|
124 |
$settings = self::get( $in['mode'], $in['id'] );
|
125 |
+
$settings['id'] = (int)$in['id'];
|
126 |
$settings['duplicated_fields_settings'] = isset( $in['duplicated_fields_settings'] ) ? $in['duplicated_fields_settings'] : array();
|
127 |
|
128 |
// setup new values for same keys
|
134 |
'orders' => 'order_fields',
|
135 |
);
|
136 |
|
137 |
+
if ( ! WC_Order_Export_Engine::is_plain_format( $new_settings['format'] ) ) {
|
|
|
138 |
$sections['products'] = 'order_product_fields';
|
139 |
$sections['coupons'] = 'order_coupon_fields';
|
140 |
}
|
219 |
'format_xls_display_column_names' => 1,
|
220 |
'format_xls_auto_width' => 1,
|
221 |
'format_xls_direction_rtl' => 0,
|
222 |
+
'format_xls_force_general_format' => 0,
|
223 |
'format_csv_enclosure' => '"',
|
224 |
'format_csv_delimiter' => ',',
|
225 |
'format_csv_linebreak' => '\r\n',
|
239 |
'format_xml_prepend_raw_xml' => '',
|
240 |
'format_xml_append_raw_xml' => '',
|
241 |
'format_xml_self_closing_tags' => 1,
|
242 |
+
|
243 |
+
'format_pdf_display_column_names' => 1,
|
244 |
+
'format_pdf_repeat_header' => 1,
|
245 |
+
'format_pdf_orientation' => 'L',
|
246 |
+
'format_pdf_page_size' => 'A4',
|
247 |
+
'format_pdf_font_size' => 8,
|
248 |
+
'format_pdf_header_text' => '',
|
249 |
+
'format_pdf_footer_text' => '',
|
250 |
+
'format_pdf_pagination' => 'C',
|
251 |
+
'format_pdf_fit_page_width' => 0,
|
252 |
+
'format_pdf_cols_width' => '25',
|
253 |
+
'format_pdf_cols_align' => 'L',
|
254 |
+
'format_pdf_page_header_text_color' => '#000000',
|
255 |
+
'format_pdf_page_footer_text_color' => '#000000',
|
256 |
+
'format_pdf_table_header_text_color' => '#000000',
|
257 |
+
'format_pdf_table_header_background_color' => '#FFFFFF',
|
258 |
+
'format_pdf_table_row_text_color' => '#000000',
|
259 |
+
'format_pdf_table_row_background_color' => '#FFFFFF',
|
260 |
+
'format_pdf_logo_source' => '',
|
261 |
+
'format_pdf_logo_width' => 0,
|
262 |
+
'format_pdf_logo_height' => 15,
|
263 |
+
'format_pdf_logo_align' => 'R',
|
264 |
+
|
265 |
'all_products_from_order' => 1,
|
266 |
'skip_refunded_items' => 1,
|
267 |
'skip_suborders' => 0,
|
341 |
}
|
342 |
}
|
343 |
|
344 |
+
// add parent fields if not exists
|
345 |
+
foreach ( array( 'products', 'coupons' ) as $main_field ) {
|
346 |
+
if ( in_array( $main_field, wp_list_pluck( $settings['order_fields'], 'key' ) ) ) {
|
347 |
+
continue;
|
348 |
+
}
|
349 |
+
|
350 |
+
$add = false;
|
351 |
+
|
352 |
+
// get correct structure
|
353 |
+
$default = self::move_fields_key( WC_Order_Export_Data_Extractor_UI::get_order_fields( $settings['format'], (array) $main_field ) );
|
354 |
+
self::remove_unchecked_fields( $default );
|
355 |
+
|
356 |
+
foreach ( $settings['order_fields'] as $num_index => $field ) {
|
357 |
+
if ( $main_field === $field['segment'] ) {
|
358 |
+
array_splice( $settings['order_fields'], $num_index, 0, $default );
|
359 |
+
$add = true;
|
360 |
+
break;
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
if ( ! $add ) {
|
365 |
+
$settings['order_fields'][] = $default;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
|
369 |
return array_merge( $defaults, $settings );
|
370 |
}
|
371 |
|
522 |
$all_jobs = $options;// just replace
|
523 |
} elseif ( $mode == self::EXPORT_SCHEDULE ) {
|
524 |
if ( $id ) {
|
525 |
+
$options['schedule']['last_run'] = isset( $all_jobs[ $id ] ) ? $all_jobs[ $id ]['schedule']['last_run'] : current_time( "timestamp", 0 );
|
526 |
+
$options['schedule']['last_report_sent'] = isset( $all_jobs[ $id ] ) ? $all_jobs[ $id ]['schedule']['last_report_sent'] : current_time( "timestamp", 0 );
|
527 |
+
$options['schedule']['next_run'] = WC_Order_Export_Cron::next_event_timestamp_for_schedule( $options['schedule'], $id );
|
|
|
528 |
$all_jobs[ $id ] = $options;
|
529 |
} else {
|
530 |
$options['schedule']['last_run'] = current_time( "timestamp", 0 );
|
531 |
+
$options['schedule']['last_report_sent'] = current_time( "timestamp", 0 );
|
532 |
$options['schedule']['next_run'] = WC_Order_Export_Cron::next_event_timestamp_for_schedule( $options['schedule'] );
|
533 |
$all_jobs[] = $options; // new job
|
534 |
end( $all_jobs );
|
546 |
|
547 |
self::save_export_settings_collection( $mode, $all_jobs );
|
548 |
|
|
|
|
|
|
|
|
|
549 |
return $id;
|
550 |
}
|
551 |
|
683 |
}
|
684 |
self::backup_settings_before_version_2( $mode );
|
685 |
|
686 |
+
$is_flat_format = WC_Order_Export_Engine::is_plain_format( $settings['format'] );
|
|
|
687 |
$is_json_format = $settings['format'] === 'JSON';
|
688 |
|
689 |
$order_fields = array();
|
716 |
if ( isset( $values['value'] ) ) {
|
717 |
$field['value'] = $values['value'];
|
718 |
}
|
719 |
+
if ( preg_match( '/^custom_field_(\d+)/', $key, $matches ) ) {
|
720 |
+
$field['key'] = "static_field_" . $matches[1];
|
721 |
+
}
|
722 |
// end FOR STATIC FIELDS
|
723 |
|
724 |
|
815 |
if ( isset( $values['value'] ) ) {
|
816 |
$order_field['value'] = $values['value'];
|
817 |
}
|
818 |
+
if ( preg_match( '/^custom_field_(\d+)/', $key, $matches ) ) {
|
819 |
+
$order_field['key'] = "static_field_" . $matches[1];
|
|
|
|
|
820 |
}
|
821 |
// end FOR STATIC FIELDS
|
822 |
|
862 |
$settings['order_coupon_fields'] = $is_flat_format ? array() : $order_coupon_fields;
|
863 |
|
864 |
unset( $duplicated_fields_settings, $order_coupon_fields, $order_product_fields, $order_fields );
|
|
|
865 |
return $settings;
|
866 |
}
|
867 |
|
classes/class-wc-order-export-admin.php
CHANGED
@@ -7,7 +7,7 @@ class WC_Order_Export_Admin {
|
|
7 |
const settings_name_common = 'woocommerce-order-export-common';
|
8 |
var $activation_notice_option = 'woocommerce-order-export-activation-notice-shown';
|
9 |
var $step = 30;
|
10 |
-
public static $formats = array( 'XLS', 'CSV', 'XML', 'JSON', 'TSV' );
|
11 |
public static $export_types = array( 'EMAIL', 'FTP', 'HTTP', 'FOLDER', 'SFTP', 'ZAPIER' );
|
12 |
public $url_plugin;
|
13 |
public $path_plugin;
|
@@ -70,10 +70,7 @@ class WC_Order_Export_Admin {
|
|
70 |
add_action( 'woocommerce_order_status_changed', array( $this, 'wc_order_status_changed' ), 10, 3 );
|
71 |
// activate CRON hook if it was removed
|
72 |
add_action( 'wp_loaded', function () {
|
73 |
-
|
74 |
-
if ( $all_jobs ) {
|
75 |
-
WC_Order_Export_Cron::install_job();
|
76 |
-
}
|
77 |
} );
|
78 |
}
|
79 |
|
@@ -121,9 +118,8 @@ class WC_Order_Export_Admin {
|
|
121 |
}
|
122 |
|
123 |
public function install() {
|
124 |
-
//wp_clear_scheduled_hook( "wc_export_cron_global" ); //debug
|
125 |
if ( self::is_full_version() ) {
|
126 |
-
WC_Order_Export_Cron::
|
127 |
}
|
128 |
}
|
129 |
|
@@ -263,6 +259,16 @@ class WC_Order_Export_Admin {
|
|
263 |
|
264 |
public function render_tab_order_actions() {
|
265 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
267 |
$mode = WC_Order_Export_Manage::EXPORT_ORDER_ACTION;
|
268 |
$all_items = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
@@ -299,10 +305,6 @@ class WC_Order_Export_Admin {
|
|
299 |
}
|
300 |
$item_id = $_REQUEST['action_id'];
|
301 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
302 |
-
$clone = isset( $_REQUEST['clone'] ) ? $_REQUEST['clone'] : '';
|
303 |
-
if ( $clone ) {
|
304 |
-
$item_id = WC_Order_Export_Manage::clone_export_settings( $mode, $item_id );
|
305 |
-
}
|
306 |
$this->render( 'settings-form', array(
|
307 |
'mode' => $mode,
|
308 |
'id' => $item_id,
|
@@ -311,6 +313,23 @@ class WC_Order_Export_Admin {
|
|
311 |
'show' => $show,
|
312 |
) );
|
313 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
314 |
return;
|
315 |
case 'delete':
|
316 |
if ( ! isset( $_REQUEST['action_id'] ) ) {
|
@@ -319,6 +338,10 @@ class WC_Order_Export_Admin {
|
|
319 |
$item_id = $_REQUEST['action_id'];
|
320 |
unset( $all_items[ $item_id ] );
|
321 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
|
|
|
|
|
|
|
|
322 |
break;
|
323 |
case 'change_status':
|
324 |
if ( ! isset( $_REQUEST['action_id'] ) ) {
|
@@ -327,7 +350,7 @@ class WC_Order_Export_Admin {
|
|
327 |
$item_id = $_REQUEST['action_id'];
|
328 |
$all_items[ $item_id ]['active'] = $_REQUEST['status'];
|
329 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
330 |
-
$url = remove_query_arg( array( 'wc_oe', 'action_id', 'status' ) );
|
331 |
wp_redirect( $url );
|
332 |
break;
|
333 |
case 'change_statuses':
|
@@ -347,7 +370,7 @@ class WC_Order_Export_Admin {
|
|
347 |
}
|
348 |
}
|
349 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
350 |
-
$url = remove_query_arg( array( 'wc_oe', 'chosen_order_actions', 'doaction' ) );
|
351 |
wp_redirect( $url );
|
352 |
break;
|
353 |
}
|
@@ -357,6 +380,16 @@ class WC_Order_Export_Admin {
|
|
357 |
|
358 |
public function render_tab_schedules() {
|
359 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
361 |
$mode = WC_Order_Export_Manage::EXPORT_SCHEDULE;
|
362 |
$all_jobs = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
@@ -386,10 +419,6 @@ class WC_Order_Export_Admin {
|
|
386 |
}
|
387 |
$schedule_id = $_REQUEST['schedule_id'];
|
388 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
389 |
-
$clone = isset( $_REQUEST['clone'] ) ? $_REQUEST['clone'] : '';
|
390 |
-
if ( $clone ) {
|
391 |
-
$schedule_id = WC_Order_Export_Manage::clone_export_settings( $mode, $schedule_id );
|
392 |
-
}
|
393 |
$this->render( 'settings-form', array(
|
394 |
'mode' => $mode,
|
395 |
'id' => $schedule_id,
|
@@ -398,6 +427,23 @@ class WC_Order_Export_Admin {
|
|
398 |
'show' => $show,
|
399 |
) );
|
400 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
401 |
return;
|
402 |
case 'delete_schedule':
|
403 |
if ( ! isset( $_REQUEST['schedule_id'] ) ) {
|
@@ -406,6 +452,10 @@ class WC_Order_Export_Admin {
|
|
406 |
$schedule_id = $_REQUEST['schedule_id'];
|
407 |
unset( $all_jobs[ $schedule_id ] );
|
408 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
|
|
|
|
|
|
|
|
409 |
break;
|
410 |
case 'change_status_schedule':
|
411 |
if ( ! isset( $_REQUEST['schedule_id'] ) ) {
|
@@ -414,7 +464,7 @@ class WC_Order_Export_Admin {
|
|
414 |
$schedule_id = $_REQUEST['schedule_id'];
|
415 |
$all_jobs[ $schedule_id ]['active'] = $_REQUEST['status'];
|
416 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
417 |
-
$url = remove_query_arg( array( 'wc_oe', 'schedule_id', 'status' ) );
|
418 |
wp_redirect( $url );
|
419 |
break;
|
420 |
case 'change_status_schedules':
|
@@ -434,7 +484,7 @@ class WC_Order_Export_Admin {
|
|
434 |
}
|
435 |
}
|
436 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
437 |
-
$url = remove_query_arg( array( 'wc_oe', 'chosen_schedules', 'doaction' ) );
|
438 |
wp_redirect( $url );
|
439 |
break;
|
440 |
}
|
@@ -443,6 +493,17 @@ class WC_Order_Export_Admin {
|
|
443 |
|
444 |
public function render_tab_profiles() {
|
445 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
446 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
447 |
$mode = WC_Order_Export_Manage::EXPORT_PROFILE;
|
448 |
$all_items = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
@@ -472,10 +533,6 @@ class WC_Order_Export_Admin {
|
|
472 |
}
|
473 |
$profile_id = $_REQUEST['profile_id'];
|
474 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
475 |
-
$clone = isset( $_REQUEST['clone'] ) ? $_REQUEST['clone'] : '';
|
476 |
-
if ( $clone ) {
|
477 |
-
$profile_id = WC_Order_Export_Manage::clone_export_settings( $mode, $profile_id );
|
478 |
-
}
|
479 |
$this->render( 'settings-form', array(
|
480 |
'mode' => $mode,
|
481 |
'id' => $profile_id,
|
@@ -484,12 +541,30 @@ class WC_Order_Export_Admin {
|
|
484 |
'show' => $show,
|
485 |
) );
|
486 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
return;
|
488 |
case 'copy_profile_to_scheduled':
|
489 |
$profile_id = isset( $_REQUEST['profile_id'] ) ? $_REQUEST['profile_id'] : '';
|
490 |
$schedule_id = WC_Order_Export_Manage::advanced_clone_export_settings( $profile_id, $mode,
|
491 |
WC_Order_Export_Manage::EXPORT_SCHEDULE );
|
492 |
-
$url = remove_query_arg( 'profile_id' );
|
493 |
$url = add_query_arg( 'tab', 'schedules', $url );
|
494 |
$url = add_query_arg( 'wc_oe', 'edit_schedule', $url );
|
495 |
$url = add_query_arg( 'schedule_id', $schedule_id, $url );
|
@@ -499,7 +574,7 @@ class WC_Order_Export_Admin {
|
|
499 |
$profile_id = isset( $_REQUEST['profile_id'] ) ? $_REQUEST['profile_id'] : '';
|
500 |
$schedule_id = WC_Order_Export_Manage::advanced_clone_export_settings( $profile_id, $mode,
|
501 |
WC_Order_Export_Manage::EXPORT_ORDER_ACTION );
|
502 |
-
$url = remove_query_arg( 'profile_id' );
|
503 |
$url = add_query_arg( 'tab', 'order_actions', $url );
|
504 |
$url = add_query_arg( 'wc_oe', 'edit_action', $url );
|
505 |
$url = add_query_arg( 'action_id', $schedule_id, $url );
|
@@ -512,6 +587,10 @@ class WC_Order_Export_Admin {
|
|
512 |
$profile_id = $_REQUEST['profile_id'];
|
513 |
unset( $all_items[ $profile_id ] );
|
514 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
|
|
|
|
|
|
|
|
515 |
break;
|
516 |
case 'change_profile_statuses':
|
517 |
if ( ! isset( $_REQUEST['chosen_profiles'] ) AND ! isset( $_REQUEST['doaction'] ) AND - 1 == $_REQUEST['doaction'] ) {
|
@@ -530,7 +609,7 @@ class WC_Order_Export_Admin {
|
|
530 |
}
|
531 |
}
|
532 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
533 |
-
$url = remove_query_arg( array( 'wc_oe', 'chosen_profiles', 'doaction' ) );
|
534 |
wp_redirect( $url );
|
535 |
break;
|
536 |
}
|
@@ -550,9 +629,12 @@ class WC_Order_Export_Admin {
|
|
550 |
|
551 |
|
552 |
public function thematic_enqueue_scripts() {
|
|
|
|
|
553 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
554 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
555 |
wp_enqueue_script( 'jquery-ui-draggable' );
|
|
|
556 |
wp_enqueue_style( 'jquery-style',
|
557 |
'//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css' );
|
558 |
$this->enqueue_select2_scripts();
|
@@ -566,6 +648,8 @@ class WC_Order_Export_Admin {
|
|
566 |
$_REQUEST['tab'] = isset( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : $this->settings['default_tab'];
|
567 |
if ( isset( $_REQUEST['wc_oe'] ) AND ( strpos( $_REQUEST['wc_oe'], 'add_' ) === 0 OR strpos( $_REQUEST['wc_oe'],
|
568 |
'edit_' ) === 0 ) OR $_REQUEST['tab'] == 'export' ) {
|
|
|
|
|
569 |
wp_enqueue_script( 'settings-form', $this->url_plugin . 'assets/js/settings-form.js', array(),
|
570 |
WOE_VERSION );
|
571 |
|
@@ -595,6 +679,7 @@ class WC_Order_Export_Admin {
|
|
595 |
'coupons' => __( 'coupons', 'woo-order-export-lite' ),
|
596 |
),
|
597 |
'remove_all_fields_confirm' => __( 'Remove all fields?', 'woo-order-export-lite' ),
|
|
|
598 |
|
599 |
);
|
600 |
wp_localize_script( 'settings-form', 'localize_settings_form', $localize_settings_form );
|
@@ -622,7 +707,7 @@ class WC_Order_Export_Admin {
|
|
622 |
),
|
623 |
admin_url( 'admin.php' ) ) ),
|
624 |
|
625 |
-
'flat_formats' =>
|
626 |
'object_formats' => array( 'XML', 'JSON' ),
|
627 |
'xml_formats' => array( 'XML' ),
|
628 |
|
@@ -699,7 +784,7 @@ class WC_Order_Export_Admin {
|
|
699 |
) {
|
700 |
return $src;
|
701 |
}
|
702 |
-
|
703 |
return "";
|
704 |
}
|
705 |
|
@@ -735,6 +820,8 @@ class WC_Order_Export_Admin {
|
|
735 |
|
736 |
//on status change
|
737 |
public function wc_order_status_changed( $order_id, $old_status, $new_status ) {
|
|
|
|
|
738 |
$all_items = get_option( WC_Order_Export_Manage::settings_name_actions, array() );
|
739 |
if ( empty( $all_items ) ) {
|
740 |
return;
|
@@ -758,6 +845,7 @@ class WC_Order_Export_Admin {
|
|
758 |
AND
|
759 |
( empty( $item['to_status'] ) OR in_array( $new_status, $item['to_status'] ) )
|
760 |
) {
|
|
|
761 |
do_action( 'woe_order_action_started', $order_id, $item );
|
762 |
$result = WC_Order_Export_Engine::build_files_and_export( $item );
|
763 |
$output = sprintf( __( 'Status change job #%s for order #%s. Result: %s', 'woo-order-export-lite' ),
|
@@ -768,6 +856,7 @@ class WC_Order_Export_Admin {
|
|
768 |
}
|
769 |
|
770 |
do_action( 'woe_order_action_completed', $order_id, $item, $result );
|
|
|
771 |
}
|
772 |
}
|
773 |
remove_filter( 'woe_sql_get_order_ids_where', array( $this, "filter_by_changed_order" ), 10 );
|
@@ -785,6 +874,11 @@ class WC_Order_Export_Admin {
|
|
785 |
if ( isset( $_REQUEST['method'] ) ) {
|
786 |
$method = $_REQUEST['method'];
|
787 |
if ( method_exists( 'WC_Order_Export_Ajax', $method ) ) {
|
|
|
|
|
|
|
|
|
|
|
788 |
$_POST = stripslashes_deep( $_POST );
|
789 |
// parse json to arrays?
|
790 |
if ( ! empty( $_POST['json'] ) ) {
|
7 |
const settings_name_common = 'woocommerce-order-export-common';
|
8 |
var $activation_notice_option = 'woocommerce-order-export-activation-notice-shown';
|
9 |
var $step = 30;
|
10 |
+
public static $formats = array( 'XLS', 'CSV', 'XML', 'JSON', 'TSV', 'PDF' );
|
11 |
public static $export_types = array( 'EMAIL', 'FTP', 'HTTP', 'FOLDER', 'SFTP', 'ZAPIER' );
|
12 |
public $url_plugin;
|
13 |
public $path_plugin;
|
70 |
add_action( 'woocommerce_order_status_changed', array( $this, 'wc_order_status_changed' ), 10, 3 );
|
71 |
// activate CRON hook if it was removed
|
72 |
add_action( 'wp_loaded', function () {
|
73 |
+
WC_Order_Export_Cron::try_install_job();
|
|
|
|
|
|
|
74 |
} );
|
75 |
}
|
76 |
|
118 |
}
|
119 |
|
120 |
public function install() {
|
|
|
121 |
if ( self::is_full_version() ) {
|
122 |
+
WC_Order_Export_Cron::try_install_job();
|
123 |
}
|
124 |
}
|
125 |
|
259 |
|
260 |
public function render_tab_order_actions() {
|
261 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
262 |
+
|
263 |
+
if (in_array($wc_oe, array(
|
264 |
+
'copy_action',
|
265 |
+
'delete',
|
266 |
+
'change_status',
|
267 |
+
'change_statuses',
|
268 |
+
)) && !check_admin_referer( 'woe_nonce', 'woe_nonce' )) {
|
269 |
+
return;
|
270 |
+
}
|
271 |
+
|
272 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
273 |
$mode = WC_Order_Export_Manage::EXPORT_ORDER_ACTION;
|
274 |
$all_items = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
305 |
}
|
306 |
$item_id = $_REQUEST['action_id'];
|
307 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
|
|
|
|
|
|
|
|
308 |
$this->render( 'settings-form', array(
|
309 |
'mode' => $mode,
|
310 |
'id' => $item_id,
|
313 |
'show' => $show,
|
314 |
) );
|
315 |
|
316 |
+
return;
|
317 |
+
case 'copy_action':
|
318 |
+
if ( ! isset( $_REQUEST['action_id'] ) ) {
|
319 |
+
break;
|
320 |
+
}
|
321 |
+
$item_id = $_REQUEST['action_id'];
|
322 |
+
$item_id = WC_Order_Export_Manage::clone_export_settings( $mode, $item_id );
|
323 |
+
|
324 |
+
$url = add_query_arg( array(
|
325 |
+
'action_id' => $item_id,
|
326 |
+
'wc_oe' => 'edit_action',
|
327 |
+
));
|
328 |
+
|
329 |
+
$url = remove_query_arg(array('woe_nonce'), $url);
|
330 |
+
|
331 |
+
wp_redirect( $url );
|
332 |
+
|
333 |
return;
|
334 |
case 'delete':
|
335 |
if ( ! isset( $_REQUEST['action_id'] ) ) {
|
338 |
$item_id = $_REQUEST['action_id'];
|
339 |
unset( $all_items[ $item_id ] );
|
340 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
341 |
+
|
342 |
+
$url = remove_query_arg( array( 'wc_oe', 'action_id', 'woe_nonce' ) );
|
343 |
+
wp_redirect( $url );
|
344 |
+
|
345 |
break;
|
346 |
case 'change_status':
|
347 |
if ( ! isset( $_REQUEST['action_id'] ) ) {
|
350 |
$item_id = $_REQUEST['action_id'];
|
351 |
$all_items[ $item_id ]['active'] = $_REQUEST['status'];
|
352 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
353 |
+
$url = remove_query_arg( array( 'wc_oe', 'action_id', 'status', 'woe_nonce' ) );
|
354 |
wp_redirect( $url );
|
355 |
break;
|
356 |
case 'change_statuses':
|
370 |
}
|
371 |
}
|
372 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
373 |
+
$url = remove_query_arg( array( 'wc_oe', 'chosen_order_actions', 'doaction', 'woe_nonce' ) );
|
374 |
wp_redirect( $url );
|
375 |
break;
|
376 |
}
|
380 |
|
381 |
public function render_tab_schedules() {
|
382 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
383 |
+
|
384 |
+
if (in_array($wc_oe, array(
|
385 |
+
'copy_schedule',
|
386 |
+
'delete_schedule',
|
387 |
+
'change_status_schedule',
|
388 |
+
'change_status_schedules',
|
389 |
+
)) && !check_admin_referer( 'woe_nonce', 'woe_nonce' )) {
|
390 |
+
return;
|
391 |
+
}
|
392 |
+
|
393 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
394 |
$mode = WC_Order_Export_Manage::EXPORT_SCHEDULE;
|
395 |
$all_jobs = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
419 |
}
|
420 |
$schedule_id = $_REQUEST['schedule_id'];
|
421 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
|
|
|
|
|
|
|
|
422 |
$this->render( 'settings-form', array(
|
423 |
'mode' => $mode,
|
424 |
'id' => $schedule_id,
|
427 |
'show' => $show,
|
428 |
) );
|
429 |
|
430 |
+
return;
|
431 |
+
case 'copy_schedule':
|
432 |
+
if ( ! isset( $_REQUEST['schedule_id'] ) ) {
|
433 |
+
break;
|
434 |
+
}
|
435 |
+
$schedule_id = $_REQUEST['schedule_id'];
|
436 |
+
$schedule_id = WC_Order_Export_Manage::clone_export_settings( $mode, $schedule_id );
|
437 |
+
|
438 |
+
$url = add_query_arg( array(
|
439 |
+
'schedule_id' => $schedule_id,
|
440 |
+
'wc_oe' => 'edit_schedule',
|
441 |
+
));
|
442 |
+
|
443 |
+
$url = remove_query_arg(array('woe_nonce'), $url);
|
444 |
+
|
445 |
+
wp_redirect( $url );
|
446 |
+
|
447 |
return;
|
448 |
case 'delete_schedule':
|
449 |
if ( ! isset( $_REQUEST['schedule_id'] ) ) {
|
452 |
$schedule_id = $_REQUEST['schedule_id'];
|
453 |
unset( $all_jobs[ $schedule_id ] );
|
454 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
455 |
+
|
456 |
+
$url = remove_query_arg( array( 'wc_oe', 'schedule_id', 'woe_nonce' ) );
|
457 |
+
wp_redirect( $url );
|
458 |
+
|
459 |
break;
|
460 |
case 'change_status_schedule':
|
461 |
if ( ! isset( $_REQUEST['schedule_id'] ) ) {
|
464 |
$schedule_id = $_REQUEST['schedule_id'];
|
465 |
$all_jobs[ $schedule_id ]['active'] = $_REQUEST['status'];
|
466 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
467 |
+
$url = remove_query_arg( array( 'wc_oe', 'schedule_id', 'status', 'woe_nonce' ) );
|
468 |
wp_redirect( $url );
|
469 |
break;
|
470 |
case 'change_status_schedules':
|
484 |
}
|
485 |
}
|
486 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_jobs );
|
487 |
+
$url = remove_query_arg( array( 'wc_oe', 'chosen_schedules', 'doaction', 'woe_nonce' ) );
|
488 |
wp_redirect( $url );
|
489 |
break;
|
490 |
}
|
493 |
|
494 |
public function render_tab_profiles() {
|
495 |
$wc_oe = isset( $_REQUEST['wc_oe'] ) ? $_REQUEST['wc_oe'] : '';
|
496 |
+
|
497 |
+
if (in_array($wc_oe, array(
|
498 |
+
'copy_profile',
|
499 |
+
'copy_profile_to_scheduled',
|
500 |
+
'copy_profile_to_actions',
|
501 |
+
'delete_profile',
|
502 |
+
'change_profile_statuses',
|
503 |
+
)) && !check_admin_referer( 'woe_nonce', 'woe_nonce' )) {
|
504 |
+
return;
|
505 |
+
}
|
506 |
+
|
507 |
$ajaxurl = admin_url( 'admin-ajax.php' );
|
508 |
$mode = WC_Order_Export_Manage::EXPORT_PROFILE;
|
509 |
$all_items = WC_Order_Export_Manage::get_export_settings_collection( $mode );
|
533 |
}
|
534 |
$profile_id = $_REQUEST['profile_id'];
|
535 |
WC_Order_Export_Manage::$edit_existing_job = true;
|
|
|
|
|
|
|
|
|
536 |
$this->render( 'settings-form', array(
|
537 |
'mode' => $mode,
|
538 |
'id' => $profile_id,
|
541 |
'show' => $show,
|
542 |
) );
|
543 |
|
544 |
+
return;
|
545 |
+
case 'copy_profile':
|
546 |
+
if ( ! isset( $_REQUEST['profile_id'] ) ) {
|
547 |
+
break;
|
548 |
+
}
|
549 |
+
|
550 |
+
$profile_id = $_REQUEST['profile_id'];
|
551 |
+
$profile_id = WC_Order_Export_Manage::clone_export_settings( $mode, $profile_id );
|
552 |
+
|
553 |
+
$url = add_query_arg( array(
|
554 |
+
'profile_id' => $profile_id,
|
555 |
+
'wc_oe' => 'edit_profile',
|
556 |
+
));
|
557 |
+
|
558 |
+
$url = remove_query_arg(array('woe_nonce'), $url);
|
559 |
+
|
560 |
+
wp_redirect( $url );
|
561 |
+
|
562 |
return;
|
563 |
case 'copy_profile_to_scheduled':
|
564 |
$profile_id = isset( $_REQUEST['profile_id'] ) ? $_REQUEST['profile_id'] : '';
|
565 |
$schedule_id = WC_Order_Export_Manage::advanced_clone_export_settings( $profile_id, $mode,
|
566 |
WC_Order_Export_Manage::EXPORT_SCHEDULE );
|
567 |
+
$url = remove_query_arg( array('profile_id', 'woe_nonce') );
|
568 |
$url = add_query_arg( 'tab', 'schedules', $url );
|
569 |
$url = add_query_arg( 'wc_oe', 'edit_schedule', $url );
|
570 |
$url = add_query_arg( 'schedule_id', $schedule_id, $url );
|
574 |
$profile_id = isset( $_REQUEST['profile_id'] ) ? $_REQUEST['profile_id'] : '';
|
575 |
$schedule_id = WC_Order_Export_Manage::advanced_clone_export_settings( $profile_id, $mode,
|
576 |
WC_Order_Export_Manage::EXPORT_ORDER_ACTION );
|
577 |
+
$url = remove_query_arg( array('profile_id', 'woe_nonce') );
|
578 |
$url = add_query_arg( 'tab', 'order_actions', $url );
|
579 |
$url = add_query_arg( 'wc_oe', 'edit_action', $url );
|
580 |
$url = add_query_arg( 'action_id', $schedule_id, $url );
|
587 |
$profile_id = $_REQUEST['profile_id'];
|
588 |
unset( $all_items[ $profile_id ] );
|
589 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
590 |
+
|
591 |
+
$url = remove_query_arg( array( 'wc_oe', 'profile_id', 'woe_nonce' ) );
|
592 |
+
wp_redirect( $url );
|
593 |
+
|
594 |
break;
|
595 |
case 'change_profile_statuses':
|
596 |
if ( ! isset( $_REQUEST['chosen_profiles'] ) AND ! isset( $_REQUEST['doaction'] ) AND - 1 == $_REQUEST['doaction'] ) {
|
609 |
}
|
610 |
}
|
611 |
WC_Order_Export_Manage::save_export_settings_collection( $mode, $all_items );
|
612 |
+
$url = remove_query_arg( array( 'wc_oe', 'chosen_profiles', 'doaction', 'woe_nonce' ) );
|
613 |
wp_redirect( $url );
|
614 |
break;
|
615 |
}
|
629 |
|
630 |
|
631 |
public function thematic_enqueue_scripts() {
|
632 |
+
wp_enqueue_media();
|
633 |
+
|
634 |
wp_enqueue_script( 'jquery-ui-datepicker' );
|
635 |
wp_enqueue_script( 'jquery-ui-sortable' );
|
636 |
wp_enqueue_script( 'jquery-ui-draggable' );
|
637 |
+
wp_enqueue_script( 'jquery-touch-punch' );
|
638 |
wp_enqueue_style( 'jquery-style',
|
639 |
'//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css' );
|
640 |
$this->enqueue_select2_scripts();
|
648 |
$_REQUEST['tab'] = isset( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : $this->settings['default_tab'];
|
649 |
if ( isset( $_REQUEST['wc_oe'] ) AND ( strpos( $_REQUEST['wc_oe'], 'add_' ) === 0 OR strpos( $_REQUEST['wc_oe'],
|
650 |
'edit_' ) === 0 ) OR $_REQUEST['tab'] == 'export' ) {
|
651 |
+
wp_enqueue_script( 'wp-color-picker' );
|
652 |
+
wp_enqueue_style( 'wp-color-picker' );
|
653 |
wp_enqueue_script( 'settings-form', $this->url_plugin . 'assets/js/settings-form.js', array(),
|
654 |
WOE_VERSION );
|
655 |
|
679 |
'coupons' => __( 'coupons', 'woo-order-export-lite' ),
|
680 |
),
|
681 |
'remove_all_fields_confirm' => __( 'Remove all fields?', 'woo-order-export-lite' ),
|
682 |
+
'reset_profile_confirm' => __( 'This action will reset filters, settings and fields to default state. Are you sure?', 'woo-order-export-lite' ),
|
683 |
|
684 |
);
|
685 |
wp_localize_script( 'settings-form', 'localize_settings_form', $localize_settings_form );
|
707 |
),
|
708 |
admin_url( 'admin.php' ) ) ),
|
709 |
|
710 |
+
'flat_formats' => array_map('strtoupper', WC_Order_Export_Engine::get_plain_formats()),
|
711 |
'object_formats' => array( 'XML', 'JSON' ),
|
712 |
'xml_formats' => array( 'XML' ),
|
713 |
|
784 |
) {
|
785 |
return $src;
|
786 |
}
|
787 |
+
|
788 |
return "";
|
789 |
}
|
790 |
|
820 |
|
821 |
//on status change
|
822 |
public function wc_order_status_changed( $order_id, $old_status, $new_status ) {
|
823 |
+
global $wp_filter;
|
824 |
+
|
825 |
$all_items = get_option( WC_Order_Export_Manage::settings_name_actions, array() );
|
826 |
if ( empty( $all_items ) ) {
|
827 |
return;
|
845 |
AND
|
846 |
( empty( $item['to_status'] ) OR in_array( $new_status, $item['to_status'] ) )
|
847 |
) {
|
848 |
+
$filters = $wp_filter;//remember hooks/filters
|
849 |
do_action( 'woe_order_action_started', $order_id, $item );
|
850 |
$result = WC_Order_Export_Engine::build_files_and_export( $item );
|
851 |
$output = sprintf( __( 'Status change job #%s for order #%s. Result: %s', 'woo-order-export-lite' ),
|
856 |
}
|
857 |
|
858 |
do_action( 'woe_order_action_completed', $order_id, $item, $result );
|
859 |
+
$wp_filter = $filters;//reset hooks/filters
|
860 |
}
|
861 |
}
|
862 |
remove_filter( 'woe_sql_get_order_ids_where', array( $this, "filter_by_changed_order" ), 10 );
|
874 |
if ( isset( $_REQUEST['method'] ) ) {
|
875 |
$method = $_REQUEST['method'];
|
876 |
if ( method_exists( 'WC_Order_Export_Ajax', $method ) ) {
|
877 |
+
|
878 |
+
if ($_POST && !check_admin_referer( 'woe_nonce', 'woe_nonce' )) {
|
879 |
+
return;
|
880 |
+
}
|
881 |
+
|
882 |
$_POST = stripslashes_deep( $_POST );
|
883 |
// parse json to arrays?
|
884 |
if ( ! empty( $_POST['json'] ) ) {
|
classes/core/class-wc-order-export-data-extractor-ui.php
CHANGED
@@ -146,14 +146,14 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
146 |
SELECT post.ID as id,post.post_title as text,att.ID as photo_id,att.guid as photo_url
|
147 |
FROM " . $wpdb->posts . " as post
|
148 |
LEFT JOIN " . $wpdb->posts . " AS att ON post.ID=att.post_parent AND att.post_type='attachment'
|
149 |
-
WHERE post.post_title LIKE
|
150 |
AND post.post_type = 'product'
|
151 |
AND post.post_status <> 'trash'
|
152 |
GROUP BY post.ID
|
153 |
ORDER BY post.post_title
|
154 |
LIMIT " . intval( $limit );
|
155 |
|
156 |
-
$products = $wpdb->get_results( $query );
|
157 |
foreach ( $products as $key => $product ) {
|
158 |
if ( $product->photo_id ) {
|
159 |
$photo = wp_get_attachment_image_src( $product->photo_id, 'thumbnail' );
|
@@ -190,14 +190,14 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
190 |
$query = "
|
191 |
SELECT post.post_title as id, post.post_title as text
|
192 |
FROM " . $wpdb->posts . " as post
|
193 |
-
WHERE post.post_title LIKE
|
194 |
AND post.post_type = 'shop_coupon'
|
195 |
AND post.post_status <> 'trash'
|
196 |
ORDER BY post.post_title
|
197 |
LIMIT 0,10
|
198 |
";
|
199 |
|
200 |
-
return $wpdb->get_results( $query );
|
201 |
}
|
202 |
|
203 |
public static function get_categories_like( $like ) {
|
@@ -602,22 +602,23 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
602 |
}
|
603 |
|
604 |
|
605 |
-
public static function get_order_fields( $format ) {
|
606 |
-
$
|
607 |
-
|
608 |
-
array(
|
609 |
'common',
|
610 |
'user',
|
611 |
'billing',
|
612 |
'shipping',
|
613 |
-
'
|
614 |
-
'
|
615 |
'cart',
|
616 |
'ship_calc',
|
617 |
'totals',
|
618 |
'misc',
|
619 |
-
)
|
620 |
-
|
|
|
|
|
621 |
$method = "get_order_fields_" . $segment;
|
622 |
$map_segment = self::$method();
|
623 |
|
@@ -796,6 +797,11 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
796 |
'checked' => 0,
|
797 |
'format' => 'string',
|
798 |
),
|
|
|
|
|
|
|
|
|
|
|
799 |
'billing_state_full' => array(
|
800 |
'label' => __( 'State Name (Billing)', 'woo-order-export-lite' ),
|
801 |
'checked' => 0,
|
@@ -881,6 +887,11 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
881 |
'checked' => 0,
|
882 |
'format' => 'string',
|
883 |
),
|
|
|
|
|
|
|
|
|
|
|
884 |
'shipping_state_full' => array(
|
885 |
'label' => __( 'State Name (Shipping)', 'woo-order-export-lite' ),
|
886 |
'checked' => 0,
|
@@ -905,7 +916,7 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
905 |
}
|
906 |
|
907 |
// meta
|
908 |
-
public static function
|
909 |
return array(
|
910 |
'products' => array(
|
911 |
'label' => __( 'Products', 'woo-order-export-lite' ),
|
@@ -917,7 +928,7 @@ class WC_Order_Export_Data_Extractor_UI extends WC_Order_Export_Data_Extractor {
|
|
917 |
}
|
918 |
|
919 |
// meta
|
920 |
-
public static function
|
921 |
return array(
|
922 |
'coupons' => array(
|
923 |
'label' => __( 'Coupons', 'woo-order-export-lite' ),
|
146 |
SELECT post.ID as id,post.post_title as text,att.ID as photo_id,att.guid as photo_url
|
147 |
FROM " . $wpdb->posts . " as post
|
148 |
LEFT JOIN " . $wpdb->posts . " AS att ON post.ID=att.post_parent AND att.post_type='attachment'
|
149 |
+
WHERE post.post_title LIKE %s
|
150 |
AND post.post_type = 'product'
|
151 |
AND post.post_status <> 'trash'
|
152 |
GROUP BY post.ID
|
153 |
ORDER BY post.post_title
|
154 |
LIMIT " . intval( $limit );
|
155 |
|
156 |
+
$products = $wpdb->get_results( $wpdb->prepare($query, '%'.$like.'%') );
|
157 |
foreach ( $products as $key => $product ) {
|
158 |
if ( $product->photo_id ) {
|
159 |
$photo = wp_get_attachment_image_src( $product->photo_id, 'thumbnail' );
|
190 |
$query = "
|
191 |
SELECT post.post_title as id, post.post_title as text
|
192 |
FROM " . $wpdb->posts . " as post
|
193 |
+
WHERE post.post_title LIKE %s
|
194 |
AND post.post_type = 'shop_coupon'
|
195 |
AND post.post_status <> 'trash'
|
196 |
ORDER BY post.post_title
|
197 |
LIMIT 0,10
|
198 |
";
|
199 |
|
200 |
+
return $wpdb->get_results( $wpdb->prepare($query, '%'.$like.'%') );
|
201 |
}
|
202 |
|
203 |
public static function get_categories_like( $like ) {
|
602 |
}
|
603 |
|
604 |
|
605 |
+
public static function get_order_fields( $format, $segments = array() ) {
|
606 |
+
if ( ! $segments ) {
|
607 |
+
$segments = array(
|
|
|
608 |
'common',
|
609 |
'user',
|
610 |
'billing',
|
611 |
'shipping',
|
612 |
+
'products',
|
613 |
+
'coupons',
|
614 |
'cart',
|
615 |
'ship_calc',
|
616 |
'totals',
|
617 |
'misc',
|
618 |
+
);
|
619 |
+
}
|
620 |
+
$map = array();
|
621 |
+
foreach ( $segments as $segment ) {
|
622 |
$method = "get_order_fields_" . $segment;
|
623 |
$map_segment = self::$method();
|
624 |
|
797 |
'checked' => 0,
|
798 |
'format' => 'string',
|
799 |
),
|
800 |
+
'billing_citystatezip_us' => array(
|
801 |
+
'label' => __( 'City, State Zip (Billing)', 'woo-order-export-lite' ),
|
802 |
+
'checked' => 0,
|
803 |
+
'format' => 'string',
|
804 |
+
),
|
805 |
'billing_state_full' => array(
|
806 |
'label' => __( 'State Name (Billing)', 'woo-order-export-lite' ),
|
807 |
'checked' => 0,
|
887 |
'checked' => 0,
|
888 |
'format' => 'string',
|
889 |
),
|
890 |
+
'shipping_citystatezip_us' => array(
|
891 |
+
'label' => __( 'City, State Zip (Shipping)', 'woo-order-export-lite' ),
|
892 |
+
'checked' => 0,
|
893 |
+
'format' => 'string',
|
894 |
+
),
|
895 |
'shipping_state_full' => array(
|
896 |
'label' => __( 'State Name (Shipping)', 'woo-order-export-lite' ),
|
897 |
'checked' => 0,
|
916 |
}
|
917 |
|
918 |
// meta
|
919 |
+
public static function get_order_fields_products() {
|
920 |
return array(
|
921 |
'products' => array(
|
922 |
'label' => __( 'Products', 'woo-order-export-lite' ),
|
928 |
}
|
929 |
|
930 |
// meta
|
931 |
+
public static function get_order_fields_coupons() {
|
932 |
return array(
|
933 |
'coupons' => array(
|
934 |
'label' => __( 'Coupons', 'woo-order-export-lite' ),
|
classes/core/class-wc-order-export-data-extractor.php
CHANGED
@@ -438,7 +438,7 @@ class WC_Order_Export_Data_Extractor {
|
|
438 |
// we have to use variations , if user sets product attributes
|
439 |
if ( $settings['products'] AND $settings['product_attributes'] ) {
|
440 |
$values = self::sql_subset( $settings['products'] );
|
441 |
-
$sql = "SELECT DISTINCT ID FROM {$wpdb->posts} AS products WHERE products.post_type in ('product','product_variation') AND products.post_status<>'trash' AND post_parent IN ($values)";
|
442 |
$settings['products'] = $wpdb->get_col( $sql );
|
443 |
if ( empty( $settings['products'] ) ) // failed condition!
|
444 |
{
|
@@ -494,7 +494,7 @@ class WC_Order_Export_Data_Extractor {
|
|
494 |
// get products and variations!
|
495 |
$product_category_where = "AND orderitemmeta_product.meta_value IN
|
496 |
(
|
497 |
-
SELECT DISTINCT ID FROM {$wpdb->posts} AS product_category_variations WHERE post_parent IN ($product_category_where)
|
498 |
UNION
|
499 |
$product_category_where
|
500 |
)
|
@@ -1243,6 +1243,7 @@ class WC_Order_Export_Data_Extractor {
|
|
1243 |
$product_fields_with_tags = array( 'product_variation', 'post_content', 'post_excerpt' );
|
1244 |
$products = array();
|
1245 |
$i = 0;
|
|
|
1246 |
foreach ( $order->get_items( 'line_item' ) as $item_id => $item ) {
|
1247 |
do_action( "woe_get_order_product_item", $item );
|
1248 |
if ( $options['export_refunds'] AND $item['qty'] == 0 ) // skip zero items, when export refunds
|
@@ -1425,7 +1426,7 @@ class WC_Order_Export_Data_Extractor {
|
|
1425 |
'full' ) : false;
|
1426 |
$row[ $field ] = is_array( $images_src ) ? current( $images_src ) : '';
|
1427 |
} elseif ( $field == 'full_category_names' ) {
|
1428 |
-
$row[ $field ] = self::get_product_category_full( $
|
1429 |
} elseif ( isset( $static_vals[ $field ] ) ) {
|
1430 |
$row[ $field ] = $static_vals[ $field ];
|
1431 |
} elseif ( isset( $item_meta[ $field ] ) ) { //meta from order
|
@@ -1485,12 +1486,12 @@ class WC_Order_Export_Data_Extractor {
|
|
1485 |
*
|
1486 |
* @return string
|
1487 |
*/
|
1488 |
-
public static function get_product_category_full( $
|
1489 |
$full_names = array();
|
1490 |
-
if ( ! $
|
1491 |
return '';
|
1492 |
}
|
1493 |
-
$prod_terms = get_the_terms( $
|
1494 |
if ( ! $prod_terms ) {
|
1495 |
return '';
|
1496 |
}
|
@@ -1639,12 +1640,13 @@ class WC_Order_Export_Data_Extractor {
|
|
1639 |
// extra WP_User
|
1640 |
$user = ! empty( $order_meta['_customer_user'] ) ? get_userdata( $order_meta['_customer_user'] ) : false;
|
1641 |
// setup missed fields for full addresses
|
1642 |
-
foreach ( array( '_billing_address_2', '_shipping_address_2' ) as $optional_field ) {
|
1643 |
if ( ! isset( $order_meta[ $optional_field ] ) ) {
|
1644 |
$order_meta[ $optional_field ] = '';
|
1645 |
}
|
1646 |
}
|
1647 |
|
|
|
1648 |
|
1649 |
// fill as it must
|
1650 |
foreach ( $labels['order']->get_fetch_fields() as $field ) {
|
@@ -1749,8 +1751,12 @@ class WC_Order_Export_Data_Extractor {
|
|
1749 |
$row[ $field ] = isset( $country_states[ $shipping_state ] ) ? html_entity_decode( $country_states[ $shipping_state ] ) : $shipping_state;
|
1750 |
} elseif ( $field == 'billing_citystatezip' ) {
|
1751 |
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'billing' );
|
|
|
|
|
1752 |
} elseif ( $field == 'shipping_citystatezip' ) {
|
1753 |
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'shipping' );
|
|
|
|
|
1754 |
} elseif ( $field == 'products' OR $field == 'coupons' ) {
|
1755 |
if ( isset( $data[ $field ] ) ) {
|
1756 |
$row[ $field ] = $data[ $field ];
|
@@ -1865,7 +1871,7 @@ class WC_Order_Export_Data_Extractor {
|
|
1865 |
return $row;
|
1866 |
}
|
1867 |
|
1868 |
-
public static function get_city_state_postcode_field_value( $order, $type ) {
|
1869 |
if ( $type != 'shipping' && $type != 'billing' ) {
|
1870 |
return null;
|
1871 |
}
|
@@ -1880,7 +1886,14 @@ class WC_Order_Export_Data_Extractor {
|
|
1880 |
'get_' . $field_name ) ? $order->{'get_' . $field_name}() : $order->{$field_name};
|
1881 |
}
|
1882 |
|
1883 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1884 |
}
|
1885 |
|
1886 |
public static function get_order_shipping_tax_refunded( $order_id ) {
|
@@ -1922,6 +1935,7 @@ class WC_Order_Export_Data_Extractor {
|
|
1922 |
'_line_tax',
|
1923 |
'method_id',
|
1924 |
'cost',
|
|
|
1925 |
) );
|
1926 |
|
1927 |
$result = array();
|
438 |
// we have to use variations , if user sets product attributes
|
439 |
if ( $settings['products'] AND $settings['product_attributes'] ) {
|
440 |
$values = self::sql_subset( $settings['products'] );
|
441 |
+
$sql = "SELECT DISTINCT ID FROM {$wpdb->posts} AS products WHERE products.post_type in ('product','product_variation') AND products.post_status<>'trash' AND post_parent<>0 AND post_parent IN ($values)";
|
442 |
$settings['products'] = $wpdb->get_col( $sql );
|
443 |
if ( empty( $settings['products'] ) ) // failed condition!
|
444 |
{
|
494 |
// get products and variations!
|
495 |
$product_category_where = "AND orderitemmeta_product.meta_value IN
|
496 |
(
|
497 |
+
SELECT DISTINCT ID FROM {$wpdb->posts} AS product_category_variations WHERE post_parent<>0 AND post_parent IN ($product_category_where)
|
498 |
UNION
|
499 |
$product_category_where
|
500 |
)
|
1243 |
$product_fields_with_tags = array( 'product_variation', 'post_content', 'post_excerpt' );
|
1244 |
$products = array();
|
1245 |
$i = 0;
|
1246 |
+
|
1247 |
foreach ( $order->get_items( 'line_item' ) as $item_id => $item ) {
|
1248 |
do_action( "woe_get_order_product_item", $item );
|
1249 |
if ( $options['export_refunds'] AND $item['qty'] == 0 ) // skip zero items, when export refunds
|
1426 |
'full' ) : false;
|
1427 |
$row[ $field ] = is_array( $images_src ) ? current( $images_src ) : '';
|
1428 |
} elseif ( $field == 'full_category_names' ) {
|
1429 |
+
$row[ $field ] = self::get_product_category_full( $product_id );
|
1430 |
} elseif ( isset( $static_vals[ $field ] ) ) {
|
1431 |
$row[ $field ] = $static_vals[ $field ];
|
1432 |
} elseif ( isset( $item_meta[ $field ] ) ) { //meta from order
|
1486 |
*
|
1487 |
* @return string
|
1488 |
*/
|
1489 |
+
public static function get_product_category_full( $product_id ) {
|
1490 |
$full_names = array();
|
1491 |
+
if ( ! $product_id ) {
|
1492 |
return '';
|
1493 |
}
|
1494 |
+
$prod_terms = get_the_terms( $product_id, 'product_cat' );
|
1495 |
if ( ! $prod_terms ) {
|
1496 |
return '';
|
1497 |
}
|
1640 |
// extra WP_User
|
1641 |
$user = ! empty( $order_meta['_customer_user'] ) ? get_userdata( $order_meta['_customer_user'] ) : false;
|
1642 |
// setup missed fields for full addresses
|
1643 |
+
foreach ( array( '_billing_address_1', '_billing_address_2', '_shipping_address_1', '_shipping_address_2' ) as $optional_field ) {
|
1644 |
if ( ! isset( $order_meta[ $optional_field ] ) ) {
|
1645 |
$order_meta[ $optional_field ] = '';
|
1646 |
}
|
1647 |
}
|
1648 |
|
1649 |
+
$order_meta = apply_filters( 'woe_fetch_order_meta', $order_meta, $order_id );
|
1650 |
|
1651 |
// fill as it must
|
1652 |
foreach ( $labels['order']->get_fetch_fields() as $field ) {
|
1751 |
$row[ $field ] = isset( $country_states[ $shipping_state ] ) ? html_entity_decode( $country_states[ $shipping_state ] ) : $shipping_state;
|
1752 |
} elseif ( $field == 'billing_citystatezip' ) {
|
1753 |
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'billing' );
|
1754 |
+
} elseif ( $field == 'billing_citystatezip_us' ) {
|
1755 |
+
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'billing', true);
|
1756 |
} elseif ( $field == 'shipping_citystatezip' ) {
|
1757 |
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'shipping' );
|
1758 |
+
} elseif ( $field == 'shipping_citystatezip_us' ) {
|
1759 |
+
$row[ $field ] = self::get_city_state_postcode_field_value( $order, 'shipping', true);
|
1760 |
} elseif ( $field == 'products' OR $field == 'coupons' ) {
|
1761 |
if ( isset( $data[ $field ] ) ) {
|
1762 |
$row[ $field ] = $data[ $field ];
|
1871 |
return $row;
|
1872 |
}
|
1873 |
|
1874 |
+
public static function get_city_state_postcode_field_value( $order, $type, $us_format = false ) {
|
1875 |
if ( $type != 'shipping' && $type != 'billing' ) {
|
1876 |
return null;
|
1877 |
}
|
1886 |
'get_' . $field_name ) ? $order->{'get_' . $field_name}() : $order->{$field_name};
|
1887 |
}
|
1888 |
|
1889 |
+
if( $us_format ) {
|
1890 |
+
//reformat as "Austin, TX 95076"
|
1891 |
+
$parts[] = $citystatepostcode[ $type . '_city' ] ;
|
1892 |
+
$parts[] = trim( $citystatepostcode[ $type . '_state' ] . " " . $citystatepostcode[ $type . '_postcode' ] );
|
1893 |
+
} else {
|
1894 |
+
$parts = $citystatepostcode;
|
1895 |
+
}
|
1896 |
+
return join( ", ", $parts );
|
1897 |
}
|
1898 |
|
1899 |
public static function get_order_shipping_tax_refunded( $order_id ) {
|
1935 |
'_line_tax',
|
1936 |
'method_id',
|
1937 |
'cost',
|
1938 |
+
'_reduced_stock',
|
1939 |
) );
|
1940 |
|
1941 |
$result = array();
|
classes/core/class-wc-order-export-engine.php
CHANGED
@@ -762,8 +762,10 @@ class WC_Order_Export_Engine {
|
|
762 |
}
|
763 |
|
764 |
public static function is_plain_format( $format ) {
|
765 |
-
|
|
|
766 |
|
767 |
-
|
|
|
768 |
}
|
769 |
}
|
762 |
}
|
763 |
|
764 |
public static function is_plain_format( $format ) {
|
765 |
+
return in_array( strtolower( $format ), self::get_plain_formats() );
|
766 |
+
}
|
767 |
|
768 |
+
public static function get_plain_formats() {
|
769 |
+
return array( 'xls', 'csv', 'tsv', 'pdf' );
|
770 |
}
|
771 |
}
|
classes/formats/abstract-class-woe-formatter-plain-format.php
CHANGED
@@ -281,6 +281,15 @@ abstract class WOE_Formatter_Plain_Format extends WOE_Formatter {
|
|
281 |
protected function try_apply_summary_report_fields() {
|
282 |
if ( $this->summary_report ) {
|
283 |
$this->summary_processing = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
do_action( 'woe_summary_before_output' );
|
285 |
if ( $this->mode == 'preview' ) {
|
286 |
if ( empty( $this->rows ) ) // no headers!
|
281 |
protected function try_apply_summary_report_fields() {
|
282 |
if ( $this->summary_report ) {
|
283 |
$this->summary_processing = true;
|
284 |
+
|
285 |
+
//sort by name
|
286 |
+
$first_row = reset($_SESSION['woe_summary_products']);
|
287 |
+
if ( isset( $first_row['name'] ) ) {
|
288 |
+
uasort($_SESSION['woe_summary_products'], function($a,$b) {
|
289 |
+
return strcmp($a['name'],$b['name']);
|
290 |
+
});
|
291 |
+
}
|
292 |
+
|
293 |
do_action( 'woe_summary_before_output' );
|
294 |
if ( $this->mode == 'preview' ) {
|
295 |
if ( empty( $this->rows ) ) // no headers!
|
classes/formats/abstract-class-woe-formatter-sv.php
CHANGED
@@ -44,11 +44,11 @@ abstract class WOE_Formatter_sv extends WOE_Formatter_Plain_Format {
|
|
44 |
$this->prepare_array( $data );
|
45 |
parent::start( $data );
|
46 |
|
47 |
-
if ( $this->settings['add_utf8_bom'] ) {
|
48 |
fwrite( $this->handle, chr( 239 ) . chr( 187 ) . chr( 191 ) );
|
49 |
}
|
50 |
|
51 |
-
if ( $this->settings['display_column_names'] AND $data ) {
|
52 |
if ( $this->mode == 'preview' ) {
|
53 |
$this->rows[] = $data;
|
54 |
} else {
|
@@ -103,7 +103,7 @@ abstract class WOE_Formatter_sv extends WOE_Formatter_Plain_Format {
|
|
103 |
$this->rows[] = array( __( '<td colspan=10><b>No results</b></td>', 'woo-order-export-lite' ) );
|
104 |
}
|
105 |
foreach ( $this->rows as $num => $rec ) {
|
106 |
-
if ( $num == 0 AND $this->settings['display_column_names'] ) {
|
107 |
fwrite( $this->handle,
|
108 |
'<tr style="font-weight:bold"><td>' . join( '</td><td>', $rec ) . "</td><tr>\n" );
|
109 |
} else {
|
44 |
$this->prepare_array( $data );
|
45 |
parent::start( $data );
|
46 |
|
47 |
+
if ( ! empty($this->settings['add_utf8_bom']) ) {
|
48 |
fwrite( $this->handle, chr( 239 ) . chr( 187 ) . chr( 191 ) );
|
49 |
}
|
50 |
|
51 |
+
if ( ! empty($this->settings['display_column_names']) AND $data ) {
|
52 |
if ( $this->mode == 'preview' ) {
|
53 |
$this->rows[] = $data;
|
54 |
} else {
|
103 |
$this->rows[] = array( __( '<td colspan=10><b>No results</b></td>', 'woo-order-export-lite' ) );
|
104 |
}
|
105 |
foreach ( $this->rows as $num => $rec ) {
|
106 |
+
if ( $num == 0 AND ! empty($this->settings['display_column_names']) ) {
|
107 |
fwrite( $this->handle,
|
108 |
'<tr style="font-weight:bold"><td>' . join( '</td><td>', $rec ) . "</td><tr>\n" );
|
109 |
} else {
|
classes/formats/abstract-class-woe-formatter.php
CHANGED
@@ -22,11 +22,11 @@ abstract class WOE_Formatter {
|
|
22 |
var $format_number_fields;
|
23 |
var $counter_value;
|
24 |
|
25 |
-
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
public function __construct(
|
32 |
$mode,
|
22 |
var $format_number_fields;
|
23 |
var $counter_value;
|
24 |
|
25 |
+
var $filename;
|
26 |
|
27 |
+
var $decimals;
|
28 |
+
var $decimal_separator;
|
29 |
+
var $thousands_separator;
|
30 |
|
31 |
public function __construct(
|
32 |
$mode,
|
classes/formats/class-woe-formatter-csv.php
CHANGED
@@ -19,7 +19,7 @@ class WOE_Formatter_Csv extends WOE_Formatter_sv {
|
|
19 |
}
|
20 |
|
21 |
protected function prepare_array( &$arr ) {
|
22 |
-
if ( $this->settings['delete_linebreaks'] ) {
|
23 |
$this->delete_linebreaks_from_array( $arr );
|
24 |
}
|
25 |
parent::prepare_array( $arr );
|
19 |
}
|
20 |
|
21 |
protected function prepare_array( &$arr ) {
|
22 |
+
if ( ! empty($this->settings['delete_linebreaks']) ) {
|
23 |
$this->delete_linebreaks_from_array( $arr );
|
24 |
}
|
25 |
parent::prepare_array( $arr );
|
classes/formats/class-woe-formatter-pdf.php
ADDED
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
exit; // Exit if accessed directly
|
4 |
+
}
|
5 |
+
|
6 |
+
include_once 'abstract-class-woe-formatter-plain-format.php';
|
7 |
+
include_once 'class-woe-formatter-csv.php';
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WOE_PDF_MC_Table' ) ) {
|
10 |
+
include_once dirname( __FILE__ ) . '/../FPDF/class-woe-pdf-mc-table.php';
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Class WOE_Formatter_PDF
|
15 |
+
*
|
16 |
+
* Using CSV formatter as basis. Works like CSV (even creates csv file) but after finish,
|
17 |
+
* fetches data from file and paste them to PDF as table
|
18 |
+
*/
|
19 |
+
class WOE_Formatter_PDF extends WOE_Formatter_Csv {
|
20 |
+
/** @var $pdf WOE_PDF_MC_Table */
|
21 |
+
protected $pdf;
|
22 |
+
|
23 |
+
private $orientation = 'P';
|
24 |
+
private $page_size = 'A4';
|
25 |
+
private $font_size = 5;
|
26 |
+
private $repeat_header = false;
|
27 |
+
|
28 |
+
public function __construct( $mode, $filename, $settings, $format, $labels, $field_formats, $date_format, $offset ) {
|
29 |
+
|
30 |
+
$settings['enclosure'] = '"';
|
31 |
+
$settings['linebreak'] = '\r\n';
|
32 |
+
$settings['delimiter'] = ',';
|
33 |
+
$settings['encoding'] = 'UTF-8';
|
34 |
+
|
35 |
+
$this->orientation = ! empty( $settings['orientation'] ) ? $settings['orientation'] : 'P';
|
36 |
+
$this->page_size = ! empty( $settings['page_size'] ) ? $settings['page_size'] : 'A4';
|
37 |
+
$this->font_size = ! empty( $settings['font_size'] ) ? $settings['font_size'] : 5;
|
38 |
+
$this->repeat_header = ! empty( $settings['repeat_header'] );
|
39 |
+
|
40 |
+
if ( $mode != 'preview' ) {
|
41 |
+
$filename = str_replace( '.pdf', '.csv', $filename );
|
42 |
+
}
|
43 |
+
|
44 |
+
parent::__construct( $mode, $filename, $settings, $format, $labels, $field_formats, $date_format, $offset );
|
45 |
+
}
|
46 |
+
|
47 |
+
public function finish() {
|
48 |
+
parent::finish();
|
49 |
+
|
50 |
+
if ( $this->mode != 'preview' ) {
|
51 |
+
$this->pdf = new WOE_PDF_MC_Table( $this->orientation, 'mm', $this->page_size );
|
52 |
+
|
53 |
+
$this->pdf->SetFont( 'Arial', '', $this->font_size );
|
54 |
+
$this->pdf->SetFillColor( null );
|
55 |
+
$this->pdf->setProperties( array(
|
56 |
+
'header' => array(
|
57 |
+
'title' => $this->settings['header_text'],
|
58 |
+
'style' => 'B',
|
59 |
+
'size' => '10',
|
60 |
+
'text_color' => $this->hex2RGB( $this->settings['page_header_text_color'] ),
|
61 |
+
'logo' => array(
|
62 |
+
'source' => $this->settings['logo_source'],
|
63 |
+
'width' => $this->settings['logo_width'],
|
64 |
+
'height' => $this->settings['logo_height'],
|
65 |
+
'align' => $this->settings['logo_align'],
|
66 |
+
),
|
67 |
+
),
|
68 |
+
'table' => array(
|
69 |
+
'stretch' => !$this->settings['fit_page_width'],
|
70 |
+
'column_width' => explode( ",", $this->settings['cols_width'] ),
|
71 |
+
),
|
72 |
+
'table_header' => array(
|
73 |
+
'size' => 10,
|
74 |
+
'repeat' => $this->repeat_header,
|
75 |
+
'text_color' => $this->hex2RGB( $this->settings['table_header_text_color'] ),
|
76 |
+
'background_color' => $this->hex2RGB( $this->settings['table_header_background_color'] ),
|
77 |
+
),
|
78 |
+
'table_row' => array(
|
79 |
+
'size' => $this->font_size,
|
80 |
+
'text_color' => $this->hex2RGB( $this->settings['table_row_text_color'] ),
|
81 |
+
'background_color' => $this->hex2RGB( $this->settings['table_row_background_color'] ),
|
82 |
+
),
|
83 |
+
'footer' => array(
|
84 |
+
'title' => $this->settings['footer_text'],
|
85 |
+
'style' => 'B',
|
86 |
+
'size' => '10',
|
87 |
+
'text_color' => $this->hex2RGB( $this->settings['page_footer_text_color'] ),
|
88 |
+
'pagination' => $this->settings['pagination'],
|
89 |
+
),
|
90 |
+
) );
|
91 |
+
$this->pdf->SetAligns( explode( ",", $this->settings['cols_align'] ) );
|
92 |
+
do_action("woe_pdf_started", $this->pdf, $this);
|
93 |
+
|
94 |
+
$this->pdf->AliasNbPages();
|
95 |
+
$this->pdf->AddPage();
|
96 |
+
|
97 |
+
$this->handle = fopen( $this->filename, 'r' );
|
98 |
+
$row = fgetcsv( $this->handle, 0, $this->delimiter, $this->enclosure );
|
99 |
+
|
100 |
+
if ( ! empty( $this->settings['display_column_names'] ) and $row ) {
|
101 |
+
$this->pdf->addTableHeader( $row );
|
102 |
+
do_action("woe_pdf_below_header", $this->pdf, $this);
|
103 |
+
$row = fgetcsv( $this->handle, 0, $this->delimiter, $this->enclosure );
|
104 |
+
}
|
105 |
+
|
106 |
+
while ( $row ) {
|
107 |
+
$this->pdf->addRow( $row );
|
108 |
+
$row = fgetcsv( $this->handle, 0, $this->delimiter, $this->enclosure );
|
109 |
+
}
|
110 |
+
|
111 |
+
do_action("woe_pdf_finished", $this->pdf, $this);
|
112 |
+
$this->pdf->Output( 'f', str_replace( '.csv', '.pdf', $this->filename ) );
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Convert a hexa decimal color code to its RGB equivalent
|
118 |
+
*
|
119 |
+
* @param string $hexStr (hexadecimal color value)
|
120 |
+
* @return array|boolean Returns False if invalid hex color value
|
121 |
+
*/
|
122 |
+
private function hex2RGB( $hexStr ) {
|
123 |
+
$hexStr = preg_replace( "/[^0-9A-Fa-f]/", '', $hexStr ); // Gets a proper hex string
|
124 |
+
$rgbArray = array();
|
125 |
+
if ( strlen( $hexStr ) == 6 ) { //If a proper hex code, convert using bitwise operation. No overhead... faster
|
126 |
+
$colorVal = hexdec( $hexStr );
|
127 |
+
$rgbArray[0] = 0xFF & ( $colorVal >> 0x10 );
|
128 |
+
$rgbArray[1] = 0xFF & ( $colorVal >> 0x8 );
|
129 |
+
$rgbArray[2] = 0xFF & $colorVal;
|
130 |
+
} elseif ( strlen( $hexStr ) == 3 ) { //if shorthand notation, need some string manipulations
|
131 |
+
$rgbArray[0] = hexdec( str_repeat( substr( $hexStr, 0, 1 ), 2 ) );
|
132 |
+
$rgbArray[1] = hexdec( str_repeat( substr( $hexStr, 1, 1 ), 2 ) );
|
133 |
+
$rgbArray[2] = hexdec( str_repeat( substr( $hexStr, 2, 1 ), 2 ) );
|
134 |
+
} else {
|
135 |
+
return false; //Invalid hex color code
|
136 |
+
}
|
137 |
+
|
138 |
+
return $rgbArray; // returns the rgb string or the associative array
|
139 |
+
}
|
140 |
+
|
141 |
+
|
142 |
+
}
|
classes/formats/class-woe-formatter-xls.php
CHANGED
@@ -29,6 +29,11 @@ class WOE_Formatter_Xls extends WOE_Formatter_Plain_Format {
|
|
29 |
$this->string_format_force = apply_filters( "woe_{$format}_string_format_force", false );
|
30 |
|
31 |
$field_formats = $this->field_formats['order']; // overwrite! probably modified by parent
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
$this->string_format_fields = isset( $field_formats['string'] ) ? $field_formats['string'] : array();
|
34 |
$this->string_format_fields = apply_filters( "woe_{$format}_string_format_fields",
|
@@ -38,8 +43,11 @@ class WOE_Formatter_Xls extends WOE_Formatter_Plain_Format {
|
|
38 |
$this->date_format_fields = apply_filters( "woe_{$format}_date_format_fields", $this->date_format_fields );
|
39 |
|
40 |
$this->money_format_fields = isset( $field_formats['money'] ) ? $field_formats['money'] : array();
|
41 |
-
$this->money_format_fields = apply_filters( "woe_{$format}
|
42 |
|
|
|
|
|
|
|
43 |
if ( $mode != 'preview' ) {
|
44 |
//more memory for XLS?
|
45 |
ini_set( 'memory_limit', '512M' );
|
@@ -66,10 +74,9 @@ class WOE_Formatter_Xls extends WOE_Formatter_Plain_Format {
|
|
66 |
}
|
67 |
|
68 |
// Excel uses another format!
|
69 |
-
$this->date_format = apply_filters( 'woe_xls_date_format',
|
70 |
-
|
71 |
-
$this->
|
72 |
-
PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00 );
|
73 |
// Excel will format!
|
74 |
$this->auto_format_dates = false;
|
75 |
$this->format_number_fields_original = $this->format_number_fields;
|
@@ -142,32 +149,26 @@ class WOE_Formatter_Xls extends WOE_Formatter_Plain_Format {
|
|
142 |
$this->last_row ++;
|
143 |
$pos = 0;
|
144 |
foreach ( $row as $field => $text ) {
|
145 |
-
if ( $this->string_format_force OR $this->field_format_is( $field
|
146 |
-
|
147 |
-
$this->objPHPExcel->getActiveSheet()->
|
148 |
-
|
149 |
-
$this->objPHPExcel->getActiveSheet()->
|
150 |
-
|
151 |
-
} elseif ( $this->format_number_fields_original AND $this->field_format_is( $field,
|
152 |
-
|
153 |
-
$this->objPHPExcel->getActiveSheet()->
|
154 |
-
$this->last_row )->getNumberFormat()->setFormatCode( $this->money_format );
|
155 |
-
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row,
|
156 |
-
$text );
|
157 |
} elseif ( $this->field_format_is( $field, $this->date_format_fields ) ) {// DATE!
|
158 |
-
$this->objPHPExcel->getActiveSheet()->getStyleByColumnAndRow( $pos,
|
159 |
-
$this->last_row )->getNumberFormat()->setFormatCode( $this->date_format );
|
160 |
if ( $text ) {
|
161 |
if ( empty( $this->settings['global_job_settings']['time_format'] ) ) { // must remove time!
|
162 |
$text = date( "Y-m-d", strtotime( $text ) );
|
163 |
}
|
164 |
$text = PHPExcel_Shared_Date::PHPToExcel( new DateTime( $text ) );
|
165 |
-
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row,
|
166 |
-
$text );
|
167 |
}
|
168 |
} else {
|
169 |
-
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row,
|
170 |
-
$text );
|
171 |
}
|
172 |
do_action( "woe_xls_format_cell", $this, $field, $text, $row, $pos );
|
173 |
$pos ++;
|
29 |
$this->string_format_force = apply_filters( "woe_{$format}_string_format_force", false );
|
30 |
|
31 |
$field_formats = $this->field_formats['order']; // overwrite! probably modified by parent
|
32 |
+
|
33 |
+
if ( $this->settings['force_general_format'] ) {
|
34 |
+
foreach( array( "string", "date", "money", "number" ) as $type)
|
35 |
+
add_filter( "woe_xls_{$type}_format_fields", function($fields) { return array(); });
|
36 |
+
}
|
37 |
|
38 |
$this->string_format_fields = isset( $field_formats['string'] ) ? $field_formats['string'] : array();
|
39 |
$this->string_format_fields = apply_filters( "woe_{$format}_string_format_fields",
|
43 |
$this->date_format_fields = apply_filters( "woe_{$format}_date_format_fields", $this->date_format_fields );
|
44 |
|
45 |
$this->money_format_fields = isset( $field_formats['money'] ) ? $field_formats['money'] : array();
|
46 |
+
$this->money_format_fields = apply_filters( "woe_{$format}_money_format_fields", $this->money_format_fields );
|
47 |
|
48 |
+
$this->number_format_fields = isset( $field_formats['number'] ) ? $field_formats['number'] : array();
|
49 |
+
$this->number_format_fields = apply_filters( "woe_{$format}_number_format_fields", $this->number_format_fields );
|
50 |
+
|
51 |
if ( $mode != 'preview' ) {
|
52 |
//more memory for XLS?
|
53 |
ini_set( 'memory_limit', '512M' );
|
74 |
}
|
75 |
|
76 |
// Excel uses another format!
|
77 |
+
$this->date_format = apply_filters( 'woe_xls_date_format', $this->convert_php_date_format( $date_format ) );
|
78 |
+
$this->money_format = apply_filters( 'woe_xls_money_format', PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00 );
|
79 |
+
$this->number_format = apply_filters( 'woe_xls_number_format', PHPExcel_Style_NumberFormat::FORMAT_NUMBER );
|
|
|
80 |
// Excel will format!
|
81 |
$this->auto_format_dates = false;
|
82 |
$this->format_number_fields_original = $this->format_number_fields;
|
149 |
$this->last_row ++;
|
150 |
$pos = 0;
|
151 |
foreach ( $row as $field => $text ) {
|
152 |
+
if ( $this->string_format_force OR $this->field_format_is( $field,$this->string_format_fields ) ) {// STRING
|
153 |
+
$this->objPHPExcel->getActiveSheet()->getStyleByColumnAndRow( $pos,$this->last_row )->getNumberFormat()->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_TEXT );
|
154 |
+
$this->objPHPExcel->getActiveSheet()->setCellValueExplicitByColumnAndRow( $pos, $this->last_row, $text );
|
155 |
+
} elseif ( $this->format_number_fields_original AND $this->field_format_is( $field, $this->money_format_fields ) ) { // MONEY
|
156 |
+
$this->objPHPExcel->getActiveSheet()->getStyleByColumnAndRow( $pos, $this->last_row )->getNumberFormat()->setFormatCode( $this->money_format );
|
157 |
+
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row, $text );
|
158 |
+
} elseif ( $this->format_number_fields_original AND $this->field_format_is( $field, $this->number_format_fields ) ) { // NUMBER
|
159 |
+
$this->objPHPExcel->getActiveSheet()->getStyleByColumnAndRow( $pos, $this->last_row )->getNumberFormat()->setFormatCode( $this->number_format );
|
160 |
+
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row, $text );
|
|
|
|
|
|
|
161 |
} elseif ( $this->field_format_is( $field, $this->date_format_fields ) ) {// DATE!
|
162 |
+
$this->objPHPExcel->getActiveSheet()->getStyleByColumnAndRow( $pos, $this->last_row )->getNumberFormat()->setFormatCode( $this->date_format );
|
|
|
163 |
if ( $text ) {
|
164 |
if ( empty( $this->settings['global_job_settings']['time_format'] ) ) { // must remove time!
|
165 |
$text = date( "Y-m-d", strtotime( $text ) );
|
166 |
}
|
167 |
$text = PHPExcel_Shared_Date::PHPToExcel( new DateTime( $text ) );
|
168 |
+
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row, $text );
|
|
|
169 |
}
|
170 |
} else {
|
171 |
+
$this->objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow( $pos, $this->last_row, $text );
|
|
|
172 |
}
|
173 |
do_action( "woe_xls_format_cell", $this, $field, $text, $row, $pos );
|
174 |
$pos ++;
|
classes/formats/trait-woe-plain-format.php
CHANGED
@@ -141,6 +141,7 @@ trait WOE_Order_Export_Plain_Format {
|
|
141 |
$combinations = array();
|
142 |
|
143 |
$p_combinations = array();
|
|
|
144 |
if ( $repeat_products ) {
|
145 |
foreach ( self::get_array_from_array( $row, 'products' ) as $products_fields_item ) {
|
146 |
$result_tmp = array();
|
@@ -148,6 +149,7 @@ trait WOE_Order_Export_Plain_Format {
|
|
148 |
if ( isset( $this->labels['products']->$field_name ) ) // label must be assigned!
|
149 |
{
|
150 |
$result_tmp[ 'plain_products_' . $field_name ] = $products_field_value;
|
|
|
151 |
}
|
152 |
}
|
153 |
|
@@ -156,6 +158,7 @@ trait WOE_Order_Export_Plain_Format {
|
|
156 |
}
|
157 |
|
158 |
$c_combinations = array();
|
|
|
159 |
if ( $repeat_coupons ) {
|
160 |
foreach ( self::get_array_from_array( $row, 'coupons' ) as $coupons_fields_item ) {
|
161 |
$result_tmp = array();
|
@@ -163,6 +166,7 @@ trait WOE_Order_Export_Plain_Format {
|
|
163 |
if ( isset( $this->labels['coupons']->$field_name ) ) // label must be assigned!
|
164 |
{
|
165 |
$result_tmp[ 'plain_coupons_' . $field_name ] = $coupons_field_value;
|
|
|
166 |
}
|
167 |
}
|
168 |
|
@@ -206,6 +210,18 @@ trait WOE_Order_Export_Plain_Format {
|
|
206 |
return array( $row );
|
207 |
}
|
208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
$new_rows = array();
|
210 |
foreach ( $combinations as $num_index => $combination ) {
|
211 |
if ( $item_rows_start_from_new_line ) {
|
141 |
$combinations = array();
|
142 |
|
143 |
$p_combinations = array();
|
144 |
+
$p_field_ids = array();
|
145 |
if ( $repeat_products ) {
|
146 |
foreach ( self::get_array_from_array( $row, 'products' ) as $products_fields_item ) {
|
147 |
$result_tmp = array();
|
149 |
if ( isset( $this->labels['products']->$field_name ) ) // label must be assigned!
|
150 |
{
|
151 |
$result_tmp[ 'plain_products_' . $field_name ] = $products_field_value;
|
152 |
+
$p_field_ids[] = 'plain_products_' . $field_name;
|
153 |
}
|
154 |
}
|
155 |
|
158 |
}
|
159 |
|
160 |
$c_combinations = array();
|
161 |
+
$c_field_ids = array();
|
162 |
if ( $repeat_coupons ) {
|
163 |
foreach ( self::get_array_from_array( $row, 'coupons' ) as $coupons_fields_item ) {
|
164 |
$result_tmp = array();
|
166 |
if ( isset( $this->labels['coupons']->$field_name ) ) // label must be assigned!
|
167 |
{
|
168 |
$result_tmp[ 'plain_coupons_' . $field_name ] = $coupons_field_value;
|
169 |
+
$c_fields_id[] = 'plain_coupons_' . $field_name;
|
170 |
}
|
171 |
}
|
172 |
|
210 |
return array( $row );
|
211 |
}
|
212 |
|
213 |
+
// exclude product and coupon fields from first row when item rows start from new line
|
214 |
+
// to prevent empty extra delimiters in output csv
|
215 |
+
if ( $item_rows_start_from_new_line ) {
|
216 |
+
foreach ( $p_field_ids as $key ) {
|
217 |
+
unset( $row[ $key ] );
|
218 |
+
}
|
219 |
+
|
220 |
+
foreach ( $c_field_ids as $key ) {
|
221 |
+
unset( $row[ $key ] );
|
222 |
+
}
|
223 |
+
}
|
224 |
+
|
225 |
$new_rows = array();
|
226 |
foreach ( $combinations as $num_index => $combination ) {
|
227 |
if ( $item_rows_start_from_new_line ) {
|
i18n/languages/woo-order-export-lite.pot
CHANGED
@@ -3,7 +3,7 @@ msgid ""
|
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Advanced Order Export For WooCommerce\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
-
"POT-Creation-Date:
|
7 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
"Language-Team: \n"
|
@@ -14,1482 +14,1616 @@ msgstr ""
|
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
"X-Generator: Loco https://localise.biz/"
|
16 |
|
17 |
-
#:
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
msgstr
|
22 |
-
msgstr[1] ""
|
23 |
|
24 |
-
#:
|
25 |
-
|
26 |
-
|
27 |
-
msgid_plural "%s orders unmarked."
|
28 |
-
msgstr[0] ""
|
29 |
-
msgstr[1] ""
|
30 |
|
31 |
-
#: view/settings-form.php:
|
32 |
-
#: view/settings-form.php:
|
33 |
msgid "-"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: view/settings-form.php:
|
37 |
-
msgid "
|
38 |
msgstr ""
|
39 |
|
40 |
-
#:
|
41 |
-
|
|
|
42 |
msgstr ""
|
43 |
|
44 |
-
#:
|
45 |
-
#: classes/
|
46 |
-
msgid "
|
47 |
msgstr ""
|
48 |
|
49 |
-
#:
|
50 |
-
|
|
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: view/settings-form.php:
|
54 |
-
|
|
|
55 |
msgstr ""
|
56 |
|
57 |
-
#:
|
58 |
-
msgid "
|
59 |
msgstr ""
|
60 |
|
61 |
-
#:
|
62 |
-
|
63 |
-
msgid "Add %s fields"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: view/settings-form.php:
|
67 |
-
msgid "
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: view/settings-form.php:
|
71 |
-
msgid "
|
72 |
msgstr ""
|
73 |
|
74 |
-
#:
|
75 |
-
msgid "
|
76 |
msgstr ""
|
77 |
|
78 |
-
#:
|
79 |
-
msgid "
|
80 |
msgstr ""
|
81 |
|
82 |
-
#:
|
83 |
-
msgid "
|
84 |
msgstr ""
|
85 |
|
86 |
-
#:
|
87 |
-
msgid "
|
88 |
msgstr ""
|
89 |
|
90 |
-
#:
|
91 |
-
msgid "
|
92 |
msgstr ""
|
93 |
|
94 |
-
#:
|
95 |
-
msgid "
|
96 |
msgstr ""
|
97 |
|
98 |
-
|
99 |
-
|
|
|
100 |
msgstr ""
|
101 |
|
102 |
-
#:
|
103 |
-
msgid ""
|
104 |
-
"Advanced Order Export For WooCommerce is available <a href=\"admin.php?"
|
105 |
-
"page=wc-order-export\">on this page</a>."
|
106 |
msgstr ""
|
107 |
|
108 |
-
|
109 |
-
msgid "
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: view/
|
113 |
-
msgid "
|
114 |
msgstr ""
|
115 |
|
116 |
-
#:
|
117 |
-
msgid "
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: view/settings-form.php:
|
121 |
-
msgid "
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: view/settings-form.php:
|
125 |
-
msgid "
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: view/
|
129 |
-
msgid "
|
130 |
msgstr ""
|
131 |
|
132 |
-
#:
|
133 |
-
msgid "
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: view/settings-form.php:
|
137 |
-
msgid "
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: view/settings-form.php:
|
141 |
-
msgid "
|
142 |
msgstr ""
|
143 |
|
144 |
-
#:
|
145 |
-
msgid "
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: view/settings-form.php:
|
149 |
-
msgid "
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: view/
|
153 |
-
|
154 |
-
msgid "Buy %s to get access to profiles"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: view/
|
158 |
-
|
159 |
-
msgid "Buy %s to get access to Scheduled jobs"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: view/
|
163 |
-
|
164 |
-
msgid "Buy %s to get access to Status change jobs"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#:
|
168 |
-
msgid "
|
169 |
msgstr ""
|
170 |
|
171 |
-
#:
|
172 |
-
msgid "
|
173 |
msgstr ""
|
174 |
|
175 |
-
#:
|
176 |
-
msgid "
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: view/settings-form.php:
|
180 |
-
|
181 |
-
#: view/settings-form.php:1198 view/settings-form.php:1221
|
182 |
-
msgid "Cancel"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#:
|
186 |
-
msgid "
|
187 |
msgstr ""
|
188 |
|
189 |
-
#:
|
190 |
-
msgid "
|
191 |
msgstr ""
|
192 |
|
193 |
-
#:
|
194 |
-
msgid "
|
195 |
msgstr ""
|
196 |
|
197 |
-
#:
|
198 |
-
msgid "
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: view/settings-form.php:
|
202 |
-
msgid "
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: view/settings-form.php:
|
206 |
-
msgid "
|
207 |
msgstr ""
|
208 |
|
209 |
-
#:
|
210 |
-
msgid "
|
211 |
msgstr ""
|
212 |
|
213 |
-
#:
|
214 |
-
msgid "
|
215 |
msgstr ""
|
216 |
|
217 |
-
#:
|
218 |
-
msgid "
|
219 |
msgstr ""
|
220 |
|
221 |
-
#:
|
222 |
-
msgid "
|
223 |
msgstr ""
|
224 |
|
225 |
-
#: view/settings-form.php:
|
226 |
-
msgid "
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: view/settings-form.php:
|
230 |
-
msgid "
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: view/
|
234 |
-
msgid "
|
235 |
msgstr ""
|
236 |
|
237 |
-
#: view/settings-form.php:
|
238 |
-
|
239 |
-
#: view/settings-form.php:1189 view/settings-form.php:1204
|
240 |
-
msgid "Column name"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#:
|
244 |
-
msgid "
|
245 |
msgstr ""
|
246 |
|
247 |
-
#:
|
248 |
-
msgid "
|
249 |
msgstr ""
|
250 |
|
251 |
-
#:
|
252 |
-
msgid "
|
253 |
msgstr ""
|
254 |
|
255 |
-
#:
|
256 |
-
msgid "
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: view/settings-form.php:
|
260 |
-
|
261 |
-
msgid "Completed Date"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: view/settings-form.php:
|
265 |
-
|
266 |
-
#: view/settings-form.php:1196 view/settings-form.php:1218
|
267 |
-
msgid "Confirm"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: view/settings-form.php:
|
271 |
-
msgid "
|
272 |
msgstr ""
|
273 |
|
274 |
-
#:
|
275 |
-
msgid "
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: view/
|
279 |
-
msgid ""
|
280 |
-
"Copy these settings and use it to migrate plugin to another WordPress "
|
281 |
-
"install."
|
282 |
msgstr ""
|
283 |
|
284 |
-
#:
|
285 |
-
msgid "
|
286 |
msgstr ""
|
287 |
|
288 |
-
#:
|
289 |
-
msgid "
|
290 |
msgstr ""
|
291 |
|
292 |
-
#:
|
293 |
-
msgid "
|
294 |
msgstr ""
|
295 |
|
296 |
-
#:
|
297 |
-
msgid "
|
298 |
msgstr ""
|
299 |
|
300 |
-
#:
|
301 |
-
msgid "
|
302 |
msgstr ""
|
303 |
|
304 |
-
#:
|
305 |
-
msgid "
|
306 |
msgstr ""
|
307 |
|
308 |
-
#:
|
309 |
-
msgid "
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: view/settings-form.php:
|
313 |
-
msgid "
|
314 |
msgstr ""
|
315 |
|
316 |
-
#:
|
317 |
-
msgid "
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: view/settings-form.php:
|
321 |
-
|
322 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:923
|
323 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:1125
|
324 |
-
msgid "Coupons"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#:
|
328 |
-
|
|
|
329 |
msgstr ""
|
330 |
|
331 |
-
#:
|
332 |
-
msgid "
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: view/settings-form.php:
|
336 |
-
msgid "
|
337 |
msgstr ""
|
338 |
|
339 |
-
#:
|
340 |
-
|
|
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: view/settings-form.php:
|
344 |
-
msgid "
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: view/settings-form.php:
|
348 |
-
msgid "
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: view/settings-form.php:
|
352 |
-
|
|
|
353 |
msgstr ""
|
354 |
|
355 |
-
#:
|
356 |
-
msgid "
|
357 |
msgstr ""
|
358 |
|
359 |
-
#:
|
360 |
-
msgid "
|
361 |
msgstr ""
|
362 |
|
363 |
-
#:
|
364 |
-
msgid "
|
365 |
msgstr ""
|
366 |
|
367 |
-
#:
|
368 |
-
msgid "
|
369 |
msgstr ""
|
370 |
|
371 |
-
#:
|
372 |
-
msgid "
|
373 |
msgstr ""
|
374 |
|
375 |
-
#:
|
376 |
-
msgid "Customer
|
377 |
msgstr ""
|
378 |
|
379 |
-
#:
|
380 |
-
msgid "
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: view/settings-form.php:
|
384 |
-
|
385 |
-
msgid "Date"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#:
|
389 |
-
msgid "
|
390 |
msgstr ""
|
391 |
|
392 |
-
#:
|
393 |
-
msgid "
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: view/settings-form.php:
|
397 |
-
msgid "
|
|
|
|
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: view/settings-form.php:
|
401 |
-
msgid "
|
402 |
msgstr ""
|
403 |
|
404 |
-
#:
|
405 |
-
msgid "
|
406 |
msgstr ""
|
407 |
|
408 |
-
#:
|
409 |
-
msgid "
|
410 |
msgstr ""
|
411 |
|
412 |
-
#:
|
413 |
-
msgid "
|
414 |
msgstr ""
|
415 |
|
416 |
-
#:
|
417 |
-
msgid "
|
418 |
msgstr ""
|
419 |
|
420 |
-
#:
|
421 |
-
msgid "
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: view/settings-form.php:
|
425 |
-
msgid "
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: view/
|
429 |
-
|
430 |
-
msgid ""
|
431 |
-
"Don't forget to attach your %s or some screenshots. It will significantly "
|
432 |
-
"reduce reply time :)"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#:
|
436 |
-
msgid "
|
|
|
|
|
437 |
msgstr ""
|
438 |
|
439 |
-
#:
|
440 |
-
msgid "
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: view/settings-form.php:
|
444 |
-
msgid "
|
445 |
msgstr ""
|
446 |
|
447 |
-
#:
|
448 |
-
msgid "
|
449 |
msgstr ""
|
450 |
|
451 |
-
#:
|
452 |
-
|
453 |
-
msgid "empty"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#:
|
457 |
-
msgid "
|
458 |
msgstr ""
|
459 |
|
460 |
-
#:
|
461 |
-
msgid "
|
462 |
msgstr ""
|
463 |
|
464 |
-
#:
|
465 |
-
msgid "
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: view/settings-form.php:
|
469 |
-
msgid "
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: view/settings-form.php:
|
473 |
-
msgid "
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: view/settings-form.php:
|
477 |
-
msgid "
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: view/settings-form.php:
|
481 |
-
msgid "
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: view/settings-form.php:
|
485 |
-
msgid "
|
486 |
-
msgstr ""
|
487 |
-
|
488 |
-
#: view/settings-form.php:420
|
489 |
-
msgid "Export all order notes"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: view/settings-form.php:
|
493 |
-
msgid "
|
494 |
msgstr ""
|
495 |
|
496 |
-
#:
|
497 |
-
|
498 |
-
msgid "Export as %s"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: view/settings-form.php:
|
502 |
-
msgid "
|
503 |
msgstr ""
|
504 |
|
505 |
-
#:
|
506 |
-
|
507 |
-
|
|
|
|
|
508 |
msgstr ""
|
509 |
|
510 |
-
#: view/settings-form.php:
|
511 |
-
msgid "
|
512 |
msgstr ""
|
513 |
|
514 |
-
#: view/
|
515 |
-
msgid "
|
516 |
msgstr ""
|
517 |
|
518 |
-
#:
|
519 |
-
|
520 |
-
#: classes/class-wc-order-export-admin.php:228
|
521 |
-
#: classes/class-wc-order-export-admin.php:229
|
522 |
-
msgid "Export Orders"
|
523 |
msgstr ""
|
524 |
|
525 |
-
|
526 |
-
msgid "
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: view/settings-form.php:
|
530 |
-
msgid "
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: view/settings-form.php:
|
534 |
-
msgid "
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: view/
|
538 |
-
msgid "
|
539 |
msgstr ""
|
540 |
|
541 |
-
#:
|
542 |
-
msgid "
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: view/settings-form.php:
|
546 |
-
|
547 |
-
msgid "Export total: %s orders"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: view/settings-form.php:
|
551 |
-
msgid "
|
552 |
msgstr ""
|
553 |
|
554 |
-
#:
|
555 |
-
msgid "
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: view/settings-form.php:
|
559 |
-
msgid "
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: view/settings-form.php:
|
563 |
-
msgid "
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: view/settings-form.php:
|
567 |
-
msgid "
|
568 |
msgstr ""
|
569 |
|
570 |
-
#:
|
571 |
-
msgid "
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: view/settings-form.php:
|
575 |
-
msgid "
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: view/settings-form.php:
|
579 |
-
|
|
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: view/settings-form.php:
|
583 |
-
|
|
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: view/settings-form.php:
|
587 |
-
|
|
|
|
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: view/settings-form.php:
|
591 |
-
|
|
|
|
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: view/settings-form.php:
|
595 |
-
|
|
|
|
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: view/settings-form.php:
|
599 |
-
|
|
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: view/settings-form.php:
|
603 |
-
msgid "
|
604 |
msgstr ""
|
605 |
|
606 |
-
#:
|
607 |
-
msgid "
|
608 |
msgstr ""
|
609 |
|
610 |
-
#:
|
611 |
-
msgid "
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: view/settings-form.php:
|
615 |
-
msgid "
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: view/settings-form.php:
|
619 |
-
|
|
|
|
|
|
|
|
|
620 |
msgstr ""
|
621 |
|
622 |
-
#:
|
623 |
-
msgid "
|
624 |
msgstr ""
|
625 |
|
626 |
-
#:
|
627 |
-
msgid "
|
628 |
msgstr ""
|
629 |
|
630 |
-
#:
|
631 |
-
msgid "
|
632 |
msgstr ""
|
633 |
|
634 |
-
#:
|
635 |
-
msgid "
|
636 |
msgstr ""
|
637 |
|
638 |
-
#:
|
639 |
-
msgid "
|
640 |
msgstr ""
|
641 |
|
642 |
-
#:
|
643 |
-
msgid "
|
644 |
msgstr ""
|
645 |
|
646 |
-
#:
|
647 |
-
msgid "
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: view/
|
651 |
-
msgid "
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: view/
|
655 |
-
msgid "
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: view/settings-form.php:
|
659 |
-
|
660 |
-
msgid "
|
661 |
msgstr ""
|
662 |
|
663 |
-
|
664 |
-
msgid "
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: view/settings-form.php:
|
668 |
-
|
669 |
-
msgid ""
|
670 |
-
"If you see this message after page load, user interface won't work correctly!"
|
671 |
-
"<br>There is a JS error (<a target=blank href='%s'>read here</a> how to view "
|
672 |
-
"it). Probably, it's a conflict with another plugin or active theme."
|
673 |
msgstr ""
|
674 |
|
675 |
-
#:
|
676 |
-
msgid "
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: view/
|
680 |
-
msgid "
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: view/
|
684 |
-
msgid "
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: view/
|
688 |
-
msgid "
|
689 |
msgstr ""
|
690 |
|
691 |
-
#:
|
692 |
-
msgid "
|
693 |
msgstr ""
|
694 |
|
695 |
-
#:
|
696 |
-
msgid "
|
697 |
msgstr ""
|
698 |
|
699 |
-
#:
|
700 |
-
msgid "
|
701 |
msgstr ""
|
702 |
|
703 |
-
#:
|
704 |
-
msgid "
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: view/
|
708 |
-
msgid "
|
709 |
msgstr ""
|
710 |
|
711 |
-
#:
|
712 |
-
msgid "
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: classes/
|
716 |
-
msgid "
|
|
|
|
|
717 |
msgstr ""
|
718 |
|
719 |
-
#:
|
720 |
-
msgid "
|
721 |
msgstr ""
|
722 |
|
723 |
-
#:
|
724 |
-
msgid "
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: classes/
|
728 |
-
msgid "
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: classes/
|
732 |
-
|
|
|
|
|
|
|
733 |
msgstr ""
|
734 |
|
735 |
-
#:
|
736 |
-
msgid "
|
737 |
msgstr ""
|
738 |
|
739 |
-
#:
|
740 |
-
|
|
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: classes/
|
744 |
-
msgid "
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: classes/
|
748 |
-
msgid "
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: classes/
|
752 |
-
msgid "
|
753 |
msgstr ""
|
754 |
|
755 |
-
#:
|
756 |
-
msgid "
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: classes/
|
760 |
-
msgid "
|
761 |
msgstr ""
|
762 |
|
763 |
-
#:
|
764 |
-
|
765 |
-
msgid ""
|
766 |
-
"Look at %s for popular plugins or check %s to study how to extend the plugin."
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: classes/
|
770 |
-
msgid "
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: classes/class-wc-order-export-admin.php:
|
774 |
-
msgid "
|
775 |
msgstr ""
|
776 |
|
777 |
-
#:
|
778 |
-
msgid "
|
779 |
msgstr ""
|
780 |
|
781 |
-
#:
|
782 |
-
msgid "
|
783 |
msgstr ""
|
784 |
|
785 |
-
#:
|
786 |
-
msgid "
|
787 |
msgstr ""
|
788 |
|
789 |
-
#:
|
790 |
-
msgid "
|
791 |
msgstr ""
|
792 |
|
793 |
-
#:
|
794 |
-
|
795 |
-
msgid "Modification Date"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: classes/
|
799 |
-
msgid "
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: classes/
|
803 |
-
msgid "
|
804 |
msgstr ""
|
805 |
|
806 |
-
#:
|
807 |
-
msgid "
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: classes/
|
811 |
-
|
812 |
-
|
|
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: classes/class-wc-order-export-admin.php:
|
816 |
-
|
817 |
-
#: classes/core/class-wc-order-export-engine.php:747
|
818 |
-
#: classes/core/class-wc-order-export-engine.php:760
|
819 |
-
msgid "Nothing to export. Please, adjust your filters"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: classes/
|
823 |
-
msgid "
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: classes/class-wc-order-export-admin.php:
|
827 |
-
msgid "
|
828 |
msgstr ""
|
829 |
|
830 |
-
#:
|
831 |
-
msgid "
|
832 |
msgstr ""
|
833 |
|
834 |
-
#:
|
835 |
-
|
836 |
-
msgid "or type meta key here"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#:
|
840 |
-
|
841 |
-
msgid "Order Date"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#:
|
845 |
-
|
846 |
-
msgid "Order ID"
|
847 |
msgstr ""
|
848 |
|
849 |
-
#:
|
850 |
-
|
|
|
|
|
|
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: classes/
|
854 |
-
|
|
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: classes/
|
858 |
-
|
|
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: classes/
|
862 |
-
|
|
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: classes/
|
866 |
-
msgid "
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: classes/
|
870 |
-
msgid "
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: classes/
|
874 |
-
|
|
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: classes/
|
878 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
879 |
msgstr ""
|
880 |
|
881 |
-
#:
|
882 |
-
msgid "
|
|
|
|
|
883 |
msgstr ""
|
884 |
|
885 |
-
#:
|
886 |
-
msgid "
|
887 |
msgstr ""
|
888 |
|
889 |
-
#:
|
890 |
-
msgid "
|
891 |
msgstr ""
|
892 |
|
893 |
-
#:
|
894 |
-
msgid "
|
895 |
msgstr ""
|
896 |
|
897 |
-
#:
|
898 |
-
msgid "
|
|
|
|
|
899 |
msgstr ""
|
900 |
|
901 |
-
#:
|
902 |
-
msgid "
|
|
|
|
|
903 |
msgstr ""
|
904 |
|
905 |
-
#:
|
906 |
-
msgid "
|
907 |
msgstr ""
|
908 |
|
909 |
-
#:
|
910 |
-
msgid "
|
911 |
msgstr ""
|
912 |
|
913 |
-
#:
|
914 |
-
|
|
|
915 |
msgstr ""
|
916 |
|
917 |
-
#:
|
918 |
-
|
|
|
919 |
msgstr ""
|
920 |
|
921 |
-
#:
|
922 |
-
msgid "
|
923 |
msgstr ""
|
924 |
|
925 |
-
#:
|
926 |
-
msgid "
|
927 |
msgstr ""
|
928 |
|
929 |
-
#:
|
930 |
-
msgid "
|
931 |
msgstr ""
|
932 |
|
933 |
-
#:
|
934 |
-
msgid "
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: view/
|
938 |
-
msgid "
|
939 |
msgstr ""
|
940 |
|
941 |
-
#:
|
942 |
-
|
|
|
|
|
|
|
943 |
msgstr ""
|
944 |
|
945 |
-
#:
|
946 |
-
|
|
|
|
|
947 |
msgstr ""
|
948 |
|
949 |
-
#:
|
950 |
-
|
|
|
951 |
msgstr ""
|
952 |
|
953 |
-
#:
|
954 |
-
|
|
|
955 |
msgstr ""
|
956 |
|
957 |
-
#:
|
958 |
-
|
|
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: classes/
|
962 |
-
msgid "
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: classes/
|
966 |
-
|
|
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: classes/
|
970 |
-
msgid "
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: classes/
|
974 |
-
msgid "
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: classes/
|
978 |
-
msgid "
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: classes/
|
982 |
-
msgid "
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: classes/
|
986 |
-
msgid "
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: classes/
|
990 |
-
msgid "
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: classes/
|
994 |
-
|
995 |
-
msgid "Orders"
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: classes/
|
999 |
-
|
|
|
|
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#:
|
1003 |
-
|
1004 |
-
msgid "Output column titles as first line"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
-
#:
|
1008 |
-
msgid "
|
1009 |
msgstr ""
|
1010 |
|
1011 |
-
#:
|
1012 |
-
|
1013 |
-
msgid "Paid Date"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#:
|
1017 |
-
msgid ""
|
1018 |
-
"Paste text into this field to import settings into the current WordPress "
|
1019 |
-
"install."
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1023 |
-
msgid "
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1027 |
-
msgid "
|
1028 |
msgstr ""
|
1029 |
|
1030 |
-
#:
|
1031 |
-
msgid "
|
1032 |
msgstr ""
|
1033 |
|
1034 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1035 |
-
msgid "
|
1036 |
msgstr ""
|
1037 |
|
1038 |
-
#:
|
1039 |
-
msgid ""
|
1040 |
-
"Please check permissions for your role. You must have capability "
|
1041 |
-
"“edit_themes” to use this box."
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#:
|
1045 |
-
msgid ""
|
1046 |
-
"Please, <a href=\"plugins.php\">deactivate</a> Free version of Advanced "
|
1047 |
-
"Order Export For WooCommerce!"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#:
|
1051 |
-
msgid "
|
1052 |
msgstr ""
|
1053 |
|
1054 |
-
#: classes/class-wc-order-export-
|
1055 |
-
msgid "
|
1056 |
msgstr ""
|
1057 |
|
1058 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1059 |
-
msgid "
|
1060 |
msgstr ""
|
1061 |
|
1062 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1063 |
-
msgid "
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#:
|
1067 |
-
msgid "
|
1068 |
msgstr ""
|
1069 |
|
1070 |
-
#:
|
1071 |
-
msgid "
|
1072 |
msgstr ""
|
1073 |
|
1074 |
-
#:
|
1075 |
-
msgid "
|
1076 |
msgstr ""
|
1077 |
|
1078 |
-
#:
|
1079 |
-
msgid "
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#:
|
1083 |
-
|
1084 |
-
msgid "Pro version"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#:
|
1088 |
-
msgid "
|
1089 |
msgstr ""
|
1090 |
|
1091 |
-
#:
|
1092 |
-
msgid "
|
1093 |
msgstr ""
|
1094 |
|
1095 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1096 |
-
msgid "
|
1097 |
msgstr ""
|
1098 |
|
1099 |
-
#:
|
1100 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#:
|
1104 |
-
msgid "
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1108 |
-
msgid "
|
1109 |
msgstr ""
|
1110 |
|
1111 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1112 |
-
msgid "
|
1113 |
msgstr ""
|
1114 |
|
1115 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1116 |
-
msgid "
|
1117 |
msgstr ""
|
1118 |
|
1119 |
-
#:
|
1120 |
-
msgid "
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#:
|
1124 |
-
msgid "
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1128 |
-
msgid "
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1132 |
-
msgid "
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: classes/
|
1136 |
-
|
1137 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:1124
|
1138 |
-
msgid "Products"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: classes/class-wc-order-export-
|
1142 |
-
msgid "
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#:
|
1146 |
-
msgid "
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1150 |
-
msgid "
|
1151 |
msgstr ""
|
1152 |
|
1153 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1154 |
-
msgid "
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#:
|
1158 |
-
msgid "
|
1159 |
msgstr ""
|
1160 |
|
1161 |
-
#: classes/class-wc-order-export-
|
1162 |
-
msgid "
|
1163 |
msgstr ""
|
1164 |
|
1165 |
-
#:
|
1166 |
-
msgid "
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#:
|
1170 |
-
msgid "
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: classes/class-wc-order-export-
|
1174 |
-
msgid "
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: classes/
|
1178 |
-
msgid "
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#:
|
1182 |
-
msgid "
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#:
|
1186 |
-
msgid "
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#:
|
1190 |
-
msgid "
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#:
|
1194 |
-
msgid "
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: classes/class-wc-order-export-
|
1198 |
-
msgid "
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#:
|
1202 |
-
msgid "
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: classes/class-wc-order-export-
|
1206 |
-
msgid "
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#:
|
1210 |
-
msgid "
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: classes/class-wc-order-export-
|
1214 |
-
msgid "
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: classes/class-wc-order-export-
|
1218 |
-
msgid "
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#:
|
1222 |
-
msgid "
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#:
|
1226 |
-
msgid "
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#:
|
1230 |
-
msgid "
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1234 |
-
msgid "Shipping"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1238 |
-
msgid "Shipping
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#:
|
1242 |
-
msgid "Shipping
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1246 |
-
msgid "Shipping
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1250 |
-
msgid "Shipping
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#:
|
1254 |
-
msgid "Shipping
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1258 |
-
msgid "
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#:
|
1262 |
-
msgid "
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1266 |
-
msgid "
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#:
|
1270 |
-
|
1271 |
-
msgid "Sort orders by %s in %s order"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: classes/class-wc-order-export-
|
1275 |
-
msgid "
|
1276 |
msgstr ""
|
1277 |
|
1278 |
-
#:
|
1279 |
-
msgid "
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1283 |
-
msgid "
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1287 |
-
msgid "
|
1288 |
msgstr ""
|
1289 |
|
1290 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1291 |
-
msgid "
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1295 |
-
msgid "
|
1296 |
msgstr ""
|
1297 |
|
1298 |
-
#: classes/class-wc-order-export-
|
1299 |
-
|
1300 |
-
msgid "Status change job #%s for order #%s. Result: %s"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#:
|
1304 |
-
msgid "
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1308 |
-
msgid "
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#:
|
1312 |
-
msgid "
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#:
|
1316 |
-
msgid "
|
1317 |
msgstr ""
|
1318 |
|
1319 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1320 |
-
msgid "
|
1321 |
msgstr ""
|
1322 |
|
1323 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1324 |
-
msgid "
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: classes/
|
1328 |
-
msgid "
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: classes/class-wc-order-export-
|
1332 |
-
msgid "
|
1333 |
msgstr ""
|
1334 |
|
1335 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1336 |
-
msgid "
|
1337 |
msgstr ""
|
1338 |
|
1339 |
-
#:
|
1340 |
-
msgid "
|
1341 |
msgstr ""
|
1342 |
|
1343 |
-
#: classes/core/class-wc-order-export-
|
1344 |
-
|
1345 |
-
msgid "The code you are trying to save produced a fatal error on line %d:"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#:
|
1349 |
-
msgid ""
|
1350 |
-
"The filters won't work correctly.<br>Another plugin(or theme) has loaded "
|
1351 |
-
"outdated Select2.js"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
-
#:
|
1355 |
-
msgid "
|
1356 |
msgstr ""
|
1357 |
|
1358 |
-
#:
|
1359 |
-
msgid "
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#:
|
1363 |
-
msgid ""
|
1364 |
-
"This process will overwrite your settings for \"Advanced Order Export For "
|
1365 |
-
"WooCommerce\" !"
|
1366 |
msgstr ""
|
1367 |
|
1368 |
-
#: classes/
|
1369 |
-
msgid "
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#:
|
1373 |
-
msgid "
|
1374 |
msgstr ""
|
1375 |
|
1376 |
-
#: classes/class-wc-order-export-
|
1377 |
-
msgid "
|
1378 |
msgstr ""
|
1379 |
|
1380 |
-
#:
|
1381 |
-
msgid "
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#:
|
1385 |
-
msgid "
|
1386 |
msgstr ""
|
1387 |
|
1388 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1389 |
-
msgid "Total
|
1390 |
msgstr ""
|
1391 |
|
1392 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1393 |
-
msgid "Total
|
1394 |
msgstr ""
|
1395 |
|
1396 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1397 |
msgid "Total weight"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1401 |
-
msgid "
|
1402 |
msgstr ""
|
1403 |
|
1404 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1405 |
-
msgid "
|
1406 |
msgstr ""
|
1407 |
|
1408 |
-
#:
|
1409 |
-
msgid "
|
1410 |
msgstr ""
|
1411 |
|
1412 |
-
#: classes/
|
1413 |
-
msgid "
|
1414 |
msgstr ""
|
1415 |
|
1416 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1417 |
-
msgid "
|
1418 |
msgstr ""
|
1419 |
|
1420 |
-
#: classes/class-wc-order-export-
|
1421 |
-
msgid "
|
1422 |
msgstr ""
|
1423 |
|
1424 |
-
#:
|
1425 |
-
msgid "
|
1426 |
msgstr ""
|
1427 |
|
1428 |
-
#:
|
1429 |
-
msgid "
|
1430 |
msgstr ""
|
1431 |
|
1432 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1433 |
-
msgid "
|
1434 |
msgstr ""
|
1435 |
|
1436 |
-
#:
|
1437 |
-
msgid "
|
1438 |
msgstr ""
|
1439 |
|
1440 |
-
#: classes/core/class-wc-order-export-data-extractor-ui.php:
|
1441 |
-
msgid "
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#:
|
1445 |
-
msgid "
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#:
|
1449 |
-
|
1450 |
-
msgid "Value"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#:
|
1454 |
-
msgid "
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#: classes/core/class-wc-order-export-data-extractor
|
1458 |
-
msgid "
|
1459 |
msgstr ""
|
1460 |
|
1461 |
-
#:
|
1462 |
-
|
|
|
1463 |
msgstr ""
|
1464 |
|
1465 |
-
#: classes/
|
1466 |
-
msgid "
|
1467 |
msgstr ""
|
1468 |
|
1469 |
-
#: classes/core/class-wc-order-export-
|
1470 |
-
msgid "
|
1471 |
msgstr ""
|
1472 |
|
1473 |
-
#: classes/core/class-wc-order-export-
|
1474 |
-
msgid "
|
1475 |
msgstr ""
|
1476 |
|
1477 |
-
#: classes/core/class-wc-order-export-engine.php:
|
1478 |
-
|
|
|
1479 |
msgstr ""
|
1480 |
|
1481 |
-
#: classes/core/class-wc-order-export-engine.php:
|
1482 |
-
msgid "
|
1483 |
msgstr ""
|
1484 |
|
1485 |
-
|
1486 |
-
msgid "
|
1487 |
msgstr ""
|
1488 |
|
1489 |
-
|
1490 |
-
msgid "
|
1491 |
msgstr ""
|
1492 |
|
1493 |
-
|
1494 |
-
msgid "
|
|
|
|
|
|
|
|
|
1495 |
msgstr ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Advanced Order Export For WooCommerce\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2019-02-05 07:41+0000\n"
|
7 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
"Language-Team: \n"
|
14 |
"Content-Transfer-Encoding: 8bit\n"
|
15 |
"X-Generator: Loco https://localise.biz/"
|
16 |
|
17 |
+
#: woo-order-export-lite.php:48
|
18 |
+
msgid ""
|
19 |
+
"Please, <a href=\"plugins.php\">deactivate</a> Free version of Advanced "
|
20 |
+
"Order Export For WooCommerce!"
|
21 |
+
msgstr ""
|
|
|
22 |
|
23 |
+
#: view/settings-form.php:42
|
24 |
+
msgid "Field format"
|
25 |
+
msgstr ""
|
|
|
|
|
|
|
26 |
|
27 |
+
#: view/settings-form.php:45 view/settings-form.php:481
|
28 |
+
#: view/settings-form.php:507
|
29 |
msgid "-"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: view/settings-form.php:103
|
33 |
+
msgid "Filter orders by"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: view/settings-form.php:109 view/settings-form.php:525
|
37 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:661
|
38 |
+
msgid "Order Date"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: view/settings-form.php:116 view/settings-form.php:526
|
42 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:666
|
43 |
+
msgid "Modification Date"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: view/settings-form.php:123
|
47 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:686
|
48 |
+
msgid "Paid Date"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: view/settings-form.php:130
|
52 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:681
|
53 |
+
msgid "Completed Date"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: view/settings-form.php:135
|
57 |
+
msgid "This date range should not be saved in the scheduled task"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: view/settings-form.php:138
|
61 |
+
msgid "Date range"
|
|
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: view/settings-form.php:141
|
65 |
+
msgid "to"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: view/settings-form.php:146
|
69 |
+
msgid "Express export"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: view/settings-form.php:153
|
73 |
+
msgid "Summary Report By Products"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: view/settings-form.php:162
|
77 |
+
msgid "Export filename"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: view/settings-form.php:173
|
81 |
+
msgid "Format"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: view/settings-form.php:186
|
85 |
+
msgid "XLS options"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: view/settings-form.php:196
|
89 |
+
msgid "Export as .xls (Binary File Format)"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: view/settings-form.php:198
|
93 |
+
msgid "Use sheet name"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: view/settings-form.php:204 view/settings-form.php:231
|
97 |
+
#: view/settings-form.php:309 view/settings-form.php:328
|
98 |
+
msgid "Output column titles as first line"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: view/settings-form.php:208
|
102 |
+
msgid "Auto column width"
|
|
|
|
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: view/settings-form.php:212
|
106 |
+
msgid "Right-to-Left direction"
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: view/settings-form.php:216
|
110 |
+
msgid "Force general format for all cells"
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: view/settings-form.php:218
|
114 |
+
msgid "CSV options"
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: view/settings-form.php:227 view/settings-form.php:305
|
118 |
+
msgid "Output UTF-8 BOM"
|
119 |
msgstr ""
|
120 |
|
121 |
+
#: view/settings-form.php:235
|
122 |
+
msgid "Convert line breaks to literals"
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: view/settings-form.php:239
|
126 |
+
msgid "Item rows start from new line"
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: view/settings-form.php:240
|
130 |
+
msgid "Enclosure"
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: view/settings-form.php:244
|
134 |
+
msgid "Field Delimiter"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: view/settings-form.php:248 view/settings-form.php:310
|
138 |
+
msgid "Line Break"
|
139 |
msgstr ""
|
140 |
|
141 |
+
#: view/settings-form.php:253 view/settings-form.php:315
|
142 |
+
msgid "Character encoding"
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: view/settings-form.php:259
|
146 |
+
msgid "XML options"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: view/settings-form.php:262
|
150 |
+
msgid "Please, install/enable PHP XML Extension!"
|
|
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: view/settings-form.php:265
|
154 |
+
msgid "Prepend XML"
|
|
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: view/settings-form.php:268
|
158 |
+
msgid "Root tag"
|
|
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: view/settings-form.php:271
|
162 |
+
msgid "Order tag"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: view/settings-form.php:274
|
166 |
+
msgid "Product tag"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: view/settings-form.php:277
|
170 |
+
msgid "Coupon tag"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: view/settings-form.php:280
|
174 |
+
msgid "Append XML"
|
|
|
|
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: view/settings-form.php:283
|
178 |
+
msgid "Self closing tags"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: view/settings-form.php:289
|
182 |
+
msgid "JSON options"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: view/settings-form.php:291
|
186 |
+
msgid "Start tag"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: view/settings-form.php:294
|
190 |
+
msgid "End tag"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: view/settings-form.php:298
|
194 |
+
msgid "TSV options"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: view/settings-form.php:322
|
198 |
+
msgid "PDF options"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: view/settings-form.php:335
|
202 |
+
msgid "repeat at each page"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: view/settings-form.php:339
|
206 |
+
msgid "Orientation"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: view/settings-form.php:348
|
210 |
+
msgid "Page size"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: view/settings-form.php:357
|
214 |
+
msgid "Font size"
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: view/settings-form.php:362
|
218 |
+
msgid "Page numbers"
|
219 |
msgstr ""
|
220 |
|
221 |
+
#: view/settings-form.php:365
|
222 |
+
msgid "Left align"
|
223 |
msgstr ""
|
224 |
|
225 |
+
#: view/settings-form.php:366
|
226 |
+
msgid "Center align"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: view/settings-form.php:367
|
230 |
+
msgid "Right align"
|
|
|
|
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: view/settings-form.php:372
|
234 |
+
msgid "No page numbers"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: view/settings-form.php:381
|
238 |
+
msgid "Page header text"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: view/settings-form.php:385
|
242 |
+
msgid "Columns width"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: view/settings-form.php:386 view/settings-form.php:395
|
246 |
+
msgid "comma separated list"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: view/settings-form.php:390
|
250 |
+
msgid "Page footer text"
|
|
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: view/settings-form.php:394
|
254 |
+
msgid "Columns align"
|
|
|
|
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: view/settings-form.php:400
|
258 |
+
msgid "Fit table to page width"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: view/settings-form.php:401
|
262 |
+
msgid "Yes"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: view/settings-form.php:402
|
266 |
+
msgid "No"
|
|
|
|
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: view/settings-form.php:406
|
270 |
+
msgid "Table header text color"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: view/settings-form.php:410
|
274 |
+
msgid "Table header background color"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: view/settings-form.php:415
|
278 |
+
msgid "Table row text color"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: view/settings-form.php:419
|
282 |
+
msgid "Table row background color"
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: view/settings-form.php:424
|
286 |
+
msgid "Page header text color"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: view/settings-form.php:428
|
290 |
+
msgid "Page footer text color"
|
291 |
msgstr ""
|
292 |
|
293 |
+
#: view/settings-form.php:444
|
294 |
+
msgid "Logo align"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: view/settings-form.php:452
|
298 |
+
msgid "Logo height"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: view/settings-form.php:457
|
302 |
+
msgid "Logo width"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: view/settings-form.php:457
|
306 |
+
msgid "0 - auto scale"
|
|
|
|
|
|
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: view/settings-form.php:467
|
310 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1149
|
311 |
+
msgid "Date"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: view/settings-form.php:485 view/settings-form.php:511
|
315 |
+
msgid "custom"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: view/settings-form.php:494
|
319 |
+
msgid "Time"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: view/settings-form.php:524
|
323 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:646
|
324 |
+
msgid "Order ID"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: view/settings-form.php:543
|
328 |
+
msgid "Descending"
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: view/settings-form.php:545
|
332 |
+
msgid "Ascending"
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: view/settings-form.php:550
|
336 |
+
#, php-format
|
337 |
+
msgid "Sort orders by %s in %s order"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: view/settings-form.php:556
|
341 |
+
msgid "Change order status to"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: view/settings-form.php:561
|
345 |
+
msgid "- don't modify -"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: view/settings-form.php:573
|
349 |
+
msgid "Misc settings"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: view/settings-form.php:579
|
353 |
+
msgid "Format numbers (use WC decimal separator)"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: view/settings-form.php:585
|
357 |
+
msgid "Export all order notes"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: view/settings-form.php:591
|
361 |
+
msgid "Export refund notes as Customer Note"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: view/settings-form.php:597
|
365 |
+
msgid "Strip tags from Product Description/Variation"
|
366 |
msgstr ""
|
367 |
|
368 |
+
#: view/settings-form.php:603
|
369 |
+
msgid "Cleanup phone (export only digits)"
|
|
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: view/settings-form.php:609
|
373 |
+
msgid "Enable debug output"
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: view/settings-form.php:615
|
377 |
+
msgid "Custom PHP code to modify output"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: view/settings-form.php:620
|
381 |
+
msgid ""
|
382 |
+
"Please check permissions for your role. You must have capability "
|
383 |
+
"“edit_themes” to use this box."
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: view/settings-form.php:624
|
387 |
+
msgid "Use only unnamed functions!"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: view/settings-form.php:641
|
391 |
+
msgid "Filter by order"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: view/settings-form.php:646
|
395 |
+
msgid "Don't export child orders"
|
396 |
msgstr ""
|
397 |
|
398 |
+
#: view/settings-form.php:650
|
399 |
+
msgid "Export refunds"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: view/settings-form.php:654
|
403 |
+
msgid "Mark exported orders"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: view/settings-form.php:658
|
407 |
+
msgid "Export unmarked orders only"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: view/settings-form.php:660
|
411 |
+
msgid "Order statuses"
|
412 |
msgstr ""
|
413 |
|
414 |
+
#: view/settings-form.php:672 view/settings-form.php:936
|
415 |
+
msgid "Custom fields"
|
|
|
|
|
|
|
416 |
msgstr ""
|
417 |
|
418 |
+
#: view/settings-form.php:715
|
419 |
+
msgid ""
|
420 |
+
"The filters won't work correctly.<br>Another plugin(or theme) has loaded "
|
421 |
+
"outdated Select2.js"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: view/settings-form.php:717
|
425 |
+
msgid "Filter by product"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: view/settings-form.php:722
|
429 |
+
msgid "Export all products from the order"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: view/settings-form.php:726
|
433 |
+
msgid "Skip fully refunded items"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: view/settings-form.php:728
|
437 |
+
msgid "Product categories"
|
|
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: view/settings-form.php:745
|
441 |
+
msgid "Vendor/creator"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: view/settings-form.php:760
|
445 |
+
msgid "Product"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: view/settings-form.php:774
|
449 |
+
msgid "Product taxonomies"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: view/settings-form.php:803
|
453 |
+
msgid "Product custom fields"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: view/settings-form.php:837
|
457 |
+
msgid "Variable product attributes"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: view/settings-form.php:868
|
461 |
+
msgid "Item meta data"
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: view/settings-form.php:908
|
465 |
+
msgid "Filter by customers"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: view/settings-form.php:912
|
469 |
+
msgid "Usernames"
|
|
|
|
|
|
|
|
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: view/settings-form.php:925
|
473 |
+
msgid "User roles"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: view/settings-form.php:976
|
477 |
+
msgid "Filter by coupons"
|
|
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: view/settings-form.php:982
|
481 |
+
msgid "Any coupon used"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: view/settings-form.php:985
|
485 |
+
#: classes/admin/class-wc-order-export-manage.php:766
|
486 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:934
|
487 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1136
|
488 |
+
msgid "Coupons"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: view/settings-form.php:1002
|
492 |
+
msgid "Filter by billing"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: view/settings-form.php:1005
|
496 |
+
msgid "Billing locations"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: view/settings-form.php:1032
|
500 |
+
msgid "Payment methods"
|
|
|
|
|
|
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: view/settings-form.php:1048
|
504 |
+
msgid "Filter by shipping"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: view/settings-form.php:1051
|
508 |
+
msgid "Shipping locations"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: view/settings-form.php:1078
|
512 |
+
msgid "Shipping methods"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: view/settings-form.php:1093
|
516 |
+
msgid "Filter by item and metadata"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: view/settings-form.php:1096
|
520 |
+
msgid "Item names"
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: view/settings-form.php:1123
|
524 |
+
msgid "Item metadata"
|
|
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: view/settings-form.php:1160
|
528 |
+
msgid "Set up fields to export"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: view/settings-form.php:1176
|
532 |
+
msgid "Drag rows to reorder exported fields"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: view/settings-form.php:1182
|
536 |
+
msgid "Remove all fields"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: view/settings-form.php:1209
|
540 |
+
msgid "Actions"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: view/settings-form.php:1212
|
544 |
+
msgid "Add field"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: view/settings-form.php:1215
|
548 |
+
msgid "Add static field"
|
549 |
msgstr ""
|
550 |
|
551 |
+
#: view/settings-form.php:1221 view/settings-form.php:1342
|
552 |
+
msgid "Meta key"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: view/settings-form.php:1232 view/settings-form.php:1292
|
556 |
+
#: view/settings-form.php:1351
|
557 |
+
msgid "or type meta key here"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: view/settings-form.php:1237 view/settings-form.php:1280
|
561 |
+
#: view/settings-form.php:1345
|
562 |
+
msgid "Hide unused fields"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: view/settings-form.php:1241 view/settings-form.php:1257
|
566 |
+
#: view/settings-form.php:1307 view/settings-form.php:1321
|
567 |
+
#: view/settings-form.php:1354 view/settings-form.php:1369
|
568 |
+
msgid "Column name"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: view/settings-form.php:1249 view/settings-form.php:1270
|
572 |
+
#: view/settings-form.php:1313 view/settings-form.php:1335
|
573 |
+
#: view/settings-form.php:1361 view/settings-form.php:1383
|
574 |
+
msgid "Confirm"
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: view/settings-form.php:1251 view/settings-form.php:1272
|
578 |
+
#: view/settings-form.php:1315 view/settings-form.php:1337
|
579 |
+
#: view/settings-form.php:1363 view/settings-form.php:1386
|
580 |
+
msgid "Cancel"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: view/settings-form.php:1262 view/settings-form.php:1326
|
584 |
+
#: view/settings-form.php:1374
|
585 |
+
msgid "Value"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: view/settings-form.php:1283
|
589 |
+
msgid "Product fields"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: view/settings-form.php:1287
|
593 |
+
msgid "Order item fields"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: view/settings-form.php:1294
|
597 |
+
msgid "OR"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: view/settings-form.php:1296
|
601 |
+
msgid "Taxonomy"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: view/settings-form.php:1414
|
605 |
+
#, php-format
|
606 |
+
msgid ""
|
607 |
+
"If you see this message after page load, user interface won't work correctly!"
|
608 |
+
"<br>There is a JS error (<a target=blank href='%s'>read here</a> how to view "
|
609 |
+
"it). Probably, it's a conflict with another plugin or active theme."
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: view/settings-form.php:1420
|
613 |
+
msgid "Preview"
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: view/settings-form.php:1421
|
617 |
+
msgid "Might be different from actual export!"
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: view/settings-form.php:1424 view/settings-form.php:1429
|
621 |
+
msgid "Save settings"
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: view/settings-form.php:1427
|
625 |
+
msgid "Save & Exit"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: view/settings-form.php:1434
|
629 |
+
msgid "Export"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: view/settings-form.php:1438
|
633 |
+
msgid "Export [w/o progressbar]"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: view/settings-form.php:1439
|
637 |
+
msgid "It might not work for huge datasets!"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: view/settings-form.php:1443
|
641 |
+
msgid "Save as a profile"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: view/settings-form.php:1448
|
645 |
+
msgid "Reset settings"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: view/settings-form.php:1452
|
649 |
+
#, php-format
|
650 |
+
msgid "Export total: %s orders"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: view/settings-form.php:1454
|
654 |
+
msgid "Preview size"
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: view/settings-form.php:1461 view/tab/tools.php:86
|
658 |
+
msgid "Settings were successfully updated!"
|
|
|
|
|
|
|
|
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: view/settings-form.php:1466
|
662 |
+
msgid "Press 'Esc' to cancel the export"
|
663 |
msgstr ""
|
664 |
|
665 |
+
#: view/settings-form.php:1467
|
666 |
+
msgid "Click here to download"
|
667 |
msgstr ""
|
668 |
|
669 |
+
#: view/main.php:8
|
670 |
+
msgid "Settings saved"
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: view/main.php:11 view/tab/tools.php:46
|
674 |
+
msgid "Export now"
|
675 |
msgstr ""
|
676 |
|
677 |
+
#: view/main.php:12 view/tab/tools.php:22
|
678 |
+
msgid "Profiles"
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: view/main.php:13 view/tab/tools.php:23
|
682 |
+
msgid "Status change jobs"
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: view/main.php:14 view/tab/tools.php:24
|
686 |
+
msgid "Scheduled jobs"
|
687 |
msgstr ""
|
688 |
|
689 |
+
#: view/main.php:15
|
690 |
+
msgid "Tools"
|
691 |
msgstr ""
|
692 |
|
693 |
+
#: view/main.php:16
|
694 |
+
msgid "Help"
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: classes/class-wc-order-export-admin.php:88
|
698 |
+
msgid "Export Status"
|
699 |
msgstr ""
|
700 |
|
701 |
+
#: classes/class-wc-order-export-admin.php:129
|
702 |
+
msgid ""
|
703 |
+
"Advanced Order Export For WooCommerce is available <a href=\"admin.php?"
|
704 |
+
"page=wc-order-export\">on this page</a>."
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: classes/class-wc-order-export-admin.php:138
|
708 |
+
msgid "Settings"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: classes/class-wc-order-export-admin.php:139
|
712 |
+
msgid "Docs"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: classes/class-wc-order-export-admin.php:141
|
716 |
+
msgid "Support"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: classes/class-wc-order-export-admin.php:219
|
720 |
+
#: classes/class-wc-order-export-admin.php:220
|
721 |
+
#: classes/class-wc-order-export-admin.php:224
|
722 |
+
#: classes/class-wc-order-export-admin.php:225
|
723 |
+
msgid "Export Orders"
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: classes/class-wc-order-export-admin.php:621
|
727 |
+
msgid "Copied from \"Export now\""
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: classes/class-wc-order-export-admin.php:657
|
731 |
+
#, php-format
|
732 |
+
msgid "Add %s fields"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: classes/class-wc-order-export-admin.php:659
|
736 |
+
msgid "rows"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: classes/class-wc-order-export-admin.php:660
|
740 |
+
msgid "columns"
|
741 |
msgstr ""
|
742 |
|
743 |
+
#: classes/class-wc-order-export-admin.php:661
|
744 |
+
msgid "one row"
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: classes/class-wc-order-export-admin.php:664
|
748 |
+
msgid "Add"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: classes/class-wc-order-export-admin.php:665
|
752 |
+
msgid "as"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: classes/class-wc-order-export-admin.php:666
|
756 |
+
msgid "Split values by"
|
|
|
|
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: classes/class-wc-order-export-admin.php:667
|
760 |
+
msgid "Fill order columns for"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: classes/class-wc-order-export-admin.php:668
|
764 |
+
msgid "all rows"
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: classes/class-wc-order-export-admin.php:669
|
768 |
+
msgid "1st row only"
|
769 |
msgstr ""
|
770 |
|
771 |
+
#: classes/class-wc-order-export-admin.php:671
|
772 |
+
msgid "Grouping by product"
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: classes/class-wc-order-export-admin.php:672
|
776 |
+
msgid "Grouping by coupon"
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: classes/class-wc-order-export-admin.php:676
|
780 |
+
msgid "Set up product fields"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: classes/class-wc-order-export-admin.php:677
|
784 |
+
msgid "Set up coupon fields"
|
|
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: classes/class-wc-order-export-admin.php:678
|
788 |
+
msgid "products"
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: classes/class-wc-order-export-admin.php:679
|
792 |
+
msgid "coupons"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: classes/class-wc-order-export-admin.php:681
|
796 |
+
msgid "Remove all fields?"
|
797 |
msgstr ""
|
798 |
|
799 |
+
#: classes/class-wc-order-export-admin.php:682
|
800 |
+
msgid ""
|
801 |
+
"This action will reset filters, settings and fields to default state. Are "
|
802 |
+
"you sure?"
|
803 |
msgstr ""
|
804 |
|
805 |
+
#: classes/class-wc-order-export-admin.php:724
|
806 |
+
msgid "empty column name"
|
|
|
|
|
|
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: classes/class-wc-order-export-admin.php:725
|
810 |
+
msgid "empty meta key"
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: classes/class-wc-order-export-admin.php:726
|
814 |
+
msgid "select product field or item field or taxonomy"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: classes/class-wc-order-export-admin.php:728
|
818 |
+
msgid "empty value"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: classes/class-wc-order-export-admin.php:729
|
822 |
+
msgid "title is empty"
|
|
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: classes/class-wc-order-export-admin.php:730
|
826 |
+
msgid "Date From is greater than Date To"
|
|
|
827 |
msgstr ""
|
828 |
|
829 |
+
#: classes/class-wc-order-export-admin.php:731
|
830 |
+
msgid "Please, set up fields to export"
|
|
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: classes/class-wc-order-export-admin.php:732
|
834 |
+
#: classes/admin/class-wc-order-export-ajax.php:370
|
835 |
+
#: classes/core/class-wc-order-export-engine.php:747
|
836 |
+
#: classes/core/class-wc-order-export-engine.php:760
|
837 |
+
msgid "Nothing to export. Please, adjust your filters"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: classes/class-wc-order-export-admin.php:734
|
841 |
+
#: classes/core/class-wc-order-export-data-extractor.php:225
|
842 |
+
msgid "empty"
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: classes/class-wc-order-export-admin.php:851
|
846 |
+
#, php-format
|
847 |
+
msgid "Status change job #%s for order #%s. Result: %s"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: classes/class-wc-order-export-admin.php:920
|
851 |
+
#, php-format
|
852 |
+
msgid "Export as %s"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: classes/class-wc-order-export-admin.php:926
|
856 |
+
msgid "Mark exported"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: classes/class-wc-order-export-admin.php:927
|
860 |
+
msgid "Unmark exported"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: classes/class-wc-order-export-admin.php:933
|
864 |
+
#, php-format
|
865 |
+
msgid "Export as profile '%s'"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: classes/class-wc-order-export-admin.php:1004
|
869 |
+
#, php-format
|
870 |
+
msgid "%s order marked."
|
871 |
+
msgid_plural "%s orders marked."
|
872 |
+
msgstr[0] ""
|
873 |
+
msgstr[1] ""
|
874 |
+
|
875 |
+
#: classes/class-wc-order-export-admin.php:1013
|
876 |
+
#, php-format
|
877 |
+
msgid "%s order unmarked."
|
878 |
+
msgid_plural "%s orders unmarked."
|
879 |
+
msgstr[0] ""
|
880 |
+
msgstr[1] ""
|
881 |
+
|
882 |
+
#: view/tab/tools.php:33
|
883 |
+
msgid "Export settings"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: view/tab/tools.php:36
|
887 |
+
msgid ""
|
888 |
+
"Copy these settings and use it to migrate plugin to another WordPress "
|
889 |
+
"install."
|
890 |
msgstr ""
|
891 |
|
892 |
+
#: view/tab/tools.php:42
|
893 |
+
msgid "All"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: view/tab/tools.php:57
|
897 |
+
msgid "Just click inside the textarea and copy (Ctrl+C)"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: view/tab/tools.php:67
|
901 |
+
msgid "Import settings"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: view/tab/tools.php:70
|
905 |
+
msgid ""
|
906 |
+
"Paste text into this field to import settings into the current WordPress "
|
907 |
+
"install."
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: view/tab/tools.php:75
|
911 |
+
msgid ""
|
912 |
+
"This process will overwrite your settings for \"Advanced Order Export For "
|
913 |
+
"WooCommerce\" !"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: view/tab/tools.php:82
|
917 |
+
msgid "Import"
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: view/tab/tools.php:110
|
921 |
+
msgid "Are you sure to continue?"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: view/tab/order-actions.php:5 view/tab/profiles.php:5
|
925 |
+
#: view/tab/schedules.php:5
|
926 |
+
msgid "Pro version"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: view/tab/order-actions.php:7
|
930 |
+
#, php-format
|
931 |
+
msgid "Buy %s to get access to Status change jobs"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: view/tab/help.php:6
|
935 |
+
msgid "settings"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: view/tab/help.php:8
|
939 |
+
msgid "code snippets"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: view/tab/help.php:10
|
943 |
+
msgid "this page"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: view/tab/help.php:16
|
947 |
+
msgid "Need help? Create ticket in"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: view/tab/help.php:17
|
951 |
+
msgid "helpdesk system"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: view/tab/help.php:21
|
955 |
+
#, php-format
|
956 |
+
msgid ""
|
957 |
+
"Don't forget to attach your %s or some screenshots. It will significantly "
|
958 |
+
"reduce reply time :)"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: view/tab/help.php:24
|
962 |
+
#, php-format
|
963 |
+
msgid ""
|
964 |
+
"Look at %s for popular plugins or check %s to study how to extend the plugin."
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: view/tab/profiles.php:7
|
968 |
+
#, php-format
|
969 |
+
msgid "Buy %s to get access to profiles"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: view/tab/schedules.php:7
|
973 |
+
#, php-format
|
974 |
+
msgid "Buy %s to get access to Scheduled jobs"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: classes/formats/abstract-class-woe-formatter-sv.php:103
|
978 |
+
#: classes/formats/class-woe-formatter-xls.php:187
|
979 |
+
msgid "<td colspan=10><b>No results</b></td>"
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: classes/formats/abstract-class-woe-formatter.php:49
|
983 |
+
msgid "can not open for output"
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: classes/formats/class-woe-formatter-xls.php:116
|
987 |
+
#: classes/admin/class-wc-order-export-manage.php:210
|
988 |
+
msgid "Orders"
|
989 |
msgstr ""
|
990 |
|
991 |
+
#: classes/admin/class-wc-order-export-manage.php:21
|
992 |
+
msgid "Sun"
|
993 |
msgstr ""
|
994 |
|
995 |
+
#: classes/admin/class-wc-order-export-manage.php:22
|
996 |
+
msgid "Mon"
|
997 |
msgstr ""
|
998 |
|
999 |
+
#: classes/admin/class-wc-order-export-manage.php:23
|
1000 |
+
msgid "Tue"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
+
#: classes/admin/class-wc-order-export-manage.php:24
|
1004 |
+
msgid "Wed"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
+
#: classes/admin/class-wc-order-export-manage.php:25
|
1008 |
+
msgid "Thu"
|
1009 |
msgstr ""
|
1010 |
|
1011 |
+
#: classes/admin/class-wc-order-export-manage.php:26
|
1012 |
+
msgid "Fri"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
+
#: classes/admin/class-wc-order-export-manage.php:27
|
1016 |
+
msgid "Sat"
|
|
|
1017 |
msgstr ""
|
1018 |
|
1019 |
+
#: classes/admin/class-wc-order-export-manage.php:723
|
1020 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:922
|
1021 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1135
|
1022 |
+
msgid "Products"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: classes/admin/class-wc-order-export-ajax.php:33
|
1026 |
+
msgid "Wrong key for cron url!"
|
|
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: classes/admin/class-wc-order-export-ajax.php:260
|
1030 |
+
msgid "Can't create temporary file"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: classes/admin/class-wc-order-export-ajax.php:282
|
1034 |
+
msgid "Can't find exported file"
|
|
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:344
|
1038 |
+
msgid "Item ID"
|
|
|
|
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:349
|
1042 |
+
msgid "Item #"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:354
|
1046 |
+
msgid "SKU"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:359
|
1050 |
+
msgid "Item Name"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:364
|
1054 |
+
msgid "Product Id"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:369
|
1058 |
+
msgid "Product Name"
|
|
|
|
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:374
|
1062 |
+
msgid "Variation Id"
|
|
|
|
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:379
|
1066 |
+
msgid "Product Variation"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:384
|
1070 |
+
msgid "Item Seller"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:389
|
1074 |
+
msgid "Quantity"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:394
|
1078 |
+
msgid "Quantity (- Refund)"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:399
|
1082 |
+
msgid "Item Cost"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:404
|
1086 |
+
msgid "Product Current Price"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:409
|
1090 |
+
msgid "Order Line (w/o tax)"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:414
|
1094 |
+
msgid "Order Line Tax"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:419
|
1098 |
+
msgid "Order Line Tax Refunded"
|
|
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:424
|
1102 |
+
msgid "Order Line Tax (- Refund)"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:429
|
1106 |
+
msgid "Order Line Subtotal"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:434
|
1110 |
+
msgid "Order Line Subtotal Tax"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:439
|
1114 |
+
msgid "Order Line Total"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:444
|
1118 |
+
msgid "Order Line Total (include tax)"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:449
|
1122 |
+
msgid "Order Line Total Refunded"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:454
|
1126 |
+
msgid "Order Line Total (- Refund)"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:459
|
1130 |
+
msgid "Item Discount Amount"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:464
|
1134 |
+
msgid "Item Tax Rate"
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:469
|
1138 |
+
msgid "Type"
|
1139 |
+
msgstr ""
|
1140 |
+
|
1141 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:474
|
1142 |
+
msgid "Category"
|
1143 |
+
msgstr ""
|
1144 |
+
|
1145 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:479
|
1146 |
+
msgid "Tags"
|
1147 |
+
msgstr ""
|
1148 |
+
|
1149 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:484
|
1150 |
+
msgid "Width"
|
1151 |
+
msgstr ""
|
1152 |
+
|
1153 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:489
|
1154 |
+
msgid "Length"
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:494
|
1158 |
+
msgid "Height"
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:499
|
1162 |
+
msgid "Weight"
|
1163 |
+
msgstr ""
|
1164 |
+
|
1165 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:504
|
1166 |
+
msgid "Product URL"
|
1167 |
+
msgstr ""
|
1168 |
+
|
1169 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:509
|
1170 |
+
msgid "Download URL"
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:514
|
1174 |
+
msgid "Image URL"
|
1175 |
+
msgstr ""
|
1176 |
+
|
1177 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:519
|
1178 |
+
msgid "Product Shipping Class"
|
1179 |
+
msgstr ""
|
1180 |
+
|
1181 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:524
|
1182 |
+
msgid "Description"
|
1183 |
+
msgstr ""
|
1184 |
+
|
1185 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:529
|
1186 |
+
msgid "Short Description"
|
1187 |
+
msgstr ""
|
1188 |
+
|
1189 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:534
|
1190 |
+
msgid "Full names for categories"
|
1191 |
+
msgstr ""
|
1192 |
+
|
1193 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:539
|
1194 |
+
msgid "Summary Report Total Quantity"
|
1195 |
+
msgstr ""
|
1196 |
+
|
1197 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:544
|
1198 |
+
msgid "Summary Report Total Amount"
|
1199 |
+
msgstr ""
|
1200 |
+
|
1201 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:561
|
1202 |
+
msgid "Coupon Code"
|
1203 |
+
msgstr ""
|
1204 |
+
|
1205 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:566
|
1206 |
+
msgid "Discount Amount"
|
1207 |
+
msgstr ""
|
1208 |
+
|
1209 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:571
|
1210 |
+
msgid "Discount Amount Tax"
|
1211 |
+
msgstr ""
|
1212 |
+
|
1213 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:576
|
1214 |
+
msgid "Discount Amount + Tax"
|
1215 |
+
msgstr ""
|
1216 |
+
|
1217 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:581
|
1218 |
+
msgid "Coupon Description"
|
1219 |
+
msgstr ""
|
1220 |
+
|
1221 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:585
|
1222 |
+
msgid "Coupon Type"
|
1223 |
+
msgstr ""
|
1224 |
+
|
1225 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:590
|
1226 |
+
msgid "Coupon Amount"
|
1227 |
+
msgstr ""
|
1228 |
+
|
1229 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:641
|
1230 |
+
msgid "Line number"
|
1231 |
+
msgstr ""
|
1232 |
+
|
1233 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:651
|
1234 |
+
msgid "Order Number"
|
1235 |
+
msgstr ""
|
1236 |
+
|
1237 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:656
|
1238 |
+
msgid "Order Status"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:671
|
1242 |
+
msgid "Transaction ID"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:676
|
1246 |
+
msgid "Currency"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:691
|
1250 |
+
msgid "Date of first refund"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:696
|
1254 |
+
msgid "Customer Note"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:701
|
1258 |
+
msgid "Order Notes"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:711
|
1262 |
+
msgid "Customer IP address"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:716
|
1266 |
+
msgid "Customer User ID"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:721
|
1270 |
+
msgid "Customer Username"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:726
|
1274 |
+
msgid "User Website"
|
|
|
|
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:731
|
1278 |
+
msgid "Customer User Email"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:736
|
1282 |
+
msgid "Customer Role"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:741
|
1286 |
+
msgid "Customer Total Orders"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:751
|
1290 |
+
msgid "First Name (Billing)"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:756
|
1294 |
+
msgid "Last Name (Billing)"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:761
|
1298 |
+
msgid "Full Name (Billing)"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:766
|
1302 |
+
msgid "Company (Billing)"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:771
|
1306 |
+
msgid "Address 1&2 (Billing)"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:776
|
1310 |
+
msgid "Address 1 (Billing)"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:781
|
1314 |
+
msgid "Address 2 (Billing)"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:786
|
1318 |
+
msgid "City (Billing)"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:791
|
1322 |
+
msgid "State Code (Billing)"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:796
|
1326 |
+
msgid "City, State, Zip (Billing)"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:801
|
1330 |
+
msgid "City, State Zip (Billing)"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:806
|
1334 |
+
msgid "State Name (Billing)"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:811
|
1338 |
+
msgid "Postcode (Billing)"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:816
|
1342 |
+
msgid "Country Code (Billing)"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:821
|
1346 |
+
msgid "Country Name (Billing)"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:826
|
1350 |
+
msgid "Email (Billing)"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:831
|
1354 |
+
msgid "Phone (Billing)"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:841
|
1358 |
+
msgid "First Name (Shipping)"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:846
|
1362 |
+
msgid "Last Name (Shipping)"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:851
|
1366 |
+
msgid "Full Name (Shipping)"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:856
|
1370 |
+
msgid "Company (Shipping)"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:861
|
1374 |
+
msgid "Address 1&2 (Shipping)"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:866
|
1378 |
+
msgid "Address 1 (Shipping)"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:871
|
1382 |
+
msgid "Address 2 (Shipping)"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:876
|
1386 |
+
msgid "City (Shipping)"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:881
|
1390 |
+
msgid "State Code (Shipping)"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:886
|
1394 |
+
msgid "City, State, Zip (Shipping)"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:891
|
1398 |
+
msgid "City, State Zip (Shipping)"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:896
|
1402 |
+
msgid "State Name (Shipping)"
|
1403 |
msgstr ""
|
1404 |
|
1405 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:901
|
1406 |
+
msgid "Postcode (Shipping)"
|
|
|
1407 |
msgstr ""
|
1408 |
|
1409 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:906
|
1410 |
+
msgid "Country Code (Shipping)"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:911
|
1414 |
+
msgid "Country Name (Shipping)"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:945
|
1418 |
+
msgid "Shipping Method Title"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:950
|
1422 |
+
msgid "Shipping Method"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:955
|
1426 |
+
msgid "Payment Method Title"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:960
|
1430 |
+
msgid "Payment Method"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:965
|
1434 |
+
msgid "Coupons Used"
|
|
|
1435 |
msgstr ""
|
1436 |
|
1437 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:970
|
1438 |
+
msgid "Cart Discount Amount"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:975
|
1442 |
+
msgid "Cart Discount Amount Tax"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:980
|
1446 |
+
msgid "Order Subtotal Amount"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:985
|
1450 |
+
msgid "Order Subtotal - Cart Discount"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:990
|
1454 |
+
msgid "Order Subtotal Amount Refunded"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:995
|
1458 |
+
msgid "Order Subtotal Amount (- Refund)"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1000
|
1462 |
+
msgid "Order Tax Amount"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1010
|
1466 |
+
msgid "Order Shipping Amount"
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1015
|
1470 |
+
msgid "Order Shipping + Tax Amount"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1020
|
1474 |
+
msgid "Order Shipping Amount Refunded"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1025
|
1478 |
+
msgid "Order Shipping Amount (- Refund)"
|
|
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1030
|
1482 |
+
msgid "Order Shipping Tax Amount"
|
|
|
|
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1035
|
1486 |
+
msgid "Order Shipping Tax Refunded"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1040
|
1490 |
+
msgid "Order Shipping Tax Amount (- Refund)"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1050
|
1494 |
+
msgid "Order Total Fee"
|
|
|
|
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1055
|
1498 |
+
msgid "Order Refund Amount"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1060
|
1502 |
+
msgid "Order Total Amount (- Refund)"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1065
|
1506 |
+
msgid "Order Total Amount"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1070
|
1510 |
+
msgid "Order Total Amount without Tax"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1075
|
1514 |
+
msgid "Order Total Tax Amount"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1080
|
1518 |
+
msgid "Order Total Tax Amount Refunded"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1085
|
1522 |
+
msgid "Order Total Tax Amount (- Refund)"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1095
|
1526 |
msgid "Total weight"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1100
|
1530 |
+
msgid "Total items"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1105
|
1534 |
+
msgid "Exported items"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1110
|
1538 |
+
msgid "Total products"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1131
|
1542 |
+
msgid "Common"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1132
|
1546 |
+
msgid "User"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1133
|
1550 |
+
msgid "Billing Address"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1134
|
1554 |
+
msgid "Shipping Address"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1137
|
1558 |
+
msgid "Cart"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1138
|
1562 |
+
msgid "Shipping"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1139
|
1566 |
+
msgid "Totals"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1140
|
1570 |
+
msgid "Others"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1146
|
1574 |
+
msgid "String"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1147
|
1578 |
+
msgid "Money"
|
|
|
1579 |
msgstr ""
|
1580 |
|
1581 |
+
#: classes/core/class-wc-order-export-data-extractor-ui.php:1148
|
1582 |
+
msgid "Number"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: classes/core/class-wc-order-export-data-extractor.php:2010
|
1586 |
+
msgid "[Rest of the World]"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
+
#: classes/core/class-wc-order-export-engine.php:19
|
1590 |
+
#: classes/core/class-wc-order-export-engine.php:63
|
1591 |
+
msgid "No destination selected"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
+
#: classes/core/class-wc-order-export-engine.php:29
|
1595 |
+
msgid "Wrong format"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: classes/core/class-wc-order-export-engine.php:73
|
1599 |
+
msgid "Wrong export type"
|
1600 |
msgstr ""
|
1601 |
|
1602 |
+
#: classes/core/class-wc-order-export-engine.php:419
|
1603 |
+
msgid "Don't Panic"
|
1604 |
msgstr ""
|
1605 |
|
1606 |
+
#: classes/core/class-wc-order-export-engine.php:420
|
1607 |
+
#, php-format
|
1608 |
+
msgid "The code you are trying to save produced a fatal error on line %d:"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: classes/core/class-wc-order-export-engine.php:546
|
1612 |
+
msgid "Main SQL queries are listed below"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
+
#. Name of the plugin
|
1616 |
+
msgid "Advanced Order Export For WooCommerce"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#. Description of the plugin
|
1620 |
+
msgid "Export orders from WooCommerce with ease (Excel/CSV/XML/JSON supported)"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#. Author of the plugin
|
1624 |
+
msgid "AlgolPlus"
|
1625 |
+
msgstr ""
|
1626 |
+
|
1627 |
+
#. Author URI of the plugin
|
1628 |
+
msgid "https://algolplus.com/"
|
1629 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: woocommerce,export,order,xls,csv,xml,woo export lite,export orders,orders
|
|
5 |
Requires PHP: 5.4.0
|
6 |
Requires at least: 4.7
|
7 |
Tested up to: 5.0
|
8 |
-
Stable tag: 2.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -103,6 +103,18 @@ Yes, you can email a request to aprokaev@gmail.com. We intensively develop this
|
|
103 |
|
104 |
== Changelog ==
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
= 2.0.1 - 2018-11-14 =
|
107 |
* Fixed bug - "total weight" and "count of unique products" were empty
|
108 |
* Fixed bug - message "wrong Select2 loaded"
|
5 |
Requires PHP: 5.4.0
|
6 |
Requires at least: 4.7
|
7 |
Tested up to: 5.0
|
8 |
+
Stable tag: 2.1.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
103 |
|
104 |
== Changelog ==
|
105 |
|
106 |
+
= 2.1.0 - 2019-02-06 =
|
107 |
+
* New format - **PDF**
|
108 |
+
* Fixed some vulnerabilities
|
109 |
+
* Added button "Reset settings"
|
110 |
+
* Section "Setup fields" works on phone/tablet
|
111 |
+
* New XLS option to avoid formatting - "Force general format for all cells"
|
112 |
+
* Fixed bug - fields "Summary Report Total xxxx" stayed at bottom
|
113 |
+
* Fixed bug - "Summary report" was not sorted by item name
|
114 |
+
* Fixed bug - fields reset when user switches between flat formats
|
115 |
+
* Fixed bug - field "full categories" was empty for variations
|
116 |
+
* Tested for jQuery 3.0+
|
117 |
+
|
118 |
= 2.0.1 - 2018-11-14 =
|
119 |
* Fixed bug - "total weight" and "count of unique products" were empty
|
120 |
* Fixed bug - message "wrong Select2 loaded"
|
view/main.php
CHANGED
@@ -18,4 +18,5 @@ $active_tab = isset( $_REQUEST[ 'tab' ] ) ? $_REQUEST[ 'tab' ] : 'export';
|
|
18 |
|
19 |
<script>
|
20 |
var ajaxurl = "<?php echo $ajaxurl ?>"
|
|
|
21 |
</script>
|
18 |
|
19 |
<script>
|
20 |
var ajaxurl = "<?php echo $ajaxurl ?>"
|
21 |
+
var woe_nonce = "<?php echo wp_create_nonce( 'woe_nonce' ) ?>"
|
22 |
</script>
|
view/settings-form.php
CHANGED
@@ -15,6 +15,20 @@ $settings = apply_filters( 'woe_settings_page_prepare', $setting
|
|
15 |
$order_custom_meta_fields = WC_Order_Export_Data_Extractor_UI::get_all_order_custom_meta_fields();
|
16 |
$readonly_php = WC_Order_Export_Admin::user_can_add_custom_php() ? '' : 'readonly';
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
function print_formats_field( $type, $segment = "" ) {
|
19 |
if ( ! $type && $type !== 'meta' && $type !== 'field' ) {
|
20 |
return '';
|
@@ -43,7 +57,7 @@ function print_formats_field( $type, $segment = "" ) {
|
|
43 |
|
44 |
<script>
|
45 |
var mode = '<?php echo $mode ?>';
|
46 |
-
var job_id = '<?php echo $id ?>';
|
47 |
var output_format = '<?php echo $settings['format'] ?>';
|
48 |
var selected_order_fields = <?php echo json_encode( $settings['order_fields'] ) ?>;
|
49 |
var selected_order_products_fields = <?php echo json_encode( $settings['order_product_fields'] ) ?>;
|
@@ -57,6 +71,10 @@ function print_formats_field( $type, $segment = "" ) {
|
|
57 |
var order_segments = <?php echo json_encode( WC_Order_Export_Data_Extractor_UI::get_order_segments() ) ?>;
|
58 |
var field_formats = <?php echo json_encode( WC_Order_Export_Data_Extractor_UI::get_format_fields() ) ?>;
|
59 |
var summary_mode = <?php echo $settings['summary_report_by_products'] ?>;
|
|
|
|
|
|
|
|
|
60 |
</script>
|
61 |
|
62 |
|
@@ -171,6 +189,7 @@ function print_formats_field( $type, $segment = "" ) {
|
|
171 |
<input type=hidden name="settings[format_xls_display_column_names]" value=0>
|
172 |
<input type=hidden name="settings[format_xls_auto_width]" value=0>
|
173 |
<input type=hidden name="settings[format_xls_direction_rtl]" value=0>
|
|
|
174 |
<input type=checkbox name="settings[format_xls_use_xls_format]"
|
175 |
value=1 <?php if ( @$settings['format_xls_use_xls_format'] ) {
|
176 |
echo 'checked';
|
@@ -191,6 +210,10 @@ function print_formats_field( $type, $segment = "" ) {
|
|
191 |
value=1 <?php if ( @$settings['format_xls_direction_rtl'] ) {
|
192 |
echo 'checked';
|
193 |
} ?> > <?php _e( 'Right-to-Left direction', 'woo-order-export-lite' ) ?><br>
|
|
|
|
|
|
|
|
|
194 |
</div>
|
195 |
<div id='CSV_options' style='display:none'><strong><?php _e( 'CSV options',
|
196 |
'woo-order-export-lite' ) ?></strong><br>
|
@@ -235,9 +258,9 @@ function print_formats_field( $type, $segment = "" ) {
|
|
235 |
</div>
|
236 |
<div id='XML_options' style='display:none'><strong><?php _e( 'XML options',
|
237 |
'woo-order-export-lite' ) ?></strong><br>
|
238 |
-
<?php if( !class_exists("XMLWriter") ): ?>
|
239 |
<div style="color:red"><?php _e( 'Please, install/enable PHP XML Extension!','woo-order-export-lite' ) ?></div>
|
240 |
-
<?php endif ?>
|
241 |
<input type=hidden name="settings[format_xml_self_closing_tags]" value=0>
|
242 |
<span class="xml-title"><?php _e( 'Prepend XML', 'woo-order-export-lite' ) ?></span><input type=text
|
243 |
name="settings[format_xml_prepend_raw_xml]"
|
@@ -296,7 +319,149 @@ function print_formats_field( $type, $segment = "" ) {
|
|
296 |
<?php endif ?>
|
297 |
</div>
|
298 |
|
299 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
<div id="my-date-time-format" class="">
|
301 |
<div id="date_format_block">
|
302 |
<span class="wc-oe-header"><?php _e( 'Date', 'woo-order-export-lite' ) ?></span>
|
@@ -1254,7 +1419,7 @@ function print_formats_field( $type, $segment = "" ) {
|
|
1254 |
data-limit="<?php echo( $mode === WC_Order_Export_Manage::EXPORT_ORDER_ACTION ? 1 : 5 ); ?>"
|
1255 |
value="<?php _e( 'Preview', 'woo-order-export-lite' ) ?>"
|
1256 |
title="<?php _e( 'Might be different from actual export!', 'woo-order-export-lite' ) ?>"/>
|
1257 |
-
<?php if ( $mode ==
|
1258 |
<input type="submit" id='save-only-btn' class="button-primary"
|
1259 |
value="<?php _e( 'Save settings', 'woo-order-export-lite' ) ?>"/>
|
1260 |
<?php else: ?>
|
@@ -1277,6 +1442,12 @@ function print_formats_field( $type, $segment = "" ) {
|
|
1277 |
<input type="submit" id='copy-to-profiles' class="button-secondary"
|
1278 |
value="<?php _e( 'Save as a profile', 'woo-order-export-lite' ) ?>"/>
|
1279 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
1280 |
<span id="preview_actions" class="hide">
|
1281 |
<strong id="output_preview_total"><?php echo sprintf( __( 'Export total: %s orders',
|
1282 |
'woo-order-export-lite' ), '<span></span>' ) ?></strong>
|
@@ -1311,6 +1482,7 @@ function print_formats_field( $type, $segment = "" ) {
|
|
1311 |
<form id='export_wo_pb_form' method='post' target='export_wo_pb_window'>
|
1312 |
<input name="action" type="hidden" value="order_exporter">
|
1313 |
<input name="method" type="hidden" value="plain_export">
|
|
|
1314 |
<input name="mode" type="hidden" value="<?php echo $mode ?>">
|
1315 |
<input name="id" type="hidden" value="<?php echo $id ?>">
|
1316 |
<input name="json" type="hidden">
|
15 |
$order_custom_meta_fields = WC_Order_Export_Data_Extractor_UI::get_all_order_custom_meta_fields();
|
16 |
$readonly_php = WC_Order_Export_Admin::user_can_add_custom_php() ? '' : 'readonly';
|
17 |
|
18 |
+
$pdf_format_available_options = array(
|
19 |
+
'orientation' => array(
|
20 |
+
'P' => 'Portrait',
|
21 |
+
'L' => 'Landscape',
|
22 |
+
),
|
23 |
+
'page_size' => array(
|
24 |
+
'A3' => 'A3',
|
25 |
+
'A4' => 'A4',
|
26 |
+
'A5' => 'A5',
|
27 |
+
'letter' => 'Letter',
|
28 |
+
'legal' => 'Legal',
|
29 |
+
),
|
30 |
+
);
|
31 |
+
|
32 |
function print_formats_field( $type, $segment = "" ) {
|
33 |
if ( ! $type && $type !== 'meta' && $type !== 'field' ) {
|
34 |
return '';
|
57 |
|
58 |
<script>
|
59 |
var mode = '<?php echo $mode ?>';
|
60 |
+
var job_id = '<?php echo esc_js($id) ?>';
|
61 |
var output_format = '<?php echo $settings['format'] ?>';
|
62 |
var selected_order_fields = <?php echo json_encode( $settings['order_fields'] ) ?>;
|
63 |
var selected_order_products_fields = <?php echo json_encode( $settings['order_product_fields'] ) ?>;
|
71 |
var order_segments = <?php echo json_encode( WC_Order_Export_Data_Extractor_UI::get_order_segments() ) ?>;
|
72 |
var field_formats = <?php echo json_encode( WC_Order_Export_Data_Extractor_UI::get_format_fields() ) ?>;
|
73 |
var summary_mode = <?php echo $settings['summary_report_by_products'] ?>;
|
74 |
+
|
75 |
+
jQuery( document ).ready( function ( $ ) {
|
76 |
+
$( 'input.color_pick' ).wpColorPicker();
|
77 |
+
} );
|
78 |
</script>
|
79 |
|
80 |
|
189 |
<input type=hidden name="settings[format_xls_display_column_names]" value=0>
|
190 |
<input type=hidden name="settings[format_xls_auto_width]" value=0>
|
191 |
<input type=hidden name="settings[format_xls_direction_rtl]" value=0>
|
192 |
+
<input type=hidden name="settings[format_xls_force_general_format]" value=0>
|
193 |
<input type=checkbox name="settings[format_xls_use_xls_format]"
|
194 |
value=1 <?php if ( @$settings['format_xls_use_xls_format'] ) {
|
195 |
echo 'checked';
|
210 |
value=1 <?php if ( @$settings['format_xls_direction_rtl'] ) {
|
211 |
echo 'checked';
|
212 |
} ?> > <?php _e( 'Right-to-Left direction', 'woo-order-export-lite' ) ?><br>
|
213 |
+
<input type=checkbox name="settings[format_xls_force_general_format]"
|
214 |
+
value=1 <?php if ( @$settings['format_xls_force_general_format'] ) {
|
215 |
+
echo 'checked';
|
216 |
+
} ?> > <?php _e( 'Force general format for all cells', 'woo-order-export-lite' ) ?><br>
|
217 |
</div>
|
218 |
<div id='CSV_options' style='display:none'><strong><?php _e( 'CSV options',
|
219 |
'woo-order-export-lite' ) ?></strong><br>
|
258 |
</div>
|
259 |
<div id='XML_options' style='display:none'><strong><?php _e( 'XML options',
|
260 |
'woo-order-export-lite' ) ?></strong><br>
|
261 |
+
<?php if( !class_exists("XMLWriter") ): ?>
|
262 |
<div style="color:red"><?php _e( 'Please, install/enable PHP XML Extension!','woo-order-export-lite' ) ?></div>
|
263 |
+
<?php endif ?>
|
264 |
<input type=hidden name="settings[format_xml_self_closing_tags]" value=0>
|
265 |
<span class="xml-title"><?php _e( 'Prepend XML', 'woo-order-export-lite' ) ?></span><input type=text
|
266 |
name="settings[format_xml_prepend_raw_xml]"
|
319 |
<?php endif ?>
|
320 |
</div>
|
321 |
|
322 |
+
<div id='PDF_options' style='display:none'><strong><?php _e( 'PDF options',
|
323 |
+
'woo-order-export-lite' ) ?></strong><br>
|
324 |
+
<input type=hidden name="settings[format_pdf_display_column_names]" value=0>
|
325 |
+
<input type=checkbox name="settings[format_pdf_display_column_names]"
|
326 |
+
value=1 <?php if ( @$settings['format_pdf_display_column_names'] ) {
|
327 |
+
echo 'checked';
|
328 |
+
} ?> > <?php _e( 'Output column titles as first line', 'woo-order-export-lite' ) ?>
|
329 |
+
|
330 |
+
(
|
331 |
+
<input type=hidden name="settings[format_pdf_repeat_header]" value=0>
|
332 |
+
<input type=checkbox name="settings[format_pdf_repeat_header]"
|
333 |
+
value=1 <?php if ( @$settings['format_pdf_repeat_header'] ) {
|
334 |
+
echo 'checked';
|
335 |
+
} ?> > <?php _e( 'repeat at each page', 'woo-order-export-lite' ) ?>)<br>
|
336 |
+
|
337 |
+
|
338 |
+
<div class="pdf_two_col_block">
|
339 |
+
<?php _e( 'Orientation', 'woo-order-export-lite' ) ?><br>
|
340 |
+
<select name="settings[format_pdf_orientation]">
|
341 |
+
<?php foreach ( $pdf_format_available_options['orientation'] as $orientation => $label ): ?>
|
342 |
+
<option value="<?php echo $orientation; ?>" <?php echo selected($orientation == $settings['format_pdf_orientation']); ?> ><?php echo $label; ?></option>
|
343 |
+
<?php endforeach;?>
|
344 |
+
</select>
|
345 |
+
</div>
|
346 |
+
|
347 |
+
<div class="pdf_two_col_block">
|
348 |
+
<?php _e( 'Page size', 'woo-order-export-lite' ) ?><br>
|
349 |
+
<select name="settings[format_pdf_page_size]">
|
350 |
+
<?php foreach ( $pdf_format_available_options['page_size'] as $size => $label ): ?>
|
351 |
+
<option value="<?php echo $size; ?>" <?php echo selected($size == $settings['format_pdf_page_size']); ?> ><?php echo $label; ?></option>
|
352 |
+
<?php endforeach;?>
|
353 |
+
</select>
|
354 |
+
</div>
|
355 |
+
|
356 |
+
<div class="pdf_two_col_block">
|
357 |
+
<?php _e( 'Font size', 'woo-order-export-lite' ) ?><br>
|
358 |
+
<input type=number name="settings[format_pdf_font_size]" value='<?php echo $settings['format_pdf_font_size'] ?>' min=1 size=3><br>
|
359 |
+
</div>
|
360 |
+
|
361 |
+
<div class="pdf_two_col_block">
|
362 |
+
<?php _e( 'Page numbers', 'woo-order-export-lite' );
|
363 |
+
|
364 |
+
$align_types = array(
|
365 |
+
'L' => __( 'Left align', 'woo-order-export-lite' ),
|
366 |
+
'C' => __( 'Center align', 'woo-order-export-lite' ),
|
367 |
+
'R' => __( 'Right align', 'woo-order-export-lite' ),
|
368 |
+
);
|
369 |
+
|
370 |
+
?><br>
|
371 |
+
<select name="settings[format_pdf_pagination]">
|
372 |
+
<?php foreach ( array_merge( $align_types, array( 'disable' => __( 'No page numbers', 'woo-order-export-lite' ) ) ) as $align => $label ): ?>
|
373 |
+
<option value="<?php echo $align; ?>" <?php echo selected($align == $settings['format_pdf_pagination']); ?> ><?php echo $label; ?></option>
|
374 |
+
<?php endforeach;?>
|
375 |
+
</select>
|
376 |
+
</div>
|
377 |
+
|
378 |
+
|
379 |
+
|
380 |
+
<div class="pdf_two_col_block">
|
381 |
+
<?php _e( 'Page header text', 'woo-order-export-lite' ) ?><br>
|
382 |
+
<input type=text name="settings[format_pdf_header_text]" value='<?php echo $settings['format_pdf_header_text'] ?>'>
|
383 |
+
</div>
|
384 |
+
<div class="pdf_two_col_block">
|
385 |
+
<?php _e( 'Columns width', 'woo-order-export-lite' ) ?>
|
386 |
+
<input title="<?php _e( 'comma separated list', 'woo-order-export-lite' ) ?>" type=text name="settings[format_pdf_cols_width]" value='<?php echo $settings['format_pdf_cols_width'] ?>'>
|
387 |
+
</div>
|
388 |
+
|
389 |
+
<div class="pdf_two_col_block">
|
390 |
+
<?php _e( 'Page footer text', 'woo-order-export-lite' ) ?><br>
|
391 |
+
<input type=text name="settings[format_pdf_footer_text]" value='<?php echo $settings['format_pdf_footer_text'] ?>'>
|
392 |
+
</div>
|
393 |
+
<div class="pdf_two_col_block">
|
394 |
+
<?php _e( 'Columns align', 'woo-order-export-lite' ) ?>
|
395 |
+
<input title="<?php _e( 'comma separated list', 'woo-order-export-lite' ) ?>" type=text name="settings[format_pdf_cols_align]" value='<?php echo $settings['format_pdf_cols_align'] ?>'>
|
396 |
+
</div>
|
397 |
+
|
398 |
+
|
399 |
+
<div class="pdf_two_col_block">
|
400 |
+
<?php _e( 'Fit table to page width', 'woo-order-export-lite' ) ?><br>
|
401 |
+
<input type="radio" name="settings[format_pdf_fit_page_width]" value=1 <?php checked( @$settings['format_pdf_fit_page_width'] ); ?> ><?php _e( 'Yes', 'woo-order-export-lite' ); ?>
|
402 |
+
<input type="radio" name="settings[format_pdf_fit_page_width]" value=0 <?php checked( !@$settings['format_pdf_fit_page_width'] ); ?> ><?php _e( 'No', 'woo-order-export-lite' ); ?>
|
403 |
+
</div>
|
404 |
+
<hr>
|
405 |
+
<div class="pdf_two_col_block">
|
406 |
+
<?php _e( 'Table header text color', 'woo-order-export-lite' ) ?>
|
407 |
+
<input type=text class="color_pick" name="settings[format_pdf_table_header_text_color]" value='<?php echo $settings['format_pdf_table_header_text_color'] ?>'>
|
408 |
+
</div>
|
409 |
+
<div class="pdf_two_col_block">
|
410 |
+
<?php _e( 'Table header background color', 'woo-order-export-lite' ) ?>
|
411 |
+
<input type=text class="color_pick" name="settings[format_pdf_table_header_background_color]" value='<?php echo $settings['format_pdf_table_header_background_color'] ?>'>
|
412 |
+
</div>
|
413 |
+
|
414 |
+
<div class="pdf_two_col_block">
|
415 |
+
<?php _e( 'Table row text color', 'woo-order-export-lite' ) ?>
|
416 |
+
<input type=text class="color_pick" name="settings[format_pdf_table_row_text_color]" value='<?php echo $settings['format_pdf_table_row_text_color'] ?>'>
|
417 |
+
</div>
|
418 |
+
<div class="pdf_two_col_block">
|
419 |
+
<?php _e( 'Table row background color', 'woo-order-export-lite' ) ?>
|
420 |
+
<input type=text class="color_pick" name="settings[format_pdf_table_row_background_color]" value='<?php echo $settings['format_pdf_table_row_background_color'] ?>'>
|
421 |
+
</div>
|
422 |
+
|
423 |
+
<div class="pdf_two_col_block">
|
424 |
+
<?php _e( 'Page header text color', 'woo-order-export-lite' ) ?>
|
425 |
+
<input type=text class="color_pick" name="settings[format_pdf_page_header_text_color]" value='<?php echo $settings['format_pdf_page_header_text_color'] ?>'>
|
426 |
+
</div>
|
427 |
+
<div class="pdf_two_col_block">
|
428 |
+
<?php _e( 'Page footer text color', 'woo-order-export-lite' ) ?>
|
429 |
+
<input type=text class="color_pick" name="settings[format_pdf_page_footer_text_color]" value='<?php echo $settings['format_pdf_page_footer_text_color'] ?>'>
|
430 |
+
</div>
|
431 |
+
|
432 |
+
<hr>
|
433 |
+
|
434 |
+
<div class="pdf_two_col_block">
|
435 |
+
<input type="button" class="button button-primary image-upload-button" value="<?php _e( 'Select Logo', 'woocommerce-pickingpal' ) ?>">
|
436 |
+
<input type="hidden" name="settings[format_pdf_logo_source]" value='<?php echo $settings['format_pdf_logo_source'] ?>'>
|
437 |
+
<br>
|
438 |
+
<?php $source = $settings['format_pdf_logo_source'] ? $settings['format_pdf_logo_source'] : '';?>
|
439 |
+
<img src="<?php echo $source; ?>" height="100" width="100" class="<?php echo ! $source ? 'hidden' : ''; ?>">
|
440 |
+
<br>
|
441 |
+
<input type="button" class="button button-warning image-clear-button <?php echo ! $source ? 'hidden' : ''; ?>" value="<?php _e( 'Remove logo', 'woocommerce-pickingpal' ) ?>">
|
442 |
+
</div>
|
443 |
+
<div class="pdf_two_col_block">
|
444 |
+
<?php _e( 'Logo align', 'woo-order-export-lite' ) ?>
|
445 |
+
<select name="settings[format_pdf_logo_align]">
|
446 |
+
<?php foreach ( $align_types as $align => $label ): ?>
|
447 |
+
<option value="<?php echo $align; ?>" <?php echo selected($align == $settings['format_pdf_logo_align']); ?> ><?php echo $label; ?></option>
|
448 |
+
<?php endforeach;?>
|
449 |
+
</select>
|
450 |
+
</div>
|
451 |
+
<div class="pdf_two_col_block">
|
452 |
+
<?php _e( 'Logo height', 'woo-order-export-lite' ) ?>
|
453 |
+
<br>
|
454 |
+
<input type="number" name="settings[format_pdf_logo_height]" value='<?php echo $settings['format_pdf_logo_height'] ?>' min="0">
|
455 |
+
</div>
|
456 |
+
<div class="pdf_two_col_block">
|
457 |
+
<?php _e( 'Logo width', 'woo-order-export-lite' ) ?> ( <?php _e( '0 - auto scale', 'woo-order-export-lite' ) ?> )
|
458 |
+
<br>
|
459 |
+
<input type="number" name="settings[format_pdf_logo_width]" value='<?php echo $settings['format_pdf_logo_width'] ?>' min="0">
|
460 |
+
</div>
|
461 |
+
|
462 |
+
</div>
|
463 |
+
|
464 |
+
<hr>
|
465 |
<div id="my-date-time-format" class="">
|
466 |
<div id="date_format_block">
|
467 |
<span class="wc-oe-header"><?php _e( 'Date', 'woo-order-export-lite' ) ?></span>
|
1419 |
data-limit="<?php echo( $mode === WC_Order_Export_Manage::EXPORT_ORDER_ACTION ? 1 : 5 ); ?>"
|
1420 |
value="<?php _e( 'Preview', 'woo-order-export-lite' ) ?>"
|
1421 |
title="<?php _e( 'Might be different from actual export!', 'woo-order-export-lite' ) ?>"/>
|
1422 |
+
<?php if ( $mode == WC_Order_Export_Manage::EXPORT_NOW ): ?>
|
1423 |
<input type="submit" id='save-only-btn' class="button-primary"
|
1424 |
value="<?php _e( 'Save settings', 'woo-order-export-lite' ) ?>"/>
|
1425 |
<?php else: ?>
|
1442 |
<input type="submit" id='copy-to-profiles' class="button-secondary"
|
1443 |
value="<?php _e( 'Save as a profile', 'woo-order-export-lite' ) ?>"/>
|
1444 |
<?php endif; ?>
|
1445 |
+
|
1446 |
+
<?php if ( $mode === WC_Order_Export_Manage::EXPORT_NOW ): ?>
|
1447 |
+
<input type="submit" id='reset-profile' class="button-secondary"
|
1448 |
+
value="<?php _e( 'Reset settings', 'woo-order-export-lite' ) ?>"/>
|
1449 |
+
<?php endif; ?>
|
1450 |
+
|
1451 |
<span id="preview_actions" class="hide">
|
1452 |
<strong id="output_preview_total"><?php echo sprintf( __( 'Export total: %s orders',
|
1453 |
'woo-order-export-lite' ), '<span></span>' ) ?></strong>
|
1482 |
<form id='export_wo_pb_form' method='post' target='export_wo_pb_window'>
|
1483 |
<input name="action" type="hidden" value="order_exporter">
|
1484 |
<input name="method" type="hidden" value="plain_export">
|
1485 |
+
<?php wp_nonce_field( 'woe_nonce', 'woe_nonce' ); ?>
|
1486 |
<input name="mode" type="hidden" value="<?php echo $mode ?>">
|
1487 |
<input name="id" type="hidden" value="<?php echo $id ?>">
|
1488 |
<input name="json" type="hidden">
|
view/tab/order-actions.php
CHANGED
@@ -4,4 +4,4 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
-
<div class="tabs-content"><?php echo sprintf ( __( 'Buy %s to get access to Status change jobs', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
+
<div class="tabs-content"><br><?php echo sprintf ( __( 'Buy %s to get access to Status change jobs', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
view/tab/profiles.php
CHANGED
@@ -4,4 +4,4 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
-
<div class="tabs-content"><?php echo sprintf ( __( 'Buy %s to get access to profiles', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
+
<div class="tabs-content"><br><?php echo sprintf ( __( 'Buy %s to get access to profiles', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
view/tab/schedules.php
CHANGED
@@ -4,4 +4,4 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
-
<div class="tabs-content"><?php echo sprintf ( __( 'Buy %s to get access to Scheduled jobs', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
4 |
}
|
5 |
$pro_link = '<a href="https://algolplus.com/plugins/downloads/advanced-order-export-for-woocommerce-pro/" target=_blank>' . __( 'Pro version', 'woo-order-export-lite' ) . '</a>';
|
6 |
?>
|
7 |
+
<div class="tabs-content"><br><?php echo sprintf ( __( 'Buy %s to get access to Scheduled jobs', 'woo-order-export-lite' ), $pro_link ) ?></div>
|
view/tab/tools.php
CHANGED
@@ -27,13 +27,14 @@ $type_labels = ! $WC_Order_Export::is_full_version() ? array() : array(
|
|
27 |
<div class="clearfix"></div>
|
28 |
<div id="woe-admin" class="container-fluid wpcontent">
|
29 |
<form>
|
|
|
30 |
<div class="woe-tab" id="woe-tab-general">
|
31 |
<div class="woe-box woe-box-main">
|
32 |
-
<
|
33 |
<div class="row">
|
34 |
<div class="col-sm-12 form-group">
|
35 |
-
<
|
36 |
-
'woo-order-export-lite' ) ?></
|
37 |
</div>
|
38 |
<div class="col-sm-8 form-group woe-input-simple">
|
39 |
<select id="tools-export-selector">
|
@@ -52,10 +53,10 @@ $type_labels = ! $WC_Order_Export::is_full_version() ? array() : array(
|
|
52 |
<?php endforeach; ?>
|
53 |
<?php endforeach; ?>
|
54 |
</select>
|
55 |
-
<textarea rows="
|
56 |
-
<p class="help-block"><?php _e( 'Just click inside the textarea and copy (Ctrl+C)',
|
57 |
-
'woo-order-export-lite' ) ?></p>
|
58 |
</div>
|
|
|
|
|
59 |
</div>
|
60 |
</div>
|
61 |
</div>
|
@@ -63,23 +64,27 @@ $type_labels = ! $WC_Order_Export::is_full_version() ? array() : array(
|
|
63 |
<form method="post">
|
64 |
<div class="woe-tab" id="woe-tab-general">
|
65 |
<div class="woe-box woe-box-main">
|
66 |
-
<
|
67 |
<div class="row">
|
68 |
<div class="col-sm-12 form-group">
|
69 |
-
<
|
70 |
-
'woo-order-export-lite' ) ?></
|
71 |
</div>
|
72 |
<div class="col-sm-8 form-group woe-input-simple">
|
73 |
-
<textarea rows="
|
74 |
-
<p class="help-block"><?php _e( 'This process will overwrite your settings for "Advanced Order Export For WooCommerce" !',
|
75 |
-
'woo-order-export-lite' ) ?></p>
|
76 |
</div>
|
|
|
|
|
77 |
</div>
|
78 |
<div class="row">
|
79 |
<div class="col-sm-2 form-group col-md-offset-7">
|
80 |
<input disabled type="submit" class="woe-btn-tools"
|
81 |
value="<?php _e( 'Import', 'woo-order-export-lite' ) ?>" name="woe-tools-import"
|
82 |
id="submit-import">
|
|
|
|
|
|
|
|
|
83 |
</div>
|
84 |
</div>
|
85 |
</div>
|
@@ -106,10 +111,12 @@ $type_labels = ! $WC_Order_Export::is_full_version() ? array() : array(
|
|
106 |
e.preventDefault();
|
107 |
$( document.activeElement ).blur();
|
108 |
} else {
|
|
|
109 |
var data = $( '#woe-admin form' ).serialize();
|
110 |
data = data + "&action=order_exporter&method=save_tools";
|
111 |
$.post( ajaxurl, data, function ( response ) {
|
112 |
-
|
|
|
113 |
}, "json" );
|
114 |
return false;
|
115 |
}
|
27 |
<div class="clearfix"></div>
|
28 |
<div id="woe-admin" class="container-fluid wpcontent">
|
29 |
<form>
|
30 |
+
<?php wp_nonce_field( 'woe_nonce', 'woe_nonce' ); ?>
|
31 |
<div class="woe-tab" id="woe-tab-general">
|
32 |
<div class="woe-box woe-box-main">
|
33 |
+
<h3 class="woe-box-title"><?php _e( 'Export settings', 'woo-order-export-lite' ) ?></h3>
|
34 |
<div class="row">
|
35 |
<div class="col-sm-12 form-group">
|
36 |
+
<p><?php _e( 'Copy these settings and use it to migrate plugin to another WordPress install.',
|
37 |
+
'woo-order-export-lite' ) ?></p>
|
38 |
</div>
|
39 |
<div class="col-sm-8 form-group woe-input-simple">
|
40 |
<select id="tools-export-selector">
|
53 |
<?php endforeach; ?>
|
54 |
<?php endforeach; ?>
|
55 |
</select>
|
56 |
+
<textarea rows="10" id="tools-export-text" class='tools-textarea'></textarea>
|
|
|
|
|
57 |
</div>
|
58 |
+
<p><?php _e( 'Just click inside the textarea and copy (Ctrl+C)',
|
59 |
+
'woo-order-export-lite' ) ?></p>
|
60 |
</div>
|
61 |
</div>
|
62 |
</div>
|
64 |
<form method="post">
|
65 |
<div class="woe-tab" id="woe-tab-general">
|
66 |
<div class="woe-box woe-box-main">
|
67 |
+
<h3 class="woe-box-title"><?php _e( 'Import settings', 'woo-order-export-lite' ) ?></h3>
|
68 |
<div class="row">
|
69 |
<div class="col-sm-12 form-group">
|
70 |
+
<p><?php _e( 'Paste text into this field to import settings into the current WordPress install.',
|
71 |
+
'woo-order-export-lite' ) ?></p>
|
72 |
</div>
|
73 |
<div class="col-sm-8 form-group woe-input-simple">
|
74 |
+
<textarea rows="10" id="tools-import-text" name="tools-import"></textarea>
|
|
|
|
|
75 |
</div>
|
76 |
+
<p ><?php _e( 'This process will overwrite your settings for "Advanced Order Export For WooCommerce" !',
|
77 |
+
'woo-order-export-lite' ) ?></p>
|
78 |
</div>
|
79 |
<div class="row">
|
80 |
<div class="col-sm-2 form-group col-md-offset-7">
|
81 |
<input disabled type="submit" class="woe-btn-tools"
|
82 |
value="<?php _e( 'Import', 'woo-order-export-lite' ) ?>" name="woe-tools-import"
|
83 |
id="submit-import">
|
84 |
+
|
85 |
+
<div id=Settings_updated
|
86 |
+
style='display:none;color:green;font-size: 120%;padding-bottom: 10px;'><?php _e( "Settings were successfully updated!",
|
87 |
+
'woo-order-export-lite' ) ?></div>
|
88 |
</div>
|
89 |
</div>
|
90 |
</div>
|
111 |
e.preventDefault();
|
112 |
$( document.activeElement ).blur();
|
113 |
} else {
|
114 |
+
$('#Settings_updated').hide();
|
115 |
var data = $( '#woe-admin form' ).serialize();
|
116 |
data = data + "&action=order_exporter&method=save_tools";
|
117 |
$.post( ajaxurl, data, function ( response ) {
|
118 |
+
$( '#tools-import-text' ).val('');
|
119 |
+
$('#Settings_updated').show().delay(5000).fadeOut();
|
120 |
}, "json" );
|
121 |
return false;
|
122 |
}
|
woo-order-export-lite.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Export orders from WooCommerce with ease (Excel/CSV/XML/JSON supported)
|
6 |
* Author: AlgolPlus
|
7 |
* Author URI: https://algolplus.com/
|
8 |
-
* Version: 2.0
|
9 |
* Text Domain: woo-order-export-lite
|
10 |
* Domain Path: /i18n/languages/
|
11 |
* WC requires at least: 2.6.0
|
@@ -65,7 +65,7 @@ include 'classes/core/class-wc-order-export-engine.php';
|
|
65 |
include 'classes/core/class-wc-order-export-data-extractor.php';
|
66 |
include 'classes/core/class-wc-order-export-data-extractor-ui.php';
|
67 |
|
68 |
-
define( 'WOE_VERSION', '2.0
|
69 |
define( 'WOE_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
70 |
define( 'WOE_PLUGIN_BASEPATH', dirname( __FILE__ ) );
|
71 |
$wc_order_export = new WC_Order_Export_Admin();
|
5 |
* Description: Export orders from WooCommerce with ease (Excel/CSV/XML/JSON supported)
|
6 |
* Author: AlgolPlus
|
7 |
* Author URI: https://algolplus.com/
|
8 |
+
* Version: 2.1.0
|
9 |
* Text Domain: woo-order-export-lite
|
10 |
* Domain Path: /i18n/languages/
|
11 |
* WC requires at least: 2.6.0
|
65 |
include 'classes/core/class-wc-order-export-data-extractor.php';
|
66 |
include 'classes/core/class-wc-order-export-data-extractor-ui.php';
|
67 |
|
68 |
+
define( 'WOE_VERSION', '2.1.0' );
|
69 |
define( 'WOE_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
|
70 |
define( 'WOE_PLUGIN_BASEPATH', dirname( __FILE__ ) );
|
71 |
$wc_order_export = new WC_Order_Export_Admin();
|