PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.7.2
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.7.2
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/FrmPluginSearch.php +22 -29 6.276.7.2 View file →
@@ -25,12 +25,12 @@
25 25
26 26 /**
27 27 * Add actions and filters only if this is the plugin installation screen and it's the first page.
28 28 *
29 + * @param object $screen WP Screen object.
30 + *
29 31 * @since 4.12
30 32 *
31 - * @param object $screen WP Screen object.
32 - *
33 33 * @return void
34 34 */
35 35 public function start( $screen ) {
36 36 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
@@ -57,19 +57,13 @@
57 57 if ( empty( $args->search ) ) {
58 58 return $result;
59 59 }
60 60
61 - if ( is_wp_error( $result ) ) {
62 - // This may happen if the request failed due to an internet connection issue.
63 - return $result;
64 - }
65 -
66 61 $addon_list = $this->get_addons();
67 62
68 63 // Lowercase, trim, remove punctuation/special chars, decode url, remove 'formidable'.
69 64 $normalized_term = $this->search_to_array( $args->search );
70 -
71 - if ( ! $normalized_term ) {
65 + if ( empty( $normalized_term ) ) {
72 66 // Don't add anything extra.
73 67 return $result;
74 68 }
75 69
@@ -74,9 +68,9 @@
74 68 }
75 69
76 70 $matching_addon = $this->matching_addon( $addon_list, $normalized_term );
77 71
78 - if ( ! $matching_addon || ! $this->should_display_hint( $matching_addon ) ) {
72 + if ( empty( $matching_addon ) || ! $this->should_display_hint( $matching_addon ) ) {
79 73 return $result;
80 74 }
81 75
82 76 $inject = (array) $this->get_plugin_data();
@@ -82,17 +76,17 @@
82 76 $inject = (array) $this->get_plugin_data();
83 77 $overrides = array(
84 78 // Helps to determine if that an injected card.
85 79 'plugin-search' => true,
86 - 'name' => sprintf(
80 + 'name' => sprintf(
87 81 /* translators: Formidable addon name */
88 82 esc_html_x( 'Formidable %s', 'Formidable Addon Name', 'formidable' ),
89 83 $addon_list[ $matching_addon ]['name']
90 84 ),
91 - 'addon' => $addon_list[ $matching_addon ]['slug'],
92 - 'short_description' => $addon_list[ $matching_addon ]['excerpt'],
93 - 'slug' => self::$slug,
94 - 'version' => $addon_list[ $matching_addon ]['version'],
85 + 'addon' => $addon_list[ $matching_addon ]['slug'],
86 + 'short_description' => $addon_list[ $matching_addon ]['excerpt'],
87 + 'slug' => self::$slug,
88 + 'version' => $addon_list[ $matching_addon ]['version'],
95 89 );
96 90
97 91 if ( ! empty( $addon_list[ $matching_addon ]['external'] ) ) {
98 92 unset( $overrides['name'] );
@@ -129,9 +123,10 @@
129 123 if ( ! isset( $addon_opts['search_terms'] ) ) {
130 124 $addon_opts['search_terms'] = '';
131 125 }
132 126
133 - $addon_terms = $this->search_to_array( $addon_opts['search_terms'] . ' ' . $addon_opts['name'] );
127 + $addon_terms = $this->search_to_array( $addon_opts['search_terms'] . ' ' . $addon_opts['name'] );
128 +
134 129 $matched_terms = array_intersect( $addon_terms, $normalized_term );
135 130
136 131 if ( count( $matched_terms ) === count( $normalized_term ) ) {
137 132 $matching_addon = $addon_id;
@@ -187,12 +182,12 @@
187 182
188 183 /**
189 184 * Modify URL used to fetch to plugin information so it pulls Formidable plugin page.
190 185 *
186 + * @param string $url URL to load in dialog pulling the plugin page from wporg.
187 + *
191 188 * @since 4.12
192 189 *
193 - * @param string $url URL to load in dialog pulling the plugin page from wporg.
194 - *
195 190 * @return string The URL with 'formidable' instead of 'frm-plugin-search'.
196 191 */
197 192 public function plugin_details( $url ) {
198 193 return false !== stripos( $url, 'tab=plugin-information&plugin=' . self::$slug )
@@ -206,10 +201,9 @@
206 201 * @return void
207 202 */
208 203 private function maybe_dismiss() {
209 204 $addon = FrmAppHelper::get_param( 'frm-dismiss', '', 'get', 'absint' );
210 -
211 - if ( $addon ) {
205 + if ( ! empty( $addon ) ) {
212 206 $this->add_to_dismissed_hints( $addon );
213 207 }
214 208 }
215 209
@@ -221,9 +215,9 @@
221 215 * @return array List of dismissed hints.
222 216 */
223 217 protected function get_dismissed_hints() {
224 218 $dismissed_hints = get_option( self::$dismissed_opt );
225 - return $dismissed_hints && is_array( $dismissed_hints ) ? $dismissed_hints : array();
219 + return ! empty( $dismissed_hints ) && is_array( $dismissed_hints ) ? $dismissed_hints : array();
226 220 }
227 221
228 222 /**
229 223 * Save the hint in the list of dismissed hints.
@@ -265,9 +259,8 @@
265 259 * Take a raw search query and return something a bit more standardized and
266 260 * easy to work with.
267 261 *
268 262 * @param string $term The raw search term.
269 - *
270 263 * @return string A simplified/sanitized version.
271 264 */
272 265 private function sanitize_search_term( $term ) {
273 266 $term = strtolower( urldecode( $term ) );
@@ -275,9 +268,11 @@
275 268 // remove non-alpha/space chars.
276 269 $term = preg_replace( '/[^a-z ]/', '', $term );
277 270
278 271 // remove strings that don't help matches.
279 - return trim( str_replace( array( 'formidable', 'free', 'wordpress', 'wp ', 'plugin' ), '', $term ) );
272 + $term = trim( str_replace( array( 'formidable', 'free', 'wordpress', 'wp ', 'plugin' ), '', $term ) );
273 +
274 + return $term;
280 275 }
281 276
282 277 /**
283 278 * @since 4.12
@@ -282,9 +277,8 @@
282 277 /**
283 278 * @since 4.12
284 279 *
285 280 * @param string $terms
286 - *
287 281 * @return array
288 282 */
289 283 private function search_to_array( $terms ) {
290 284 $terms = $this->sanitize_search_term( $terms );
@@ -306,9 +300,9 @@
306 300
307 301 // By the time this filter is applied, self_admin_url was already applied and we don't need it anymore.
308 302 remove_filter( 'self_admin_url', array( $this, 'plugin_details' ) );
309 303
310 - $links = array();
304 + $links = array();
311 305 $is_installed = $this->is_installed( $plugin['plugin'] );
312 306 $is_active = is_plugin_active( $plugin['plugin'] );
313 307
314 308 // Plugin installed, active, feature not enabled; prompt to enable.
@@ -313,17 +307,17 @@
313 307
314 308 // Plugin installed, active, feature not enabled; prompt to enable.
315 309 if ( ! $is_active && $is_installed ) {
316 310 if ( current_user_can( 'activate_plugins' ) ) {
317 - $activate_url = add_query_arg(
311 + $activate_url = add_query_arg(
318 312 array(
319 - 'action' => 'activate',
313 + 'action' => 'activate',
320 314 '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin['plugin'] ),
321 315 'plugin' => $plugin['plugin'],
322 316 ),
323 317 admin_url( 'plugins.php' )
324 318 );
325 - $links['frm_get_started'] = '<a href="' . esc_url( $activate_url ) . '" class="button activate-now" aria-label="Activate ' . esc_attr( $plugin['name'] ) . '">' . __( 'Activate', 'formidable' ) . '</a>'; // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
319 + $links['frm_get_started'] = '<a href="' . esc_url( $activate_url ) . '" class="button activate-now" aria-label="Activate ' . esc_attr( $plugin['name'] ) . '">' . __( 'Activate', 'formidable' ) . '</a>';
326 320 }
327 321 } elseif ( ! $is_active && isset( $plugin['url'] ) ) {
328 322 // Go to the add-ons page to install.
329 323 $links[] = '<a
@@ -353,9 +347,8 @@
353 347 }
354 348
355 349 /**
356 350 * @param string $plugin
357 - *
358 351 * @return bool
359 352 */
360 353 protected function is_installed( $plugin ) {
361 354 $all_plugins = FrmAppHelper::get_plugins();