Estou usando o 'Formulário de contato 7 para carregar e soltar arquivos - Upload de vários arquivos' ( https://codecanyon.net/item/contact-form-7-drag-and-drop-files-upload-multiple-files-upload / 20683653 ) plugin no meu formulário. Os uploads podem ser muito grandes, então não quero anexá-los ao e-mail, mas sim ter links para os arquivos carregados no e-mail.
Eu removi a tag do campo de anexo de e-mail e a adicionei no corpo do e-mail, com a esperança de que gerará os links do arquivo enviado:
<p><strong>IMAGES</strong><br/><br/>[dropfiles-291]</a></p>
Mas ele exibe apenas os nomes dos arquivos separados por um "|". por exemplo: 'imagename1.jpg | imagename2.jpg | imagename3.jpg | imagename4.jpg'.
Depois de alguma pesquisa, encontrei este código dentro do código do plugin de arrastar e 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);
}
}
Eu não sou um desenvolvedor de php, mas o código me parece que deveria envolver os arquivos carregados com um link no e-mail. Hoever, não funciona. E depois de uma extensa pesquisa online, mudei o código para:
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);}
}
O email agora tem o efeito de link desejado, mas em TODOS os campos enviados no formulário, não apenas nos campos [dropfiles]. Os campos [dropfiles] ficam ótimos com cada link de arquivo enviado em uma nova linha, etc. Mas eu, obviamente, também não quero que os campos normais de texto, área de texto, caixa de seleção, rádio etc. também sejam links.
Enviei um tíquete de suporte ao desenvolvedor do plug-in, mas ainda não tive nenhuma resposta. Que abordagem posso adotar para fazer isso funcionar?
Eu encontrei uma solução temporária - apenas até obter uma solução permanente do desenvolvedor do plugin. Mudei o código da seguinte maneira:
add_filter('wpcf7_mail_tag_replaced', array($this, 'wpcf7_mail_tag_replaced_dropfiles'), 100, 3);
function wpcf7_mail_tag_replaced_dropfiles( $text, $submitted, $html ){
if(preg_match('/\.(jpg|png|jpeg|gif)$/', $submitted)) {
$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);}
}
return $text;
}
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras