Inventory_Presser_Map_Widget::form( array $instance )

Outputs the widget settings form that is shown in the dashboard.


Parameters Parameters

$instance

(array) (Required)


Top ↑

Return Return

(void)


Top ↑

Source Source

File: includes/widget/class-widget-map.php

	public function form( $instance ) {

		$title = isset( $instance['title'] ) ? $instance['title'] : '';

		?>
		<p>
			<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'inventory-presser' ); ?></label>
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
		</p>
		<p>
		<?php esc_html_e( 'Choose addresses to include:', 'inventory-presser' ); ?>
		</p>
		<?php

		// get all location terms.
		$location_terms = get_terms(
			array(
				'taxonomy'   => 'location',
				'hide_empty' => false,
			)
		);

		$location_slug = isset( $instance['location_slug'] ) ? $instance['location_slug'] : array();
		if ( ! is_array( $location_slug ) ) {
			$location_slug = array( $location_slug );
		}

		// loop through each location, set up form.
		foreach ( $location_terms as $index => $term_object ) {
			printf(
				'<p><input id="%1$s" name="%2$s[]" value="%3$s" type="checkbox"%4$s> <label for="%1$s">%5$s</label></p>',
				esc_attr( $this->get_field_id( $term_object->slug ) ),
				esc_attr( $this->get_field_name( 'location_slug' ) ),
				esc_attr( $term_object->slug ),
				checked( true, in_array( $term_object->slug, $location_slug, true ), false ),
				esc_html( str_replace( "\r", '', str_replace( PHP_EOL, ', ', $term_object->description ) ) )
			);
		}

		// Only show this if the API key is missing.
		$settings = INVP::settings();
		if ( empty( $settings['mapbox_public_token'] ) ) {
			printf( '<p>%s</p>', esc_html__( 'An API token from mapbox.com is required for this widget to work. Obtain a key at mapbox.com and save it on the Inventory Presser Options page.', 'inventory-presser' ) );
		}
	}