Los artículos de la categoría Manual del desarrollador abordan temas que requieren conocimiento técnico. Ten cuidado y utiliza las técnicas descritas a continuación bajo tu propia responsabilidad. Si no tienes experiencia en desarrollo, y necesitas ayuda, te recomendamos solicitar el apoyo de un profesional.
This page is also available in English.
Una etiqueta de correo electrónico tiene una etiqueta de formulario correspondiente; cuando se compone un correo electrónico, una etiqueta de correo, en la plantilla de correo electrónico, se sustituye con el valor de entrada del usuario que viene a través del campo de entrada representado por la etiqueta de formulario correspondiente.
Por defecto, una etiqueta de correo se sustituye por el valor en bruto que el remitente introduce. Puedes personalizar la sustitución de las etiquetas de correo. Para ello, usa el gancho de filtro wpcf7_mail_tag_replaced
, como se muestra en el siguiente ejemplo:
add_filter( 'wpcf7_mail_tag_replaced',
function( $replaced, $submitted, $html, $mail_tag ) {
if ( is_numeric( $submitted ) ) {
$replaced = number_format( $submitted );
}
return $replaced;
},
10, 4
);
Esta función de filtrado formatea valores numéricos usando la función number_format
(observa que los ejemplos de esta entrada usan funciones anónimas que están disponibles desde PHP 5.3 en adelante). Cuando el usuario introduzca «1234567890», verás «1,234,567,890» en el mensaje de correo electrónico.
El filtro de gancho wpcf7_mail_tag_replaced
pasa cuatro parámetros a una función de gancho: $replaced
, $submitted
, $html
, y $mail_tag
.
$replaced
tiene el valor generado como resultado de la sustitución de la etiqueta de correo.
$submitted
tiene el valor original que ha sido introducido por el remitente.
$html
tiene un valor booleano; que será «true» si la etiqueta de correo se usa en el cuerpo de un mensaje HTML.
$mail_tag
tiene un objeto WPCF7_MailTag
que representa la etiqueta de correo electrónico en sí.
Apuntando a un campo específico
En el código de ejemplo anterior, la función number_format
se aplica a todos los campos en los que la entrada sea un valor numérico. Si quieres apuntar a un campo específico, puedes hacerlo usando el cuarto argumento $mail_tag
, como en este ejemplo:
add_filter( 'wpcf7_mail_tag_replaced',
function( $replaced, $submitted, $html, $mail_tag ) {
if ( 'your-number' == $mail_tag->field_name() ) {
if ( is_numeric( $submitted ) ) {
$replaced = number_format( $submitted );
}
}
return $replaced;
},
10, 4
);
Haciéndolo de esta manera, la función number_format
se aplica solo cuando el nombre del campo de la etiqueta de correo es «your-number».
Apuntando a un tipo específico de etiqueta de formulario
Hay variantes del gancho de filtro wpcf7_mail_tag_replaced
que se aplican solo a las etiquetas de correo correspondientes a un tipo de etiqueta de formulario específico. Estos ganchos de filtro tienen el tipo de etiqueta de formulario como sufijo.
Por ejemplo, usa el gancho wpcf7_mail_tag_replaced_number
cuando quieras apuntar a las etiquetas de formulario de tipo number
(número):
add_filter( 'wpcf7_mail_tag_replaced_number',
function( $replaced, $submitted, $html, $mail_tag ) {
if ( is_numeric( $submitted ) ) {
$replaced = number_format( $submitted );
}
return $replaced;
},
10, 4
);