Le plugin FormMaster offre une variété de hooks et de filtres permettant aux développeurs de personnaliser et d’étendre ses fonctionnalités. Les hooks et filtres sont des points d’interception dans le flux d’exécution du plugin, où vous pouvez ajouter ou modifier des comportements sans toucher directement au code source du plugin.
Hooks
wpformmaster_addhiddenfields
Le hook permet d’ajouter des champs masqués au formulaire. Il s’exécute en début du rendu du formulaire.
Paramètres
Paramètre | Type | Description |
---|---|---|
$postID | int | ID du formulaire. |
Utilisation
add_action("wpformmaster_addhiddenfields", function ($postID) {
<input type="hidden" value="test" name="_customhiddenfield" />
}, 11, 1);
wpformmaster_addoptinfields
Le hook permet d’ajouter des champs d’optin au formulaire. Il s’exécute en fin du rendu du formulaire.
Paramètres
Paramètre | Type | Description |
---|---|---|
$postID | int | ID du formulaire. |
Utilisation
xxxxxxxxxx
add_action("wpformmaster_addoptinfields", function ($postID) {
<div class="formmaster-field" datatype="radio" dataname="wpformmaster-option">
<div>
<div class="formmaster-checkbox-row">
<input type="checkbox" name="custom-optin" id="custom-optin" value="1" required>
<label for="custom-optin">Custom optin</label>
</div>
</div>
</div>
}, 11, 1);
wpformmaster_insertpost
Le hook permet d’effectuer une action une fois le formulaire envoyé et validé.
Paramètres
Paramètre | Type | Description |
---|---|---|
$formID | int | ID du formulaire. |
$spam | bool | true si le formulaire est considéré comme un spam. |
$name | string | Contient le nom généré à partir des résultats du formulaire. |
$fields | array | Contient les champs du formulaire. |
$posts | array | Contient les paramètres $_POST . |
$files | array | Contient les paramètres $_FILES . |
Utilisation
xxxxxxxxxx
add_action("wpformmaster_insertpost", function ($formID, $spam, $name, $fields, $posts, $files) {
if(!$spam){
$counter = get_option("custom_option_counter", 0);
update_option("custom_option_counter", $counter+1);
}
}, 11, 6);
Filtres
wpformmaster_block_row_allowed_blocks
Ce filtre permet de définir les sous blocs autorisés dans le bloc « Ligne ».
Paramètres
Paramètre | Type | Description |
---|---|---|
$allowed_blocks | array | Tableau contenant les blocs autorisés. |
Retour
Paramètre | Type | Description |
---|---|---|
$allowed_blocks | array | Tableau contenant les blocs autorisés. |
Utilisation
xxxxxxxxxx
add_filter("wpformmaster_block_row_allowed_blocks", function ($allowed_blocks) {
if ($allowed_blocks) {
$key = array_search('core/paragraph', $allowed_blocks);
if ($key !== false) {
unset($allowed_blocks[$key]);
}
$allowed_blocks = array_values($allowed_blocks);
}
return $allowed_blocks;
}, 11, 1);
wpfmaster_form_validate_field
Ce filtre permet de valider les champs lors de l’envoi du formulaire.
Paramètres
Paramètre | Type | Description |
---|---|---|
$error | string | Contient la raison de l’erreur |
$formID | int | ID du formulaire. |
$key | string | Correspond à l’attribut « name » du champ. |
$type | string | Contient le type de champ. |
$field | array | Contient les différents paramètres du champ. |
$errors | array | Contient la liste des erreurs, avec comme index les attributs « name » des champs avec erreur. |
$posts | array | Contient les paramètres $_POST . |
$files | array | Contient les paramètres $_FILES . |
Retour
Paramètre | Type | Description |
---|---|---|
$error | string | Contient la raison de l’erreur |
Utilisation
xxxxxxxxxx
add_filter("wpfmaster_form_validate_field", function ($error, $formID, $key, $type, $field, $errors, $posts, $files) {
if (!$error) {
if ($key === "your-email") {
if (isset($posts[$key])){
if($posts[$key]!="custom@info.ch"){
$error = "Custom error";
}
}
}
}
return $error;
}, 11, 8);
wpfmaster_form_validate_additionnals
Ce filtre permet d’ajouter un message d’erreur au formulaire après la validation de tous les champs.
Paramètres
Paramètre | Type | Description |
---|---|---|
$errors | array | Contient la liste des erreurs, avec comme index les attributs « name » des champs avec erreur. |
$formID | int | ID du formulaire. |
$posts | array | Contient les paramètres $_POST . |
$files | array | Contient les paramètres $_FILES . |
Retour
Paramètre | Type | Description |
---|---|---|
$errors | array | Contient la liste des erreurs, avec comme index les attributs « name » des champs avec erreur. |
Utilisation
xxxxxxxxxx
add_filter("addAdditionnalsErrors", function ($errors, $formID, $posts, $files) {
if (!isset($posts["custom-optin"]) || !$posts["custom-optin"]) {
$errors["custom-optin"] = "Invalid custom";
}
return $errors;
}, 11, 4);
wpfmaster_form_isvalid
Ce filtre permet de définir si l’envoi d’un formulaire est considéré comme spam.
Paramètres
Paramètre | Type | Description |
---|---|---|
$valid | bool | true si ce n’est pas un spam. |
$postID | int | ID du formulaire. |
$posts | array | Contient les paramètres $_POST . |
$files | array | Contient les paramètres $_FILES . |
Retour
Paramètre | Type | Description |
---|---|---|
$valid | bool | true si ce n’est pas un spam. |
Utilisation
xxxxxxxxxx
add_filter("wpfmaster_form_isvalid", function ($valid, $formID, $posts, $files) {
if ($valid) {
$value = isset( $posts["custom-honeypot"] ) ? $posts["custom-honeypot"] : '';
return $value=="";
}
return $valid;
}, 10, 4);
wpfmaster_form_mails_counter
Ce filtre permet de modifier le nombre de mails administrables dans le back-office. Par défaut, le nombre de mail est de 2.
Paramètres
Paramètre | Type | Description |
---|---|---|
$counter | int | Nombre de mails |
Retour
Paramètre | Type | Description |
---|---|---|
$counter | int | Nombre de mails |
Utilisation
xxxxxxxxxx
add_filter("wpfmaster_form_mails_counter", function ($counter) {
return 3;
}, 11, 1);
wpfmaster_form_messages
Ce filtre permet d’ajouter un message de retour administrable.
Paramètres
Paramètre | Type | Description |
---|---|---|
$messages | array | Tableau contenant les messages. |
Retour
Paramètre | Type | Description |
---|---|---|
$messages | array | Tableau contenant les messages. |
Utilisation
xxxxxxxxxx
add_filter("wpfmaster_form_messages", function ($messages) {
if (!isset($messages["test"])) {
$messages["test"] = ["label" => "Test", "default" => "Default value"];
}
return $messages;
}, 11, 1);
wpfmaster_form_extractfields
Ce filtre permet d’extraire les champs d’un formulaire.
Paramètres
Paramètre | Type | Description |
---|---|---|
$fields | array | Tableau contenant les champs. |
$postID | int | ID du formulaire. |
$posts | array | Contient les paramètres $_POST . |
$files | array | Contient les paramètres $_FILES . |
Retour
Paramètre | Type | Description |
---|---|---|
$fields | array | Tableau contenant les champs. |
Utilisation
Exemple pour ajouter un nouveau champ:
xxxxxxxxxx
add_filter("wpfmaster_form_extractfields", function ($fields, $postID, $posts, $files) {
return array_merge($fields, [
[
"attrs" => [
"type" => "select-opticien",
"name" => "choice-select-opticien"
]
]
]);
}, 11, 4);