Author: super_admin_v3x

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 

Plugin Options

Display a set WPPizza plugin option Display the (raw, unformatted) value of an option set in the WPPizza plugin (strings only). Use your browsers element inspector on an input element to determine the page/parameter combination. If you need access to other parameters not returned by 

Layout (Menu Items, General)

If you wish to alter the display of the WPPizza menu items – alongside many other layout elements – from the installed default, use any of the options below

  • Goto “WPPizza ->Layout”

    Goto “Style” on that page and choose from one of the style options available (currently “default”, “responsive” and “grid” ) as your main / base menu item layout.

    Adjust all other layout options on that page as required
  • Change the order of how elements are displayed by adjusting the “elements” attribute of the shortcodes on your pages according to the shortcode documentation

    For full shortcode attributes list available refer to that same documentation please.
  • Adjust the css according to the css documentation here

In 99% of cases a combination of the above the should let you adjust the layout as you require to fully integrate with your chosen theme I would think (make sure you test any changes you make on multiple devices ).
However, if you still feel the need to modify the templates themselves please refer to the templates documentation

Gateway – Stripe

Filters/Codesnippets WPPizza -> Gateways -> Stripe Codesnippet(s) to modify “Stripe” gateway options – namely test/live api keys in this example – depending on the user selection of a custom added dropdown formfield, in this case allowing for different stripe accounts to be targeted depending on 

Removing version numbers

The below isn’t really about WPPizza in particular but WordPress in general, and I feel the need to state why removing version numbers from WordPress javascript or css files – either by some custom filtering, using some plugin or even having this kind of thing 

Checkout Formfields

Modify the customer form fields available on the checkout page

A few examples as to how you can show/hide/add/modify input formfields available on the checkout page

Simple show/hide formfields using css selectors

If you wish to simply show hide some formfields when an order is set to be a pickup order.
See here , for options as to where to add this css

example:

/**********************************************************
	target specific elements on pickup
	use your browsers element inspector to ascertain the exact classname you need to target
**********************************************************/
.wppizza-order-ispickup .wppizza-personal-details > .wppizza-cname{display:none}
.wppizza-order-ispickup .wppizza-personal-details > .wppizza-caddress{display:none}
/* etc etc */

Make sure to not hide things that you have also set to be “required” (unless they are already prefilled in some way) or the customer will never be able to check out …

wppizza_register_formfields

Add / modify a formfield on the checkout page. First of all, you can of course already add/remove and conditionally set various formfield properties by going to WPPizza ->Order Form. If you however need some more granular control or simply add your own, see the examples below

.

example:

