سلام وقت بخیر.برای من پیغام به درستی نمایش میده اما صفحه رو که رفرش میکنم ابتدا این پیغام وجود داره و انگار clear نمیشه .
فایل flash.class.php
class FlashMessage
{
const SUCCESS = 1 ;
const ERROR = 2 ;
public static function add($message, $type = self::SUCCESS)
{
$_SESSION['upp_messages'] = [
'message' => $message,
'type' => $type
];
}
public static function show()
{
if(isset($_SESSION['upp_messages'])){
$message = $_SESSION['upp_messages'];
if($message['type'] == self::SUCCESS){
echo ''. $message['message'] .'
';
}else{
echo ''. $message['message'] .'
';
}
self::clear();
}
}
public static function get(){
$message_in_html = '';
if(isset($_SESSION['upp_messages'])){
$message = $_SESSION['upp_messages'];
if($message['type'] == self::SUCCESS){
$message_in_html = ''. $message['message'] .'
';
}else{
$message_in_html = ''. $message['message'] .'
';
}
self::clear();
}
return $message_in_html;
}
public static function clear()
{
$_SESSION['upp_message'] = null ;
}
}
فایل ProfileHandler.php
include "Handler.php";
include_once UPP_DIR.'view.class.php';
include UPP_DIR.'panel/flash.class.php';
class ProfileHandler extends Handler
{
public function __construct()
{
parent::__construct();
add_action('wp_update_username',[$this,'get_update_username']);
}
public function index()
{
$currentUser = $this->current_user;
if(isset($_POST['savedata'])){
do_action('wp_update_username');
}
$message = FlashMessage::get();
$params = [
'current_user' => $currentUser,
'message' => $message
];
View::load('panel/profile/index.php',$params);
}
public function get_update_username()
{
$user_data_for_update = [
'ID' => $this->current_user->ID,
'display_name' => apply_filters('pre_user_display_name',$_POST['userFullName'])
];
if(!empty($_POST['userPass'])){
$user_data_for_update['user_pass'] = apply_filters('pre_user_pass',$_POST['userPass']);
}
$update_result = wp_update_user($user_data_for_update);
if(!is_wp_error($update_result)){
FlashMessage::add('اطلاعات با موفقیت بروزرسانی شد');
}
}
}