Eu tenho um tipo de postagem que usa post_save para pegar o endereço da pós-meta e recuperar as coordenadas lat / lng da API do Google. Preciso de uma maneira de notificar o usuário se houver algum problema com a recuperação dos coordintes. Eu tentei usar admin_notices, mas nada foi exibido:
public static function update_notice() {
echo "<div class='error'><p>Failed to retrieve coordinates. Please check key and address.<p></div>";
remove_action('admin_notices', 'update_notice');
}
add_action('admin_notices', array('GeoPost', 'update_notice'));
Não tenho certeza se estou usando incorretamente ou no contexto errado. Para ser claro, no código real o add_action está em outra função da mesma classe. Está funcionando bem.
posts
plugin-development
wp-admin
Jason
fonte
fonte
Respostas:
A razão pela qual isso não funciona é porque há um redirecionamento após a ação save_post. Uma maneira de conseguir o que deseja é implementando um trabalho rápido usando vars de consulta.
Aqui está uma amostra de classe para demonstrar:
Espero que isso ajude você um pouco. Felicidades
fonte
public function admin_notices()
(um colchete de fechamento extra naif ( ! isset(..
linha)remove_query_arg('YOUR_QUERY_VAR');
como achei que pode ser definido desde a última atualização.Criou uma classe de wrapper para esse tipo de cenário. Na verdade, a classe pode ser usada em qualquer cenário que envolva a exibição de avisos. Eu uso os padrões PSR, portanto, a nomeação é atípica do código do Wordpress.
Uso:
O aviso é exibido uma vez.
fonte
Além da resposta de @ jonathanbardo, que é ótima e funciona bem, se você deseja remover o argumento de consulta após o carregamento da nova página, pode usar o filtro removable_query_args . Você obtém uma matriz de nomes de argumentos aos quais pode acrescentar seu próprio argumento. O WP cuidará da remoção de todos os argumentos da lista da URL.
Algo como:
Se tornará:
fonte
Simples, elegante, baseado em
get_settings_errors()
.Uso
No manipulador de solicitação de postagem:
Onde você deseja usar o aviso do administrador, geralmente no
admin_notices
gancho.fonte