Closed jnz93 closed 2 years ago
Pacotes de anúncios serão produtos do woocommerce. Cada produto deverá receber um valor específico que será correspondente ao tempo em dias ou horas. Esse tempo será utilizado para calcular o tempo de expiração do post anúncio do acompanhante. Dessa forma podemos manter o controle das "assinaturas" dos pacotes sem a necessidade de grandes modificações no ecossistema de produtos do woocommerce.
Plano A2 Prata
Plano A2 Ouro
Plano A2 Diamante
Nesse modelos nós temos 2 planos que determinam o tamanho do anúncio que será listado e algumas características. E temos também os "Pacotes de turbo", atualmente 3, que podem adicionar características poderosas ao anúncio, sendo ele de qualquer plano.
Plano A2 Prata
Plano A2 Ouro
Pacote "Diferentão"
Pacote "Converse comigo"
Pacote "Nome de referência"
O cliente pode adquirir pacotes de anúncios a partir da loja do site, que é gerenciada com woocommerce. O fluxo da compra segue o padrão da ferramenta. Após a confirmação do pagamento, pelo gateway, o status do pedido é alterado para Processando
, nesse momento uma ação é disparada para publicar o anúncio, sem a necessidade de interação humana no processo, após a publicação do anúncio uma outra ação é disparada para alterar o status do pedido para concluído
.
Após a publicação, o anúncio fica disponível em buscas e listagens do site. A validade do anúncio começa a contar a partir do momento da publicação. Ao expirar a validade ele é desvinculado do site e seu status é alterado para rascunho
. Ficando
disponível apenas para o cliente em sua página de anúncios. Anúncios finalizados não podem ser editados ou reativados.
As informações utilizadas no anúncio são as mesmas configuradas no perfil do usuário. Ou seja, coisas como nome, gênero, valores, fotos, etc... são captadas do próprio perfil.
O pedido fica disponível a partir do menu "Faturas" no painel da conta do cliente.
_activated_advertisements
: Salvar o ID do anúncio ativo em um array_plan_duration
: Recebe a duração do anúncio adquirido._expiration_date
: Recebe a data de expiração do anúncio(formato timestamp) advertisement_level
: Disponível apenas para anúncios. Utilizada para setar o nível do anúncio(prata, ouro ou diamante). Essa lista pode aumentar conforme os pacotes de anúncios disponíveis.advertisement_level
foi substituída pelo meta post _plan_level
. Isso porque temos determinadas regras na $query que não eram possíveis com a taxonomia.
O nível do anúncio agora é enum. Sendo
1 = prata
,2 = ouro
e3 = diamante
[advCarousel pais="sigla-país" estado="sigla-estado" cidade="nome-da-cidade"]
- País padrão Brasil(br).
Utilizar o método
found_posts
na query. Pe:$query->found_posts
; Isso retornara o total de posts;
Se o shortcode for para cidade mostrar o bairro, se for estado mostrar cidade, se for país mostrar estado.
O template deve indicar a página de cadastro
Como identificar cada localização dentro dos termos salvos em um anúncio ou perfil? A taxonomia de localização é organizada na ordem: País > Estado > Cidade > Bairro.
Talvez possamos resolver isso com um algoritmo parecido com o utilizado para filtrar as localizações a partir do "parent" na edição do perfil. Também temos este tópico: https://stackoverflow.com/questions/66723856/how-to-get-terms-by-hierarchy-level
Inclusão do framework
owl carousel
: https://owlcarousel2.github.io/OwlCarousel2/
Exemplo: [advList pais="" estado="" cidade="" bairro="" qtd=""]
Além da lógica também faz parte do processo desenvolver os templates relacionados ao shortcode. Este shortcode é semelhante ao [advCarousel] a diferença é que os cards são apresentados conforme o nível do anúncio(prata, ouro e diamante).
Este método é semelhante ao
advByLocation
, a diferença é que ele vai retornar anúncios ordenados pelo nível do plano contratado. A ordem é:Diamante
>Ouro
>Prata
advertisement_level
pelo post meta _plan_level
Para filtrar na ordem correta vamos utilizar "orderby=meta_value_num", seguido pela "meta_key=_plan_level" na query;
Os planos são marcados por números começando por zero. Dessa forma teremos algo como 1=prata; 2=ouro; 3=diamante
Dessa forma, se no futuro tivermos mais planos, comercializados basta continuar atribuindo um número de valor maior ao novo plano.Semelhante ao
tpl-carousel-default.php
. Aqui fazemos o loop na query e pegamos o template do card conforme o nível do anúncio.
Corrigir informações, adicionar o carousel nas fotos, ajustes gerais...
Ajustes futuro.
Este campo também precisa ser adicionado na edição do perfil do usuário
Função de paginação para carregar mais anúncios assincronamente.
pontos de ranking
ao completar um pedido
Pontos de ranking são acumulativos e devem ser salvos no
$user
e depois no anúncio, pois vamos utilizar como critério de ordenação.
Após a alteração do pedido para "Processando" uma ação de publicação do anúncio deve ser disparada. Após a publicação uma ação deve ser disparada para alterar o status do pedido para Concluído
;
Um "hack" foi adicionado para alterar automaticamente o status do pedido para "completed" quando o pagamento for confirmado e o status for alterado para "processing". Isso se fez necessário pois nenhum hook woocommerce_order_status_processing
não estava executando a publicação do anúncio como esperado.
Processando
;Compra do plano
> Confirmação do pagamento
> Publicação disparada
> Alteração do status do pedido
Sistema de anúncios
Anúncios servem para impulsionar visualizações e cliques em botões de contato do acompanhante. Anúncios serão mostrados em páginas de buscas, carousel de perfis e páginas de perfis de concorrentes. Pacotes de anúncios/vantagens adquiridos concederam uma quantidade de
Pontos de Ranking
, esses pontos serão considerados quando tivermos anúncios do mesmo plano, o perfil com maior pontuação terá preferência.Regras
Acompanhantes podem adquirir todos os pacotes de vantagens disponíveis, pois cada pacote corresponde a um tipo de anúncio diferente do outro.Pontos de Ranking
Um sistema de pontuação para promover fidelidade na compra de planos recorrentes ou com maior prazo. Esses pontos serão levados em consideração na disputa entre anúncios do mesmo plano, perfis com maior pontuação devem ter leve vantagem que resultará em mais views.
Desenvolvimento
Adaptação Woocommerce
Painel da conta