WPPizza Autoprint

Customisations WPPizza Autoprint

Adjusting print output of selected autoprint template

Your print template selected MUST be set to “Html” to be able to access the css setting

  • Go to “Wppizza -> Templates -> Print”
  • Locate the template you have selected to use as your autoprint template
  • Make sure this template is set to Type->HTML
  • Click on the “code” icon to reveal the “Print Order CSS”
  • Edit/Adjust the css as required
  • To add header/footer – or other – images to the template, see the examples below, adjust as required and add to your css declarations
//some examples regarding logo top, a logo above summary, a logo below summary, assuming logo height is about 60px (alse adjust padding as required
//logo top
body {
	background-image: url("http://www.domain.com/[somepath]/logo.png");
	background-repeat: no-repeat;
	background-position: center top;
	padding-top:60px;
}
//logo above summary
#summary {
	background-image: url("http://www.domain.com/[somepath]/logo.png");
	background-repeat: no-repeat;
	background-position: center top;
	padding-top:60px;
}
//logo below summary
#summary {
	background-image: url("http://www.domain.com/[somepath]/logo.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	padding-bottom:60px;
}
//enter something in "Footer : text after summary / totals" in wppizza -> localization and add the logo as in the css examples above
//footer localization must not be empty - alternatively simply enter the html in the textbox itself and ignore the css below
#footer {
	background-image: url("http://www.domain.com/[somepath]/logo.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	padding-bottom:60px;
}

wppizza_autoprint_filter_page_format

@param: array
@return: array

add_filter('wppizza_autoprint_filter_page_format', 'myprefix_autoprint_filter_page_format');
function myprefix_autoprint_filter_page_format($pageFormat){

	/* adding your own page format for example */
	$pageFormat['my_format] = array(
		'label' => 'My Format Label',//set some label to identify this in the dropdown
		'paper_size' => array(0, 0, 226.77, 'single'),//in points (example here equates to 80mm x 160mm) if 4th parameters is set to single - as opposed to a distinct height in points - , height will be calculated for single page
		'page_margin' => array(0.1, 0.4),//in cm (top/bottom, right/left) [1cm == 28.3465 pt]
		'page_height_adjustment' => 20, // when forcing single page add an additional value - just to be safe to the calculated pageheight to account for margins.
		'orientation' => 'portrait',//portrait or landscape
		'font_size' => array(6.5, 6.5),//fontsizes - in points - for monospaced/plaintext and html
		'cpl_monospace' => 50,//by default it's 70 characters per line for plaintext templates, this might be too long (depending on font and paper sizeset , so this might need to be less than 70
		'thermal' => true,//if its a thermal printer you want to use this template for

	);
return $pageFormat;
}

wppizza_autoprint_filter_printnode_options

dynamically alter printnode options

@param: array
@param: array
@return: array

add_filter('wppizza_autoprint_filter_printnode_options', 'myprefix_autoprint_filter_printnode_options');
function myprefix_autoprint_filter_printnode_options($printnode_options, $order_details){

	/* 
		example:
		alter the  api key depending on some order value 
	*/
	if($order_details['ordervars']['{some-order-value}']['value'] == 'some value'){
		
		$printnode_options['printnode_api_key'] = 'abcdefg....';
		
	}
	
	/* 
		example:
		alter the printnode printer ids 
		(i.e in this example change printer ids to '123456,789456' instead of what is entered in the plugin settings)
		depending on some order value 
	*/
	if($order_details['ordervars']['{some-order-value}']['value'] == 'some value'){
		
		$printnode_options['printnode_printer_ids'] = '123456,789456'; 
		
	}	
	
	

return $printnode_options;
}

wppizza_autoprint_filter_printnode_id

dynamically change one of the “Printnode ids” you are printing to (make sure your Api Key is valid for this print id !)

@param: str
@param: array
@return: str

add_filter('wppizza_autoprint_filter_printnode_id', 'myprefix_autoprint_filter_printnode_id');
function myprefix_autoprint_filter_printnode_id($printnode_id, $order_details){

	/* 
		example:
		alter the printnode printer id to 987654 if $order_details 
		is some value and original printer id 
		is 123456
	*/
	if($order_details['ordervars']['{some-order-value}']['value'] == 'some value' && $printnode_id = '123456'){
		
		$printnode_id= '987654';
		
	}
	


return $printnode_id;
}

Default css for Autoprint template added on install (in case you would like to reset this to the defaults)

Please note that the absolute font-size will automatically added to this css depending on your plugin settings, therefore the default font-size values are deliberately relative (i.e percentages) here, though you can set things as you wish…

	html, body, table, tbody, tr, td, th, span{margin:0; padding:0; text-align:left;}
	table{width:100%;margin:0 auto 10px auto;}
	th{padding:5px;border-top:2px solid;border-bottom:2px solid;font-size:120%;white-space:nowrap;text-align:center}
	td{padding:0 5px;vertical-align:top;}
	#header tbody > tr > td{text-align:center;padding:0;}
	#header #site_name td{font-size:250%;}
	#header #site_url td{font-size:100%;padding-bottom:5px;}
	#header #site_header td{font-size:130%;}
	#header #site_address td{font-size:130%;}
	#overview {table-layout: fixed;}
	#overview tbody > tr > td{width:50%;word-wrap: break-word;white-space: initial;}
	#overview tbody > tr > td:first-child{text-align:right}
	#overview tbody > tr > td.td-ctr{text-align:center;width:100%;}
	#overview #order_date td {border-top: 2px solid; border-bottom: 2px solid; font-size: 120%; text-align: center;padding: 5px;}
	#overview #order_id td{font-size:140%}
	#overview #payment_due td{font-size:140%}
	#overview #pickup_delivery td{font-size:120%;white-space:normal;text-align:center;width:100%;}
	#overview #self_pickup td{font-size: 120%;padding: 10px 0;}
	#overview #admin_notes td{white-space:normal;text-align:center; width:100%; padding:10px 0;}
	#customer tbody > tr > td{white-space:inherit;}
	#customer tbody > tr > td:first-child{white-space:break-spaces;}
	#order th{text-align:left}
	#order th:first-child,#order th:last-child{width:20px;white-space:nowrap;}
	#order tbody > tr.items > td{padding-top:5px;font-size:100%; word-break:break-all}
	#order tbody > tr.items > td:first-child{text-align:center;word-break:initial}
	#order tbody > tr.items > td:last-child{text-align:right;white-space:nowrap;word-break:initial}
	#order tbody > tr.divider > td > hr {border:none;border-top:1px dotted #AAAAAA;}
	#order .item-blog td{padding:5px 2px 5px 2px; border-bottom:1px solid;font-weight:600;font-size:120%}
	#order .item-category td{padding:5px 2px 2px 2px; border-bottom:1px dashed }
	#summary {border-top:1px solid;border-bottom:1px solid;}
	#summary tbody > tr > td{text-align:right}
	#summary tbody > tr > td:last-child{width:1%;white-space:nowrap;}
	#footer #footer_note td{text-align:center;width:100%;}