- Dans le fichier forms.php, instancier les formulaires avec le shortcode en paramètre,
dans la function create_forms()
:
Ex : $contact_form = new MbcContactForm('contact-form');
- Toute le paramétrage se fait via des filters. Tous ont le shorcode dans le nom pour ne pas affecter tous les formualaires. Normalement tout est filtré, cf. le code.
Déclarer les filtres et les actions dans la fonctions hooks()
.
Ex : add_filter('mbccf_contact-form_fields', array($this, 'contact_form_fields' ));
- Ecrire les fonctions appelées par les filters comme fonction publique de la classe.
add_filter('mbccf_contact-form_to', array($this, 'contact_form_to')); public function contact_form_to($array) { //changer / ajouter des destinataires return $array; }
add_filter('mbccf_contact-form_fields', array($this, 'contact_form_fields') ); public function contact_form_fields($array) {$array = array( 'nom' => array( 'type'=> 'text', 'val' => '', 'label'=> __('Nom', 'mbccf'), 'mandatory' => true, ), 'civilite' => array( 'type'=> 'select', 'val' => 'M', 'label'=> 'Civilité', 'data' => array('M'=> 'M', 'Mme'=>'Mme'), 'mandatory' => true, ), 'fichier' => array( 'type'=> 'file', 'val' => '', 'label'=> 'Fichier', 'mandatory' => true, 'validation' => array('mime_type' => array('application/pdf')) ), ); return $array;
}
- type : text, password, password_confirm, email, textarea, radio, checkbox (choix multiple), checkbox_unique (acceptation CGV...), file, select
- mandatory : true ou false
- val : valeur par défault. string sauf pour checkbox : array
- label
- data : pour radio, checkbox et select : tableau associatif des choix
- validation : pour file. Tableau associatif des tests à effectuer. Pour l'instant, uniquement clé 'mime_type' avec un tableau des types mime acceptés.
add_filter('mbccf_contact-form_cpt_form_label', function(){ return 'Formulaire de contact'; } );//ne pas envoyer les fichier en pj, mais juste le lien. add_filter('mbccf_contact-form_send_files_as_attachments', '__return_false'); //stocker les fichiers comme des attachments WP add_filter('mbccf_contact-form_store_files_as_attachments', '__return_true');<pre>add_filter('mbccf_contact-form_use_selectbox', '__return_true');</pre>
<pre>add_filter('mbccf_contact-form_use_placeholders', '__return_true');</pre>
<pre>add_filter('mbccf_contact-form_use_labels', '__return_false');</pre>
add_action('mbccf_contact-form_after_sending_mail', array($this, 'contact_form_additional_action')); public function contact_form_additional_action($object) { print_r($object->fields); die; }add_action('mbccf_contact-form_message', array($this, 'contact_form_message'), 10, 2);public function contact_form_message($str, $object) {
return $str;
}
- Adding saving as post type
- Initial release