PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.17.1
GiveWP – Donation Plugin and Fundraising Platform v2.17.1
4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Views / Admin / DashboardWidgets / Reports.php
give / src / Views / Admin / DashboardWidgets Last commit date
templates 4 years ago Reports.php 4 years ago
Reports.php
113 lines
1 <?php
2
3 /**
4 * Reports Dashboard Widgets class
5 *
6 * @package Give
7 */
8
9 namespace Give\Views\Admin\DashboardWidgets;
10
11 defined('ABSPATH') || exit;
12
13 /**
14 * Manages reports dashboard widget view
15 */
16 class Reports
17 {
18
19 /**
20 * Initialize Reports Dashboard Widget
21 */
22 public function init()
23 {
24 add_action('wp_dashboard_setup', [$this, 'add_dashboard_widget']);
25 add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']);
26 }
27
28 public function __construct()
29 {
30 // Do nothing
31 }
32
33 // Add dashboard widget
34 public function add_dashboard_widget()
35 {
36 $reportsURL = admin_url('/edit.php?post_type=give_forms&page=give-reports');
37 $reportsStr = __(
38 'GiveWP Donations: Reports',
39 'give'
40 ) . '<a class="givewp-reports-link" href="' . $reportsURL . '">' . __(
41 'Visit Reports',
42 'give'
43 ) . '</a>';
44
45 if (current_user_can(apply_filters('give_dashboard_stats_cap', 'view_give_reports'))) {
46 wp_add_dashboard_widget(
47 'givewp_reports_widget',
48 $reportsStr,
49 [$this, 'render_template']
50 );
51 }
52 }
53
54 // Enqueue app scripts
55 public function enqueue_scripts($base)
56 {
57 if ($base !== 'index.php') {
58 return;
59 }
60
61 wp_enqueue_style(
62 'give-admin-reports-widget-style',
63 GIVE_PLUGIN_URL . 'assets/dist/css/admin-reports-widget.css',
64 [],
65 GIVE_VERSION
66 );
67 wp_enqueue_script(
68 'give-admin-reports-widget-js',
69 GIVE_PLUGIN_URL . 'assets/dist/js/admin-reports-widget.js',
70 ['wp-element', 'wp-api', 'wp-i18n'],
71 GIVE_VERSION,
72 true
73 );
74 wp_localize_script(
75 'give-admin-reports-widget-js',
76 'giveReportsData',
77 [
78 'newFormUrl' => admin_url('/post-new.php?post_type=give_forms'),
79 'allTimeStart' => $this->get_all_time_start(),
80 'currency' => give_get_currency(),
81 'testMode' => give_is_test_mode(),
82 ]
83 );
84 }
85
86 public function render_template()
87 {
88 include_once GIVE_PLUGIN_DIR . 'src/Views/Admin/DashboardWidgets/templates/reports-template.php';
89 }
90
91 public function get_all_time_start()
92 {
93 $start = date_create('01/01/2015');
94 $end = date_create();
95
96 // Setup donation query args (get sanitized start/end date from request)
97 $args = [
98 'number' => 1,
99 'paged' => 1,
100 'orderby' => 'date',
101 'order' => 'ASC',
102 'start_date' => $start->format('Y-m-d H:i:s'),
103 'end_date' => $end->format('Y-m-d H:i:s'),
104 ];
105
106 // Get array of 50 recent donations
107 $donations = new \Give_Payments_Query($args);
108 $donations = $donations->get_payments();
109
110 return isset($donations[0]) ? $donations[0]->date : $start->format('Y-m-d H:i:s');
111 }
112 }
113