Completed
Push — master ( 881903...6c57e3 )
by Stephanie
15s queued 11s
created

FrmInboxController   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
dl 0
loc 74
rs 10
c 0
b 0
f 0
wmc 7
lcom 0
cbo 4

5 Methods

Rating   Name   Duplication   Size   Complexity  
A menu() 0 5 1
A get_notice_count() 0 6 1
A inbox() 0 11 1
A dismiss_message() 0 12 2
A add_tracking_request() 0 18 2
1
<?php
2
/**
3
 * @since 4.05
4
 */
5
class FrmInboxController {
6
7
	/**
8
	 * @since 4.05
9
	 */
10
	public static function menu() {
11
		$unread = self::get_notice_count();
12
13
		add_submenu_page( 'formidable', 'Formidable | ' . __( 'Inbox', 'formidable' ), __( 'Inbox', 'formidable' ) . $unread, 'frm_change_settings', 'formidable-inbox', 'FrmInboxController::inbox' );
14
	}
15
16
	/**
17
	 * @since 4.05
18
	 */
19
	private static function get_notice_count() {
20
		FrmFormMigratorsHelper::maybe_add_to_inbox();
21
22
		$inbox  = new FrmInbox();
23
		return $inbox->unread_html();
24
	}
25
26
	/**
27
	 * @since 4.05
28
	 */
29
	public static function inbox() {
30
		FrmAppHelper::include_svg();
31
		self::add_tracking_request();
32
33
		$inbox    = new FrmInbox();
34
		$messages = $inbox->get_messages();
35
		$messages = array_reverse( $messages );
36
		$user     = wp_get_current_user();
37
38
		include( FrmAppHelper::plugin_path() . '/classes/views/inbox/list.php' );
39
	}
40
41
	/**
42
	 * @since 4.05
43
	 */
44
	public static function dismiss_message() {
45
		check_ajax_referer( 'frm_ajax', 'nonce' );
46
		FrmAppHelper::permission_check( 'frm_change_settings' );
47
48
		$key = FrmAppHelper::get_param( 'key', '', 'post', 'sanitize_text_field' );
49
		if ( ! empty( $key ) ) {
50
			$message = new FrmInbox();
51
			$message->dismiss( $key );
52
		}
53
54
		wp_die();
55
	}
56
57
	/**
58
	 * @since 4.05
59
	 */
60
	private static function add_tracking_request() {
61
		$settings = FrmAppHelper::get_settings();
62
		if ( $settings->tracking ) {
63
			return;
64
		}
65
66
		$link = admin_url( 'admin.php?page=formidable-settings&t=misc_settings' );
67
68
		$message = new FrmInbox();
69
		$message->add_message(
70
			array(
71
				'key'     => 'usage',
72
				'message' => 'Gathering usage data allows us to improve Formidable. Your forms will be considered as we evaluate new features, judge the quality of an update, or determine if an improvement makes sense. You can always visit the <a href="' . esc_url( $link ) . '">Global Settings</a> and choose to stop sharing data. <a href="https://formidableforms.com/knowledgebase/global-settings-overview/#kb-usage-tracking" target="_blank" rel="noopener noreferrer">Read more about what data we collect</a>.',
73
				'subject' => __( 'Help Formidable improve with usage tracking', 'formidable' ),
74
				'cta'     => '<a href="#" class="button-secondary frm-button-secondary frm_inbox_dismiss">Dismiss</a> <a href="' . esc_url( $link ) . '" class="button-primary frm-button-primary frm_inbox_dismiss">Activate usage tracking</a>',
75
			)
76
		);
77
	}
78
}
79