create_files();
add_action('admin_notices', array( &$this, 'admin_message' ));
endif;
require_once XC_WOO_CLOUD_DIR . '/vendor/autoload.php';
require_once XC_WOO_CLOUD_DIR . '/includes/options.php';
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printnode.php';
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printer_logs.php';
require_once XC_WOO_CLOUD_DIR . '/includes/woo_order_meta.php';
require_once XC_WOO_CLOUD_DIR . '/includes/woo_settings.php';
require_once XC_WOO_CLOUD_DIR . '/includes/functions.php';
require_once XC_WOO_CLOUD_DIR . '/includes/licence.php';
new XC_WOO_Printer_Licence(XC_WOO_CLOUD,XC_WOO_CLOUD_VERSION);
if('yes' != get_option('xc_woo_cloud_use_printnode')){
$XC_WOO_CLOUD_Settings = new XC_WOO_CLOUD_Settings();
$this->XC_WOO_CLOUD_Settings = $XC_WOO_CLOUD_Settings;
}
}
public function admin_message(){
$warning = $this->xc_is_printes_selected();
if(!empty($warning)){
?>
$upload_dir['basedir'] . '/xc_files',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_invoices',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_packing_slips',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_barcodes',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_extradata',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_fonts',
'file' => 'index.html',
'content' => '',
),
array(
'base' => $upload_dir['basedir'] . '/xc_files/xc_temp',
'file' => 'index.html',
'content' => '',
),
);
foreach ( $files as $file ) {
if ( wp_mkdir_p( $file['base'] ) && ! file_exists( trailingslashit( $file['base'] ) . $file['file'] ) ) {
if ( $file_handle = @fopen( trailingslashit( $file['base'] ) . $file['file'], 'w' ) ) {
fwrite( $file_handle, $file['content'] );
fclose( $file_handle );
}
}
}
}
function xc_is_printes_selected(){
$invoice_enable = get_option('xc_woo_cloud_invoice_enable',"");
$invoice_printers = get_option('xc_woo_cloud_invoice_printers',"");
$packingslip_enable = get_option('xc_woo_cloud_packing-slip_enable',"");
$packingslip_printers = get_option('xc_woo_cloud_packing-slip_printers',"");
$message = '';
if('yes' == $invoice_enable){
if(empty($invoice_printers)){
$message = sprintf(__("Please select printer for Invoice printing", XC_WOO_CLOUD), admin_url('admin.php?page=wc-settings&tab=xc_woo_cloud§ion=invoice'));
}else{
$enable = 'no';
foreach($invoice_printers as $v){
if(isset($v['enable']) && $v['enable'] == '1') $enable = 'yes';
}
if($enable == 'no'){
$message = sprintf(__("Please select printer for Invoice printing", XC_WOO_CLOUD), admin_url('admin.php?page=wc-settings&tab=xc_woo_cloud§ion=invoice'));
}
}
}
if('yes' == $packingslip_enable){
if(empty($packingslip_printers)){
$message .= sprintf(__("Please select printer for Packing Slip printing", XC_WOO_CLOUD), admin_url('admin.php?page=wc-settings&tab=xc_woo_cloud§ion=packing-slip'));
}else{
$enable = 'no';
foreach($packingslip_printers as $v){
if(isset($v['enable']) && $v['enable'] == '1') $enable = 'yes';
}
if($enable == 'no'){
$message .= sprintf(__("Please select printer for Packing Slip printing", XC_WOO_CLOUD), admin_url('admin.php?page=wc-settings&tab=xc_woo_cloud§ion=packing-slip'));
}
}
}
if(!empty($message)){
$message = 'You have enabled automatic printing but did not select default printers. To make sure your invoices and package slips print automatically, please do the following:
';
}
return $message;
}
function xc_print($data, $printjobtitle, $printer, $settings = array()){
if('yes' == get_option('xc_woo_cloud_use_printnode')){
$this->xc_print_printnode($data, $printjobtitle, $printer, $settings);
}else{
$this->xc_print_google($data, $printjobtitle, $printer, $settings);
}
}
function xc_print_printnode($data, $printjobtitle, $printer, $settings = array()){
$logger = new WC_Logger();
$opts = get_option('xc_woo_cloud_print_options', array());
$printerid = $printer['printer_id'];
$contenttype = "application/pdf";
$api_key = get_option('xc_woo_cloud_printnode_api');
$credentials = new PrintNode\Credentials();
$credentials->setApiKey($api_key);
$request = new PrintNode\Request($credentials);
$printers = $request->getPrinters();
$selected_printer = '';
if($printers){
foreach($printers as $p){
if($p->id == $printer['printer_id']){
$selected_printer = $p;
}
}
}
if(strpos($printjobtitle, 'invoice') !== false){
$type = 'invoice';
}else{
$type = 'packing-slip';
}
$printer_settings = isset($settings["{$type}_printers"][$printerid])?$settings["{$type}_printers"][$printerid]:$printer;
if(!empty($selected_printer)){
$printJob = new PrintNode\PrintJob();
$printJob->printer = $selected_printer;
$printJob->contentType = 'pdf_base64';
$printJob->content = base64_encode($data);
$printJob->source = 'Cloud Print/1.0';
$printJob->title = $printjobtitle;
$options = array();
if(isset($printer_settings['papers'])){
$options['papers'] = $printer_settings['papers'];
}
if(isset($printer_settings['fit_to_page'])){
$options['fit_to_page'] = ($printer_settings['fit_to_page'] == 'FIT_TO_PAGE')?true:false;
}
if(!empty($options)){
$printJob->options = $options;
}
global $xc_woo_printer_logs;
$printJob = apply_filters("xc_woo_cloud_printer_printnode_printjob",$printJob, $selected_printer , $printjobtitle, $printer, $settings);
for($i=1; $i<=$printer['copies']; $i++){
$response = $request->post($printJob);
$this->add_log('printer-response', array('ret' => $response, 'printjobtitle' => $printjobtitle, 'printer' => $printer));
}
ob_start();
print_r($response);
$dd = ob_get_clean();
$logger->add('xc-printnode-print', $dd);
}
}
function xc_print_google($data, $printjobtitle, $printer, $settings = array())
{
$opts = get_option('xc_woo_cloud_print_options', array());
$printerid = $printer['printer_id'];
$contenttype = "application/pdf";
$ticket = array("version"=>"1.0","print"=>array());
$ticket['print']['page_orientation'] = array("type"=>strtoupper($printer['orientation']));
$ticket['print']['fit_to_page'] = array("type"=>"NO_FITTING");
$ticket = apply_filters("xc_woo_cloud_printer_ticket", $ticket, $printer, $data, $printjobtitle, $settings);
$ticket = json_encode($ticket);
$printerid = apply_filters("xc_woo_cloud_print_order_printer",$printerid,$printer);
$post_fields = array(
'printerid' => $printerid,
'title' => $printjobtitle,
'ticket' => $ticket,
'contentTransferEncoding' => 'base64',
'content' => base64_encode($data), // encode file content as base64
'contentType' => $contenttype
);
global $xc_woo_printer_logs;
$post_fields = apply_filters("xc_woo_cloud_printer_post_fields",$post_fields,$printer);
$url = "https://www.google.com/cloudprint/submit?printerid=" . urlencode($printerid) . "&output=json";
for($i=1; $i<=$printer['copies']; $i++){
$ret = $this->XC_WOO_CLOUD_Settings->process_request($url, $post_fields, $opts);
$this->add_log('printer-response', array('ret' => $ret, 'printjobtitle' => $printjobtitle, 'printer' => $printer));
}
return $ret;
}
function get_file_name($order_id, $document_type,$printer){
$file_name = $order_id ."_".$document_type.'_'.get_current_blog_id().'_'.$printer['size'].'_'.$printer['orientation'].".pdf";
return $file_name;
}
function xc_woo_printer_job()
{
$order_id = $_REQUEST['order_id'];
$document_type = $_REQUEST['document_type'];
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printer.php';
$XC_WOO_Printer = new XC_WOO_Printer($order_id);
$settings = $XC_WOO_Printer->get_settings();
$document_title = "Order " . $order_id . " " . $document_type;
$document_title = apply_filters('xc_woo_cloud_print_document_title',$document_title,$order_id,$document_type);
$XC_WOO_Printer->set_type($document_type);
if(!empty($settings["{$document_type}_printers"])){
foreach($settings["{$document_type}_printers"] as $k=>$v){
if(isset($v['enable']) && $v['enable'] == '1'){
$printer = array();
$printer['printer_id'] = $k;
$printer['size'] = $v['size'];
$printer['orientation'] = $v['orientation'];
$printer['copies'] = $v['copies'];
$path = $XC_WOO_Printer->get_documents_path($document_type);
$file_name = $this->get_file_name($order_id, $document_type,$printer);
$file_path=$path['dir'].$file_name;
$XC_WOO_Printer->set_size($printer['size']);
$XC_WOO_Printer->set_orientation($printer['orientation']);
$file = $XC_WOO_Printer->xc_woo_prepare_pdf(true);
$data = file_get_contents($file);
$note = apply_filters("xc_woo_cloud_print_order_note", __("{$document_type} sent to printer manually",XC_WOO_CLOUD), $order_id, $document_type, $document_title,$printer);
$this->xc_woo_cloud_print_add_order_note($order_id,$note);
$ret = $this->xc_print($data, $document_title,$printer, $settings);
do_action("xc_woo_cloud_print_manually_printed",$order_id,$document_type,$printer,$ret);
echo ($ret);
}
}
}
die();
}
function xc_woo_printer_preview(){
if(isset($_REQUEST['order_id'])){
$order_id= $_REQUEST['order_id'];
}else{
$order_id = get_option('xc_woo_cloud_sample_order',"");
$order = wc_get_order($order_id);
if(!$order){
echo 'Please select sample order';
die();
}
}
$document_type = $_REQUEST['document_type'];
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printer.php';
$XC_WOO_Printer = new XC_WOO_Printer($order_id);
$settings = $XC_WOO_Printer->get_settings();
$XC_WOO_Printer->set_type($document_type);
$XC_WOO_Printer->set_size($settings['size']);
$XC_WOO_Printer->set_orientation($settings['orientation']);
$return = (isset($_REQUEST['t']) && $_REQUEST['t'] =="print")? true : false;
$file = $XC_WOO_Printer->xc_woo_prepare_pdf($return);
if($return){
$printer = array();
if(!empty($settings["{$document_type}_printers"])){
foreach($settings["{$document_type}_printers"] as $k=>$v){
if(isset($v['enable']) && $v['enable'] == '1' && empty($printer)){
$printer['printer_id'] = $k;
$printer['size'] = $v['size'];
$printer['orientation'] = $v['orientation'];
$printer['copies'] = $v['copies'];
}
}
}
$document_title = "Order " . $order_id . " " . $document_type;
$document_title = apply_filters('xc_woo_cloud_print_document_title',$document_title,$order_id,$document_type);
$data = file_get_contents($file);
$this->xc_print($data, $document_title,$printer, $settings);
wp_redirect(admin_url("/admin.php?page=wc-settings&tab=xc_woo_cloud§ion=".$document_type."&message=1"));
}
die();
}
function get_available_payment_methods(){
$available_gateways = WC()->payment_gateways->payment_gateways();
$methods = array();
foreach($available_gateways as $v){
if($v->enabled == 'yes'){
$methods[$v->id] =$v->title;
}
}
return $methods;
}
public function xc_woo_cloud_print_order_upon_process_paymnt_methods($payment_methods){
$payment_check = get_option('xc_woo_cloud_payment_check',array());
$payment_methods = array_keys($payment_methods);
if(sizeof($payment_check) > 0){
$payment_methods = array_diff($payment_methods, $payment_check);
}
return $payment_methods;
}
function xc_order_processed( $order_id, $posted_data, $order ){
$payment_method = is_callable(array($order, 'get_payment_method')) ? $order->get_payment_method() : $order->payment_method;
$payment_methods = $this->get_available_payment_methods();
$print_order_upon_processed_methods = apply_filters("xc_woo_cloud_print_order_upon_process_paymnt_methods",$payment_methods);
if(in_array($payment_method,$print_order_upon_processed_methods)) {
$this->add_log('order-processed',array('payment_method' => $payment_method, 'order_id' => $order_id, 'order' => $order ));
$this->xc_woo_print_order($order_id);
}else{
$this->add_log('order-processed-skipped',array('payment_method' => $payment_method, 'order_id' => $order_id, 'order' => $order, 'print_order_upon_processed_methods' => $print_order_upon_processed_methods ));
}
}
function xc_order_payment_complete( $order_id ){
if (apply_filters('xc_woo_cloud_print_orders_on_payment_complete', true, $order_id)) {
$this->add_log('payment-complete',array('order_id' => $order_id));
$this->xc_woo_print_order($order_id);
}
}
function xc_woo_print_order( $order_id ){
$cron = apply_filters('xc_woo_cloud_cron_print_orders', true);
if ($cron) {
$this->xc_woo_cron_print($order_id);
} else {
$this->add_log('cron-job-skipped',array('order_id' => $order_id));
$this->xc_woo_print_now($order_id);
}
}
private function xc_woo_cron_print($order_id) {
$time = apply_filters("xc_woo_cloud_print_cron_delay",time());
$this->add_log('cron-job-added',array('order_id' => $order_id, 'cron_time'=>$time));
$cron_queue = get_option("xc_woo_cloud_print_cron_queue");
$cron_queue = (is_array($cron_queue))?$cron_queue:array();
$cron_queue[$order_id] = $time;
update_option('xc_woo_cloud_print_cron_queue',$cron_queue);
wp_schedule_single_event($time, 'xc_woo_order_print_cron', array($order_id));
}
function xc_woo_order_print_cron( $order_id ){
$this->add_log('cron-job-called',array('order_id' => $order_id));
$this->xc_woo_print_now($order_id);
}
private function xc_woo_print_now( $order_id ){
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printer.php';
$XC_WOO_Printer = new XC_WOO_Printer($order_id);
$settings = $XC_WOO_Printer->get_settings();
$cron_queue = get_option("xc_woo_cloud_print_cron_queue");
if(is_array($cron_queue) && isset($cron_queue[$order_id])){
unset($cron_queue[$order_id]);
update_option('xc_woo_cloud_print_cron_queue',$cron_queue);
}
if($settings['invoice_enable'] == "yes" || $settings['packing-slip_enable'] == "yes"){
$xc_is_invoice_printed = get_post_meta($order_id,"xc_is_invoice_printed",true);
if ($settings['invoice_enable'] == 'yes' && empty($xc_is_invoice_printed) && $settings['invoice_skip_autoprint'] != "yes") {
$document_type = 'invoice';
$document_title = "Order " . $order_id . " " . $document_type;
$document_title = apply_filters('xc_woo_cloud_print_document_title',$document_title,$order_id,$document_type);
$XC_WOO_Printer->set_type($document_type);
$invoice_printers_selected = 0;
if(!empty($settings['invoice_printers'])){
update_post_meta($order_id,"xc_is_invoice_printed","yes");
foreach($settings['invoice_printers'] as $k=>$v){
if(isset($v['enable']) && $v['enable'] == '1'){
$invoice_printers_selected++;
$printer = array();
$printer['printer_id'] = $k;
$printer['size'] = $v['size'];
$printer['orientation'] = $v['orientation'];
$printer['copies'] = $v['copies'];
$path = $XC_WOO_Printer->get_documents_path($document_type);
$file_name = $this->get_file_name($order_id, $document_type,$printer);
$file_path=$path['dir'].$file_name;
if(!file_exists($file_path)){
$XC_WOO_Printer->set_size($printer['size']);
$XC_WOO_Printer->set_orientation($printer['orientation']);
$file = $XC_WOO_Printer->xc_woo_prepare_pdf(true);
}else{
$file = $file_path;
}
$data = file_get_contents($file);
$note = apply_filters("xc_woo_cloud_print_order_note", __("Invoice sent to printer automatically",XC_WOO_CLOUD), $order_id, $document_type, $document_title,$printer);
$this->xc_woo_cloud_print_add_order_note($order_id,$note);
$this->xc_print($data, $document_title,$printer, $settings);
}
}
}
if(empty($invoice_printers_selected)){
$this->add_log('no-printer',array('order_id' => $order_id, 'document_type' => $document_type));
}
}else{
if($settings['invoice_skip_autoprint'] == "yes"){
$this->add_log('skip-autoprint',array('order_id' => $order_id, 'document_type' => "Invoice"));
}else{
$this->add_log('print-disabled',array('order_id' => $order_id, 'document_type' => "Invoice"));
}
}
$xc_is_slip_printed = get_post_meta($order_id,"xc_is_slip_printed",true);
if ($settings['packing-slip_enable'] == 'yes' && empty($xc_is_slip_printed) && $settings['packing-slip_skip_autoprint'] != "yes") {
$document_type = 'packing-slip';
$document_title = "Order " . $order_id . " " . $document_type;
$document_title = apply_filters('xc_woo_cloud_print_document_title',$document_title,$order_id,$document_type);
$XC_WOO_Printer->set_type($document_type);
$packing_slip_printers_selected = 0;
if(!empty($settings['packing-slip_printers'])){
update_post_meta($order_id,"xc_is_slip_printed","yes");
foreach($settings['packing-slip_printers'] as $k=>$v){
if(isset($v['enable']) && $v['enable'] == '1'){
$packing_slip_printers_selected++;
$printer = array();
$printer['printer_id'] = $k;
$printer['size'] = $v['size'];
$printer['orientation'] = $v['orientation'];
$printer['copies'] = $v['copies'];
$path = $XC_WOO_Printer->get_documents_path($document_type);
$file_name = $this->get_file_name($order_id, $document_type,$printer);
$file_path=$path['dir'].$file_name;
if(!file_exists($file_path)){
$XC_WOO_Printer->set_size($printer['size']);
$XC_WOO_Printer->set_orientation($printer['orientation']);
$file = $XC_WOO_Printer->xc_woo_prepare_pdf(true);
}else{
$file = $file_path;
}
$data = file_get_contents($file);
$note = apply_filters("xc_woo_cloud_print_order_note", __("Packing slip sent to printer automatically",XC_WOO_CLOUD), $order_id, $document_type, $document_title,$printer);
$this->xc_woo_cloud_print_add_order_note($order_id,$note);
$this->xc_print($data, $document_title,$printer, $settings);
}
}
}
if(empty($packing_slip_printers_selected)){
$this->add_log('no-printer',array('order_id' => $order_id, 'document_type' => $document_type));
}
}else{
if($settings['packing-slip_skip_autoprint'] == "yes"){
$this->add_log('skip-autoprint',array('order_id' => $order_id, 'document_type' => "Packing-slip"));
}else{
$this->add_log('print-disabled',array('order_id' => $order_id, 'document_type' => "Packing-slip"));
}
}
}else{
$this->add_log('disabled',array('order_id' => $order_id));
}
$cron_queue = get_option("xc_woo_cloud_print_cron_queue");
if(!empty($cron_queue)){
$next_print = '';
if(is_array($cron_queue)){
foreach($cron_queue as $order_id1=>$time){
if(($time + 300) < time() && empty($next_print)){
$xc_is_invoice_printed = get_post_meta($order_id1,"xc_is_invoice_printed",true);
$xc_is_slip_printed = get_post_meta($order_id1,"xc_is_slip_printed",true);
if(empty($xc_is_invoice_printed) && empty($xc_is_slip_printed)){
$next_print = $order_id1;
}else{
unset($cron_queue[$order_id1]);
}
}
}
}
if(!empty($next_print)){
unset($cron_queue[$next_print]);
update_option('xc_woo_cloud_print_cron_queue',$cron_queue);
$this->xc_woo_print_now($next_print);
}
}
}
function xc_woo_order_print_extra_data($order_id,$document_type){
$is_printed = get_post_meta($order_id,"is_printed".$document_type,true);
if(empty($is_printed)){
require_once XC_WOO_CLOUD_DIR . '/includes/woo_printer.php';
$XC_WOO_Printer = new XC_WOO_Printer($order_id);
$settings = $XC_WOO_Printer->get_settings();
$XC_WOO_Printer->set_type($document_type);
$XC_WOO_Printer->set_size($settings['size']);
$XC_WOO_Printer->set_orientation($settings['orientation']);
$opts = get_option('xc_woo_cloud_print_options', array());
$printerid = $opts['printer'];
$printer = array();
$printer['printer_id'] = $printerid;
$printer['size'] = $settings['size'];
$printer['orientation'] = $settings['orientation'];
$printer['copies'] = $settings["{$document_type}_copies"];
$document_title = "Order " . $order_id . " " . $document_type;
$document_title = apply_filters('xc_woo_cloud_print_document_title',$document_title,$order_id,$document_type);
$data = file_get_contents($file);
$this->xc_print($data, $document_title,$printer, $settings);
update_post_meta($order_id,"is_printed".$document_type,"yes");
}
}
function xc_woo_print_other_data($data,$title,$printer){
$this->xc_print($data, $title,$printer);
}
function xc_woo_cloud_print_add_order_note( $order_id, $note ){
$order = wc_get_order( $order_id );
// Add the note
$order->add_order_note( $note );
// Save the data
$order->save();
$this->add_log('order-note',array('order_id' => $order_id, 'note' => $note, 'order' => $order));
}
function add_log($type, $arr){
if('yes' != get_option('xc_woo_cloud_enable_logs')){
return;
}
try {
global $xc_woo_printer_logs;
$order_id = '';
switch($type){
case "printer-response":
if('yes' == get_option('xc_woo_cloud_use_printnode')){
$message = $arr['ret']->getStatusMessage();
}else{
$ret = json_decode($arr['ret']);
$message = $ret->message;
}
$title = $arr['printjobtitle'];
$data = $ret;
break;
case "order-processed":
$message = 'Order status changed to Processed, and proceed to print Payment gateway is '.$arr['payment_method'];
$title = 'Order : '.$arr['order_id'];
$data = $arr['order'];
$order_id = $arr['order_id'];
break;
case "order-processed-skipped":
$message = 'Order status changed to Processed, and skipped printing because '.$arr['payment_method']. " selected only print after payment.";
$title = 'Order : '.$arr['order_id'];
$data = $order;
$order_id = $arr['order_id'];
break;
case "payment-complete":
$order_id = $arr['order_id'];
$order = wc_get_order( $order_id );
$payment_method = is_callable(array($order, 'get_payment_method')) ? $order->get_payment_method() : $order->payment_method;
$message = 'Order payment completed, and proceed to print. Payment gateway : '.$payment_method;
$title = 'Order : '.$arr['order_id'];
$data = $order;
break;
case "cron-job-skipped":
$message = "Cron skipped and called direct print.";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "cron-job-added":
$message = "Cron job added for printing. cron time : ".$arr['cron_time'];
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "cron-job-called":
$message = "Cron job called ";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "no-printer":
$message = $arr['document_type']." printing skipped because no printer selected";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "print-disabled":
$message = $arr['document_type']." printing skipped because option disabled";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "skip-autoprint":
$message = $arr['document_type']." automatic printing skipped.";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "disabled":
$message = " Printing skipped because options Disabled";
$title = "Order : ".$arr['order_id'];
$data = array();
$order_id = $arr['order_id'];
break;
case "order-note":
$message = $arr['note'];
$title = "Order : ".$arr['order_id'];
$data = $arr['order'];
$order_id = $arr['order_id'];
break;
}
if(!empty($order_id)){
$title = $this->xc_woo_cloud_print_order_id_to_order_number($title,$order_id);
}
$message = apply_filters("xc_woo_cloud_print_log_message",$message,$type,$arr);
$title = apply_filters("xc_woo_cloud_print_log_title",$title,$type,$arr);
$xc_woo_printer_logs->add_log($message,$title,$type,$data);
}catch(Exception $e) {
}
}
function xc_woo_cloud_print_order_id_to_order_number($document_title,$order_id,$document_type=''){
$order = wc_get_order( $order_id );
$order_number = $order->get_order_number();
$document_title = str_replace($order_id,$order_number,$document_title);
return $document_title;
}
function xc_woo_cloud_print_custom_styles( $type, $obj ){
if($obj->settings['size'] == "A5"){
?>
@page {
margin-top: 0.5cm;
margin-bottom: 2cm;
margin-left: 1cm;
margin-right: 1cm;
}
settings['size'],array("A6","A7","A8"))){
?>
@page {
margin-top: 10px;
margin-bottom: 0.5cm;
margin-left: 0.3cm;
margin-right: 0.3cm;
}
body{
font-size:8pt;
}
h1 {
font-size:10pt;
margin: 1mm 0;
padding:0px;
}
h2 {
font-size: 9pt;
}
h3, h4 {
font-size: 8pt;
}
li,
ul {
margin-bottom: 0.5em;
}
p + p {
margin-top: 1em;
}
table.head {
margin-bottom: 5mm;
}
td.header img {
max-height:40px;
width: auto;
margin:auto;
display:block;
}
td.header {
font-size: 14pt;
font-weight: 700;
}
td.shop-info {
width: 60%;
font-size:8pt;
}
.invoice .shipping-address {
width: 50%;
margin-bottom:5mm;
}
.packing-slip .billing-address {
width: 50%;
margin-bottom:5mm;
}
td.address{
width: 50%;
margin-bottom:5mm;
}
td.order-data {
width: 100%;
display:block;
}
table.order-data-addresses{
margin-bottom:10px;
}
table.order-data-table{
margin-bottom:15px;
}
#footer{
font-size:8pt;
bottom: -0.3cm;
height:0.3cm
}