我正在使用PODS向用户配置文件添加信息。我想向usermeta添加数据,然后立即对其进行处理。PODS创建的字段之一是“estimated\\u delivery\\u date”。我简化了代码,如下所示。
add_action( \'profile_update\', \'initiate_participant_profile_update\', 10, 2 );
function initiate_participant_profile_update( $user_id, $old_user_data ) {
$estDD = get_user_meta( $user_id, \'estimated_delivery_date\', true );
$pathBodyFile = dirname(__FILE__) . "/$user_id" . "ParticipantData.txt";
$fileBody = fopen($pathBodyFile, "a");
echo fwrite($fileBody, "Estimated Delivery Date: $estDD\\n\\n");
fclose($fileBody);
}
当我使用更新用户配置文件页面添加信息时,文件中不会显示$estDD。但如果我回到编辑个人资料页面,再次点击更新用户,砰,就在那里了。
所以我猜测,在更新usermeta之前,操作正在运行。我怎样才能解决这个问题?
SO网友:Johnnyboy Gomez
提出这个问题后不久,我就明白了。但由于我花了几个小时寻找awswer,我想也许它值得发布。我希望这不会违反任何规则。我将默认优先级从10更改为11。依据:
add_action( \'profile_update\', \'initiate_participant_profile_update\', 10, 2 );
更改为
add_action( \'profile_update\', \'initiate_participant_profile_update\', 11, 2 );
因此,我猜新函数现在正在等待用户更新完成,然后再运行。