Object_Sync_Sf_Admin_Notice::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 1
b 0
f 0
nc 1
nop 5
dl 0
loc 11
rs 10
1
<?php
2
/**
3
 * Generate notices in the WordPress admin
4
 *
5
 * @class   Object_Sync_Sf_Admin_Notice
6
 * @package Object_Sync_Salesforce
7
 */
8
9
defined( 'ABSPATH' ) || exit;
10
11
/**
12
 * Object_Sync_Sf_Admin_Notice class.
13
 */
14
class Object_Sync_Sf_Admin_Notice {
15
16
	/**
17
	 * The main plugin file
18
	 *
19
	 * @var string
20
	 */
21
	public $file;
22
23
	/**
24
	 * The condition the notice is checking
25
	 *
26
	 * @var bool
27
	 */
28
	public $condition;
29
30
	/**
31
	 * The message that is being displayed
32
	 *
33
	 * @var string
34
	 */
35
	public $message;
36
37
	/**
38
	 * What type of notice it is
39
	 *
40
	 * @var string
41
	 */
42
	public $type;
43
44
	/**
45
	 * Whether the notice is dismisable or not
46
	 *
47
	 * @var bool
48
	 */
49
	public $dismissible;
50
51
	/**
52
	 * Which template is used for display
53
	 *
54
	 * @var string
55
	 */
56
	public $template;
57
58
	/**
59
	 * Constructor for admin notice class
60
	 *
61
	 * @param bool   $condition whether the condition for the notice was met.
62
	 * @param string $message the message to show to the user.
63
	 * @param bool   $dismissible whether the user can dismiss this message.
64
	 * @param string $type what type of message this is.
65
	 * @param string $template the template to render this message.
66
	 */
67
	public function __construct( $condition, $message, $dismissible, $type, $template ) {
68
69
		$this->file = object_sync_for_salesforce()->file;
70
71
		$this->condition   = $condition;
72
		$this->message     = $message;
73
		$this->dismissible = $dismissible;
74
		$this->type        = $type;
75
		$this->template    = $template;
76
77
		add_action( 'admin_notices', array( $this, 'render' ) );
0 ignored issues
show
Bug introduced by
The function add_action was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

77
		/** @scrutinizer ignore-call */ 
78
  add_action( 'admin_notices', array( $this, 'render' ) );
Loading history...
78
79
	}
80
81
	/**
82
	 * Render an admin notice
83
	 */
84
	public function render() {
85
86
		$default_template = plugin_dir_path( $this->file ) . '/templates/admin/notice.php';
0 ignored issues
show
Bug introduced by
The function plugin_dir_path was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

86
		$default_template = /** @scrutinizer ignore-call */ plugin_dir_path( $this->file ) . '/templates/admin/notice.php';
Loading history...
87
88
		// class for the notice to use.
89
		$class = '';
90
		if ( '' !== $this->type ) {
91
			$class = ' notice-' . $this->type;
92
		}
93
94
		$dismissible = '';
95
		if ( true === $this->dismissible ) {
96
			$dismissible = ' is-dismissible';
97
		}
98
99
		// template for notice has a default.
100
		if ( '' === $this->template || ! file_exists( $template ) ) {
101
			$template = $default_template;
102
		} else {
103
			$template = $this->template;
104
		}
105
106
		$condition = $this->condition;
107
		$message   = $this->message;
108
109
		require_once $template;
110
111
	}
112
113
}
114