Pickup Opening Times

Change opening times when pickup is selected

example to have different openingtimes if a user chooses pickup (pickup must of course be enabled to start off with)

(there might also be a more concise way of doing this using init hooks and globals instead of the “wppizza_filter_options” hook, but the below is tested and works)

A) setup a reusable function that contains your pickup times

@param: void
@return: array

example function myprefix_pickup_openingtimes :

/*** 
	re-usable function that sets the opening hours
	you need when it's pickup - 
***/
function myprefix_pickup_openingtimes(){
	/* mondays */
	$vars['opening_times_standard'][1]['open'] = '12:00';
	$vars['opening_times_standard'][1]['close'] = '22:00';
	/* tuesdays */
	$vars['opening_times_standard'][2]['open'] = '12:00';
	$vars['opening_times_standard'][2]['close'] = '22:00';
	/* wednesdays */
	$vars['opening_times_standard'][3]['open'] = '00:00';
	$vars['opening_times_standard'][3]['close'] = '00:00';
	/* thursdays */
	$vars['opening_times_standard'][4]['open'] = '12:00';
	$vars['opening_times_standard'][4]['close'] = '22:00';
	/* fridays */
	$vars['opening_times_standard'][5]['open'] = '12:00';
	$vars['opening_times_standard'][5]['close'] = '22:00';
	/* saturdays */
	$vars['opening_times_standard'][6]['open'] = '12:00';
	$vars['opening_times_standard'][6]['close'] = '22:00';
	/* sundays */
	$vars['opening_times_standard'][0]['open'] = '12:00';
	$vars['opening_times_standard'][0]['close'] = '22:00';	
		
	/* unset - if required - your custom opening times */ 
	$vars['opening_times_custom'] = array();
		
	/* unset - if required - any closing times */
	$vars['times_closed_standard'] = array();
		
return $vars;
}

B) dynamically change times on page load if it is pickup using “wppizza_filter_options” filter

@param: array
@return: array

example:

/*** 
	get/set the opening hours when loading the page 
	depending on whether it's pickup or delivery  
	must be bypassed here when doing ajax request
****/
add_filter('wppizza_filter_options', 'myprefix_pickup_openingtimes_options');
function myprefix_pickup_openingtimes_options($wppizza_options){
	/* bypass for ajax requests */
	if(defined('DOING_AJAX') || DOING_AJAX){
		return $wppizza_options;/* do not ever forget to return all options here !!! */
	}
	/* check current state*/
	$is_pickup = wppizza_is_pickup();
	if($is_pickup){
		$wppizza_options['openingtimes'] = myprefix_pickup_openingtimes();//get pickup opening times
	}

return $wppizza_options;/* do not ever forget to return all options here !!! */
}

C) dynamically change times when changing from pickup to delivery using “wppizza_on_pickup_delivery_change” action

@param: bool
@return: void

example:

/*** 
	get/set the opening hours at time of changing from pickup to delivery 
	(i.e at ajax request when toggeling) - 
***/
add_action('wppizza_on_pickup_delivery_change', 'myprefix_pickup_openingtimes_ajax');
function myprefix_pickup_openingtimes_ajax($is_pickup){	
	global $wppizza_options;
	if($is_pickup){
		$wppizza_options['openingtimes'] =  myprefix_pickup_openingtimes() ;//get pickup opening times
	}
}

D) force toggle to be visible using “wppizza_filter_force_pickup_toggle_display” filter

ensure the toggle is always visible as – by default – it would not be displayed if the shop is shut so there would be no way to choose a different delivery method

@param: void
@return: bool

example:

/* always show pickup/delivery option */
add_filter('wppizza_filter_force_pickup_toggle_display', 'myprefix_pickup_openingtimes_force_toggle');
function myprefix_pickup_openingtimes_force_toggle(){
	return true;	
}