J'essaie de créer une documentation sur la manière de créer un identificateur unique pouvant être affiché à l'utilisateur après la soumission du formulaire et à l'administrateur qui reçoit également la soumission.
J'ai trouvé un moyen de saisir la numérotation séquentielle à partir de l'ordre de soumission, mais il doit s'agir d'un code unique pour cet utilisateur spécifique.
La seule chose que je pensais serait d’ajouter une sorte de relais de leur adresse IP et leur nom
Quelque chose comme Hashids peut convertir leur adresse IP en un petit identifiant unique, mais je ne suis vraiment pas sûr de savoir comment mettre en œuvre quelque chose d'aussi complexe.
Placez ce code dans le fichier functions.php: (pour Ninja Forms 2.9.x)
function unique_code_submission( $data, $field_id ) {
global $uniqueCode;
if ( "string" !== gettype( $uniqueCode ) )
$uniqueCode = uniqid();
/* here goes your code to populate a field */
return $data;
}
add_filter( 'ninja_forms_field', 'unique_code_submission', 10, 2 );
Dans la fonction ci-dessus, vous aurez un code unique de 13 caractères dans la variable globale $uniqueCode
. Ce code sera généré une seule fois, lorsque le filtre est déclenché pour la première fois. Plus d'informations sur ninja_forms_field
filter: here .
UPDATE: pour Ninja Forms 3.0 et versions ultérieures:
function unique_code_submission( $fields ) {
$uniqueCode = uniqid();
/* here goes your code to populate a field. For example:
let's populate hidden field, which has key value of
'hidden_1492812363939' */
$index = 0;
while ( 0 <= $index ) {
++$index;
if ( 'hidden_1492812363939' == $fields[ $index-1 ][ 'key' ] ) {
$fields[ $index-1 ][ 'value' ] = $uniqueCode;
$index = -1;
}
}
return $fields;
}
add_filter( 'ninja_forms_display_fields', 'unique_code_submission', 10, 1 );