PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 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 All 255 releases
give / src / Views / Admin / DashboardWidgets / Reports.php

Reports.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.9, at src/Views/Admin/DashboardWidgets/Reports.php

108 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 /**
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 * Initialize Reports Dashboard Widget
20 */
21 public function init()
22 {
23 add_action('wp_dashboard_setup', [$this, 'add_dashboard_widget']);
24 add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']);
25 }
26
27 // Add dashboard widget
28
29 public function add_dashboard_widget()
30 {
31 $reportsURL = admin_url('/edit.php?post_type=give_forms&page=give-reports');
32 $reportsStr = __(
33 'GiveWP Donations: Reports',
34 'give'
35 ) . '<a class="givewp-reports-link" href="' . $reportsURL . '">' . __(
36 'Visit Reports',
37 'give'
38 ) . '</a>';
39
40 if (current_user_can(apply_filters('give_dashboard_stats_cap', 'view_give_reports'))) {
41 wp_add_dashboard_widget(
42 'givewp_reports_widget',
43 $reportsStr,
44 [$this, 'render_template']
45 );
46 }
47 }
48
49 /**
50 * Enqueue app scripts
51 *
52 * @since 4.0.0 Replace "new form" with "new campaign form" link
53 */
54 public function enqueue_scripts($base)
55 {
56 if ($base !== 'index.php') {
57 return;
58 }
59
60 wp_enqueue_script(
61 'give-admin-reports-widget-js',
62 GIVE_PLUGIN_URL . 'build/assets/dist/js/admin-reports-widget.js',
63 ['wp-element', 'wp-api', 'wp-i18n'],
64 GIVE_VERSION,
65 true
66 );
67 wp_localize_script(
68 'give-admin-reports-widget-js',
69 'giveReportsData',
70 [
71 'newFormUrl' => admin_url('edit.php?post_type=give_forms&page=give-campaigns&new=campaign'),
72 'allTimeStart' => $this->get_all_time_start(),
73 'currency' => give_get_currency(),
74 'testMode' => give_is_test_mode(),
75 'assetsUrl' => GIVE_PLUGIN_URL . 'build/assets/dist',
76 ]
77 );
78 wp_set_script_translations( 'give-admin-reports-widget-js', 'give' );
79 }
80
81 public function get_all_time_start()
82 {
83 $start = date_create('01/01/2015');
84 $end = date_create();
85
86 // Setup donation query args (get sanitized start/end date from request)
87 $args = [
88 'number' => 1,
89 'paged' => 1,
90 'orderby' => 'date',
91 'order' => 'ASC',
92 'start_date' => $start->format('Y-m-d H:i:s'),
93 'end_date' => $end->format('Y-m-d H:i:s'),
94 ];
95
96 // Get array of 50 recent donations
97 $donations = new \Give_Payments_Query($args);
98 $donations = $donations->get_payments();
99
100 return isset($donations[0]) ? $donations[0]->date : $start->format('Y-m-d H:i:s');
101 }
102
103 public function render_template()
104 {
105 include_once GIVE_PLUGIN_DIR . 'src/Views/Admin/DashboardWidgets/templates/reports-template.php';
106 }
107 }
108