Adicionar botão de download para qualquer tipo de arquivo

Add Download Button for Any Type of Files

Compatibilidade: todos os temas do Shopify

Você tem algum arquivo que precisa compartilhar com seu cliente? Ou limitar o acesso deste arquivo aos clientes logados? Definitivamente, pode ser feito SEM APP, SEM biblioteca externa. Deixe o cliente baixar arquivos de imagens, vídeo, áudio, pdf, csv e zip. Nenhum aplicativo é necessário. Por favor, qualquer uma das suas páginas do Shopify. Altere o nome do download para o nome da sua loja.

Confira a loja DEMO aqui 💻 . Senha: made4uo

O que você está comprando:

  • Compartilhe seu arquivo com apenas um clique no botão de download
  • Limite o download apenas aos seus clientes
  • Vários tipos de arquivo podem ser usados ​​para download

O que torna nosso código melhor:

  • Não usamos bibliotecas externas, com isso dito, nosso código não terá nenhum efeito mínimo no desempenho de velocidade do seu site
  • Não deixamos nem adicionamos códigos para anunciar em nosso site
  • Nosso código é compatível com dispositivos móveis

Quaisquer problemas relacionados ao código serão corrigidos sem custo adicional, excluindo solicitações de customização de código. Basta entrar em contato conosco em "Converse conosco". Estamos a apenas um botão de distância.

Para iniciar:

1. Vá para Admin store > Temas > Loja online > Ações > Editar código.

2. No editor de temas, abra a pasta da seção e você pode nomeá-la como quiser e cole o código abaixo

 < link class = "importar" href = " {{section.settings.file_link}} " rel = "importar" > 
< div class = "downloadContainer" >
 { % para bloco na seção. blocos % }
 { % se seção. configurações . usuário_enabled % } 
{ % se cliente % }
 < arquivo - classe de download = "downloadWrapper" >
 { % se bloco. configurações . download_title != em branco -% } 
< h3 style = "text-align: center" > { { bloco. configurações . download_title } } </ h3 >
 { % fim se % }
 < um
 classe = "arquivo"
 href = "" 
download = " {{block.settings.title | escape }} "
 style = "decoração de texto: nenhum"
 dados - arquivo - type = " {{block.settings.file_type | escape }} "
 dados - arquivo = " {{block.settings.download_link | escape }} "
 > 
< botão classe = "botão btn" > { { bloco. configurações . rótulo_botão | escapar } } </ botão >
 </a> _
 </ arquivo - download > 
{ % outro % }
 < div class = "downloadWrapper" >
 < estilo h3 = "alinhamento de texto: centro" >
 { { bloquear. configurações . mensagem_do_usuário } } 
<a class = "logInText" href = " {{ Routes.account_login_url }} " target = "_blank" > aqui . _ _ {{ routes.account_login_url }} _ _ _ </a> _
 </ h3 >
 < um
 classe = "arquivo"
 href = "" 
baixar = " {{block.settings.title}} "
 style = "decoração de texto: nenhum"
 dados - arquivo = " {{block.settings.download_link }} "
 > 
< botão classe = "botão btn" desabilitado > { { bloco. configurações . botão_label } } </ botão >
 </a> _
 </div> _ _
 { % fim se % } 
{ % outro % }
 < arquivo - classe de download = "downloadWrapper" >
 { % se bloco. configurações . download_title != em branco -% } 
< h3 style = "text-align: center" > { { bloco. configurações . download_title } } </ h3 >
 { %- fim se % }
 < um
 classe = "arquivo"
 href = "" 
download = " {{block.settings.title | escape }} "
 style = "decoração de texto: nenhum"
 dados - arquivo - type = " {{block.settings.file_type | escape }} "
 dados - arquivo = " {{block.settings.download_link | escape }} "
 > 
