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. Prices output loop
    14. Pickup opening times
    15. Checkout Formfields
    16. Additional validation function
  6. Extensions / Gateways
    1. Google Cloudprint
    2. Cross-Sells
    3. Goodcom Printer
    4. Add Ingredients
    5. Pdf Invoices
    6. Delivery By Post/Zipcode
    7. Confirm | Reject | Notify
    8. Gateway - Stripe

5.10.Gateway filter frontend

Conditionally display gateways

if you wanted to disable a gateway conditionally (lets say no cash on delivery for non logged in users) you could add this to your themes functions.php

wppizza_filter_gateways_orderpage

@param: array
@return: array

example:

add_filter('wppizza_filter_gateways_orderpage', 'my_custom_gateways_filter');
function my_custom_gateways_filter($gateways){
	/* disable Cash on delivery for non-logged in users */
	if( !is_user_logged_in()){
		unset($gateways['COD']);//gateway keys are always uppercase
	}
return $gateways;
}

wppizza_filter_gateways_payment_options

as of wppizza 3.2.5 you can also do something like the following to conditionally enable/disable gateways depending on order value

add_filter('wppizza_filter_gateways_payment_options', 'my_custom_gateways_on_zero', 10 , 3);
function my_custom_gateways_on_zero($gateway_objects, $order_data,  $user_data){

	/*
		just for convenience
	*/
	$cart_total = $order_data['summary']['total'][0]['value'];
	
	/* 
		Example:
		if cart total is zero, disable all credit card payment gateways 
		i.e simply keep COD (which must be enabled for this to work of of course)
	*/
	if(empty($cart_total)){
		foreach($gateway_objects as $id => $obj){	
			
			/* hint: you could - temporarily - do a print_r($id) here to see all the id's associated with any gateways you have enabled */
			
			if($id !== 'COD'){
				unset($gateway_objects->$id);	
			}
		}
	}

	/* 
		Example:	
		if cart total is > zero, disable all NON credit card gateways - if that's what suits you
		you can use both examples in conjunctions with each other of course
	*/	
	if(!empty($cart_total)){
		unset( $gateway_objects->COD );
	}

	/* 
		Example:	
		if cart total is < 25, disable "Credit Card on Delivery" gateway
	*/
	if($cart_total < 25){
		unset($gateway_objects->CCOD);
	}

	/* 
		Note: If you want to conditionally do any of the above depending on if delivery or pickup was selected	
		simply add / wrap into another conditional like so
	*/
	if(!empty($order_data['checkout_parameters']['is_pickup'])){
		/* is pickup */ 
	}else{
		/* is delivery */
	}


return $gateway_objects;
}

For some globally available wppizza functions you could use in your conditionals above, refer to “Global WPPizza Functions”

Suggest Edit

documentor id 5