Test Failed
Push — release/1.8.12 ( b58a2f...d255b1 )
by Ravinder
375:09 queued 372:17
created

includes/admin/dashboard-widgets.php (13 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Dashboard Widgets
4
 *
5
 * @package     Give
6
 * @subpackage  Admin/Dashboard
7
 * @copyright   Copyright (c) 2016, WordImpress
8
 * @license     https://opensource.org/licenses/gpl-license GNU Public License
9
 * @since       1.0
10
 */
11
12
// Exit if accessed directly.
13
if ( ! defined( 'ABSPATH' ) ) {
14
	exit;
15
}
16
17
/**
18
 * Registers the dashboard widgets
19
 *
20
 * @since  1.0
21
 * @return void
22
 */
23
function give_register_dashboard_widgets() {
24
	if ( current_user_can( apply_filters( 'give_dashboard_stats_cap', 'view_give_reports' ) ) ) {
25
		wp_add_dashboard_widget( 'give_dashboard_sales', esc_html__( 'Give: Donation Statistics', 'give' ), 'give_dashboard_sales_widget' );
26
	}
27
}
28
29
add_action( 'wp_dashboard_setup', 'give_register_dashboard_widgets', 10 );
30
31
/**
32
 * Sales Summary Dashboard Widget
33
 *
34
 * Builds and renders the statistics dashboard widget. This widget displays the current month's donations.
35
 *
36
 * @since       1.0
37
 * @return void
38
 */
39
function give_dashboard_sales_widget() {
40
41
	if ( ! current_user_can( apply_filters( 'give_dashboard_stats_cap', 'view_give_reports' ) ) ) {
42
		return;
43
	}
44
	$stats = new Give_Payment_Stats; ?>
45
46
	<div class="give-dashboard-widget">
47
48
		<div class="give-dashboard-today give-clearfix">
49
			<h3 class="give-dashboard-date-today"><?php echo date( _x( 'F j, Y', 'dashboard widget', 'give' ) ); ?></h3>
0 ignored issues
show
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'date'
Loading history...
50
51
			<p class="give-dashboard-happy-day"><?php
52
				printf(
53
				/* translators: %s: day of the week */
0 ignored issues
show
This line of the multi-line function call does not seem to be indented correctly. Expected 20 spaces, but found 16.
Loading history...
54
					esc_html__( 'Happy %s!', 'give' ),
55
					date( 'l', current_time( 'timestamp' ) )
56
				);
57
			?></p>
58
59
			<p class="give-dashboard-today-earnings"><?php
60
				$earnings_today = $stats->get_earnings( 0, 'today', false );
0 ignored issues
show
'today' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
61
				echo give_currency_filter( give_format_amount( $earnings_today, array( 'sanitize' => false ) ) );
0 ignored issues
show
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'give_currency_filter'
Loading history...
62
			?></p>
63
64
			<p class="give-orders-today"><?php
65
				$donations_today = $stats->get_sales( 0, 'today', false );
0 ignored issues
show
'today' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
66
				printf(
67
					/* translators: %s: daily donation count */
68
					esc_html__( '%s donations today', 'give' ),
69
					give_format_amount( $donations_today, array( 'decimal' => false, 'sanitize' => false ) )
70
				);
71
			?></p>
72
73
		</div>
74
75
76
		<table class="give-table-stats">
77
			<thead style="display: none;">
78
			<tr>
79
				<th><?php esc_html_e( 'This Week', 'give' ); ?></th>
80
				<th><?php esc_html_e( 'This Month', 'give' ); ?></th>
81
				<th><?php esc_html_e( 'Past 30 Days', 'give' ); ?></th>
82
			</tr>
83
			</thead>
84
			<tbody>
85
			<tr id="give-table-stats-tr-1">
86
				<td>
87
					<p class="give-dashboard-stat-total"><?php echo give_currency_filter( give_format_amount( $stats->get_earnings( 0, 'this_week' ), array( 'sanitize' => false ) ) ); ?></p>
0 ignored issues
show
'this_week' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'give_currency_filter'
Loading history...
88
89
					<p class="give-dashboard-stat-total-label"><?php esc_html_e( 'This Week', 'give' ); ?></p>
90
				</td>
91
				<td>
92
					<p class="give-dashboard-stat-total"><?php echo give_currency_filter( give_format_amount( $stats->get_earnings( 0, 'this_month' ), array( 'sanitize' => false ) ) ); ?></p>
0 ignored issues
show
'this_month' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'give_currency_filter'
Loading history...
93
94
					<p class="give-dashboard-stat-total-label"><?php esc_html_e( 'This Month', 'give' ); ?></p>
95
				</td>
96
			</tr>
97
			<tr id="give-table-stats-tr-2">
98
				<td>
99
					<p class="give-dashboard-stat-total"><?php echo give_currency_filter( give_format_amount( $stats->get_earnings( 0, 'last_month' ), array( 'sanitize' => false ) ) ) ?></p>
0 ignored issues
show
'last_month' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'give_currency_filter'
Loading history...
100
101
					<p class="give-dashboard-stat-total-label"><?php esc_html_e( 'Last Month', 'give' ); ?></p>
102
				</td>
103
				<td>
104
					<p class="give-dashboard-stat-total"><?php echo give_currency_filter( give_format_amount( $stats->get_earnings( 0, 'this_year', false ), array( 'decimal' => false, 'sanitize' => false ) ) ) ?></p>
0 ignored issues
show
'this_year' is of type string, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
Expected a sanitizing function (see Codex for 'Data Validation'), but instead saw 'give_currency_filter'
Loading history...
105
106
					<p class="give-dashboard-stat-total-label"><?php esc_html_e( 'This Year', 'give' ); ?></p>
107
				</td>
108
			</tr>
109
			</tbody>
110
		</table>
111
112
	</div>
113
114
	<?php
115
}
116
117
/**
118
 * Add donation forms count to dashboard "At a glance" widget
119
 *
120
 * @since  1.0
121
 *
122
 * @param $items
123
 *
124
 * @return array
125
 */
126
function give_dashboard_at_a_glance_widget( $items ) {
127
	$num_posts = wp_count_posts( 'give_forms' );
128
129
	if ( $num_posts && $num_posts->publish ) {
130
131
		$text = sprintf(
132
			/* translators: %s: number of posts published */
133
			_n( '%s Give Form', '%s Give Forms', $num_posts->publish, 'give' ),
134
			$num_posts->publish
135
		);
136
137
		$text = sprintf( $text, number_format_i18n( $num_posts->publish ) );
138
139
		if ( current_user_can( 'edit_give_forms', get_current_user_id() ) ) {
140
			$text = sprintf(
141
				'<a class="give-forms-count" href="%1$s">%2$s</a>',
142
				admin_url( 'edit.php?post_type=give_forms' ),
143
				$text
144
			);
145
		} else {
146
			$text = sprintf(
147
				'<span class="give-forms-count">%1$s</span>',
148
				$text
149
			);
150
		}
151
152
		$items[] = $text;
153
	}
154
155
	return $items;
156
}
157
158
add_filter( 'dashboard_glance_items', 'give_dashboard_at_a_glance_widget', 1, 1 );
159