PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.0
GiveWP – Donation Plugin and Fundraising Platform v2.22.0
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 / Pages / Reports.php
give / src / Views / Admin / Pages Last commit date
templates 4 years ago Reports.php 4 years ago
Reports.php
118 lines
1 <?php
2
3 /**
4 * Reports Page class
5 *
6 * @package Give
7 */
8
9 namespace Give\Views\Admin\Pages;
10
11 use Give\Helpers\EnqueueScript;
12
13 defined('ABSPATH') || exit;
14
15 /**
16 * Manages reports admin page
17 */
18 class Reports
19 {
20 /**
21 * Initialize Reports Admin page
22 */
23 public function init()
24 {
25 add_action('admin_menu', [$this, 'add_page']);
26 add_action('admin_enqueue_scripts', [$this, 'enqueue_scripts']);
27 }
28
29 public function __construct()
30 {
31 // Do nothing
32 }
33
34 // Enqueue app scripts
35 public function enqueue_scripts($base)
36 {
37 if ($base !== 'give_forms_page_give-reports') {
38 return;
39 }
40
41 if (isset($_GET['legacy'])) {
42 $script = "
43 jQuery(document).ready(() => {
44 const anchors = [].slice.call(document.querySelectorAll('a[href*=give-reports]'));
45 anchors.forEach((anchor) => {
46 if (anchor.getAttribute('id') === 'new-reports-link') {
47 return;
48 }
49 anchor.setAttribute('href', anchor.getAttribute('href') + '&legacy=true');
50 });
51 });
52 ";
53 wp_add_inline_script('jquery', $script);
54
55 return;
56 }
57
58 $data = [
59 'legacyReportsUrl' => admin_url('/edit.php?post_type=give_forms&page=give-reports&legacy=true'),
60 'allTimeStart' => $this->get_all_time_start(),
61 'currencies' => array_keys(give_get_currencies_list()),
62 'currency' => give_get_currency(),
63 'testMode' => give_is_test_mode(),
64 ];
65
66 EnqueueScript::make('give-admin-reports-v3-js', 'assets/dist/js/admin-reports.js')
67 ->loadInFooter()
68 ->dependencies(['wp-api'])
69 ->registerTranslations()
70 ->registerLocalizeData('giveReportsData', $data)->enqueue();
71 }
72
73 // Add Reports submenu page to admin menu
74 public function add_page()
75 {
76 $render = [$this, 'render_template'];
77 if (isset($_GET['legacy'])) {
78 $render = [Give()->give_settings, 'output'];
79 }
80
81 add_submenu_page(
82 'edit.php?post_type=give_forms',
83 esc_html__('Donation Reports', 'give'),
84 esc_html__('Reports', 'give'),
85 'view_give_reports',
86 'give-reports',
87 $render
88 );
89 }
90
91 public function render_template()
92 {
93 include_once GIVE_PLUGIN_DIR . 'src/Views/Admin/Pages/templates/reports-template.php';
94 }
95
96 public function get_all_time_start()
97 {
98 $start = date_create('01/01/2015');
99 $end = date_create();
100
101 // Setup donation query args (get sanitized start/end date from request)
102 $args = [
103 'number' => 1,
104 'paged' => 1,
105 'orderby' => 'date',
106 'order' => 'ASC',
107 'start_date' => $start->format('Y-m-d H:i:s'),
108 'end_date' => $end->format('Y-m-d H:i:s'),
109 ];
110
111 // Get array of 50 recent donations
112 $donations = new \Give_Payments_Query($args);
113 $donations = $donations->get_payments();
114
115 return isset($donations[0]) ? $donations[0]->date : $start->format('Y-m-d H:i:s');
116 }
117 }
118