L’extension Caldera Forms permet de créer des formulaires de contact sur un site WordPress via un système de glisser-déposer intuitif.

Je l’utilise sur tous mes sites, car côté utilisateur l’interface est plutôt facile à prendre en main, et côté développeur, elle propose une quantité importante de hooks et de filtres pour la personnaliser.

Parmi les fonctionnalités que l’extension propose, il y a bien sûr les traitements automatiques déclenchés à la soumission d’un formulaire, dont les réponses automatiques, ou auto responder :

Panneau de configuration des traitements automatiques
Panneau de configuration des traitements automatiques

Je vous partage aujourd’hui deux petites fonctions qui permettent d’ajouter une pièce jointe à ces réponses automatiques, elles sont à placer dans une extension ou votre thème enfant.

/**
 * Ajout du fichier à la réponse automatique
 *
 *
 * @param array $mail Message to send
 *
 */
function add_file_autoresponse( $mail ) {

	$attachment_id = 582;
	$attachment_path = get_attached_file( $attachment_id );
	if ( $attachment_path ) {
		$mail[ 'attachments' ][] = $attachment_path;
	}
	return $mail;
}

Cette première fonction ajoute le fichier au tableau $mail, dans les attachments.


Elle ne fait rien pour l’instant car à ce stade nous ne pouvons pas vérifier sur quel formulaire nous nous trouvons.
C’est la fonction suivante qui nous le permettra.

Pensez à remplacer la valeur de la variable $attachment_id par l’identifiant de votre fichier.

/**
 * Vérifier le formulaire avant de procéder
 *
 *
 * @param array $config Processor config
 * @param array $form Form config
 */
add_filter( 'caldera_forms_autoresponse_config', 'check_formID_before_process', 10, 2 );
function check_formID_before_process( $config, $form ) {
	// Remplacez l'ID du formulaire par le votre
	if( 'CF5c5c377e2f1a0' == $form[ 'ID' ] ) {
		add_filter( 'caldera_forms_autoresponse_mail', 'add_file_autoresponse', 10, 1 );
	}
	return $config;
}

En nous positionnant sur le filtre caldera_forms_autoresponse_config, on peut vérifier l’identifiant du formulaire – pensez à l’adapter à votre cas -, et ajouter au filtre caldera_forms_autoresponse_mail notre première fonction.

Et voilà !

L’idéal serait d’ajouter un champs en back-office pour administrer le média lié, peut-être pour un second article 🙂


Crédit photo : EliFrancis – Pixabay

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

nunc Aenean odio porta. Praesent consequat. ipsum Sed Donec