AnsPress_Process_Form()
Description #
Process AnsPress forms.
Source #
File: includes/process-form.php
class AnsPress_Process_Form {
	/**
	 * Results to send in ajax callback.
	 *
	 * @var array
	 */
	private $result;
	/**
	 * Link to redirect.
	 *
	 * @var string
	 */
	private $redirect;
	/**
	 * Used for property assignment.
	 *
	 * @var object
	 */
	public $request;
	/**
	 * Initialize the class
	 */
	public function __construct() {
		add_action( 'wp_ajax_ap_ajax', array( $this, 'ap_ajax' ) );
		add_action( 'wp_ajax_nopriv_ap_ajax', array( $this, 'ap_ajax' ) );
	}
	/**
	 * For non ajax form.
	 *
	 * @return void
	 */
	public function non_ajax_form() {
		$form_action = ap_isset_post_value( 'ap_form_action' );
		$ajax_action = ap_isset_post_value( 'ap_ajax_action' );
		// return if ap_form_action is not set, probably its not our form.
		if ( ! $form_action || $ajax_action ) {
			return;
		}
		$this->request = $_REQUEST; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
		$this->process_form();
		if ( ! empty( $this->redirect ) ) {
			wp_redirect( $this->redirect ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
			exit;
		}
	}
	/**
	 * Handle all anspress ajax requests.
	 *
	 * @return void
	 * @since 2.0.1
	 */
	public function ap_ajax() {
		$ajax_action = ap_isset_post_value( 'ap_ajax_action' );
		$form_action = ap_isset_post_value( 'ap_form_action' );
		if ( ! $ajax_action ) {
			exit;
		}
		$this->request = $_REQUEST; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
		if ( $form_action ) {
			$this->is_ajax = true;
			$this->process_form();
			ap_ajax_json( $this->result );
		} else {
			$action = ap_sanitize_unslash( 'ap_ajax_action', 'r' );
			/**
				* ACTION: ap_ajax_[$action]
				* Action for processing Ajax requests
			 *
				* @since 2.0.1
				*/
			do_action( 'ap_ajax_' . $action );
		}
		// If reached to this point then there is something wrong.
		ap_ajax_json( 'something_wrong' );
	}
	/**
	 * Process form based on action value.
	 *
	 * @return void
	 * @since 2.0.1
	 * @deprecated 4.1.5
	 */
	public function process_form() {
		$form_action = ap_isset_post_value( 'ap_form_action' );
		$action      = sanitize_text_field( $form_action );
		/**
		 * ACTION: ap_process_form_[action]
		 * process form
		 *
		 * @since 2.0.1
		 * @deprecated 4.1.0
		 */
		do_action( 'ap_process_form_' . $action );
	}
}
Expand full source code Collapse full source code View on GitHub: includes/process-form.php:22
  Add your comment