Je viens de lancer la mise à jour du plugin Contact Form 7 et je m’aperçois avec stupeur que mon formulaire de réservation ne fonctionne plus. J’avais omis de mettre la procédure ici sur mon blog et ensuite, je ne me souvenais plus du tout d’avoir fait de telles modifications majeures. J’ai pensé inocemment que ces formattages étaient natifs !!!.. Un mélange de Geek et d’Alzheimer. Alors, pour être certaine qu’à la prochaine mise à jour, je ne me surprendrais pas moi-même, voici en détail ce que j’ai fait.
Objectif de ces correctifs : avoir une type-syntax dans Contact Form 7 qui permette la saisie des numéros de tel (digit) et des nombres (numerus).
En fait, je touche à deux folders que sont includes et modules.
Dans includes, je modifie deux fichiers : formatting.php et functions.php
Dans modules, je modifie le fichier text.php.
Alors à la prochaine mise à jour, il faut recommencer à insérer les lignes suivantes :
Dans lefichier formatting.php
// RAJOUT DIGIT ****************************************************************
function is_telnum($telnum)
{
$regexp = ‘/^[0-9\+\-]{7,}$/’;
if(preg_match($regexp, $telnum))
return true;
else
return false;
}
// *****************************************************************************
// RAJOUT NUMERUS ****************************************************************
function is_onlynum($onlynum)
{
$regexp = ‘/^[0-9]{0,3}$/’;
if(preg_match($regexp, $onlynum))
return true;
else
return false;
}
// *****************************************************************************
Dans le fichier functions, trouver la fonction wpcf7_messages() et en fin, avant la dernière parenthèse , insérer les messages concernant Digit et Numerus.
function wpcf7_messages() {
$messages = array(
‘mail_sent_ok’ => array(
‘description’ => __( « Sender’s message was sent successfully », ‘wpcf7’ ),
‘default’ => __( ‘Your message was sent successfully. Thanks.’, ‘wpcf7’ )
),
[…]
‘invalid_required’ => array(
‘description’ => __( « There is a field that the sender must fill in », ‘wpcf7’ ),
‘default’ => __( ‘Please fill the required field.’, ‘wpcf7’ )
),
//RAJOUT DIGIT *****************************************************************
‘invalid_digit’ => array(
‘description’ => __( « There is a field that sender is needed to fill in with tel numbers », ‘wpcf7’ ),
‘default’ => __( ‘Please fill the required field with phone numbers.’, ‘wpcf7’ )
),
// *****************************************************************************
//RAJOUT NUMERUS *****************************************************************
‘invalid_numerus’ => array(
‘description’ => __( « There is a field that sender is needed to fill in with numbers », ‘wpcf7’ ),
‘default’ => __( ‘Please fill the required field with numbers (1 to 999).’, ‘wpcf7’ )
)
// *****************************************************************************
);
return apply_filters( ‘wpcf7_messages’, $messages );
}
Il ne reste plus que le fichier text..php :
Après la ligne :
wpcf7_add_shortcode( ’email*’, ‘wpcf7_text_shortcode_handler’, true );
Rajouter ceci :
//RAJOUT FONCTION DIGIT ********************************************************
wpcf7_add_shortcode( ‘digit’, ‘wpcf7_text_shortcode_handler’, true );
wpcf7_add_shortcode( ‘digit*’, ‘wpcf7_text_shortcode_handler’, true );
//***************** ************************************************************
//RAJOUT FONCTION NUMERUS ******************************************************
wpcf7_add_shortcode( ‘numerus’, ‘wpcf7_text_shortcode_handler’, true );
wpcf7_add_shortcode( ‘numerus*’, ‘wpcf7_text_shortcode_handler’, true );
//***************** ************************************************************
Et tout redevrait fonctionner. Cela suppose bien sûr que dans le formulaire, la syntaxe soit la suivante : (je mets mon exemple)
<tr>
<td><p>Your Phone (required)<br />[digit* your-tel tabindex:3] </p></td>
<td><p style= »text-align:left; »>Number Of Adults<br />[numerus nombre-adultes tabindex:10]</p></td>
</tr>