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%;}