WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Шаблоны сайтов на русском

Еще примеры

Пример обработчика для отправки письма с файлами

<?php

function ajaxs_mailer( $jx ){

	$attached_files = [];

	if( $jx->files ){

		$files = $jx->files[ 'compact' ];

		if( count( $files ) > 5 ){
			$jx->error( [
				'type'    => 'failCount',
				'message' => sprintf( 
					__( 'Максимальное количество файлов - 5, вы пытаетесь отправить %d', 'amcor' ),
					count( $files )
				),
			] );
		}

		foreach( $files as $file ){

			$allowedTypes = [
				'image/jpeg',
				'image/png',
				'application/pdf',
				'application/msword',
				'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
				'application/vnd.ms-excel',
				'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
			];

			$maxSize = 10 * 1024 * 1024;

			if( $file[ 'size' ] > $maxSize ){
				$jx->error( [
					'type'    => 'failSize',
					'message' => sprintf( 
						__( 'Максимально допутимый размер одного файла для загрузки - %d Мб. Размер файла %s - %d Мб', 'amcor' ), 
						$maxSize / ( 1024 * 1024 ), 
						$file[ 'name' ], 
						$file[ 'size' ] / ( 1024 * 1024 )
					),
				] );
			}

			if( ! in_array( $file[ 'type' ], $allowedTypes ) ){
				$jx->error( [
					'type'    => 'failType',
					'message' => sprintf( 
						__( 'Ошибка загрузки файла %s Допускаются только файлы формата .jpg, .png, .pdf, .doc, .docx, .xls, .xslx', 'amcor' ),
						$file[ 'name' ]
					),
				] );
			}

			if( $file && ! $file[ 'error' ] ){
				$attached_file_path = dirname( $file[ 'tmp_name' ] ) . '/' . sanitize_file_name( $file[ 'name' ] );
				@rename( $file[ 'tmp_name' ], $attached_file_path );
				$attached_files[] = $attached_file_path;
			}

		}
	}

	$to      = 'palov@gmail.com';
	$subject = 'Новая заявка с сайта';

	$message = "
	<strong>Имя:</strong> $jx->name<br>
	<strong>E-mail:</strong> $jx->email<br>
	<strong>Телефон:</strong> $jx->phone<br><br>
	";

	$headers = [ 'content-type: text/html' ];

	//$jx->log( $attached_files );

	$sent = wp_mail( $to, $subject, $message, $headers, $attached_files );

	if( $attached_files ){
		foreach( $attached_files as $_file ){
			@unlink( $_file );
		}
	}

	if( $sent )
		$jx->done( __( 'Ваш запрос успешно отправлен!', 'amcor' ) );
	else
		$jx->error( __( 'Ошибка при отправке запроса.', 'amcor' ) );

}
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться