COD5 Validação de Data Retroativa
Plugin WordPress que impede usuários não administradores de publicar posts com data retroativa. Inclui logs, webhook n8n e configurações centralizadas.
by Sua Empresa ou Nome · github.com/leandrobosaipo/cod5-validacao-data-retroativa
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/leandrobosaipo/cod5-validacao-data-retroativa/archive/refs/heads/main.zipReadme
COD5 Validação de Data Retroativa
Plugin WordPress que impede que usuários não administradores publiquem ou atualizem posts, páginas ou CPTs com data/hora anterior ao momento atual.
📋 Configuração
🎯 Configurações Centralizadas
Todas as configurações estão centralizadas na classe COD5_Config no arquivo principal do plugin. Para personalizar o plugin em diferentes sites, altere apenas esta seção:
class COD5_Config {
// URL do webhook n8n
const WEBHOOK_URL = 'https://seu-webhook.com/webhook/receber-tentativa';
// Tempo de flexibilização em minutos (padrão: 60)
const FLEXIBILIDADE_MINUTOS = 60;
// Grupos de usuários que têm restrição
const CAPABILITIES_RESTRITAS = array(
'edit_posts', // Editores
'publish_posts', // Autores
'edit_pages', // Editores de páginas
'publish_pages', // Publicadores de páginas
);
// Grupos de usuários que são liberados
const CAPABILITIES_LIBERADAS = array(
'administrator', // Administradores
'manage_options', // Gerentes de opções
);
// Status de posts que são validados
const STATUS_VALIDADOS = array(
'publish',
'future',
'pending'
);
// Timeout para requisições do webhook (em segundos)
const WEBHOOK_TIMEOUT = 5;
// Habilita logs detalhados no error_log
const DEBUG_MODE = true;
// Mensagem padrão de erro
const MENSAGEM_PADRAO = 'Se quiser publicar com data e horário anterior, só acordando mais cedo.';
}
🔧 Personalizações por Site
1. URL do Webhook
const WEBHOOK_URL = 'https://seu-site.com/webhook/receber-tentativa';
2. Tempo de Flexibilização
// Permite posts até 30 minutos antes
const FLEXIBILIDADE_MINUTOS = 30;
// Permite posts até 2 horas antes
const FLEXIBILIDADE_MINUTOS = 120;
3. Grupos de Usuários
// Adicionar novos grupos restritos
const CAPABILITIES_RESTRITAS = array(
'edit_posts',
'publish_posts',
'edit_pages',
'publish_pages',
'custom_capability', // Nova capability
);
// Adicionar novos grupos liberados
const CAPABILITIES_LIBERADAS = array(
'administrator',
'manage_options',
'super_editor', // Nova capability
);
4. Status de Posts
// Adicionar novos status para validação
const STATUS_VALIDADOS = array(
'publish',
'future',
'pending',
'custom_status', // Novo status
);
5. Mensagem de Erro
const MENSAGEM_PADRAO = 'Sua mensagem personalizada aqui.';
6. Edição sem Alterar Data
Autores podem atualizar posts já publicados sem acionar a validação de data retroativa, desde que a data de publicação permaneça exatamente a mesma. Qualquer mudança na data continuará passando pelas regras normais de validação.
🚀 Instalação
- Faça upload do plugin para
/wp-content/plugins/ - Ative o plugin no painel administrativo
- Configure as opções na classe
COD5_Config - Teste com diferentes tipos de usuários
📊 Funcionalidades
✅ Validação de Data
- Bloqueia posts com data retroativa (configurável)
- Permite flexibilidade de tempo (configurável)
- Valida apenas status específicos (configurável)
👥 Controle de Usuários
- Grupos restritos configuráveis
- Grupos liberados configuráveis
- Suporte a capabilities customizadas
📝 Logs e Monitoramento
- Log no banco de dados
- Webhook para notificações
- Logs de debug (configurável)
🔌 Extensibilidade
- Filtros WordPress para customização
- Hooks para integração
- Classes organizadas para manutenção
🛠️ Manutenção
Estrutura de Arquivos
cod5-validacao-data-retroativa/
├── cod5-validacao-data-retroativa.php # Arquivo principal
├── admin.js # JavaScript do editor
└── README.md # Esta documentação
Classes Principais
COD5_Config
- Centraliza todas as configurações
- Constantes para fácil alteração
- Documentação inline
COD5_Utils
- Funções utilitárias
- Lógica de validação
- Logs de debug
Hooks WordPress
wp_insert_post_data- Validação principalrest_pre_insert_post- Validação REST APIsave_post- Validação de fallbackadmin_enqueue_scripts- Carregamento de assets
🧪 Testes
Cenários de Teste
- Autor criando com data atual → ✅ Deve funcionar
- Autor criando com data 30 min atrás → ✅ Deve funcionar (se flexibilidade ≥ 30)
- Autor criando com data 2 horas atrás → ❌ Deve bloquear
- Administrador criando com qualquer data → ✅ Deve funcionar
- Editor clássico vs Gutenberg → ✅ Ambos devem funcionar
Logs de Debug
Ative o modo debug para ver logs detalhados:
const DEBUG_MODE = true;
Os logs aparecem no error_log do servidor com prefixo COD5 DEBUG:.
🔒 Segurança
- Sanitização de dados
- Verificação de capabilities
- Validação de status
- Prevenção de loops infinitos
📞 Suporte
Para dúvidas ou problemas:
- Verifique os logs de debug
- Teste com diferentes usuários
- Confirme as configurações na classe
COD5_Config - Verifique se o webhook está funcionando
📝 Changelog
v1.0.1
- Adicionados os status 'draft' e 'auto-draft' à validação de data retroativa.
- Agora o plugin bloqueia também rascunhos e auto-rascunhos com data retroativa.
v1.0.0
- ✅ Validação de data retroativa
- ✅ Controle de usuários configurável
- ✅ Logs e webhook
- ✅ Suporte a editor clássico e Gutenberg
- ✅ Configurações centralizadas
- ✅ Documentação completa