Estoy usando el ‘Formulario de contacto 7 Arrastrar y soltar Carga de archivos – Carga de archivos múltiples’ (https://codecanyon.net/item/contact-form-7-drag-and-drop-files-upload-multiple-files-upload/20683653) complemento dentro de mi formulario. Las cargas pueden ser bastante grandes, por lo que no quiero que se adjunte al correo, sino que tenga enlaces a los archivos cargados en el correo.
Eliminé la etiqueta del campo adjunto del correo y la agregué en el cuerpo del correo, con la esperanza de que genere los enlaces del archivo cargado:
<p><strong>IMAGES</strong><br/><br/>[dropfiles-291]</a></p>
Pero solo genera los nombres de los archivos separados por un “|”. por ejemplo: ‘nombre de imagen1.jpg|nombre de imagen2.jpg|nombre de imagen3.jpg|nombre de imagen4.jpg’.
Después de buscar un poco, encontré este código dentro del código del complemento de arrastrar y soltar:
add_filter('wpcf7_mail_tag_replaced_dropfiles', array($this, 'wpcf7_mail_tag_replaced'), 100, 3);
function wpcf7_mail_tag_replaced($text, $submitted, $html ){
$upload_dir = wp_upload_dir();
$datas = explode("|",$text);
$url = $upload_dir["baseurl"]."/cf7-uploads-save/";
$text_custom = array();
foreach ($datas as $value) {
$text_custom[] = $url.$value;
}
if($html){
return implode(" <br>", $text_custom);
}else{
return implode(" | ", $text_custom);
}
}
No soy un desarrollador de php, pero me parece que el código debe envolver los archivos cargados con un enlace en el correo electrónico. Sin embargo, no funciona. Y después de una extensa investigación en línea, cambié el código a:
add_filter('wpcf7_mail_tag_replaced', array($this, 'wpcf7_mail_tag_replaced_dropfiles'), 100, 3);
function wpcf7_mail_tag_replaced_dropfiles( $text, $submitted, $html ){
$upload_dir = wp_upload_dir();
$datas = explode("|",$text);
$url = $upload_dir["baseurl"]."/cf7-uploads-save/";
$text_custom = array();
foreach ($datas as $value) {
$text_custom[] = $url.$value;
}
if($html){
return implode(" <br>", $text_custom);}
else{return implode(" | ", $text_custom);}
}
El correo electrónico ahora tiene el efecto de enlace deseado, pero en TODOS los campos enviados en el formulario, no solo en el [dropfiles] campos. los [dropfiles] se ve muy bien con el enlace de cada archivo cargado en una nueva línea, etc. Pero, obviamente, no quiero que los campos de texto normal, área de texto, casilla de verificación, radio, etc. también sean enlaces.
Envié un ticket de soporte al desarrollador del complemento, pero aún no he recibido respuesta. ¿Qué enfoque puedo tomar para que esto funcione?