我找到了答案。我需要使用insert_user_meta
过滤器,而不是动作挂钩。然后我还需要一个get_user_meta
(获取旧数据)和$_POST
获取要更改的值。总而言之,这是我的最后一段代码,用于查找user_meta
字段(在我使用ACF创建的情况下)从一个值更改为另一个值:
add_filter( \'insert_user_meta\', function( $meta, $user, $update ) {
if( true !== $update ) return $meta; // if not an update (b/c it is a create) do nothing
if(is_admin()) { // check if we are in admin not front end
$old_meta = get_user_meta( $user->ID );
if( $old_meta[\'verified_member\'][0] !== $_POST[\'acf\'][\'field_5ad4eecd7564b\'] ) {
error_log("verified_member was modified from " . $old_meta[\'verified_member\'][0] . " to " . $_POST[\'acf\'][\'field_5ad4eecd7564b\']);
}}
return $meta;
}, 10, 3 );