在处理异常后显示错误消息

时间:2014-03-21 作者:IAmJulianAcosta

我有一个插件可以更新用户配置文件,我想处理一个日期异常并在失败时显示一条错误消息,但我无法让它工作。

以下是课程的一部分:

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字段的格式错误,则会引发异常,我想显示一个错误。

问题是错误消息从未出现。

1 个回复
SO网友:Tobias

date_error 似乎是该类的函数,因此您必须使用

add_action(\'edit_user_profile\', array($this, \'date_error\'));
但是,我不能完全确定这是否可行,因为我不知道何时调用此函数。注册挂钩可能已经太晚了。

结束

相关推荐

在多站点中为非管理员拉入自定义/wp-admin/css

这里有一个问题,我相信很多人都想找到答案。。。在多站点安装中,有时我希望博客所有者的仪表板以不同的方式显示。这些样式主要由/wp admin/css/文件夹控制。问题是,如果我们编辑/wp-admin/css/,它会影响到每个人,包括多站点管理员。有没有办法为除网站所有者以外的所有网站用户拉一个自定义/wp admin/css/文件夹?这样,站点所有者仍然可以看到传统的面板,而网络中有站点的其他所有人都可以看到由/wp admin/css/中的样式表控制的自定义设计的面板。