';
$before .= $wrapInParTag ? '
' : '';
$after = $wrapInParTag ? '
' : '';
$after .= '
';
return $before . $this->getContent() . $after;
}
/**
* Increment displayed times of the notice
* @return \WP_Notice
*/
public function incrementDisplayedTimes() {
$this->displayedTimes++;
if (array_key_exists(get_current_user_id(), $this->displayedToUsers)) {
$this->displayedToUsers[get_current_user_id()] ++;
} else {
$this->displayedToUsers[get_current_user_id()] = 1;
}
return $this;
}
/**
* Checks if the notice should me destroyed
* @return boolean True iff notice is deprecated
*/
public function isTimeToDie() {
if (empty($this->users)) {
return $this->displayedTimes >= $this->times;
} else {
$i = 0;
foreach ($this->users as $key => $value) {
if (isset($this->displayedToUsers[$value]) && $this->displayedToUsers[$value] >= $this->times) {
$i++;
}
}
if ($i >= count($this->users)) {
return true;
}
}
return false;
}
/**
* Get the $WithWraper Value
*/
public function getWrapper(){
return $this->WithWraper;
}
/**
* Set the $WithWraper Value
* @param boolean $screen
*/
public function setWrapper($wrapper = true){
$this->WithWraper = $wrapper;
return $this;
}
/**
* Get the current screen slug
* @return string Current screen slug
*/
public function getScreen() {
return $this->screen;
}
/**
* Set the screens the notice will be displayed
* @param array $screen
* @return \WP_Notice
*/
public function setScreen(Array $screen) {
$this->screen = $screen;
return $this;
}
/**
* Get the notice string unformated
* @return string
*/
public function getContent() {
return $this->content;
}
/**
*
* @param string $content
* @return \WP_Notice
*/
public function setContent($content) {
$this->content = $content;
return $this;
}
/**
*
* @return string
*/
public function getId() {
return $this->id;
}
/**
*
* @return int
*/
public function getTimes() {
return $this->times;
}
/**
*
* @return array
*/
public function getUsers() {
return $this->users;
}
/**
*
* @param int $times
* @return \WP_Notice
*/
public function setTimes($times) {
$this->times = $times;
return $this;
}
/**
*
* @param array $users
* @return \WP_Notice
*/
public function setUsers(Array $users) {
$this->users = $users;
return $this;
}
/**
*
* @return int
*/
public function getDisplayedTimes() {
return $this->displayedTimes;
}
/**
*
* @return array
*/
public function getDisplayedToUsers() {
return $this->displayedToUsers;
}
/**
*
* @param int $displayedTimes
* @return \WP_Notice
*/
public function setDisplayedTimes($displayedTimes) {
$this->displayedTimes = $displayedTimes;
return $this;
}
/**
*
* @param array $displayedToUsers
* @return \WP_Notice
*/
public function setDisplayedToUsers(Array $displayedToUsers) {
$this->displayedToUsers = $displayedToUsers;
return $this;
}
}
/**
* Type of notices
*/
class WP_Error_Notice extends WP_Notice {
protected $type = 'error wcQD';
}
class WP_Updated_Notice extends WP_Notice {
protected $type = 'updated';
}
class WP_UpdateNag_Notice extends WP_Notice {
protected $type = 'update-nag';
}
}
/**
* Hook action to admin init
*/
if(!has_action('init', array('WP_Admin_Notices', 'getInstance'))){
add_action('init', array('WP_Admin_Notices', 'getInstance'));
}
//WP_Admin_Notices::getInstance();
if ( ! function_exists( 'wc_qd_notice' ) ) {
function wc_qd_notice( $message, $type = 'update',$args = array()) {
$notice = '';
$defaults = array('times' => 1,'screen' => array(),'users' => array(), 'wraper' => true);
$args = wp_parse_args( $args, $defaults );
extract($args);
if($type == 'error'){$notice = new WP_Error_Notice($message,$times, $screen, $users);}
if($type == 'update'){$notice = new WP_Updated_Notice($message,$times, $screen, $users);}
if($type == 'upgrade'){$notice = new WP_UpdateNag_Notice($message,$times, $screen, $users);}
$msgID = $notice->getId();
$message = str_replace('$msgID$',$msgID,$message);
$notice->setContent($message);
$notice->setWrapper($wraper);
WP_Admin_Notices::getInstance()->addNotice($notice);
}
}
if ( ! function_exists( 'wc_qd_remove_link' ) ) {
function wc_qd_remove_link($attributes = '',$msgID = '$msgID$', $text = 'Remove Notice') {
if(!empty($msgID)){
$url = admin_url().'?WCQDRMSG='.$msgID ;
$url = wp_nonce_url($url, 'WCQDREMOVEMSG');
$url = urldecode($url);
$tag = '