Php Wordpress更新\u用户\u元数据未提供$prev\u值

Php Wordpress更新\u用户\u元数据未提供$prev\u值,php,wordpress,Php,Wordpress,我试图查看用户的字段值是否已更改,如果已更改,我需要运行一些代码。所以,我发现最好的方法就是使用这个过滤器挂钩 然而,由于某种原因,如果我试图输出$prev_值,并且我的字段以前不是空的,那么我将得到null。为什么呢 function myplugin_init() { add_filter( 'update_user_metadata', 'myplugin_update_foo', 10, 5 ); } function myplugin_update_foo( $null,

我试图查看用户的字段值是否已更改,如果已更改,我需要运行一些代码。所以,我发现最好的方法就是使用这个过滤器挂钩

然而,由于某种原因,如果我试图输出$prev_值,并且我的字段以前不是空的,那么我将得到null。为什么呢

function myplugin_init() {
    add_filter( 'update_user_metadata', 'myplugin_update_foo', 10, 5 );
}

function myplugin_update_foo( $null, $object_id, $meta_key, $meta_value, $prev_value ) {

    if ( 'last_name' == $meta_key ) {
    echo "<h1>Prev: ". $prev_value ."</h1>";
    echo "<h1>New: ". $meta_value ."</h1>";
  }

    return null; // this means: go on with the normal execution in meta.php

}

add_action( 'init', 'myplugin_init' );
函数myplugin_init(){
添加过滤器('update\u user\u metadata','myplugin\u update\u foo',10,5);
}
函数myplugin\u update\u foo($null、$object\u id、$meta\u key、$meta\u value、$prev\u value){
if('last_name'=$meta_key){
回显“Prev:.$Prev_值”;
回声“新:.$meta_值。”;
}
return null;//这意味着:继续在meta.php中正常执行
}
添加_操作('init','myplugin_init');

WordPress操作似乎只有四个参数

您正在使用
$prev_value
作为第五个参数,因此它将始终为
null

<?php
add_action( 'updated_user_meta', 'my_update_user_meta', 10, 4 );

function my_update_user_meta($meta_id, $object_id, $meta_key, $_meta_value) {
    //do stuff
} ?>

参考:
我遇到了类似的问题。如果调用
update\u user\u meta
,则需要使用前面的值添加第四个参数。e、 g:

update_user_meta( $user_id, 'custom_field', 'new_value', get_user_meta( $user_id, 'custom_field', true ) );

只有这样,您才能访问
update\u user\u metadata
filter&action中的
prev\u值。

如果您正在查找错误的操作,请单击我的链接。很抱歉,您是对的。您是否尝试转储
$\u GET
$\u POST
以查看数据是否传入?是的,数据传入正常。