< botão classe = "botão btn" > { { bloco. configurações . rótulo_botão | escapar } } </ botão >
 </a> _
 </ arquivo - download >
 { % fim se % } 
{ % fim para % }
 </div> _ _
 <estilo> _
 . downloadContainer {
 posição : relativa ;
 preenchimento : 5rem ;
 exibição : flexível ;
 justificar - conteúdo : centro ;
 alinhar - itens : centro ; 
lacuna : 2rem ;
 }
 . logInText {
 cursor : ponteiro ;
 decoração de texto : nenhuma ;
 }
 . logInText : pairar {
 opacidade : 0,7 ;
 decoração de texto : sublinhado ;
 }
 . downloadWrapper { 
exibição : flexível ;
 flex - direction : coluna ;
 alinhar - itens : centro ;
 justificar - conteúdo : centro ;
 }
 . baixarWrapper > a {
 transição : todos os 0,3s facilitam ;
 }
 . downloadWrapper > a : pairar { 
transformar : escala ( 1.1 ) ;
 }
 Tela @media somente e ( largura máxima : 750px ) {
 . downloadContainer {
 flex - direction : coluna ;
 }
 }
 </ estilo > 
{ % esquema % }
 {
 "name" : "Seção de download" ,
 "configurações" : [
 {
 "tipo" : "caixa de seleção" ,
 "id" : "user_enabled" , 
"label" : "Ativar somente para clientes"
 }
 ] ,
 "blocos" : [
 {
 "nome" : "seção de download" ,
 "type" : "seção de download" ,
 "limite" : 4 , 
"configurações" : [
 {
 "tipo" : "texto" ,
 "id" : "download_title" ,
 "label" : "Baixar título" ,
 "default" : "Baixe o arquivo aqui"
 } ,
 { 
"tipo" : "texto" ,
 "id" : "link_download" ,
 "label" : "Link para download" ,
 "info" : "Copie o link que você salvou na sua loja Shopify."
 } ,
 {
 "tipo" : "selecionar" , 
"id" : "tipo_de_arquivo" ,
 "rótulo" : "Tipo de arquivo" ,
 "default" : "imagem/jpeg" ,
 "opções" : [
 {
 "valor" : "imagem/jpeg" , 
"label" : "imagem jpeg"
 } ,
 {
 "valor" : "imagem/png" ,
 "rótulo" : "imagem png"
 } ,
 {
 "valor" : "imagem/gif" , 
"rótulo" : "imagem gif"
 } ,
 {
 "valor" : "aplicativo/pdf" ,
 "rótulo" : "arquivo pdf"
 } ,
 {
 "valor" : "vídeo/mp4" , 
"label" : "arquivo de vídeo"
 } ,
 {
 "valor" : "áudio/mpeg" ,
 "label" : "arquivo de áudio"
 } ,
 {
 "valor" : "texto/csv" , 
"rótulo" : "arquivo csv"
 } ,
 {
 "valor" : "aplicativo/zip" ,
 "rótulo" : "arquivo zip"
 }
 ]
 } ,
 {
 "tipo" : "texto" , 
"id" : "título" ,
 "label" : "Nome do arquivo de download" ,
 "info" : "Altere o nome do arquivo diferente do nome que você tem no seu Shopify"
 } ,
 {
 "tipo" : "texto" , 
"id" : "button_label" ,
 "label" : "Etiqueta do botão de download" ,
 "padrão" : "BAIXAR"
 } ,
 {
 "tipo" : "texto" ,
 "id" : "mensagem_do_usuário" , 
"label" : "Se o cliente estiver habilitado, digite sua mensagem se não for cliente" ,
 "default" : "Por favor, cadastre-se ou faça login para fazer o download"
 }
 ]
 }
 ] ,
 "predefinições" : [
 {
 "name" : "Seção de download"
 }
 ] 
}
 { % termina o esquema % }

3. Por último, encontre seu arquivo main.js, na pasta Asset. Para Dawn, é global.js. Para outros temas, pode ser theme.js. Em seguida, cole este código abaixo.

 class FileDownload estende HTMLElement {
 construtor ( ) {
 super ( ) ; 
esse . arquivoBox = este . querySelector ( "a" ) ;
 esse . arquivo = isto . caixa de arquivos . conjunto de dados . arquivo ; 
esse . tipo de arquivo = `$ { este . caixa de arquivos . conjunto de dados . tipo de arquivo } ` ;
 esse . requestArquivo ( ) ;
 }
 requestArquivo ( ) { 
buscar ( ` $ { este.arquivo } ` )
 . então ( ( e ) => e. arrayBuffer ( ) )
 . então ( ( e ) => { 
const t = new Uint8Array ( e ) ;
 const i = janela. URL || janela. webkitURL ; 
const s = eu. createObjectURL ( new Blob ( [ t ] , { type : this.fileType } ) ) ;
 esse . caixa de arquivos . href = s ; 
} )
 [ "pegar" ] ( ( e ) => {
 console. erro ( e ) ;
 } ) ;
 }
 } 
elementos personalizados. define ( "download de arquivo" , FileDownload ) ;

É isso. Tudo que você precisa fazer é enviar os arquivos que possui. Por favor, veja o vídeo para obter instruções.

1 comentário

I am curious about this code. I want to create a download button. If I purchase and use your code can I then customize the page visually to make the page compatible with my website?

Jane Bernard

Deixe um comentário