This function’s access is marked private. This means it is not intended for use by other plugin or theme developers, only in this plugin itself. It is listed here for completeness.

Form_Edit_Page_Handler::handle_save_request( awsmug\Torro_Forms\DB_Objects\Forms\Form $form )

Handles a save request for the page.

Description

Parameters

$form

(awsmug\Torro_Forms\DB_Objects\Forms\Form) (Required) Current form.

Source

File: src/db-objects/forms/form-edit-page-handler.php

	private function handle_save_request( $form ) {
		$this->current_form = $form;

		$mappings = array(
			'forms'            => array(
				$form->id => $form->id,
			),
			'containers'       => array(),
			'elements'         => array(),
			'element_choices'  => array(),
			'element_settings' => array(),
		);

		$errors = new WP_Error();

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'containers' ] ) ) {
			$mappings = $this->save_containers( wp_unslash( $_POST[ $this->form_manager->get_prefix() . 'containers' ] ), $mappings, $errors );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'elements' ] ) ) {
			$mappings = $this->save_elements( wp_unslash( $_POST[ $this->form_manager->get_prefix() . 'elements' ] ), $mappings, $errors );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'element_choices' ] ) ) {
			$mappings = $this->save_element_choices( wp_unslash( $_POST[ $this->form_manager->get_prefix() . 'element_choices' ] ), $mappings, $errors );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'element_settings' ] ) ) {
			$mappings = $this->save_element_settings( wp_unslash( $_POST[ $this->form_manager->get_prefix() . 'element_settings' ] ), $mappings, $errors );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'deleted_containers' ] ) ) {
			$this->delete_containers( array_map( 'absint', $_POST[ $this->form_manager->get_prefix() . 'deleted_containers' ] ) );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'deleted_elements' ] ) ) {
			$this->delete_elements( array_map( 'absint', $_POST[ $this->form_manager->get_prefix() . 'deleted_elements' ] ) );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'deleted_element_choices' ] ) ) {
			$this->delete_element_choices( array_map( 'absint', $_POST[ $this->form_manager->get_prefix() . 'deleted_element_choices' ] ) );
		}

		if ( isset( $_POST[ $this->form_manager->get_prefix() . 'deleted_element_settings' ] ) ) {
			$this->delete_element_settings( array_map( 'absint', $_POST[ $this->form_manager->get_prefix() . 'deleted_element_settings' ] ) );
		}

		if ( ! did_action( "{$this->form_manager->get_prefix()}add_form_meta_content" ) ) {
			/** This action is documented in src/db-objects/forms/form-edit-page-handler.php */
			do_action( "{$this->form_manager->get_prefix()}add_form_meta_content", $this );
		}

		foreach ( $this->meta_boxes as $id => $args ) {
			if ( isset( $_POST[ $id ] ) ) {
				// TODO: Figure out how to deal with errors.
				$args['field_manager']->update_values( wp_unslash( $_POST[ $id ] ) );
			}
		}

		/**
		 * Fires after a form has been saved.
		 *
		 * @since 1.0.0
		 *
		 * @param Form  $form     Form that has been saved.
		 * @param array $mappings Array of ID mappings from the objects that have been saved.
		 */
		do_action( "{$this->form_manager->get_prefix()}save_form", $form, $mappings );
	}

Changelog

Changelog
Version Description
1.0.0 Introduced.