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.4.Coupons and Discounts

Filters available for WPPizza Coupons and Discounts

wppizza_cad_filter_discounts

Allow to filter (unset) applied discounts – identified by their ID – depending on custom conditions related to cart contents. As with all customisations, use at your own risk. You should test this thoroughly

/*
@since 2.1.4
@param array
@param array
@return array

EXAMPLE:
Remove a specific applied simple discount - identified by its id - if cart contains an item from a certain category
*/
add_filter('wppizza_cad_filter_discounts', 'myprefix_filter_wppizza_cad_filter_discounts', 10, 2);
function myprefix_filter_wppizza_cad_filter_discounts($array_of_discount_ids, $cart){
	/*
		skip if there isn't anything in the cart to start off with
	*/
	if(empty($cart)){
		return $array_of_discount_ids;
	}

	/*
		discount id to remove if cat id in cart
	*/
	$discountIdToRemove = 1;	
	//skip if it does not exist in array anyway
	if(empty($array_of_discount_ids[$discountId])){
		return $array_of_discount_ids;
	}
		
	/*
		check for category id used by an item in cart
	*/
	$findCatId = 6;
	
	/*
		array keys of items consist of blogid.categoryid.postid.sizes and more
		
		Note:
		there are also many other ways of doing this by iterating through all items or similar....
		whatever works for you
	*/
		
	//get all keys cart 
	$cart_item_keys = array_keys($cart);
	
	//iterate through keys to get category id's
	foreach($cart_item_keys as $cart_item_key){
		
		//explode keys by '.'
		$x = explode('.',$cart_item_key);
		
		/* 
			Example: 
			if one of the items in the cart belongs to cat id = 6 , 
			remove discount with id 1 

			$x[0] => blog id
			$x[1] => cat id
			$x[2] => post id
			$x[3] => sizes id
			$x[4] => size id
			.....
		*/
		if($x[1] == $findCatId){
			unset($array_of_discount_ids[$discountIdToRemove]);
			break;//no need to continue iteration now	
		}
	}
	
return $array_of_discount_ids;
}
Suggest Edit

documentor id 5