PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.30.0
Independent Analytics – WordPress Analytics Plugin v1.30.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Tables / Columns / Column.php
independent-analytics / IAWP / Tables / Columns Last commit date
Column.php 2 years ago
Column.php
82 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Tables\Columns;
4
5 use IAWP_SCOPED\IAWP\Tables\Groups\Group;
6 class Column
7 {
8 private $id;
9 private $label;
10 private $visible;
11 private $type;
12 private $requires_woocommerce;
13 private $exportable;
14 private $options;
15 private $filter_placeholder;
16 private $unavailable_for;
17 public function __construct($options)
18 {
19 $this->id = $options['id'];
20 $this->label = $options['label'];
21 $this->visible = $options['visible'];
22 $this->type = $options['type'];
23 $this->requires_woocommerce = $options['requires_woocommerce'] ?? \false;
24 $this->exportable = $options['exportable'] ?? \true;
25 $this->options = $options['options'] ?? [];
26 $this->filter_placeholder = $options['filter_placeholder'] ?? '';
27 $this->unavailable_for = $options['unavailable_for'] ?? [];
28 }
29 public function is_enabled_for_group(Group $group) : bool
30 {
31 return !\in_array($group->id(), $this->unavailable_for);
32 }
33 public function is_group_dependent() : bool
34 {
35 return \count($this->unavailable_for) > 0;
36 }
37 public function id() : string
38 {
39 return $this->id;
40 }
41 public function label() : string
42 {
43 return $this->label;
44 }
45 public function visible() : bool
46 {
47 return $this->visible;
48 }
49 public function type() : string
50 {
51 return $this->type;
52 }
53 public function sort_direction() : string
54 {
55 $descending_types = ['int'];
56 return \in_array($this->type, $descending_types) ? 'desc' : 'asc';
57 }
58 public function set_visibility(bool $visible) : void
59 {
60 $this->visible = $visible;
61 }
62 public function requires_woocommerce() : bool
63 {
64 return $this->requires_woocommerce;
65 }
66 public function exportable() : bool
67 {
68 return $this->exportable;
69 }
70 /**
71 * @return array List of possible options for this filter such as a list of authors or list of post categories
72 */
73 public function options() : array
74 {
75 return $this->options;
76 }
77 public function filter_placeholder() : string
78 {
79 return $this->filter_placeholder;
80 }
81 }
82