PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.6.2
Independent Analytics – WordPress Analytics Plugin v2.6.2
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 All 120 releases
independent-analytics / IAWP / Tables / Table_Devices.php
Table_Devices.php
38 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Tables;
4
5 use IAWP\Filter_Lists\Device_Browser_Filter_List;
6 use IAWP\Filter_Lists\Device_OS_Filter_List;
7 use IAWP\Filter_Lists\Device_Type_Filter_List;
8 use IAWP\Rows\Device_Browsers;
9 use IAWP\Rows\Device_OSS;
10 use IAWP\Rows\Device_Types;
11 use IAWP\Statistics\Device_Browser_Statistics;
12 use IAWP\Statistics\Device_OS_Statistics;
13 use IAWP\Statistics\Device_Type_Statistics;
14 use IAWP\Tables\Columns\Column;
15 use IAWP\Tables\Groups\Group;
16 use IAWP\Tables\Groups\Groups;
17 /** @internal */
18 class Table_Devices extends \IAWP\Tables\Table
19 {
20 protected function table_name() : string
21 {
22 return 'devices';
23 }
24 protected function groups() : Groups
25 {
26 $groups = [];
27 $groups[] = new Group('device_type', \__('Device Type', 'independent-analytics'), Device_Types::class, Device_Type_Statistics::class);
28 $groups[] = new Group('os', \__('OS', 'independent-analytics'), Device_OSS::class, Device_OS_Statistics::class);
29 $groups[] = new Group('browser', \__('Browser', 'independent-analytics'), Device_Browsers::class, Device_Browser_Statistics::class);
30 return new Groups($groups);
31 }
32 protected function local_columns() : array
33 {
34 $columns = [new Column(['id' => 'device_type', 'name' => \__('Type', 'independent-analytics'), 'visible' => \true, 'type' => 'select', 'options' => Device_Type_Filter_List::options(), 'database_column' => 'device_types.device_type_id', 'unavailable_for' => ['browser', 'os']]), new Column(['id' => 'os', 'name' => \__('Operating System', 'independent-analytics'), 'visible' => \true, 'type' => 'select', 'options' => Device_OS_Filter_List::options(), 'database_column' => 'device_oss.device_os_id', 'unavailable_for' => ['device_type', 'browser']]), new Column(['id' => 'browser', 'name' => \__('Browser', 'independent-analytics'), 'visible' => \true, 'type' => 'select', 'options' => Device_Browser_Filter_List::options(), 'database_column' => 'device_browsers.device_browser_id', 'unavailable_for' => ['device_type', 'os']]), new Column(['id' => 'visitors', 'name' => \__('Visitors', 'independent-analytics'), 'visible' => \true, 'type' => 'int']), new Column(['id' => 'views', 'name' => \__('Views', 'independent-analytics'), 'visible' => \true, 'type' => 'int']), new Column(['id' => 'sessions', 'name' => \__('Sessions', 'independent-analytics'), 'type' => 'int']), new Column(['id' => 'average_session_duration', 'name' => \__('Session Duration', 'independent-analytics'), 'visible' => \true, 'type' => 'int', 'filter_placeholder' => 'Seconds']), new Column(['id' => 'views_per_session', 'name' => \__('Views Per Session', 'independent-analytics'), 'type' => 'int']), new Column(['id' => 'bounce_rate', 'name' => \__('Bounce Rate', 'independent-analytics'), 'visible' => \true, 'type' => 'int']), new Column(['id' => 'visitors_growth', 'name' => \__('Visitors Growth', 'independent-analytics'), 'type' => 'int', 'exportable' => \false]), new Column(['id' => 'views_growth', 'name' => \__('Views Growth', 'independent-analytics'), 'type' => 'int', 'exportable' => \false])];
35 return \array_merge($columns, $this->get_woocommerce_columns(), $this->get_form_columns());
36 }
37 }
38