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