bp_profile_search_escaped_form_data( $form = false )

Escape BuddyBoss Profile Search Form data.

Description

Source

File: bp-core/profile-search/bps-form.php

function bp_profile_search_escaped_form_data ( $form = false ) {
    if ( empty( $form ) ) {
        $form = bp_profile_search_main_form();
    }
    
    $location  ='directory';
    
	$meta = bp_ps_meta ( $form );
	$fields = bp_ps_parse_request ( bp_ps_get_request ( 'form', $form ) );
    wp_register_script ('bp-ps-template-form', buddypress()->plugin_url . 'bp-core/profile-search/bp-ps-template.js', array (), bp_get_version());
	wp_enqueue_script('bp-ps-template-form');
	$F = new stdClass;
	$F->id = $form;
	$F->title = get_the_title ( $form );
	$F->location = $location;
	$F->unique_id = bp_ps_unique_id ('form_'. $form);
	$F->page = parse_url ($_SERVER['REQUEST_URI'], PHP_URL_PATH);

	$F->action = parse_url ( $_SERVER['REQUEST_URI'], PHP_URL_PATH );

	if (defined ('DOING_AJAX'))
		$F->action = parse_url ($_SERVER['HTTP_REFERER'], PHP_URL_PATH);

	$F->method = 'POST';
	$F->fields = array ();

	foreach ( $meta['field_code'] as $k => $code ) {
		if (empty ($fields[$code]))  continue;

		$f = $fields[$code];
		$mode = $meta['field_mode'][$k];
		if ( !bp_ps_Fields::set_display ($f, $mode))  continue;

		$f->label = $f->name;
		$custom_label = $meta['field_label'][$k];
		if (!empty ($custom_label))
		{
			$f->label = $custom_label;
			$F->fields[] = bp_ps_set_hidden_field ($f->code. '_label', $f->label);
		}

		$custom_desc = $meta['field_desc'][$k];
		if ($custom_desc == '-')
			$f->description = '';
		else if (!empty ($custom_desc))
			$f->description = $custom_desc;
        else 
            $f->description = '';
        
		switch ($f->display) {
            case 'range':
            case 'range-select':
                if (!isset ($f->value['min']))  $f->value['min'] = '';
                if (!isset ($f->value['max']))  $f->value['max'] = '';
                $f->min = $f->value['min'];
                $f->max = $f->value['max'];
                break;
                
            case 'date_range':
                if (!isset ($f->value['min']))  $f->value['min'] = array( 'day' => '', 'month' => '', 'year' => '' );
                if (!isset ($f->value['max']))  $f->value['max'] = array( 'day' => '', 'month' => '', 'year' => '' );
                $f->min = $f->value['min'];
                $f->max = $f->value['max'];
                break;

            case 'textbox':
            case 'number':
                if (!isset ($f->value))  $f->value = '';
                break;

            case 'distance':
                if (!isset ($f->value['location']))
                    $f->value['distance'] = $f->value['units'] = $f->value['location'] = $f->value['lat'] = $f->value['lng'] = '';
                wp_enqueue_script ($f->script_handle);
                wp_enqueue_script ('bp-ps-template');
                break;

            case 'selectbox':
                if (!isset ($f->value))  $f->value = '';
                $f->options = array ('' => '') + $f->options;
                break;

            case 'radio':
                if (!isset ($f->value))  $f->value = '';
                wp_enqueue_script ('bp-ps-template');
                break;

            case 'multiselectbox':
            case 'checkbox':
                if (!isset ($f->value))  $f->value = '';
                break;
		}

		$f->values = (array)$f->value;

		$f->html_name = ($mode == '')? $f->code: $f->code. '_'. $mode;
		$f->unique_id = bp_ps_unique_id ($f->html_name);
		$f->mode = $mode;
		$f->full_label = bp_ps_full_label ($f);

		/**
		 * @todo add title/description
		 *
		 * @since BuddyBoss 1.0.0
		 */
		do_action ('bp_ps_field_before_search_form', $f);
		$f->code = ($mode == '')? $f->code: $f->code. '_'. $mode;		// to be removed
		$F->fields[] = $f;
	}

	$F->fields[] = bp_ps_set_hidden_field ( BP_PS_FORM, $form);
	/**
	 * @todo add title/description
	 *
	 * @since BuddyBoss 1.0.0
	 */
	do_action ('bp_ps_before_search_form', $F);

	foreach ($F->fields as $f)
	{
		if (!is_array ($f->value))  $f->value = esc_attr (stripslashes ($f->value));
		if ($f->display == 'hidden')  continue;

		$f->label = esc_attr ($f->label);
		$f->description = esc_attr ($f->description);
		
        foreach ( $f->values as $k => $value ) {
            if ( is_array( $value ) ) {
                foreach( $value as $sub_k => $sub_value ) {
                    $f->values[ $k ][ $sub_k ] = esc_attr( stripslashes( $sub_value ) );
                }
            } else {
                $f->values[ $k ] = esc_attr( stripslashes( $value ) );
            }
            
        }
        
        $options = array ();
		foreach ($f->options as $key => $label)  $options[esc_attr ($key)] = esc_attr ($label);
		$f->options = $options;
	}

	return $F;
}

Changelog

Changelog
Version Description
BuddyBoss 1.0.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.