Author: super_admin_v3x
Extensions / Gateways
Add Ingredients
Filters available in WPPizza Add Ingredients
wppizza_ingredients_filter_email_styles
The below filter will *only* apply to emails
(as emails need style declarations to be added inline). For Print templates
, use the css input in WPPizza->Templates->Print
in conjunction with your browsers element inspector
@param: array
@return: array
add_filter('wppizza_ingredients_filter_email_styles', 'myprefix_ingredients_filter_email_styles'); function myprefix_ingredients_filter_email_styles($styles){ /* default styles passed on to $styles parameter are currently as follows (though might get tweaked in the future) $styles = array(); $styles['ingrinfo'] = 'white-space: initial; margin: 3px; line-height: 130%;' ; $styles['ingr_item'] = 'font-style: italic;' ; $styles['ingrinfo'] = 'white-space: initial; margin: 3px 3px 3px 20px; line-height: 130%; font-size:85%;' ; $styles['ingrgrp'] = 'white-space: initial; margin: 3px;line-height: 130%;' ; $styles['ingrgrp_0'] = 'white-space: initial; margin: 3px;line-height: 130%; display:inline' ; $styles['ingrgrp_1'] = 'white-space: initial; margin: 3px;line-height: 130%; margin-left: 15px' ; $styles['ingrgrp_lbl'] = 'font-weight: bold; padding-right: 3px;' ; $styles['comments'] = 'padding: 3px 0; font-size: 75%;' ; */ /* if you want to - for example - increase the font for all ingredients in your emails to 120% instead of the default of 85%, you can do this */ $styles['ingrinfo'] .='font-size:120%;'; /* or you could override the whole declaration , removing any margins etc and setting font to 14px */ $styles['ingrinfo'] ='font-size:14px;'; /* if - for example - you want to display all ingredients underneath each other (as opposed to next to each other) you could - as one of many options to achieve this - add */ $styles['ingr_item'] .='display:block;'; return $styles; }
WordPress inbuilt ‘get_post_metadata’ filter
A snippet you could use to override the ‘half/half’ and/or ‘quarter’ options on a per size basis for any menu item.
I.e if you have a menu item with “small”, “medium”, “large” and “xxl” sizes and have enabled “whole”, “halfs” and “quarters” for this but do *not* want to have the “halfs” or “quarters” option available for the “small” size, you could do something like the below
@param: mixed
@param: int
@param: str
@return: mixed
/* The below can be condensed somewhat , but for clarity we keep conditionals a bit more separate here in this example */ //Add the filter, using wordpress inbuilt 'get_post_metadata' filters add_filter('get_post_metadata', 'myprefix_modify_wppizzaingredients_slices', 100, 3); function myprefix_modify_wppizzaingredients_slices($metadata, $object_id, $meta_key){ /* making sure we are only ever listening to *frontend* ajax requests here (there are other way to do this too, but for simplicities sake...) */ if(!empty($_POST['action']) && $_POST['action'] === 'wppizza_ingredients_json' ){ /* the meta key used in the wppizza add ingredients plugin that determines whether or not half/half and/or quarters was enabled */ $ai_meta_key = 'add_ingredients_multi'; //a) check for add_ingredients_multi meta key if ( !empty( $meta_key ) && $ai_meta_key == $meta_key ){ //b) only apply to menu item with id "35" (change as needed) /* Option: if you wanted to select a whole category instead - for example category with id 183 - you could use if( isset($_POST['vars']['catId']) && $_POST['vars']['catId'] == 183) instead */ if($object_id == 35){ // c) only apply to first - typically smallest - size. Sizes are zero indexed , so we look for 0, if you want to target the 2nd size use $_POST['vars']['size'] == 1 and so on) if( isset($_POST['vars']['size']) && $_POST['vars']['size'] == 0){ /* set the new meta data to return this will in effect force only the "whole" option to be enabled overriding any half/half , quarter settings. To force half/half instead set a value of: array( 2 => 2 ) To force half/half and quarters only (but no whole) set a value of: array( 2 => 2, 4 => 4 ) or whatever combination you want to choose */ $set_meta = array(); $set_meta[0][$ai_meta_key] = array( 1 => 1);//whole only return $set_meta; } } } } /* return standard meta data if conditionals above do not apply */ return $metadata; }
WPPizza Autoprint
Confirm | Reject | Notify
Cross-Sells
Widgets/Shortcode
Cross Sells – Shortcodes / Widget settings | |||
---|---|---|---|
title=’some title’ | optional | string | Label above Cross Sells (Omit for default as set in Wppizza->Localization->Cross Sells) |
max=’5′ | optional | integer | Maximum number of x-sells results to retrieve (Omit for default as set in WPPizza->Order Settings->Cross Sells) |
view=’3′ | optional | integer |
Number of cross sells / cross sells width to be displayed in initial view. (default: 3 if omitted). Think of it as width being 1/3 of the container if set to 3, 1/4 of the container if set to 4 etc, regardless of number of total results |
arrows=’1′ | optional | bool (0|1) | Enable to display navigational left/right arrows next to results (if applicable) (Default : enabled|1 if omitted) |
dots=’0′ | optional | bool (0|1) | Enable to display navigational dots under any results (if applicable). (Default : disabled|0 if omitted) |
infinite=’0′ | optional | bool (0|1) | Enable for infinite scrolling/swiping of any results. (Default : disabled|0 if omitted) |
no_additives=’0′ | optional | bool (0|1) | Enable for infinite scrolling/swiping of any results. (Default : auto display if omitted) |
breakpoints=’800:2,400:1′ | optional | str (comma/colon separated or 0 to remove all breakpoints) | Set responsive breakpoints. (Default : 800:2,400:1 if omitted or empty) |
Widget Only : Exclude from posts/pages | optional | str (comma separated integers) | Set comma separated integers of pages/posts you do NOT want the widget to be displayed on |
Examples |
---|
[wppizza_xsells title='some title' max='5' view='3' arrows='1' dots='1' infinite='0' no_additives='1' breakpoints='600:2,400:1']
|
– Set title to “some title” – Display (up to) 5 results – 3 results initially visible (Note, if there are fewer than 3 results, each one will still only take up the space of 1/3rd of the container) – Show arrows (if more results than initially visible) – Show dots (if more results than initially visible) – Disable infinite scrolling – Suppress any additives – If container is <=600px wide show only 2 in initial view/box, each taking up 50% of the container | if container is <=400px wide show only 1 in initial view/box, each taking up 100% of the container |
[wppizza_xsells] this would be the same as [wppizza_xsells title='/*set in localization*/' max='/*as set in options*/' view='3' arrows='1' dots='0' infinite='0' no_additives='0' breakpoints='800:2,400:1']
|
– Set title as set in WPPizza->Localization->Cross Sells – Max results as set in WPPizza->Order Settings->Cross Sells – 3 results initially visible – Show arrows (if more results than initially visible) – No dots – No infinite scrolling – Additives shown if applicable – If container is <=800px wide show only 2 in initial view/box, each taking up 50% of the container | if container is <=400px wide show only 1 in initial view/box, each taking up 100% of the container |
Filters to alter the behaviour of the WPPizza cross-sell display
wppizza_xsells_filter_slick_parameters
The “WPPizza Cross-Sell” extension utilises the “Slick” Carousel to display the cross-sell items. The filter below allows you to alter the settings according to your requirements and the options available
For a full list of available parameters please refer to http://kenwheeler.github.io/slick/
@param: array(parameters)
@return: array(filtered parameters)
example:
add_filter('wppizza_xsells_filter_slick_parameters', 'my_slick_parameters'); function my_slick_parameters($slick_parameters){ /* the following defaults are being set in the plugin by default $slick_parameters['dots'] = false; $slick_parameters['arrows'] = true; $slick_parameters['infinite'] = false; /* default 3 slides */ $slick_parameters['slidesToShow'] = 3 ; $slick_parameters['slidesToScroll'] = 3 ; $slick_parameters['responsive'] = array(); /* under 800 px browser width, 2 slides only */ $slick_parameters['responsive'][0]['breakpoint'] = 800; $slick_parameters['responsive'][0]['settings'] = array(); $slick_parameters['responsive'][0]['settings']['slidesToShow'] = 2; $slick_parameters['responsive'][0]['settings']['slidesToScroll'] = 2; /* under 400 px browser width, 1 slide only */ $slick_parameters['responsive'][1]['breakpoint'] = 400; $slick_parameters['responsive'][1]['settings'] = array(); $slick_parameters['responsive'][1]['settings']['slidesToShow'] = 1; $slick_parameters['responsive'][1]['settings']['slidesToScroll'] = 1; */ /* example: enabling dots */ $slick_parameters['dots'] = true; /* example: enabling infinite loop*/ $slick_parameters['infinite'] = true; /* example: display 4 visible items (instead of the default 3)*/ $slick_parameters['slidesToShow'] = 4 ; $slick_parameters['slidesToScroll'] = 4 ; /* example: setting only one breakpoint at 600 with 1 slide only */ unset($slick_parameters['responsive']);/* first unset default breakpoints */ $slick_parameters['responsive'][0]['breakpoint'] = 600; $slick_parameters['responsive'][0]['settings'] = array(); $slick_parameters['responsive'][0]['settings']['slidesToShow'] = 1; $slick_parameters['responsive'][0]['settings']['slidesToScroll'] = 1; return $slick_parameters ; }
wppizza_xsells_filter_shortcode_atts
The Cross-Sells widget is – in essence – displayed by executing the following shortcode: [wppizza single='23,3' price_id='1,0' style='wppizza_xsells' showadditives='0' noheader='1' notags='1']
where “single” and “price_id” will determine which menu items and respective sizes to display. Although the ‘single’ and ‘price_id’ attributes are not filterable, *some* of the other display attributes – such as “currency_main”, “currency_price” , “image_prettyphoto” for example – can be used additionally if you would like to override some display settings. See https://docs.wp-pizza.com/shortcodes/?section=by-category for shortcode attributes
@param: array(default attributes)
@return: array(filtered parameters)
example:
add_filter('wppizza_xsells_filter_shortcode_atts', 'my_shortcode_atts'); function my_shortcode_atts($sc_attributes){ /* the following defaults are being set in the plugin by default $sc_attributes = array(); $sc_attributes['style'] = 'wppizza_xsells';//uses set style in xsales plugin settings $sc_attributes['showadditives'] = '0';//do not show additives under each item (as they will automatically be displayed combined underneath ifnecessary) $sc_attributes['noheader'] = '1';// $sc_attributes['notags'] = '1';//only use text from content, stripping all tags/elements */ /* example: do not display main currency symbol even though it's is enabled for "normal" menu items in WPPizza->Layout*/ $sc_attributes['currency_main'] = 0; /* example: do not display small currency symbol next to the price even though it's is enabled for "normal" menu items in WPPizza->Layout*/ $sc_attributes['currency_price'] = 0; /* example: do NOT strip element tags from content */ unset($sc_attributes['notags']); return $sc_attributes; }
Delivery By Post/Zipcode
Goodcom Printer
Google Cloudprint
Filters available using WPPizza Google Cloudprint
wppizza_gcp_filter_copies
Sending the second copy of an order to a different printer (id) set in the same google cloudprint account. The Number of copies in the plugin settings WPPizza->Cloudprint
must be set to 2 or more for this to have any effect.
@param: str (printer id)
@param: int (current copy )
@param: int (order id )
@param: array (order formatted )
@param: array (plugin options)
@return: str (printer id)
add_filter('wppizza_gcp_filter_copies', 'myprefix_gpc_set_printerid', 10, 5); function myprefix_gpc_set_printerid($printer_id, $copy, $order_id, $order_formatted, $gpcOptions){ /* set a different printer id for the second copy */ if($copy==2){ $printer_id = 'some-printer-id-you-need-to set';/* set the printer id here */ } return $printer_id; }
wppizza_gcp_filter_printerid
If you do not need to or want to send multiple copies but simply want to set a dynamic printer id depending on some parameters received, you can try something like this
@param: str (printer id)
@param: int (order id )
@param: array (order formatted )
@param: array (plugin options)
@return: str (printer id)
add_filter('wppizza_gcp_filter_printerid', 'myprefix_gpc_set_printerid', 10, 4); function myprefix_gpc_set_printerid($printer_id, $order_id, $order_formatted, $gpcOptions){ /* set a different printer id for the second copy */ if($order_formatted['some']['key']['selected']=='some value'){ $printer_id = 'some-printer-id-you-need-to set';/* set the printer id here */ } return $printer_id; }