Skip to content

Conversation

@marcelowillyan
Copy link

Implementação do Plugin "Favorite Posts"

Este Pull Request entrega a implementação completa do plugin "Favorite Posts", que permite aos usuários gerenciar posts favoritos.
O desenvolvimento focou em robustez, usabilidade e compatibilidade, especialmente com ambientes PHP 7.4.


Funcionalidades e Recursos

Favoritar e Desfavoritar Posts

  • Usuários logados podem marcar/desmarcar posts como favoritos.
  • Os dados são persistidos em uma tabela de banco de dados customizada (wp_favorite_posts), garantindo performance.
  • Toda a interação utiliza a WP REST API para comunicação assíncrona.

Botão de Favoritar (Frontend)

  • Exibido via shortcode [favorite_button], permitindo posicionamento flexível:
    • [favorite_button]: Para o post/página atual
    • [favorite_button post_id="ID_DO_POST"]: Para um post específico
  • Design moderno com ícones de coração (Font Awesome):
    • Coração contornado para não favoritado
    • Coração sólido vermelho para favoritado
  • Feedback visual com SweetAlert para indicar sucesso ou falha
  • Usuários deslogados:
    • Botão é visível
    • Ao clicar, um alerta informa que é necessário login

Gerenciamento no Painel Administrativo

  • Menu dedicado: adiciona item "Posts Favoritos" ao menu principal do WordPress
  • Página do plugin contém instruções de uso
  • Nova coluna "Favoritos" nas listagens de posts e CPTs públicos:
    • Exibe contagem de favoritos
    • Ordenável numericamente

Aspectos Técnicos e Boas Práticas

  • POO (Programação Orientada a Objetos):

    • Plugin estruturado em classes modulares
    • Facilita manutenção, reutilização e leitura do código
  • Compatibilidade com PHP 7.4:

    • Código compatível com ambientes PHP 7.4
    • Sem uso de tipagens ou recursos exclusivos de versões superiores
  • Segurança:

    • Uso de wp_create_nonce() para autenticação de requisições
    • Uso de $wpdb->prepare() para evitar SQL Injection
  • Internacionalização (i18n):

    • Todas as strings estão preparadas para tradução
  • Gerenciamento de Dados na Desativação:

    • Ao desativar o plugin, um modal SweetAlert é exibido
    • O usuário pode escolher se deseja manter ou excluir os dados salvos no banco de dados

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant