acf_validation{}ACF 1.0

Хуков нет.

Использование

$acf_validation = new acf_validation();
// use class methods

Методы

  1. public __construct()
  2. public acf_validate_save_post()
  3. public add_error( $input, $message )
  4. public ajax_validate_save_post()
  5. public get_error( $input )
  6. public get_errors()
  7. public reset_errors()

Код acf_validation{} ACF 6.0.4

class acf_validation {


	/*
	*  __construct
	*
	*  This function will setup the class functionality
	*
	*  @type    function
	*  @date    5/03/2014
	*  @since   5.0.0
	*
	*  @param   n/a
	*  @return  n/a
	*/

	function __construct() {

		// vars
		$this->errors = array();

		// ajax
		add_action( 'wp_ajax_acf/validate_save_post', array( $this, 'ajax_validate_save_post' ) );
		add_action( 'wp_ajax_nopriv_acf/validate_save_post', array( $this, 'ajax_validate_save_post' ) );
		add_action( 'acf/validate_save_post', array( $this, 'acf_validate_save_post' ), 5 );

	}


	/*
	*  add_error
	*
	*  This function will add an error message for a field
	*
	*  @type    function
	*  @date    25/11/2013
	*  @since   5.0.0
	*
	*  @param   $input (string) name attribute of DOM elmenet
	*  @param   $message (string) error message
	*  @return  $post_id (int)
	*/

	function add_error( $input, $message ) {

		// add to array
		$this->errors[] = array(
			'input'   => $input,
			'message' => $message,
		);

	}


	/*
	*  get_error
	*
	*  This function will return an error for a given input
	*
	*  @type    function
	*  @date    5/03/2016
	*  @since   5.3.2
	*
	*  @param   $input (string) name attribute of DOM elmenet
	*  @return  (mixed)
	*/

	function get_error( $input ) {

		// bail early if no errors
		if ( empty( $this->errors ) ) {
			return false;
		}

		// loop
		foreach ( $this->errors as $error ) {

			if ( $error['input'] === $input ) {
				return $error;
			}
		}

		// return
		return false;

	}


	/*
	*  get_errors
	*
	*  This function will return validation errors
	*
	*  @type    function
	*  @date    25/11/2013
	*  @since   5.0.0
	*
	*  @param   n/a
	*  @return  (array|boolean)
	*/

	function get_errors() {

		// bail early if no errors
		if ( empty( $this->errors ) ) {
			return false;
		}

		// return
		return $this->errors;

	}


	/*
	*  reset_errors
	*
	*  This function will remove all errors
	*
	*  @type    function
	*  @date    4/03/2016
	*  @since   5.3.2
	*
	*  @param   n/a
	*  @return  n/a
	*/

	function reset_errors() {

		$this->errors = array();

	}


	/*
	*  ajax_validate_save_post
	*
	*  This function will validate the $_POST data via AJAX
	*
	*  @type    function
	*  @date    27/10/2014
	*  @since   5.0.9
	*
	*  @param   n/a
	*  @return  n/a
	*/

	function ajax_validate_save_post() {

		// validate
		if ( ! acf_verify_ajax() ) {
			die();
		}

		// vars
		$json = array(
			'valid'  => 1,
			'errors' => 0,
		);

		// success
		if ( acf_validate_save_post() ) {

			wp_send_json_success( $json );

		}

		// update vars
		$json['valid']  = 0;
		$json['errors'] = acf_get_validation_errors();

		// return
		wp_send_json_success( $json );

	}


	/*
	*  acf_validate_save_post
	*
	*  This function will loop over $_POST data and validate
	*
	*  @type    function
	*  @date    7/09/2016
	*  @since   5.4.0
	*
	*  @param   n/a
	*  @return  n/a
	*/

	function acf_validate_save_post() {

		// phpcs:disable WordPress.Security.NonceVerification.Missing -- Verified elsewhere.
		// bail early if no $_POST
		if ( empty( $_POST['acf'] ) ) {
			return;
		}

		// validate
		acf_validate_values( $_POST['acf'], 'acf' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
		// phpcs:enable WordPress.Security.NonceVerification.Missing
	}

}