Completed
Pull Request — master (#1055)
by Rami
19:01
created

dashboard-widgets.php ➔ give_dashboard_sales_widget()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 77
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 33
nc 2
nop 0
dl 0
loc 77
rs 8.9342
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 23 and the first side effect is on line 14.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
/**
3
 * Dashboard Widgets
4
 *
5
 * @package     Give
6
 * @subpackage  Admin/Dashboard
7
 * @copyright   Copyright (c) 2016, WordImpress
8
 * @license     http://opensource.org/licenses/gpl-2.0.php 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>
50
51
			<p class="give-dashboard-happy-day"><?php
52
				printf(
53
				/* translators: %s: day of the week */
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 );
61
				echo give_currency_filter( give_format_amount( $earnings_today ) );
62
			?></p>
63
64
			<p class="give-orders-today"><?php
65
				$donations_today = $stats->get_sales( 0, 'today', false );
66
				printf(
67
					/* translators: %s: daily donation count */
68
					esc_html__( '%s donations today', 'give' ),
69
					give_format_amount( $donations_today, 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' ) ) ); ?></p>
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' ) ) ); ?></p>
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' ) ) ) ?></p>
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 ) ) ) ?></p>
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( '<a class="give-forms-count" href="edit.php?post_type=give_forms">%1$s</a>', $text );
141
		} else {
142
			$text = sprintf( '<span class="give-forms-count">%1$s</span>', $text );
143
		}
144
145
		$items[] = $text;
146
	}
147
148
	return $items;
149
}
150
151
add_filter( 'dashboard_glance_items', 'give_dashboard_at_a_glance_widget', 1, 1 );
152