/*************************************************** 
	add the filter and corresponding function
****************************************************/
add_filter('wppizza_register_formfields', 'my_prefix_modify_wppizza_formfields');
function my_prefix_modify_wppizza_formfields($formfields){

	/* 
		*unique* identifier for the formfield you want to add
		if you add more than one, each one must be a unique id
		for simplicity and demonstration purposes the some is being used here for all !

		if you wish ta alter an already existing formfield use that formfields key instead 
		a print_r($formfields) will show you all registered formfields and their keys if you need to identify a particular one 

	*/
	$unique_ident = 'my_unique_formfield_id';


	/*********************************************** 
		adding a text formfield 
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* label displayed for the formfield */
		'lbl' => 'some label',

		/* should be defined as an array, with the first value being false  */
		'value' => array(false),

		/* set to text to display a text input */
		'type' => 'text',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise */
		'required' => true,

		/* true to make the field required on pickup, false otherwise */
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* input placeholder  */
		'placeholder' => 'my placeholder',

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array*/
		'validation' => array(
			'default' => true,
		),			
	);


	/*********************************************** 
		adding a select dropdown
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* label displayed for the formfield */
		'lbl' => 'some label',

		/* an array of available dropdown values*/
		'value' => array('1st value','2nd value','3rd value','Nth value'),

		/* set to select to display a select dropdown*/
		'type' => 'select ',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise */
		'required' => true,

		/* true to make the field required on pickup, false otherwise */
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* placeholder - used as initial, non-selected value  or bool false / empty */
		'placeholder' => '--please select--',

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array, 
		however as this is a select field , the rules as set below are really the only sensible setting here
		*/
		'validation' => array(
			'default' => true,
		),			
	);


	/*********************************************** 
		adding radio inputs 
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* label displayed for the formfield */
		'lbl' => 'some label',

		/* an array of available radio values*/
		'value' => array('1st value','2nd value','3rd value','Nth value'),

		/* set to select to display radio choices */
		'type' => 'radio',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise  */
		'required' => true,

		/* true to make the field required on pickup, false otherwise */
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* ignored for radios  */
		'placeholder' => false,

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array, 
		however as these are radio inputs, the rules as set below are really the only sensible setting here
		*/
		'validation' => array(
			'default' => true,
		),			
	);


	/*********************************************** 
		adding a checkbox
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* label displayed for the checkbox */
		'lbl' => 'some label',

		/* ignored, but should be set to avoid php notices*/
		'value' => array(false),

		/* set to select to display multiple checkbox choices */
		'type' => 'checkbox',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise  */
		'required' => true,

		/* true to make the field required on pickup, false otherwise */
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* ignored for checkboxes*/
		'placeholder' => false,

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array, 
		however as these are radio inputs, the rules as set below are really the only sensible setting here
		*/
		'validation' => array(
			'default' => true,
		),			
	);

	/*********************************************** 
		adding multiple checkbox choices
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* label  */
		'lbl' => 'some label',

		/* an array of checkboxes */
		'value' => array('1st value','2nd value','3rd value','Nth value'),

		/* set to select to display multiple checkbox choices */
		'type' => 'multicheckbox',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise  */
		'required' => true,

		/* true to make the field required on pickup, false otherwise */
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* ignored for checkboxes*/
		'placeholder' => false,

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array, 
		however as these are radio inputs, the rules as set below are really the only sensible setting here
		*/
		'validation' => array(
			'default' => true,
		),			
	);

	/*********************************************** 
		adding a hidden formfield 
	***********************************************/
	$formfields[$unique_ident ] = array(
	
		/* sort order - at which position is this field displayed */
		'sort' => 100,

		/* the unique ident  */
		'key' => $unique_ident ,

		/* ignored for hidden fields */
		'lbl' => false,

		/* should be defined as an array, with the first value being false  */
		'value' => array(false),

		/* set to hidden to display a hidden input */
		'type' => 'hidden',

		/* true to enable (pointless to set this to false)*/
		'enabled' => true,

		/* true to make the field required on delivery, false otherwise . 
		Warning: if you set this to true, without prefilling it (see below) the customer will never be able to order when delivery is selected !
		*/
		'required' => true,

		/* true to make the field required on pickup, false otherwise . 
		Warning: if you set this to true, without prefilling it (see below) the customer will never be able to order when pickup is selected !
		*/
		'required_on_pickup' => true,

		/* true to prefill with a value if it is known (will only ever do anything with 'onregister' being true as well) */
		'prefill' => false,

		/* true to make field part of the user registration values */
		'onregister' => false,

		/* true to add the value entered to the email subject  */
		'add_to_subject_line' => false,

		/* ignored for hidden fields  */
		'placeholder' => false ,

		/* validation as available wppizza->order form. as there can be multiple validation rules, this should be an array, 
		however as this is a hidden inputs, the rules as set below are really the only sensible setting here
		*/
		'validation' => array(
			'default' => true,
		),			
	);




	/*********************************************** 
		removing a formfield 
		simply unset , or disable
	***********************************************/
	unset($formfields[$unique_ident]); //unset
	$formfields[$unique_ident]['enabled'] = false ; //disable


	/*********************************************** 
		if you want to disable/not show
		a field when pickup is selected
	***********************************************/
	if(wppizza_is_pickup()){//simply use !wppizza_is_pickup() for the reverse
		unset($formfields[$unique_ident]); //unset
		$formfields[$unique_ident]['enabled'] = false ; //disable
	}



return $formfields;
}

For additional conditionals that might be useful (‘cart is empty’ and similar), also see here

Pre-filling form fields

If a formfield is set to have ‘onregister’ and ‘prefill’ set to true, the relevant value will be prefilled/selected when a user logs in, if you want to or need to (especially with hidden fields) always pre-set a specific value I’d suggest something like the below

example:

add_action('init', 'myprefix_prefill_formfields');
function myprefix_prefill_formfields(){

	/*
	prefill a value if it has not ever been set
	*unique* identifier for the formfield you want to prefill 
	*/
	$unique_ident = 'my_unique_formfield_id';

	if(!isset($_SESSION[WPPIZZA_SLUG.'_userdata'][$unique_ident])){
		
		/* text / hidden formfields */
		$_SESSION[WPPIZZA_SLUG.'_userdata'][$unique_ident] = 'some input value';
		
		/* radios - one of the values as defined in 'value' array of the registered formfield*/
		$_SESSION[WPPIZZA_SLUG.'_userdata'][$unique_ident] = '2nd value';

		/* checkbox (single) - boolean */
		$_SESSION[WPPIZZA_SLUG.'_userdata'][$unique_ident] = true; //bool

		/* checkbox (multiple)  - one or more of the values as defined in 'value' array ofthe  registered formfield*/
		$_SESSION[WPPIZZA_SLUG.'_userdata'][$unique_ident] = array('1st value','3rd value') ; //array
	}
	
return;
}

