WPCF7_SWV_FileRule::validate()publicCF7 1.0

{} Это метод класса: WPCF7_SWV_FileRule{}

Хуков нет.

Возвращает

null. Ничего.

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

$WPCF7_SWV_FileRule = new WPCF7_SWV_FileRule();
$WPCF7_SWV_FileRule->validate( $context );
$context (обязательный)
-

Код WPCF7_SWV_FileRule::validate() CF7 5.6.2

public function validate( $context ) {
	$field = $this->get_property( 'field' );
	$input = isset( $_FILES[$field]['name'] ) ? $_FILES[$field]['name'] : '';
	$input = wpcf7_array_flatten( $input );
	$input = wpcf7_exclude_blank( $input );

	$acceptable_filetypes = array();

	foreach ( (array) $this->get_property( 'accept' ) as $accept ) {
		if ( false === strpos( $accept, '/' ) ) {
			$acceptable_filetypes[] = strtolower( $accept );
		} else {
			foreach ( wpcf7_convert_mime_to_ext( $accept ) as $ext ) {
				$acceptable_filetypes[] = sprintf(
					'.%s',
					strtolower( trim( $ext, ' .' ) )
				);
			}
		}
	}

	$acceptable_filetypes = array_unique( $acceptable_filetypes );

	foreach ( $input as $i ) {
		$last_period_pos = strrpos( $i, '.' );

		if ( false === $last_period_pos ) { // no period
			return new WP_Error( 'wpcf7_invalid_file',
				$this->get_property( 'error' )
			);
		}

		$suffix = strtolower( substr( $i, $last_period_pos ) );

		if ( ! in_array( $suffix, $acceptable_filetypes, true ) ) {
			return new WP_Error( 'wpcf7_invalid_file',
				$this->get_property( 'error' )
			);
		}
	}

	return true;
}