Tengo un tipo de publicación que utiliza post_save para tomar la dirección del postmeta y recuperar las coordenadas lat / lng de la API de Google. Necesito una forma de notificar al usuario si hubo un problema con la recuperación de las coordenadas. Intenté usar admin_notices, pero no se muestra nada:
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'));
No estoy seguro si lo estoy usando incorrectamente o en el contexto incorrecto. Para ser claros, en el código real, add_action está en otra función en la misma clase. Eso está funcionando bien.
Respuestas:
La razón por la que esto no funciona es porque ocurre una redirección después de la acción save_post. Una forma en que puede lograr lo que desea es mediante la implementación de una solución rápida utilizando vars de consulta.
Aquí hay una clase de muestra para demostrar:
Espero que esto te ayude un poco. Salud
fuente
public function admin_notices()
(un corchete de cierre adicional en laif ( ! isset(..
línea)remove_query_arg('YOUR_QUERY_VAR');
que encontré que se puede configurar desde la última actualización.Hizo una clase de envoltura para este tipo de escenario. En realidad, la clase se puede usar en cualquier escenario que implique mostrar avisos. Utilizo los estándares PSR, por lo que la denominación es atípica del código de Wordpress.
Uso:
El aviso se muestra una vez.
fuente
Además de la respuesta de @ jonathanbardo, que es excelente y funciona bien, si desea eliminar el argumento de consulta después de cargar la nueva página, puede usar el filtro removable_query_args . Obtiene una serie de nombres de argumentos a los que puede agregar su propio argumento. Luego, WP se encargará de eliminar todos los argumentos de la lista de la URL.
Algo como:
Se convertirá:
fuente
Simple, elegante, basado en
get_settings_errors()
.Uso
En su controlador de solicitud de publicación:
Donde desea utilizar el aviso de administrador, generalmente en el
admin_notices
gancho.fuente