Obtener valores por defecto desde los atributos del shortcode

Algunas veces puedes necesitar usar el valor de los atributos del shortcode [contact-form-7 ...].

En esos casos, puedes usar la opción de etiqueta de formulario default:shortcode_attr, que recupera el valor por defecto de los campos de atributos del shortcode.

Por ejemplo, supongamos que tienes un campo llamado «correo-destinatario» que usas para obtener la dirección de correo del destinatario:

[email* correo-destinatario]

Para obtener el valor por defecto de los atributos del shortcode, añade la opción default:shortcode_attr a la etiqueta de formulario:

[email* correo-destinatario default:shortcode_attr]

Luego, añade un atributo con el mismo nombre del campo («correo-destinatario» en este caso) al shortcode del formulario de contacto:

[contact-form-7 id="123" title="Formulario de contacto" correo-destinatario="tucorreo@ejemplo.com"]

¿Eso es todo? Lamentablemente no: hay un paso adicional necesario.

Normalmente, un shortcode de WordPress solo toma atributos predefinidos, por lo que debes registrar el atributo de antemano.

Añade el siguiente fragmento de código al archivo functions.php de tu tema:

add_filter( 'shortcode_atts_wpcf7', 'custom_shortcode_atts_wpcf7_filter', 10, 3 );

function custom_shortcode_atts_wpcf7_filter( $out, $pairs, $atts ) {
  $my_attr = 'correo-destinatario';

  if ( isset( $atts[$my_attr] ) ) {
    $out[$my_attr] = $atts[$my_attr];
  }

  return $out;
}

¡Eso es todo! Ahora verás la entrada «tucorreo@ejemplo.com» en el campo.

Just another contact form plugin for WordPress. Simple but flexible.