PROFILE_UPDATE仅在第二次更新时有效

时间:2020-06-02 作者:Johnnyboy Gomez

我正在使用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之前,操作正在运行。我怎样才能解决这个问题?

1 个回复
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 );
因此,我猜新函数现在正在等待用户更新完成,然后再运行。

相关推荐