Developers

  1. Modify Css / Styles / Layout
    1. Layout (Menu Items, General)
    2. Frontend Css
    3. Admin Css
  2. Templates
    1. Pages
      1. page.order.php
      2. page.confirm-order.php
      3. page.processing.php
      4. page.thankyou.php
      5. page.cancelled.php
      6. page.purchase-history.php
    2. Order
      1. itemised.php
      2. summary.php
      3. transaction_details.php
    3. Global
      1. orderinfo.php (Widget)
      2. openingtimes.php (Widget)
      3. additives.php (Widget)
      4. navigation.list.php (Widget)
      5. navigation.dropdown.php (Widget)
      6. search.php (Widget)
      7. totals.php (Widget)
      8. pickup_choice.php (Mixed)
      9. login.php (Module)
      10. profile.register.php (Module)
      11. profile.update.php (Module)
      12. pages.pickup_note.php (Module)
      13. formfields.inputs.php (Module)
      14. formfields.values.php (Module)
    4. Cart
      1. cart.container.php
      2. cart.shopclosed.php
      3. cart.empty.php
      4. cart.pickup_note.php
      5. cart.checkout_button.php
      6. cart.empty_cart_button.php
      7. cart.minimum_order.php
      8. minicart.php
    5. Loop (Menu Items)
      1. header.php
      2. no_results.php
      3. posts.title.php
      4. posts.thumbnail.php
      5. posts.prices.php
      6. posts.content.php
      7. posts.permalink.php
      8. additives.php
      9. pagination.php
      10. theme-wrapper.php
    6. Search Results
      1. search.php
    7. Single Menu Item
      1. single.php
    8. functions.php
  3. Filters, Actions, Functions
    1. Global WPPizza functions
    2. WPPizza options (Filter)
    3. Currency (Filter)
    4. After every order (Action)
    5. Getting orders (Function)
  4. Constants
    1. Admin Name
    2. Admin Menu Icon
    3. SORT_ITEMS_AS_ADDED
    4. SINGLE_PERMALINK_VAR
    5. WIDGET_CSS_CLASS
    6. PLAINTEXT_LINE_LENGTH
    7. ADMIN_{CONSTANTS}
    8. DEV_{CONSTANTS}
    9. INSTALL_{CONSTANTS}
    10. TRANSACTION_{CONSTANTS}
  5. Codesnippets
    1. Create your own sales report
    2. Order history - todays orders
    3. Email/Print templates
    4. Email Subject Line
    5. Add attachment to email
    6. On order status update
    7. Unconfirmed orders
    8. Customise order id
    9. Changing post type arguments
    10. Gateway filter frontend
    11. Users previous orders
    12. Dynamic menu item prices
    13. Update prices in bulk
    14. Prices output loop
    15. Pickup opening times
    16. Checkout Formfields
    17. Additional validation function
  6. Extensions / Gateways
    1. Add Ingredients
    2. Autoprint
    3. Confirm | Reject | Notify
    4. Coupons and Discounts
    5. Cross-Sells
    6. Delivery By Post/Zipcode
    7. Goodcom Printer
    8. Mailinglists
    9. Pdf Invoices
    10. Preorder
    11. Gateway - Stripe

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;
}
Suggest Edit

documentor id 5