PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.0
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.0
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/controllers/FrmUsageController.php +5 -134 6.265.0 View file →
@@ -4,49 +4,27 @@
4 4 }
5 5
6 6 /**
7 7 * @todo Show opt-in popup after plugin activation.
8 - *
9 8 * @since 3.06.04
10 9 */
11 10 class FrmUsageController {
12 11
13 12 /**
14 - * Option name of flows data.
15 - *
16 - * @since 6.16.1
17 - *
18 - * @var string
19 - */
20 - const FLOWS_ACTION_NAME = 'frm_usage_tracking_flows';
21 -
22 - /**
23 13 * Randomize the first send to prevent our servers from crashing.
24 14 *
25 15 * @since 3.06.04
26 - *
27 - * @return void
28 16 */
29 17 public static function schedule_send() {
30 - $timestamp = wp_next_scheduled( 'formidable_send_usage' );
31 -
32 - if ( ! self::tracking_allowed() ) {
33 - if ( $timestamp ) {
34 - // Remove the scheduled event if it's not allowed and it's scheduled.
35 - wp_unschedule_event( $timestamp, 'formidable_send_usage' );
36 - }
18 + if ( wp_next_scheduled( 'formidable_send_usage' ) ) {
37 19 return;
38 20 }
39 21
40 - if ( $timestamp ) {
41 - return;
42 - }
43 -
44 22 $tracking = array(
45 - 'day' => random_int( 0, 6 ) * DAY_IN_SECONDS,
46 - 'hour' => random_int( 0, 23 ) * HOUR_IN_SECONDS,
47 - 'minute' => random_int( 0, 59 ) * MINUTE_IN_SECONDS,
48 - 'second' => random_int( 0, 59 ),
23 + 'day' => rand( 0, 6 ) * DAY_IN_SECONDS,
24 + 'hour' => rand( 0, 23 ) * HOUR_IN_SECONDS,
25 + 'minute' => rand( 0, 59 ) * MINUTE_IN_SECONDS,
26 + 'second' => rand( 0, 59 ),
49 27 );
50 28
51 29 $offset = array_sum( $tracking );
52 30 $init_send = strtotime( 'next sunday' ) + $offset;
@@ -57,12 +35,8 @@
57 35 /**
58 36 * Adds once weekly to the existing schedules.
59 37 *
60 38 * @since 3.06.04
61 - *
62 - * @param array $schedules Schedules.
63 - *
64 - * @return array
65 39 */
66 40 public static function add_schedules( $schedules = array() ) {
67 41 $schedules['weekly'] = array(
68 42 'interval' => DAY_IN_SECONDS * 7,
@@ -71,114 +45,11 @@
71 45 return $schedules;
72 46 }
73 47
74 48 /**
75 - * Checks if tracking is allowed.
76 - *
77 - * @since 6.16.3
78 - *
79 - * @return bool
80 - */
81 - public static function tracking_allowed() {
82 - $settings = FrmAppHelper::get_settings();
83 - return $settings->tracking;
84 - }
85 -
86 - /**
87 49 * @since 3.06.04
88 - *
89 - * @return void
90 50 */
91 51 public static function send_snapshot() {
92 52 $usage = new FrmUsage();
93 53 $usage->send_snapshot();
94 - }
95 -
96 - /**
97 - * Loads scripts.
98 - *
99 - * @since 6.16.1
100 - *
101 - * @return void
102 - */
103 - public static function load_scripts() {
104 - if ( self::is_forms_list_page() || FrmAppHelper::is_admin_page( 'formidable-form-templates' ) || FrmAppHelper::is_admin_page() ) {
105 - wp_enqueue_script( 'frm-usage-tracking', FrmAppHelper::plugin_url() . '/js/admin/usage-tracking.js', array( 'formidable_dom' ), FrmAppHelper::$plug_version, true );
106 - }
107 - }
108 -
109 - /**
110 - * Checks if is forms list page.
111 - *
112 - * @since 6.16.1
113 - *
114 - * @return bool
115 - */
116 - private static function is_forms_list_page() {
117 - if ( ! FrmAppHelper::on_form_listing_page() ) {
118 - return false;
119 - }
120 -
121 - // Exclude Trash page.
122 - $form_type = FrmAppHelper::simple_get( 'form_type' );
123 - return $form_type && 'published' === $form_type;
124 - }
125 -
126 - /**
127 - * AJAX handler to track flows.
128 - *
129 - * @since 6.16.1
130 - *
131 - * @return void
132 - */
133 - public static function ajax_track_flows() {
134 - FrmAppHelper::permission_check( 'frm_view_forms' );
135 - check_ajax_referer( 'frm_ajax', 'nonce' );
136 -
137 - $key = FrmAppHelper::get_post_param( 'key', '', 'sanitize_text_field' );
138 - $value = FrmAppHelper::get_post_param( 'value', '', 'sanitize_text_field' );
139 -
140 - self::update_flows_data( $key, $value );
141 -
142 - wp_send_json_success();
143 - }
144 -
145 - /**
146 - * Updates flows data.
147 - *
148 - * @since 6.16.1
149 - *
150 - * @param string $key Flow key.
151 - * @param string $value Flow value.
152 - *
153 - * @return void
154 - */
155 - public static function update_flows_data( $key, $value ) {
156 - $flows_data = self::get_flows_data();
157 -
158 - if ( '' === $key || '' === $value ) {
159 - return;
160 - }
161 -
162 - if ( ! isset( $flows_data[ $key ] ) ) {
163 - $flows_data[ $key ] = array();
164 - }
165 -
166 - if ( ! isset( $flows_data[ $key ][ $value ] ) ) {
167 - $flows_data[ $key ][ $value ] = 0;
168 - }
169 -
170 - $flows_data[ $key ][ $value ]++;
171 - update_option( self::FLOWS_ACTION_NAME, $flows_data );
172 - }
173 -
174 - /**
175 - * Get flows data.
176 - *
177 - * @since 6.16.1
178 - *
179 - * @return array
180 - */
181 - public static function get_flows_data() {
182 - return get_option( self::FLOWS_ACTION_NAME, array() );
183 54 }
184 55 }