PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 3.06.06
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v3.06.06
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/models/FrmReviews.php +5 -120 6.5.33.06.06 View file →
@@ -1,8 +1,5 @@
1 1 <?php
2 -if ( ! defined( 'ABSPATH' ) ) {
3 - die( 'You are not allowed to call this page directly.' );
4 -}
5 2
6 3 class FrmReviews {
7 4
8 5 private $option_name = 'frm_reviewed';
@@ -8,16 +5,12 @@
8 5 private $option_name = 'frm_reviewed';
9 6
10 7 private $review_status = array();
11 8
12 - private $inbox_key = 'review';
13 -
14 9 /**
15 10 * Add admin notices as needed for reviews
16 11 *
17 12 * @since 3.04.03
18 - *
19 - * @return void
20 13 */
21 14 public function review_request() {
22 15
23 16 // Only show the review request to high-level users on Formidable pages
@@ -44,10 +37,8 @@
44 37 /**
45 38 * When was the review request last dismissed?
46 39 *
47 40 * @since 3.04.03
48 - *
49 - * @return void
50 41 */
51 42 private function set_review_status() {
52 43 $user_id = get_current_user_id();
53 44 $review = get_user_meta( $user_id, $this->option_name, true );
@@ -61,10 +52,10 @@
61 52 // Set the review request to show in a week
62 53 update_user_meta( $user_id, $this->option_name, $default );
63 54 }
64 55
65 - $review = array_merge( $default, (array) $review );
66 - $review['asked'] = (int) $review['asked'];
56 + $review = array_merge( $default, (array) $review );
57 + $review['asked'] = (int) $review['asked'];
67 58 $this->review_status = $review;
68 59 }
69 60
70 61 /**
@@ -70,16 +61,15 @@
70 61 /**
71 62 * Maybe show review request
72 63 *
73 64 * @since 3.04.03
74 - *
75 - * @return void
65 + * @param int $asked
76 66 */
77 67 private function review() {
78 68
79 69 // show the review request 3 times, depending on the number of entries
80 70 $show_intervals = array( 50, 200, 500 );
81 - $asked = $this->review_status['asked'];
71 + $asked = $this->review_status['asked'];
82 72
83 73 if ( ! isset( $show_intervals[ $asked ] ) ) {
84 74 return;
85 75 }
@@ -92,9 +82,8 @@
92 82 if ( $entries < $count ) {
93 83 // check the entry count again in a week
94 84 $this->review_status['time'] = time();
95 85 update_user_meta( $user->ID, $this->option_name, $this->review_status );
96 -
97 86 return;
98 87 }
99 88
100 89 if ( $entries <= 100 ) {
@@ -108,118 +97,16 @@
108 97 if ( ! empty( $name ) ) {
109 98 $name = ' ' . $name;
110 99 }
111 100
112 - $title = sprintf(
113 - /* translators: %s: User name, %2$d: number of entries */
114 - esc_html__( 'Congratulations%1$s! You have collected %2$d form submissions.', 'formidable' ),
115 - esc_html( $name ),
116 - absint( $entries )
117 - );
118 -
119 - $this->add_to_inbox( $title, $name, $asked );
120 -
121 101 // We have a candidate! Output a review message.
122 102 include( FrmAppHelper::plugin_path() . '/classes/views/shared/review.php' );
123 103 }
124 104
125 105 /**
126 - * @param string $title
127 - * @param string $name
128 - * @param int $asked
129 - *
130 - * @return void
131 - */
132 - private function add_to_inbox( $title, $name, $asked ) {
133 - $message = new FrmInbox();
134 - $requests = $message->get_messages();
135 - $key = $this->inbox_key . ( $asked ? $asked : '' );
136 -
137 - if ( isset( $requests[ $key ] ) ) {
138 - return;
139 - }
140 -
141 - // Remove previous requests.
142 - if ( $asked > 0 ) {
143 - $message->remove( $this->inbox_key );
144 - }
145 - if ( $asked > 1 ) {
146 - $message->remove( $this->inbox_key . '1' );
147 - }
148 -
149 - if ( $this->has_later_request( $requests, $asked ) ) {
150 - // Don't add a request that has already been passed.
151 - return;
152 - }
153 -
154 - $message->add_message(
155 - array(
156 - 'key' => $key,
157 - 'message' => __( 'If you are enjoying Formidable, could you do me a BIG favor and give us a review to help me grow my little business and boost our motivation?', 'formidable' ) . '<br/>' .
158 - '- Steph Wells<br/>' .
159 - '<span>' . esc_html__( 'Co-Founder and CTO of Formidable Forms', 'formidable' ) . '<span>',
160 - 'subject' => str_replace( $name, '', $title ),
161 - 'cta' => '<a href="https://wordpress.org/support/plugin/formidable/reviews/?filter=5#new-post" class="frm-dismiss-review-notice frm-review-out button frm-button-secondary" data-link="yes" target="_blank" rel="noopener noreferrer">' .
162 - esc_html__( 'Ok, you deserve it', 'formidable' ) . '</a>',
163 - 'type' => 'feedback',
164 - )
165 - );
166 - }
167 -
168 - /**
169 - * If there are already later requests, don't add it to the inbox again.
170 - *
171 - * @since 4.05.02
172 - *
173 - * @return bool
174 - */
175 - private function has_later_request( $requests, $asked ) {
176 - return isset( $requests[ $this->inbox_key . ( $asked + 1 ) ] ) || isset( $requests[ $this->inbox_key . ( $asked + 2 ) ] );
177 - }
178 -
179 - /**
180 - * @since 4.05.02
181 - *
182 - * @return array
183 - */
184 - private function inbox_keys() {
185 - return array(
186 - $this->inbox_key,
187 - $this->inbox_key . '1',
188 - $this->inbox_key . '2',
189 - );
190 - }
191 -
192 - /**
193 - * @since 4.05.01
194 - *
195 - * @return void
196 - */
197 - private function set_inbox_dismissed() {
198 - $message = new FrmInbox();
199 - foreach ( $this->inbox_keys() as $key ) {
200 - $message->dismiss( $key );
201 - }
202 - }
203 -
204 - /**
205 - * @since 4.05.01
206 - *
207 - * @return void
208 - */
209 - private function set_inbox_read() {
210 - $message = new FrmInbox();
211 - foreach ( $this->inbox_keys() as $key ) {
212 - $message->mark_read( $key );
213 - }
214 - }
215 -
216 - /**
217 106 * Save the request to hide the review
218 107 *
219 108 * @since 3.04.03
220 - *
221 - * @return void
222 109 */
223 110 public function dismiss_review() {
224 111 FrmAppHelper::permission_check( 'frm_change_settings' );
225 112 check_ajax_referer( 'frm_ajax', 'nonce' );
@@ -231,18 +118,16 @@
231 118 }
232 119
233 120 if ( isset( $review['dismissed'] ) && $review['dismissed'] === 'done' ) {
234 121 // if feedback was submitted, don't update it again when the review is dismissed
235 - $this->set_inbox_dismissed();
236 122 wp_die();
237 123 }
238 124
239 - $dismissed = FrmAppHelper::get_post_param( 'link', 'no', 'sanitize_text_field' );
125 + $dismissed = FrmAppHelper::get_post_param( 'link', 'no', 'sanitize_text_field' );
240 126 $review['time'] = time();
241 127 $review['dismissed'] = $dismissed === 'done' ? true : 'later';
242 128 $review['asked'] = isset( $review['asked'] ) ? $review['asked'] + 1 : 1;
243 129
244 130 update_user_meta( $user_id, $this->option_name, $review );
245 - $this->set_inbox_read();
246 131 wp_die();
247 132 }
248 133 }