Issue got solved by doing two things
- Removed primary calling from
/**
* Initialize the activation works of the plugin.
*/
function awraq_activate_plugin()
{
//removed
}
register_activation_hook(__FILE__, 'awraq_activate_plugin');
Added the call to “plugins_loaded”
/**
* Initialize the plugin.
*/
function awraq_init_plugin()
{
if (Init::activate() != TRUE) {
deactivate_plugins(plugin_basename(__FILE__));
//added below
Notice::error('Plugin got Deactivated. Please check the dependencies.', true);
}
}
add_action('plugins_loaded', 'awraq_init_plugin');
- And on the class removed
__CLASS__
with full namespace and class –private static $globalScopeName="Awraq\Base\Notice";
, since it will get called from outside of this.
namespace Awraq\Base;
if (!defined('ABSPATH')) exit;
class Notice
{
private static $globalScopeName="Awraq\Base\Notice";
private static $class="";
private static $msg = '';
public static function error($msg = 'error', $is_dismissible = TRUE)
{
self::$class = ($is_dismissible == TRUE) ? 'notice notice-error is-dismissible' : 'notice notice-error';
self::$msg = __($msg, AWRAQ_TEXT_DOMAIN);
add_action('admin_notices', array(self::$globalScopeName, 'awraq_notice'));
}
public static function warning($msg = 'warning', $is_dismissible = TRUE)
{
self::$class = ($is_dismissible == TRUE) ? 'notice notice-warning is-dismissible' : 'notice notice-warning';
self::$msg = __($msg, AWRAQ_TEXT_DOMAIN);
add_action('admin_notices', array(self::$globalScopeName, 'awraq_notice'));
}
public static function success($msg = 'success', $is_dismissible = TRUE)
{
self::$class = ($is_dismissible == TRUE) ? 'notice notice-success is-dismissible' : 'notice notice-success';
self::$msg = __($msg, AWRAQ_TEXT_DOMAIN);
add_action('admin_notices', array(self::$globalScopeName, 'awraq_notice'));
}
public static function info($msg = 'info', $is_dismissible = TRUE)
{
self::$class = ($is_dismissible == TRUE) ? 'notice notice-info is-dismissible' : 'notice notice-info';
self::$msg = __($msg, AWRAQ_TEXT_DOMAIN);
add_action('admin_notices', array(self::$globalScopeName, 'awraq_notice'));
}
public static function awraq_notice()
{
$class = self::$class;
$msg = self::$msg;
if ($class == '' and $msg == '') {
return;
}
printf('<div class="%1$s"><p>%2$s</p></div>', esc_attr($class), esc_html($msg));
}
}