Support

Home Forums Event Espresso Premium Using wp_dropdown_pages for a custom booking form field.

Using wp_dropdown_pages for a custom booking form field.

Posted: March 8, 2018 at 8:48 am


info@bhaa.ie

March 8, 2018 at 8:48 am

Hi,
Is it possible to add a custom dropdown field to a booking form, where the id’s and values in the dropdown are populated via the wp_dropdown_pages() method. In our case we use the WP_Query to return a list of Custom Post Types, the booking user will select one of these options.

function bhaa_emp_forms_output_field_input($html, $form, $field) {
		if($field['type']=='select' && $field['fieldid']==Runner::BHAA_RUNNER_COMPANY) {
			$sectorTeamQuery = new WP_Query(
				array(
					'post_type' => 'house',
					'order'		=> 'ASC',
					'post_status' => 'publish',
					'orderby' 	=> 'title',
					'nopaging' => true,
					'tax_query'	=> array(
						array(
							'taxonomy'  => 'teamtype',
							'field'     => 'slug',
							'terms'     => 'sector', // exclude house posts in the sectorteam custom teamtype taxonomy
							'operator'  => 'IN')
					)
				)
			);
			$sectorTeamIds = implode(',',array_map(function($val){return $val->ID;},$sectorTeamQuery->posts) );
			$args = array (
				'id' => $field['fieldid'],
				'name' => $field['fieldid'],
				'echo' => 1,
				'post_type' => 'house',
				'exclude' => $sectorTeamIds);

			// an admin user is editing a runner page via the profile or edit-user pages.
			if (isset($_GET['user_id'])) {
				$runnerId = $_GET['user_id'];
				//error_log('user_id = '.$runnerId);
			} else {
				$runnerId = wp_get_current_user()->ID;
				//error_log('no <code>user_id</code> is defined, using wp_get_current_user() '.$runnerId);
			}

			$selected = get_user_meta($runnerId,Runner::BHAA_RUNNER_COMPANY,true);
			// set the correct defaults for new or existing user
			if($selected==0||$selected=='') {
				$args = array_merge( $args, array( 'show_option_none' => 'Please select a company' ) );
				$args = array_merge( $args, array( 'option_none_value' => '1' ) );
			} else {
				$args = array_merge( $args, array( 'selected' => $selected ) );
			}
			wp_dropdown_pages($args);
		}
		else
			return $html;
	}

I’m wondering what is the advise to achieve the same with the event expresso framework.
Regards,
Paul


Josh

  • Support Staff

March 8, 2018 at 8:57 am

Hi Paul,

I don’t believe that particular example would be possible, but you can check with the dev team by opening an issue on Github:

https://github.com/eventespresso/event-espresso-core/issues

There may be another way via using one of the hooks within Event Espresso.

The support post ‘Using wp_dropdown_pages for a custom booking form field.’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso