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

5.12.Change prices of menu item(s) depending on day of week

Dynamically change menu items prices depending on weekday

a filter to change menu items prices depending on day of week. To use in your theme’s functions.php using the wordpress standard get_post_metadata filter

get_post_metadata (wordpress standard filter)

@param: array
@return: array

example:

/***

change "myprefix" occurences with your own prefix 

change sections labelled "== ADJUST .....== as required

***/
add_filter('get_post_metadata', 'myprefix_wppizza_item_price', 10, 4);
function myprefix_wppizza_item_price($metadata, $object_id, $meta_key, $single) {

	/********************************
	
		skip if non wppizza meta key
	
	********************************/
	if( $meta_key != 'wppizza' ){ return;}
	
	/*******************************
	
		menu item id's that need to change prices depending on day
		== ADJUST ID'S (wppizza menu item id's) AS REQUIRED ==
	
	********************************/
	$menu_item_ids=array(5,65,66,32);	
	/**
		if menu item id not in array above, skip
	**/
	if(!in_array($object_id, $menu_item_ids )){return;}

	/********************************
	
		get current weekday
	
	*********************************/
	$current_weekday=date('w',current_time('timestamp'));//Numeric representation of the day of the week. 0 (for Sunday) through 6 (for Saturday)
	/**
		only change prices on wednesdays 
		(i.e current_weekday==3), else skip 
		
		== ADJUST WEEKDAY INTEGER AS  REQUIRED ==
	**/
	if($current_weekday!=3){ return ;}

	/************************************
	
		ok, now let's change meta prices
	
	*************************************/
	/*get current cached data*/
	$meta_cache = wp_cache_get( $object_id, 'post_meta' );
	/**
		if cache is empty (always, on all ajax calls it seems) get meta data
		however, we need to remove and re-add filter or we'll end up in an 
		infinite loop !
	**/
	if(empty($meta_cache)){
		/*remove filter*/
		remove_filter( 'get_post_metadata', 'myprefix_wppizza_item_price', 10 );
		$meta_cache[$meta_key][0]=get_post_meta($object_id, $meta_key, true );
		add_filter('get_post_metadata', 'myprefix_wppizza_item_price', 10, 4);
	}
		
	/*filter expects array as return*/		
	$metadata=array();
	/**unserialize meta*/
	$metadata[0] = maybe_unserialize($meta_cache[$meta_key][0]) ;

	/************************************
		 set prices as needed
		
		price tiers are zero indexed
		
		[ == ADJUST PRICE ADJUSTMENST AS REQUIRED == ]
		
		if you need this changed differently for each individual menu item,
		wrap the below into a conditional like 
		
		if($object_id=65){...}
		if($object_id=66){...}
		etc
		
	*************************************/
		/**first (smallest -> index 0 ) size -> minus 0.50**/
		$metadata[0]['prices'][0]=$metadata[0]['prices'][0]-0.5;

		/**second (medium -> index 1 ) size, if exists  -> minus 1.20**/
		if(!empty($metadata[0]['prices'][1])){
			$metadata[0]['prices'][1]=$metadata[0]['prices'][1]-1.2;
		}

		/**third (largest -> index 2 ) size, if exists -> minus 1.50**/
		if(!empty($metadata[0]['prices'][2])){
			$metadata[0]['prices'][2]=$metadata[0]['prices'][2]-1.5;
		}
		/*
		
		if you have more than 3 sizes, change indexes as required (zero indexed)
		the 4th would become  
			[0]['prices'][3]
		the 5th would become  	
			[0]['prices'][4]
			and so on
		*/

	/**return the changed meta data**/
	return $metadata;	
}
Suggest Edit

documentor id 5