Caldera Forms : ajouter une pièce jointe aux réponses automatiques

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

Vous avez des questions ?
Contactez-moi :
Me contacter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nom *

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

libero. venenatis, fringilla risus. vel, ut Lorem