It depends on what exact action you are using, and what the purpose of that action is.
For the update actions, for example, there should always be hooks that are triggered before doing the change (so that you may change or prevent it), and hooks that are triggered after the change has been completed (so that you can react to changes).
In your “user” case, if you want to compare the existing vs the changed user, you want to hook into the user_profile_update_errors
action. This action gives you an object that shows you what the intended changes are, and whether there’s already an existing user. In that case, you can retrieve the existing user through its ID and compare them both.
See: https://codex.wordpress.org/Plugin_API/Action_Reference/user_profile_update_errors
Related Posts:
- Restrict post edit/delete based on user ID and custom field
- Get updated post meta on save_post action?
- Job of meta_key meta_value fields in database tables
- Post IDs missing on delete_postmeta action hook
- Set default Custom Post Meta Value
- get_*_meta doesn’t always return an array
- Like & Dislike functionality using JavaScript
- wordpress is_front_page() issue
- Retrieve user_meta and copy to post_meta
- Array of user ids to list of user names
- get Insert id for meta field
- help to decipher wp metadata
- Check For get_post_meta on Author Archive Page
- show user based on user_meta
- How to call get_post()?
- Remove action of an external plugin after checking if custom post meta is set
- Hide username from blog post source code
- How do I retrieve the slug of the current page?
- Most efficient way to get posts with postmeta
- Get posts by meta value
- Explanation of update_post_(meta/term)_cache
- How to extract data from a post meta serialized array?
- How to save an array with one metakey in postmeta?
- WordPress is stripping escape backslashes from JSON strings in post_meta
- How can I get the post ID from a WP_Query loop?
- Check if Post Title exists, Insert post if doesn’t, Add Incremental # to Meta if does
- How to update_post_meta value as array
- Adding meta tag without plugin
- What’s the point of get_post_meta’s $single param?
- What is the different between an attachment in wp_posts and an attachment in wp_postmeta?
- How to edit a post meta data in a Gutenberg Block?
- Sanitizing integer input for update_post_meta
- post formats – how to switch meta boxes when changing format?
- Execute action after post is saved with all related post_meta records (data)
- Lack of composite indexes for meta tables
- Get a single post by a unique meta value
- if get_post_meta is empty do something
- How we get_post_meta without post id
- How get post id from meta value
- What is the code to get the download link for a product in WooCommerce?
- Safe to delete blank postmeta?
- advanced custom fields update_field for field type: Taxonomy
- update_post_meta not saving when value is zero
- Can I count the number of users matching a value in a multiple value key?
- Meta compare with date (stored as string) not working
- Trying to get custom post meta through Jetpack JSON API [closed]
- How to update/insert custom field(post meta) data with wordpress REST API?
- get_post_meta returning empty string when data shows in the database
- publish_post action hook doesn’t give post_meta_data
- Remove WordPress.org Meta link
- Remove post meta keys
- How to access the post meta of a post that has just been published?
- Why time functions show invalid time zone when using ‘c’ time format?
- Why is get_post_meta returning an array when I specify it as single?
- How to update/delete array in post meta value?
- How to get all term meta for a taxonomy – getting term_meta for taxonomy
- Adding an assisting editor box to Post page
- delete unused postmeta
- Should I sanitize custom post meta if it is going to be escaped later?
- Add post meta based on another post meta value before publish post
- Change meta tags programatically
- How do I retrieve multi-dimensional arrays from the wp_postmeta table, & display on a website?
- Front-end update_post_meta snippet displays white screen?
- Query between two meta values?
- Save both current and new version of post meta
- Get Advanced Custom Fields values before saving [closed]
- Give extra post-meta to RSS feeds
- How to get meta value in wp_attachment_metadata
- WP REST API “rest_no_route” when trying to update meta
- Clean up output added via wp_head()
- List posts under meta_value heading
- Why am I getting an infinite loop with have_posts?
- Creating a custom post type upon registration
- get_post_meta – get a single value
- delete value 0 in post meta [closed]
- Can I safely delete a record, manually, in the wp postmeta table?
- How to store post meta in an array?
- What action hook updates post meta?
- Can’t translate the post meta data (Date) in another language
- get_post_meta / update_post_meta array
- adding a URL to a post meta
- Exclude a category from the filed under list
- Short of raw SQL, can I query for multiple attachment metadata that have a given array key?
- How do I access post meta data when publishing a new post in Gutenberg?
- update_post_meta() not working when used with WordPress action
- Using Advanced Custom Field (ACF) to insert meta description on each page
- Triple meta_key on custom SELECT query
- get_post_custom()
- Adding meta data to an attachment post
- update_post_meta not adding anything.(Nor add_post_meta)
- loop through all meta keys with get_post_meta
- Get posts by meta value with date
- How to add meta tag to wordpress posts filter?
- Are multiple values from get_post_meta guaranteed to be ordered?
- Identifying Importer Posts
- Get post from meta_key and meta_value
- Add a post metadata if only the key and value does not exist
- get_post_meta returns bool(false)
- How metadata API works?
- Correct processing of `$_POST`, following WordPress Coding Standards