Confirm | Reject | Notify

Filters available using WPPizza – Confirm | Reject | Notify wppizza_crn_sms_branding Allow “Branding”: Send some arbitrary text instead of sending a phonenumber as “Sender ID”. Be aware that this will not work if you are using 2-way or 3-way SMS settings (as the recipient would 

Email Subject Line

Change the default subject line used in emails wppizza_filter_email_subject /*** email subject lines are made up of 3 parts filter each part as required based on your preferences ****/ add_filter(‘wppizza_filter_email_subject’, ‘myprefix_filter_email_subject’, 10, 2); function myprefix_filter_email_subject($subject, $order_formatted){ /* defaults //dynamic depending on settings in wppizza order 

Delivery By Post/Zipcode

Shortcodes

If you wish to display the delivery by post/zip-code selection in a different location

  • [wppizza_dbp]

If using google maps option: displaying the *dashboard map widget* showing your orders elsewhere:

  • Shortcode: [wppizza_dbp_map]
  • Available attributes:
    • orders – orders to display according to status set. default: “new,delivered”. Available: “new,acknowledged,on_hold,processed,delivered,rejected,refunded”
    • polling – interval, in minutes, to query for new orders
    • fullscreen – omit (default), if the map should *not* be full screen.
    • statustoggle – if set, adds a button to each order displayed that allows an order to be marked as delivered
  • Example: [wppizza_dbp_map orders="new,delivered" polling="1" fullscreen="1" statustoggle="1"]

Note: If you use this particular shortcode in the frontend somewhere, you most likely want to put this on a page that has been (password) protected !

 
 


 
 

Examples that will NOT require the “Delivery By Post/Zipcode” plugin

There are certain – relatively simple – situations where the “Delivery By Post/Zipcode” plugin would be unnecessary or indeed complete overkill if you want to achieve some of the below outcomes

Ask customer to select a delivery area/postcode

If you do NOT have DIFFERENT delivery prices for different postcodes or delivery areas but ONLY want to check that your customer has at least selected from a list of selectable delivery area/postcodes

  • goto: wppizza->orderform
  • rename/relabel one of the custom fields
  • check enabled
  • check required
  • choose type->select
  • enter a comma separated list of your delivery areas or postcodes.
  • save

Same site, multiple branches

If you want to use the same site for multiple branches and/but want to send the order email to the associated branches email address depending on the branch selected by the customer

  • goto: wppizza->orderform
  • rename/relabel one of the custom fields (let’s say ccustom6 – hover your mouse over the “enable” button to get the relevant id)
  • check enabled
  • check required
  • choose type->select
  • enter a comma separated list of your branches (let’s say “Branch 1, Branch 2, Branch 3” – without the quotes).
  • save

Then add the following filter to your [child] themes functions.php (see here if you don’t know about wordpress filters/actions).

add_filter( 'wppizza_filter_email_settings', 'myprefix_filter_email_settings', 10, 3 );
function myprefix_filter_email_settings($email_settings, $recipient, $order) {
	
	// only filter emails to the shop
	if($recipient === 'shop'){
		//set shop email depending on branch selected 
		if($order['sections']['customer']['ccustom6']['value'] === 'Branch 1'){//Branch 1
			$email_settings['AddAddress'][0]['email'] = '[email protected]';
		}
		elseif($order['sections']['customer']['ccustom6']['value'] === 'Branch 2'){//Branch 2
			$email_settings['AddAddress'][0]['email'] = '[email protected]';
		}
		/* and so forth */
		else{
			/*
				all others - set as required here along the lines above, i.e 
				$email_settings['AddAddress'][0]['email'] = '[email protected]';
				or simply don't set anything / ignore 
				to send to the default email address set for the shop in your order settings
			*/
		}
	}

return $email_settings ;
}

PS: If you do NOT need different shop email addresses to send the order to but only want to allow the customer to select from the available branches, you can simply omit the filter above entirely

 
 


 
 

Troubleshooting

Cart empty on checkout when changing post/zipcode

If the above is the case, the required column in the database was not created. This might be due to some permission issue somewhere at time of installation or an outdated mysql version. If this is the case, try the following

  • goto WPPizza -> Post/Zipcodes
  • click on “Settings” [Tab at the top]
  • enable “Verify table column”
  • save

Typically this solves the issue but get in contact if it does not, but make sure you enable debug first and check your debug.log for any related entries

Pdf Invoices

CSS Declaration Examples and Filters available using WPPizza – Pdf Invoices Using your own font (this must be a truetype font – see also “Know Issues” below) To use your own font, follow the guide below: Go to “WPPizza -> Settings-> PDF Invoices” Make sure