Open jnz93 opened 2 years ago
Sempre que o usuário acessar o site em uma nova sessão ele deverá consentir com os termos de uso, utilização de cookies e também confirmar ser maior de 18 anos.
Vamos utilizar um modal de aviso semelhante ao do site fatalmodel.com.
classe A2_Public
Responsável por construir o modal que será apresentado ao usuário
Funções JS public/js/terms-and-conditions.js
Está função será chamada logo após o carregamento do DOM para mostrar o modal de termos, condições e confirmação de idade.
Responsável por criar o cookie após o clique no botão de consentimento
Verifica se o usuário já aceitou termos anteriormente buscando o cookie de aceitação. Caso já tenha aceitado o modal não deve ser apresentado.
Responsável por esconder o modal e desbloquear a navegação do site após o clique no botão de consentimento
Verifica se o input chek da idade foi selecionado retornando bool
Recebe o nome do cookie e verifica a existência dele retornando bool
'image/jpeg', 'image/png', 'video/mp4'
_profile_gallery
O usuário seleciona os arquivos e submete para upload, no diretório do wordpress, quando obtemos o retorno da ação substituímos os elementos de loading por miniaturas dos arquivos enviados.
Após o processo de upload das fotos, ou durante, devemos lançar também o processo de inserção de marca d'água nas fotos e vídeos. Devo estudar qual a melhor estratégia para isso, tendo vista que é um processo que pode causar stress no servidor da hospedagem e resultados inesperados para os usuários.
Class A2_Public
Este método da origem da action
wp_ajax_upload_gallery
. Está action é utilizada par afazer upload de arquivos únicos, atualmente no upload da foto de perfil e capa do usuário.
Método chamado para executar a exclusão de arquivos da galeria. Este método da origem a action:
wp_ajax_remove_gallery_items
.
Class A2_Gallery
[x] public method: update($postId, $list, $justUpdate = true)
Este método é responsável por atualizar a galeria de fotos na galeria da acompanhante. Ele recebe o id da página de acompanhante($postId), uma lista de ID's($list) e o parâmetro, opcional, que é utilizado para quando não queremos dar merge da galeria atual com o $list.
[x] public method: remove($postId, $list)
Este método faz a remoção dos attachemnts passados em $list da galeria do wordpress utilizando
wp_delete_attachment($id)
. Depois remove os itens em $list da galeria do perfil em_profile_gallery
;
[x] public method: get($postId)
Retorna o array de ids da galeria do perfil. Retorna
false
caso seja um array vazio.
Funções JS public/js/public.js
Recebe o elemento do tipo file como parâmetro e da inicio a todo processo de upload dos arquivos selecionados.
Recebe uma lista de arquivos e também o objeto formdata. Retorna o Payload que será enviado no ajax
Responsável por inserir o spinner load para enquanto os arquivos estão em processo de upload.
Recebe o item retornado pela requisição ajax e retorna um elemento da galeria com as informações do arquivo enviado.
Responsável por coletar os ids dos itens selecionados para exclusão na galeria de fotos de perfil. Também seta a lista de id's no input
_profile_gallery_remove_list
Está função pega a lista de id's no input
_profile_gallery_remove_list
e envia para exclusão via ajax.
_profile_gallery
O ideial é termos uma classe exclusiva p/ uploads de arquivos. Nessa classe podemos ter as actions de upload de foto de perfil, capa, galeria e também documentos p/ o processo de validação.
O sistema de busca retornará anúncios de acompanhantes. Basicamente todas as páginas de resultados de buscas comuns serão retornadas publicações do post type a2_advertisement
.
O sistema de anúncios precede o sistema de buscas.
Este shortcode será amplamente utilizado na homepage, onde teremos carousels de anúncios de várias em exposição.
Ele pode receber parâmetros como país, estado e cidade
para localizações, e outros parâmetros para customizar o retorno Quantidade, mostrar link para localidade no último card, etc..
O card de carousel é exclusivo e não será afetado pelas vantagens dos planos, pelo menos inicialmente. No futuro podemos utilizar os Pontos de ranking
para formar o carousel de determinada cidade
Montar template de anúncios retornados do cpt
a2_advertisement
As páginas de anúncios por localidade são diferentes de buscas. A ideia é ter páginas com url amigável para as países, estados e cidades. Por ex: https://acompanhantesa2.com/acompanhantes-em-sao-paulo-sp
, https://acompanhantesa2.com/acompanhantes-em-curitiba-pr
. https://acompanhantesa2.com/acompanhantes-brasil
, https://acompanhantesa2.com/acompanhantes-ceara
As páginas podem ser criadas manualmente no inicio, mas o ideal é ter um processo automatizado de criação dessas páginas conforme mais localidades são cadastradas no site. Para mostrar os anúncios, e aqui vamos levar em consideração os planos de cada anunciante, utilizaremos um shortcode para mostrar resultados dos anúncios.
Este shortcode será semelhante ao de carousel
, no entanto, ele não retornará um carousel e também terá um algoritmo avançado para filtrar os resultados conforme os planos dos anunciantes.
Cada seção definida aqui representa uma branch no código. Dessa forma mantemos o tudo organizado na própria branch e podemos também migrar de uma branch para outra conforme necessário, pois um merge resolve os conflitos.
Geral
Sistemas
Cadastro
Painel Acompanhante
Edição do perfil
Publicação do perfil
[x] Adicionar marcador para páginas de acompanhantes já criadas. Dessa forma evitamos duplicação durante a edição de dados do perfil. Foram adicionados alguns métodos a classe
A2_Profile
:[x] Não está salvando corretamente as opções de pagamento(mesmo selecionando todas apenas uma é salva, e sempre a mesma)
[x] Não está salvando as opções de localização
Página de perfil
child-theme
, e podemos acompanhar nessa issueLayout e Design