6.1.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; }
documentor id 5