API_Action::save_mappings( int $form_id, array $id_mappings )

Saves the element mappings for a given form.

Description

See also

Parameters

$form_id

(int) (Required) Form ID.

$id_mappings

(array) (Required) Array of ID mappings from the elements that have just been saved.

Source

File: src/modules/actions/api-action.php

	public final function save_mappings( $form_id, $id_mappings ) {
		$mappings = array();

		if ( isset( $_POST[ $this->module->manager()->get_prefix() . $this->slug . '_mappings' ] ) ) {
			$element_map_fields = $this->get_element_map_fields();

			$raw_mappings = wp_unslash( $_POST[ $this->module->manager()->get_prefix() . $this->slug . '_mappings' ] );

			foreach ( $raw_mappings as $element_id => $field_slugs ) {
				$real_fields = array();
				foreach ( $field_slugs as $field_slug => $mapped_param ) {
					if ( empty( $mapped_param ) ) {
						continue;
					}

					if ( ! isset( $element_map_fields[ $mapped_param ] ) ) {
						continue;
					}

					$real_fields[ $field_slug ] = $mapped_param;
				}

				if ( empty( $real_fields ) ) {
					continue;
				}

				$real_element_id = isset( $id_mappings[ $element_id ] ) ? $id_mappings[ $element_id ] : $element_id;

				$mappings[ $real_element_id ] = $real_fields;
			}
		}

		$this->module->manager()->meta()->update( 'post', $form_id, $this->module->manager()->get_prefix() . $this->slug . '_mappings', $mappings );
	}

Changelog

Changelog
Version Description
1.0.0 Introduced.