我有一个插件可以更新用户配置文件,我想处理一个日期异常并在失败时显示一条错误消息,但我无法让它工作。
以下是课程的一部分:
private function __construct() {
add_action( \'edit_user_profile\', array($this, "userAdminForm") );
add_action("personal_options_update", array($this, "updateCustomFields") );
add_action("edit_user_profile_update", array($this, "updateCustomFields") );
}
public function userAdminForm($user) {
require_once(ACMFR_PARTIALS."/form.editProfileAdmin.php");
}
public function updateCustomFields($userID) {
//stuff
if ( isset($_POST["expirydate"]) ) {
try {
$date = new DateTime("FAIL");
//Do stuff with Date
}
catch (Exception $exception) {
add_action(\'edit_user_profile\', array ($this, \'date_error\'));
//add_action(\'admin_notices\', array ($this, \'date_error\'));
}
}
//more stuff
}
public function date_error() {
echo \'<div class="error"><p>Date Format Error</p></div>\';
}
插件的工作原理如下:
当admin进入用户编辑配置文件页面(User edit.php)时,插件会显示一个带有一些自定义字段的部分。提交表单时,将调用updateCustomFields函数并更新字段。
如果expirydate字段的格式错误,则会引发异常,我想显示一个错误。
问题是错误消息从未出现。