PluginProbe ʕ •ᴥ•ʔ
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress / 2.17.1
Smash Balloon Social Post Feed – Simple Social Feeds for WordPress v2.17.1
4.8.1 trunk 1.0 1.1 1.12.1 1.2.3 1.2.4 1.2.5 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5 1.5.1 1.5.2 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.5.1 1.6.6 1.6.6.1 1.6.6.2 1.6.6.3 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.9.0 1.9.1 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.8.1 1.9.9 1.9.9.1 1.9.9.2 1.9.9.3 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.10 2.11 2.11.1 2.12 2.12.1 2.12.2 2.12.3 2.12.4 2.13 2.14 2.14.1 2.15 2.15.1 2.16 2.16.1 2.17 2.17.1 2.18 2.18.1 2.18.2 2.18.3 2.19 2.19.1 2.19.2 2.19.3 2.2 2.2.1 2.3 2.3.1 2.3.10 2.3.2 2.3.3 2.3.4 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.1.1 2.4.1.2 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.7 2.7.1 2.7.2 2.8 2.9 2.9.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.7.5 4.7.6 4.7.7
custom-facebook-feed / admin / class-cff-about.php
custom-facebook-feed / admin Last commit date
PluginSilentUpgrader.php 5 years ago PluginSilentUpgraderSkin.php 6 years ago addon-functions.php 6 years ago class-cff-about.php 6 years ago class-cff-new-user.php 5 years ago class-cff-notifications.php 5 years ago class-cff-tracking.php 5 years ago class-install-skin.php 6 years ago
class-cff-about.php
1354 lines
1 <?php
2
3 /**
4 * About Sbi admin page class.
5 *
6 * @since 2.4/5.5
7 */
8 class CFF_About {
9
10 /**
11 * Admin menu page slug.
12 *
13 * @since 2.4/5.5
14 *
15 * @var string
16 */
17 const SLUG = 'cff-about';
18
19 /**
20 * Default view for a page.
21 *
22 * @since 2.4/5.5
23 *
24 * @var string
25 */
26 const DEFAULT_TAB = 'about';
27
28 /**
29 * Array of license types, that are considered being top level and has no features difference.
30 *
31 * @since 2.4/5.5
32 *
33 * @var array
34 */
35 public static $licenses_top = array( 'pro', 'agency', 'ultimate', 'elite' );
36
37 /**
38 * List of features that licenses are different with.
39 *
40 * @since 2.4/5.5
41 *
42 * @var array
43 */
44 public static $licenses_features = array();
45
46 /**
47 * The current active tab.
48 *
49 * @since 2.4/5.5
50 *
51 * @var string
52 */
53 public $view;
54
55 /**
56 * The core views.
57 *
58 * @since 2.4/5.5
59 *
60 * @var array
61 */
62 public $views = array();
63
64 /**
65 * Primary class constructor.
66 *
67 * @since 2.4/5.5
68 */
69 public function __construct() {
70
71 // In old PHP we can't define this elsewhere.
72 self::$licenses_features = array(
73 'entries' => esc_html__( 'Media Display', 'custom-facebook-feed' ),
74 //'fields' => esc_html__( 'Layouts', 'custom-facebook-feed' ),
75 // 'templates' => esc_html__( 'Post Display', 'custom-facebook-feed' ),
76 //'conditionals' => esc_html__( 'Image and Video Display', 'custom-facebook-feed' ),
77 'addons' => esc_html__( 'Post Source', 'custom-facebook-feed' ),
78 'addons1' => esc_html__( 'Number of Posts', 'custom-facebook-feed' ),
79 'addons2' => esc_html__( 'Filtering', 'custom-facebook-feed' ),
80
81 //'marketing' => esc_html__( 'Filtering', 'custom-facebook-feed' ),
82 //'marketing' => esc_html__( 'Instagram Stories', 'custom-facebook-feed' ),
83 'payments' => esc_html__( 'Feed Layout', 'custom-facebook-feed' ),
84 'surveys' => esc_html__( 'Post Information', 'custom-facebook-feed' ),
85 'advanced' => esc_html__( 'Comments', 'custom-facebook-feed' ),
86 'extensions' => esc_html__( 'Extensions', 'custom-facebook-feed' ),
87 'support' => esc_html__( 'Customer Support', 'custom-facebook-feed' ),
88 );
89
90 // Maybe load tools page.
91 add_action( 'admin_init', array( $this, 'init' ) );
92 }
93
94 /**
95 * Determining if the user is viewing the our page, if so, party on.
96 *
97 * @since 2.4/5.5
98 */
99 public function init() {
100
101 // Check what page we are on.
102 $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
103
104 // Only load if we are actually on the settings page.
105 if ( self::SLUG !== $page ) {
106 return;
107 }
108
109 add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
110
111 /*
112 * Define the core views for the our tab.
113 */
114 $this->views = apply_filters(
115 'cff_admin_about_views',
116 array(
117 esc_html__( 'About Us', 'custom-facebook-feed' ) => array( 'about' ),
118 esc_html__( 'Getting Started', 'custom-facebook-feed' ) => array( 'getting-started' ),
119 )
120 );
121
122 $license = $this->get_license_type();
123
124 if (
125 (
126 $license === 'pro' ||
127 ! in_array( $license, self::$licenses_top, true )
128 )
129 //cff_debug()
130 ) {
131 $vs_tab_name = sprintf( /* translators: %1$s - current license type, %2$s - suggested license type. */
132 esc_html__( '%1$s vs %2$s', 'custom-facebook-feed' ),
133 ucfirst( $license ),
134 $this->get_next_license( $license )
135 );
136
137 $this->views[ $vs_tab_name ] = array( 'versus' );
138 }
139
140 // Determine the current active settings tab.
141 $this->view = ! empty( $_GET['view'] ) ? esc_html( $_GET['view'] ) : self::DEFAULT_TAB;
142
143 // If the user tries to load an invalid view - fallback to About Us.
144 if (
145 ! in_array( $this->view, call_user_func_array( 'array_merge', $this->views ), true ) &&
146 ! has_action( 'cff_admin_about_display_tab_' . sanitize_key( $this->view ) )
147 ) {
148 $this->view = self::DEFAULT_TAB;
149 }
150
151 add_action( 'cff_admin_page', array( $this, 'output' ) );
152
153 // Hook for addons.
154 do_action( 'cff_admin_about_init' );
155 }
156
157 /**
158 * Enqueue assets for the the page.
159 *
160 * @since 2.4/5.5
161 */
162 public function enqueues() {
163
164 wp_enqueue_script(
165 'jquery-matchheight',
166 CFF_PLUGIN_URL . 'js/jquery.matchHeight-min.js',
167 array( 'jquery' ),
168 '0.7.0',
169 false
170 );
171 }
172
173 /**
174 * Output the basic page structure.
175 *
176 * @since 2.4/5.5
177 */
178 public function output() {
179
180 $show_nav = false;
181 foreach ( $this->views as $view ) {
182 if ( in_array( $this->view, (array) $view, true ) ) {
183 $show_nav = true;
184 break;
185 }
186 }
187 ?>
188
189 <div id="cff-admin-about" class="wrap cff-admin-wrap">
190
191 <?php
192 if ( $show_nav ) {
193 $license = $this->get_license_type();
194 $next_license = $this->get_next_license( $license );
195 echo '<ul class="cff-admin-tabs">';
196 foreach ( $this->views as $label => $view ) {
197 $class = in_array( $this->view, $view, true ) ? 'active' : '';
198 echo '<li>';
199 printf(
200 '<a href="%s" class="%s">%s</a>',
201 esc_url( admin_url( 'admin.php?page=' . self::SLUG . '&view=' . sanitize_key( $view[0] ) ) ),
202 esc_attr( $class ),
203 esc_html( $label )
204 );
205 echo '</li>';
206 }
207 echo '</ul>';
208 }
209 ?>
210
211 <h1 class="cff-h1-placeholder"></h1>
212
213 <?php
214 switch ( $this->view ) {
215 case 'about':
216 $this->output_about();
217 break;
218 case 'getting-started':
219 $this->output_getting_started();
220 break;
221 case 'versus':
222 $this->output_versus();
223 break;
224 default:
225 do_action( 'cff_admin_about_display_tab_' . sanitize_key( $this->view ) );
226 break;
227 }
228 ?>
229
230 </div>
231
232 <?php
233 }
234
235 /**
236 * Display the About tab content.
237 *
238 * @since 2.4/5.5
239 */
240 protected function output_about() {
241
242 $this->output_about_info();
243 $this->output_about_addons();
244 }
245
246 /**
247 * Display the General Info section of About tab.
248 *
249 * @since 1.5.8
250 */
251 protected function output_about_info() {
252
253 ?>
254
255 <div class="cff-admin-about-section cff-admin-columns">
256
257 <div class="cff-admin-about-text" style="min-height: 340px;">
258 <h3>
259 <?php esc_html_e( 'Hello and welcome to the Custom Facebook Feed plugin, the most customizable, clean, and simple Facebook feed plugin in the world. At Smash Balloon, we build software that helps you create beautiful responsive social media feeds for your website in minutes.', 'custom-facebook-feed' ); ?>
260 </h3>
261
262 <p>
263 <?php esc_html_e( 'Smash Balloon is a fun-loving WordPress plugin development company birthed into existence in early 2013. We specialize in creating plugins that are not only intuitive and simple to use, but also designed to integrate seamlessly into your website and allow you to display your social media content in powerful and unique ways. Over 1 million awesome people have decided to actively use our plugins, which is an incredible honor that we don’t take lightly. This compels us to try to provide the quickest and most effective customer support that we can, blowing users away with the best customer service they’ve ever experienced.', 'custom-facebook-feed' ); ?>
264 </p>
265 <p>
266 <?php esc_html_e( 'We’re a small, but dedicated, team based in Minnesota in the USA.', 'custom-facebook-feed' ); ?>
267 </p>
268
269 </div>
270
271 <div class="cff-admin-about-image cff-admin-column-last">
272 <figure>
273 <img src="<?php echo CFF_PLUGIN_URL; ?>img/about/team.jpg" alt="<?php esc_attr_e( 'The Sbi Team photo', 'custom-facebook-feed' ); ?>">
274 <figcaption>
275 <?php esc_html_e( 'The Smash Balloon Team', 'custom-facebook-feed' ); ?><br>
276 </figcaption>
277 </figure>
278 </div>
279
280 </div>
281 <?php
282 }
283
284 /**
285 * Display the Addons section of About tab.
286 *
287 * @since 1.5.8
288 */
289 protected function output_about_addons() {
290
291 if ( ! current_user_can( 'manage_custom_facebook_feed_options' )
292 || version_compare( PHP_VERSION, '5.3.0' ) <= 0
293 || version_compare( get_bloginfo('version'), '4.6' , '<' ) ){
294 return;
295 }
296
297 $all_plugins = get_plugins();
298 $am_plugins = $this->get_am_plugins();
299
300 ?>
301 <div id="cff-admin-addons">
302 <div class="addons-container">
303 <h3><?php echo __( 'Our Other Plugins', 'custom-facebook-feed' ); ?></h3>
304 <?php
305 foreach ( $am_plugins as $plugin => $details ) :
306
307 $plugin_data = $this->get_plugin_data( $plugin, $details, $all_plugins );
308
309 if ( $plugin === 'wpforms-lite/wpforms.php' ) {
310 echo '<h3>' .__( 'Plugins We Recommend', 'custom-facebook-feed' ). '</h3>';
311 }
312
313 ?>
314 <div class="addon-container">
315 <div class="addon-item">
316 <div class="details cff-clear">
317 <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
318 <h5 class="addon-name">
319 <?php echo esc_html( $plugin_data['details']['name'] ); ?>
320 </h5>
321 <p class="addon-desc">
322 <?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
323 </p>
324 </div>
325 <div class="actions cff-clear">
326 <div class="status">
327 <strong>
328 <?php
329 printf(
330 /* translators: %s - addon status label. */
331 esc_html__( 'Status: %s', 'custom-facebook-feed' ),
332 '<span class="status-label ' . esc_attr( $plugin_data['status_class'] ) . '">' . wp_kses_post( $plugin_data['status_text'] ) . '</span>'
333 );
334 ?>
335 </strong>
336 </div>
337 <div class="action-button">
338 <button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="plugin">
339 <?php echo wp_kses_post( $plugin_data['action_text'] ); ?>
340 </button>
341 </div>
342 </div>
343 </div>
344 </div>
345 <?php endforeach; ?>
346 </div>
347 </div>
348 <?php
349 }
350
351 /**
352 * Get AM plugin data to display in the Addons section of About tab.
353 *
354 * @since 1.5.8
355 *
356 * @param string $plugin Plugin slug.
357 * @param array $details Plugin details.
358 * @param array $all_plugins List of all plugins.
359 *
360 * @return array
361 */
362 protected function get_plugin_data( $plugin, $details, $all_plugins ) {
363
364 $have_pro = ( ! empty( $details['pro'] ) && ! empty( $details['pro']['plug'] ) );
365 $show_pro = false;
366
367 $plugin_data = array();
368
369 if ( $have_pro ) {
370 if ( array_key_exists( $plugin, $all_plugins ) ) {
371 if ( is_plugin_active( $plugin ) ) {
372 $show_pro = true;
373 }
374 }
375 if ( array_key_exists( $details['pro']['plug'], $all_plugins ) ) {
376 $show_pro = true;
377 }
378 if ( $show_pro ) {
379 $plugin = $details['pro']['plug'];
380 $details = $details['pro'];
381 }
382 }
383
384 if ( array_key_exists( $plugin, $all_plugins ) ) {
385 if ( is_plugin_active( $plugin ) ) {
386 // Status text/status.
387 $plugin_data['status_class'] = 'status-active';
388 $plugin_data['status_text'] = esc_html__( 'Active', 'custom-facebook-feed' );
389 // Button text/status.
390 $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary disabled';
391 $plugin_data['action_text'] = esc_html__( 'Activated', 'custom-facebook-feed' );
392 $plugin_data['plugin_src'] = esc_attr( $plugin );
393 } else {
394 // Status text/status.
395 $plugin_data['status_class'] = 'status-inactive';
396 $plugin_data['status_text'] = esc_html__( 'Inactive', 'custom-facebook-feed' );
397 // Button text/status.
398 $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary';
399 $plugin_data['action_text'] = esc_html__( 'Activate', 'custom-facebook-feed' );
400 $plugin_data['plugin_src'] = esc_attr( $plugin );
401 }
402 } else {
403 // Doesn't exist, install.
404 // Status text/status.
405 $plugin_data['status_class'] = 'status-download';
406 if ( isset( $details['act'] ) && 'go-to-url' === $details['act'] ) {
407 $plugin_data['status_class'] = 'status-go-to-url';
408 }
409 $plugin_data['status_text'] = esc_html__( 'Not Installed', 'custom-facebook-feed' );
410 // Button text/status.
411 $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-primary';
412 $plugin_data['action_text'] = esc_html__( 'Install Plugin', 'custom-facebook-feed' );
413 $plugin_data['plugin_src'] = esc_url( $details['url'] );
414 }
415
416 $plugin_data['details'] = $details;
417
418 return $plugin_data;
419 }
420
421 /**
422 * Display the Getting Started tab content.
423 *
424 * @since 2.4/5.5
425 */
426 protected function output_getting_started() {
427
428 $license = $this->get_license_type();
429 ?>
430
431 <div class="cff-admin-about-section cff-admin-about-section-first-form" style="display:flex;">
432
433 <div class="cff-admin-about-section-first-form-text">
434
435 <h2>
436 <?php esc_html_e( 'Creating Your First Feed', 'custom-facebook-feed' ); ?>
437 </h2>
438
439 <p>
440 <?php esc_html_e( 'Want to get started creating your first feed with Custom Facebook Feed? By following the step by step instructions in this walkthrough, you can easily publish your first feed on your site.', 'custom-facebook-feed' ); ?>
441 </p>
442
443 <p>
444 <?php esc_html_e( 'Navigate to Facebook Feed in the admin sidebar to go the Configure page.', 'custom-facebook-feed' ); ?>
445 </p>
446
447 <p>
448 <?php esc_html_e( 'Click on the large blue button to connect your Facebook account.', 'custom-facebook-feed' ); ?>
449 </p>
450
451 <p>
452 <?php esc_html_e( 'Once you connect a Facebook account, you can display your feed on any post, page or widget using the shortcode [custom-facebook-feed]. You can also use the Custom Facebook Feed Gutenberg block if your site has the WordPress block editor enabled.', 'custom-facebook-feed' ); ?>
453 </p>
454
455 <ul class="list-plain">
456 <li>
457 <a href="https://smashballoon.com/can-display-feeds-multiple-facebook-pages/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=multiplefeeds" target="_blank" rel="noopener noreferrer">
458 <?php esc_html_e( 'Display Multiple Feeds', 'custom-facebook-feed' ); ?>
459 </a>
460 </li>
461 <li>
462 <a href="https://smashballoon.com/using-shortcode-options-customize-facebook-feeds/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=shortcode" target="_blank" rel="noopener noreferrer">
463 <?php esc_html_e( 'Shortcode Settings Guide', 'custom-facebook-feed' ); ?>
464 </a>
465 </li>
466 <li>
467 <a href="https://smashballoon.com/find-facebook-page-group-id/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=pageid" target="_blank" rel="noopener noreferrer">
468 <?php esc_html_e( 'Find My Page ID', 'custom-facebook-feed' ); ?>
469 </a>
470 </li>
471 </ul>
472
473 </div>
474
475 <div class="cff-admin-about-section-first-form-video">
476 <iframe src="https://www.youtube-nocookie.com/embed/0gykYq3JSrY?rel=0" width="540" height="304" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
477 </div>
478
479 </div>
480
481 <?php if ( ! in_array( $license, self::$licenses_top, true ) ) { ?>
482 <div class="cff-admin-about-section cff-admin-about-section-hero">
483
484 <div class="cff-admin-about-section-hero-main">
485 <h2>
486 <?php esc_html_e( 'Get Custom Facebook Feed Pro and Unlock all the Powerful Features', 'custom-facebook-feed' ); ?>
487 </h2>
488
489 <p class="bigger">
490 <?php
491 echo wp_kses(
492 __( 'Thanks for being a loyal Custom Facebook Feed Lite user. <strong>Upgrade to Custom Facebook Feed Pro</strong> to unlock all the awesome features and experience<br>why Custom Facebook Feed is the most popular Facebook feed plugin.', 'custom-facebook-feed' ),
493 array(
494 'br' => array(),
495 'strong' => array(),
496 )
497 );
498 ?>
499 </p>
500
501 <p>
502 <?php
503 printf(
504 wp_kses(
505 /* translators: %s - stars. */
506 __( 'We know that you will truly love Custom Facebook Feed. It has over <strong>1000+ five star ratings</strong> (%s) and is active on over 200,000 websites.', 'custom-facebook-feed' ),
507 array(
508 'strong' => array(),
509 )
510 ),
511 '<i class="fa fa-star" aria-hidden="true"></i>' .
512 '<i class="fa fa-star" aria-hidden="true"></i>' .
513 '<i class="fa fa-star" aria-hidden="true"></i>' .
514 '<i class="fa fa-star" aria-hidden="true"></i>' .
515 '<i class="fa fa-star" aria-hidden="true"></i>'
516 );
517 ?>
518 </p>
519 </div>
520
521 <div class="cff-admin-about-section-hero-extra">
522 <div class="cff-admin-columns">
523 <div class="cff-admin-column-50">
524 <ul class="list-features list-plain">
525 <li>
526 <i class="fa fa-check" aria-hidden="true"></i>
527 <?php esc_html_e( 'Display photos, videos, and albums in your posts.', 'custom-facebook-feed' ); ?>
528 </li>
529 <li>
530 <i class="fa fa-check" aria-hidden="true"></i>
531 <?php esc_html_e( 'Choose which content type to display; posts, photos, albums, videos, links, or events.', 'custom-facebook-feed' ); ?>
532 </li>
533 <li>
534 <i class="fa fa-check" aria-hidden="true"></i>
535 <?php esc_html_e( 'Pop-up lightbox to view images and watch videos.', 'custom-facebook-feed' ); ?>
536 </li>
537 <li>
538 <i class="fa fa-check" aria-hidden="true"></i>
539 <?php esc_html_e( 'Show comments, likes, shares, reactions and comment replies.', 'custom-facebook-feed' ); ?>
540 </li>
541 <li>
542 <i class="fa fa-check" aria-hidden="true"></i>
543 <?php esc_html_e( 'Filter posts by hashtag or words.', 'custom-facebook-feed' ); ?>
544 </li>
545 </ul>
546 </div>
547 <div class="cff-admin-column-50 cff-admin-column-last">
548 <ul class="list-features list-plain">
549 <li>
550 <i class="fa fa-check" aria-hidden="true"></i>
551 <?php esc_html_e( 'Infinitely load more posts.', 'custom-facebook-feed' ); ?>
552 </li>
553 <li>
554 <i class="fa fa-check" aria-hidden="true"></i>
555 <?php esc_html_e( 'HD, 360 degree, and Live video support.', 'custom-facebook-feed' ); ?>
556 </li>
557 <li>
558 <i class="fa fa-check" aria-hidden="true"></i>
559 <?php esc_html_e( 'Support for Facebook Groups.', 'custom-facebook-feed' ); ?>
560 </li>
561 <li>
562 <i class="fa fa-check" aria-hidden="true"></i>
563 <?php esc_html_e( 'Multiple post layout options.', 'custom-facebook-feed' ); ?>
564 </li>
565 <li>
566 <i class="fa fa-check" aria-hidden="true"></i>
567 <?php esc_html_e( 'Priority Pro support from our team of experts.', 'custom-facebook-feed' ); ?>
568 </li>
569 </ul>
570 </div>
571 </div>
572
573 <hr />
574
575 <h3 class="call-to-action">
576 <?php
577 if ( 'lite' === $license ) {
578 echo '<a href="https://smashballoon.com/custom-facebook-feed/pricing/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=profeaturescompare" target="_blank" rel="noopener noreferrer">';
579 } else {
580 echo '<a href="https://smashballoon.com/custom-facebook-feed/pricing/?utm_campaign=facebook-pro&utm_source=gettingstarted&utm_medium=profeaturescompare" target="_blank" rel="noopener noreferrer">';
581 }
582 esc_html_e( 'Get Custom Facebook Feed Pro Today and Unlock all the Powerful Features', 'custom-facebook-feed' );
583 ?>
584 </a>
585 </h3>
586
587 <?php if ( 'lite' === $license ) { ?>
588 <p>
589 <?php
590 echo wp_kses(
591 __( 'Bonus: Custom Facebook Feed Lite users get <span class="price-20-off">50% off regular price</span>, automatically applied at checkout.', 'custom-facebook-feed' ),
592 array(
593 'span' => array(
594 'class' => array(),
595 ),
596 )
597 );
598 ?>
599 </p>
600 <?php } ?>
601 </div>
602
603 </div>
604 <?php } ?>
605
606
607 <div class="cff-admin-about-section cff-admin-about-section-squashed cff-admin-about-section-post cff-admin-columns">
608 <div class="cff-admin-column-20">
609 <img src="<?php echo CFF_PLUGIN_URL; ?>img/about/steps.png" alt="">
610 </div>
611 <div class="cff-admin-column-80">
612 <h2>
613 <?php esc_html_e( 'Detailed Step-By-Step Guide', 'custom-facebook-feed' ); ?>
614 </h2>
615
616 <p>
617 <?php esc_html_e( 'View detailed steps with related images on our website. We have a comprehensive guide to getting up and running with Custom Facebook Feed.', 'custom-facebook-feed' ); ?>
618 </p>
619
620 <a href="https://smashballoon.com/custom-facebook-feed/docs/free/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=readsetup" target="_blank" rel="noopener noreferrer" class="cff-admin-about-section-post-link">
621 <?php esc_html_e( 'Read Documentation', 'custom-facebook-feed' ); ?><i class="fa fa-external-link" aria-hidden="true"></i>
622 </a>
623 </div>
624 </div>
625
626 <div class="cff-admin-about-section cff-admin-about-section-squashed cff-admin-about-section-post cff-admin-columns">
627 <div class="cff-admin-column-20">
628 <img src="<?php echo CFF_PLUGIN_URL; ?>img/about/api-error.png" alt="">
629 </div>
630 <div class="cff-admin-column-80">
631 <h2>
632 <?php esc_html_e( 'Troubleshoot Connection and API Errors', 'custom-facebook-feed' ); ?>
633 </h2>
634
635 <p>
636 <?php esc_html_e( 'Are you having trouble displaying your feed due to an error connecting an account or a Facebook API error? We have several articles to help you troubleshoot issues and help you solve them.', 'custom-facebook-feed' ); ?>
637 </p>
638
639 <a href="https://smashballoon.com/custom-facebook-feed/docs/errors/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=readerrordoc" target="_blank" rel="noopener noreferrer" class="cff-admin-about-section-post-link">
640 <?php esc_html_e( 'Read Documentation', 'custom-facebook-feed' ); ?><i class="fa fa-external-link" aria-hidden="true"></i>
641 </a>
642 </div>
643 </div>
644
645 <?php
646 }
647
648 /**
649 * Get the next license type. Helper for Versus tab content.
650 *
651 * @since 1.5.5
652 *
653 * @param string $current Current license type slug.
654 *
655 * @return string Next license type slug.
656 */
657 protected function get_next_license( $current ) {
658
659 return 'Pro';
660 $current = ucfirst( $current );
661 $license_pairs = array(
662 'Lite' => 'Pro',
663 'Basic' => 'Pro',
664 'Plus' => 'Pro',
665 'Pro' => 'Elite',
666 );
667
668 return ! empty( $license_pairs[ $current ] ) ? $license_pairs[ $current ] : 'Elite';
669 }
670
671 /**
672 * Display the Versus tab content.
673 *
674 * @since 2.4/5.5
675 */
676 protected function output_versus() {
677
678 //$license = $this->get_license_type();
679 //$next_license = $this->get_next_license( $license );
680 $license = 'lite';
681 $next_license = 'pro';
682 ?>
683
684 <div class="cff-admin-about-section cff-admin-about-section-squashed">
685 <h1 class="centered">
686 <strong><?php echo esc_html( ucfirst( $license ) ); ?></strong> vs <strong><?php echo esc_html( ucfirst( $next_license ) ); ?></strong>
687 </h1>
688
689 <p class="centered">
690 <?php esc_html_e( 'Get the most out of your Custom Facebook Feeds by upgrading to Pro and unlocking all of the powerful features.', 'custom-facebook-feed' ); ?>
691 </p>
692 </div>
693
694 <div class="cff-admin-about-section cff-admin-about-section-squashed cff-admin-about-section-hero cff-admin-about-section-table">
695
696 <div class="cff-admin-about-section-hero-main cff-admin-columns">
697 <div class="cff-admin-column-33">
698 <h3 class="no-margin">
699 <?php esc_html_e( 'Feature', 'custom-facebook-feed' ); ?>
700 </h3>
701 </div>
702 <div class="cff-admin-column-33">
703 <h3 class="no-margin">
704 <?php echo esc_html( ucfirst( $license ) ); ?>
705 </h3>
706 </div>
707 <div class="cff-admin-column-33">
708 <h3 class="no-margin">
709 <?php echo esc_html( ucfirst( $next_license ) ); ?>
710 </h3>
711 </div>
712 </div>
713 <div class="cff-admin-about-section-hero-extra no-padding cff-admin-columns">
714
715 <table>
716 <?php
717 foreach ( self::$licenses_features as $slug => $name ) {
718 $current = $this->get_license_data( $slug, $license );
719 $next = $this->get_license_data( $slug, strtolower( $next_license ) );
720
721 if ( empty( $current ) || empty( $next ) ) {
722 continue;
723 }
724 ?>
725 <tr class="cff-admin-columns">
726 <td class="cff-admin-column-33">
727 <p><?php echo esc_html( $name ); ?></p>
728 </td>
729 <td class="cff-admin-column-33">
730 <?php if ( is_array( $current ) ) : ?>
731 <p class="features-<?php echo esc_attr( $current['status'] ); ?>">
732 <?php echo wp_kses_post( implode( '<br>', $current['text'] ) ); ?>
733 </p>
734 <?php endif; ?>
735 </td>
736 <td class="cff-admin-column-33">
737 <?php if ( is_array( $current ) ) : ?>
738 <p class="features-full">
739 <?php echo wp_kses_post( implode( '<br>', $next['text'] ) ); ?>
740 </p>
741 <?php endif; ?>
742 </td>
743 </tr>
744 <?php
745 }
746 ?>
747 </table>
748
749 </div>
750
751 </div>
752
753 <div class="cff-admin-about-section cff-admin-about-section-hero">
754 <div class="cff-admin-about-section-hero-main no-border">
755 <h3 class="call-to-action centered">
756 <?php
757 if ( 'lite' === $license ) {
758 echo '<a href="https://smashballoon.com/custom-facebook-feed/pricing/?utm_campaign=facebook-free&utm_source=gettingstarted&utm_medium=profeaturescompare" target="_blank" rel="noopener noreferrer">';
759 } else {
760 echo '<a href="https://smashballoon.com/custom-facebook-feed/pricing/?utm_campaign=facebook-pro&utm_source=gettingstarted&utm_medium=profeaturescompare" target="_blank" rel="noopener noreferrer">';
761 }
762 printf( /* translators: %s - next license level. */
763 esc_html__( 'Get Custom Facebook Feed Pro Today and Unlock all the Powerful Features', 'custom-facebook-feed' ),
764 esc_html( $next_license )
765 );
766 ?>
767 </a>
768 </h3>
769
770 <?php if ( 'lite' === $license ) { ?>
771 <p class="centered">
772 <?php
773 echo wp_kses(
774 __( 'Bonus: Custom Facebook Feed Lite users get <span class="price-20-off">50% off regular price</span>, automatically applied at checkout.', 'custom-facebook-feed' ),
775 array(
776 'span' => array(
777 'class' => array(),
778 ),
779 )
780 );
781 ?>
782 </p>
783 <?php } ?>
784 </div>
785 </div>
786
787 <?php
788 }
789
790 /**
791 * List of AM plugins that we propose to install.
792 *
793 * @since 2.4/5.5
794 *
795 * @return array
796 */
797 protected function get_am_plugins() {
798
799 $images_url = CFF_PLUGIN_URL . 'img/about/';
800
801 return array(
802 'instagram-feed/instagram-feed.php' => array(
803 'icon' => $images_url . 'plugin-if.png',
804 'name' => esc_html__( 'Instagram Feed', 'custom-facebook-feed' ),
805 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'custom-facebook-feed' ),
806 'url' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip',
807 'pro' => array(
808 'plug' => 'instagram-feed-pro/instagram-feed.php',
809 'icon' => $images_url . 'plugin-if.png',
810 'name' => esc_html__( 'Instagram Feed Pro', 'custom-facebook-feed' ),
811 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'custom-facebook-feed' ),
812 'url' => 'https://smashballoon.com/instagram-feed/?utm_campaign=facebook-free&utm_source=cross&utm_medium=sbiinstaller',
813 'act' => 'go-to-url',
814 ),
815 ),
816
817 'custom-twitter-feeds/custom-twitter-feed.php' => array(
818 'icon' => $images_url . 'plugin-tw.jpg',
819 'name' => esc_html__( 'Custom Twitter Feeds', 'custom-facebook-feed' ),
820 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'custom-facebook-feed' ),
821 'url' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip',
822 'pro' => array(
823 'plug' => 'custom-twitter-feeds-pro/custom-twitter-feed.php',
824 'icon' => $images_url . 'plugin-tw.jpg',
825 'name' => esc_html__( 'Custom Twitter Feeds Pro', 'custom-facebook-feed' ),
826 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'custom-facebook-feed' ),
827 'url' => 'https://smashballoon.com/custom-twitter-feeds/?utm_campaign=facebook-free&utm_source=cross&utm_medium=ctfinstaller',
828 'act' => 'go-to-url',
829 ),
830 ),
831
832 'feeds-for-youtube/youtube-feed.php' => array(
833 'icon' => $images_url . 'plugin-yt.png',
834 'name' => esc_html__( 'Feeds for YouTube', 'custom-facebook-feed' ),
835 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'custom-facebook-feed' ),
836 'url' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip',
837 'pro' => array(
838 'plug' => 'youtube-feed-pro/youtube-feed.php',
839 'icon' => $images_url . 'plugin-yt.png',
840 'name' => esc_html__( 'Feeds for YouTube Pro', 'custom-facebook-feed' ),
841 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'custom-facebook-feed' ),
842 'url' => 'https://smashballoon.com/youtube-feed/?utm_campaign=facebook-free&utm_source=cross&utm_medium=sbyinstaller',
843 'act' => 'go-to-url',
844 ),
845 ),
846
847 'wpforms-lite/wpforms.php' => array(
848 'icon' => $images_url . 'plugin-wpforms.png',
849 'name' => esc_html__( 'WPForms', 'custom-facebook-feed' ),
850 'desc' => esc_html__( 'The most beginner friendly drag & drop WordPress forms plugin allowing you to create beautiful contact forms, subscription forms, payment forms, and more in minutes, not hours!', 'custom-facebook-feed' ),
851 'url' => 'https://downloads.wordpress.org/plugin/wpforms-lite.zip',
852 'pro' => array(
853 'plug' => 'wpforms/wpforms.php',
854 'icon' => $images_url . 'plugin-wpforms.png',
855 'name' => esc_html__( 'WPForms', 'custom-facebook-feed' ),
856 'desc' => esc_html__( 'The most beginner friendly drag & drop WordPress forms plugin allowing you to create beautiful contact forms, subscription forms, payment forms, and more in minutes, not hours!', 'custom-facebook-feed' ),
857 'url' => 'https://wpforms.com/lite-upgrade/?utm_source=WordPress&utm_campaign=liteplugin&utm_medium=cff-about-page',
858 'act' => 'go-to-url',
859 ),
860 ),
861
862 'google-analytics-for-wordpress/googleanalytics.php' => array(
863 'icon' => $images_url . 'plugin-mi.png',
864 'name' => esc_html__( 'MonsterInsights', 'custom-facebook-feed' ),
865 'desc' => esc_html__( 'MonsterInsights makes it “effortless” to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'custom-facebook-feed' ),
866 'url' => 'https://downloads.wordpress.org/plugin/google-analytics-for-wordpress.zip',
867 'pro' => array(
868 'plug' => 'google-analytics-premium/googleanalytics-premium.php',
869 'icon' => $images_url . 'plugin-mi.png',
870 'name' => esc_html__( 'MonsterInsights Pro', 'custom-facebook-feed' ),
871 'desc' => esc_html__( 'MonsterInsights makes it “effortless” to properly connect your WordPress site with Google Analytics, so you can start making data-driven decisions to grow your business.', 'custom-facebook-feed' ),
872 'url' => 'https://www.monsterinsights.com/?utm_source=proplugin&utm_medium=cff-about-page&utm_campaign=pluginurl&utm_content=7%2E0%2E0',
873 'act' => 'go-to-url',
874 ),
875 ),
876
877 'optinmonster/optin-monster-wp-api.php' => array(
878 'icon' => $images_url . 'plugin-om.png',
879 'name' => esc_html__( 'OptinMonster', 'custom-facebook-feed' ),
880 'desc' => esc_html__( 'Our high-converting optin forms like Exit-Intent® popups, Fullscreen Welcome Mats, and Scroll boxes help you dramatically boost conversions and get more email subscribers.', 'custom-facebook-feed' ),
881 'url' => 'https://downloads.wordpress.org/plugin/optinmonster.zip',
882 ),
883
884 'wp-mail-smtp/wp_mail_smtp.php' => array(
885 'icon' => $images_url . 'plugin-smtp.png',
886 'name' => esc_html__( 'WP Mail SMTP', 'custom-facebook-feed' ),
887 'desc' => esc_html__( 'Make sure your website\'s emails reach the inbox. Our goal is to make email deliverability easy and reliable. Trusted by over 1 million websites.', 'custom-facebook-feed' ),
888 'url' => 'https://downloads.wordpress.org/plugin/wp-mail-smtp.zip',
889 'pro' => array(
890 'plug' => 'wp-mail-smtp-pro/wp_mail_smtp.php',
891 'icon' => $images_url . 'plugin-smtp.png',
892 'name' => esc_html__( 'WP Mail SMTP Pro', 'custom-facebook-feed' ),
893 'desc' => esc_html__( 'Make sure your website\'s emails reach the inbox. Our goal is to make email deliverability easy and reliable. Trusted by over 1 million websites.', 'custom-facebook-feed' ),
894 'url' => 'https://wpmailsmtp.com/pricing/',
895 'act' => 'go-to-url',
896 ),
897 ),
898
899 'rafflepress/rafflepress.php' => array(
900 'icon' => $images_url . 'plugin-rp.png',
901 'name' => esc_html__( 'RafflePress', 'custom-facebook-feed' ),
902 'desc' => esc_html__( 'Turn your visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with powerful viral giveaways & contests.', 'custom-facebook-feed' ),
903 'url' => 'https://downloads.wordpress.org/plugin/rafflepress.zip',
904 'pro' => array(
905 'plug' => 'rafflepress-pro/rafflepress-pro.php',
906 'icon' => $images_url . 'plugin-rp.png',
907 'name' => esc_html__( 'RafflePress Pro', 'custom-facebook-feed' ),
908 'desc' => esc_html__( 'Turn your visitors into brand ambassadors! Easily grow your email list, website traffic, and social media followers with powerful viral giveaways & contests.', 'custom-facebook-feed' ),
909 'url' => 'https://rafflepress.com/pricing/',
910 'act' => 'go-to-url',
911 ),
912 ),
913
914 'all-in-one-seo-pack/all_in_one_seo_pack.php' => array(
915 'icon' => $images_url . 'plugin-seo.png',
916 'name' => esc_html__( 'All In One SEO Pack', 'custom-facebook-feed' ),
917 'desc' => esc_html__( 'Out-of-the-box SEO for WordPress. Features like XML Sitemaps, SEO for custom post types, SEO for blogs or business sites, SEO for ecommerce sites, and much more. More than 50 million downloads since 2007.', 'custom-facebook-feed' ),
918 'url' => 'https://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip',
919 ),
920 );
921 }
922
923 /**
924 * Get the array of data that compared the license data.
925 *
926 * @since 2.4/5.5
927 *
928 * @param string $feature Feature name.
929 * @param string $license License type to get data for.
930 *
931 * @return array|false
932 */
933 protected function get_license_data( $feature, $license ) {
934
935 $data = array(
936 'entries' => array(
937 'lite' => array(
938 'status' => 'none',
939 'text' => array(
940 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
941 ),
942 ),
943 'basic' => array(
944 'status' => 'full',
945 'text' => array(
946 '<strong>' . esc_html__( 'User, Hashtag, and Tagged Feeds', 'custom-facebook-feed' ) . '</strong>',
947 ),
948 ),
949 'plus' => array(
950 'status' => 'full',
951 'text' => array(
952 '<strong>' . esc_html__( 'Complete Entry Management inside WordPress', 'custom-facebook-feed' ) . '</strong>',
953 ),
954 ),
955 'pro' => array(
956 'status' => 'full',
957 'text' => array(
958 '<strong>' . esc_html__( 'Display photos and videos in your posts', 'custom-facebook-feed' ) . '</strong>',
959 ),
960 ),
961 ),
962 'fields' => array(
963 'lite' => array(
964 'status' => 'none',
965 'text' => array(
966 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
967 ),
968 ),
969 'basic' => array(
970 'status' => 'full',
971 'text' => array(
972 '<strong>' . esc_html__( 'Access to all Standard and Fancy Fields', 'custom-facebook-feed' ) . '</strong>',
973 esc_html__( 'Address, Phone, Website URL, Date/Time, Password, File Upload, HTML, Pagebreaks, Section Dividers, Ratings, and Hidden Field', 'custom-facebook-feed' ),
974 ),
975 ),
976 'plus' => array(
977 'status' => 'full',
978 'text' => array(
979 '<strong>' . esc_html__( 'Access to all Standard and Fancy Fields', 'custom-facebook-feed' ) . '</strong>',
980 esc_html__( 'Address, Phone, Website URL, Date/Time, Password, File Upload, HTML, Pagebreaks, Section Dividers, Ratings, and Hidden Field', 'custom-facebook-feed' ),
981 ),
982 ),
983 'pro' => array(
984 'status' => 'full',
985 'text' => array(
986 '<strong>' . esc_html__( 'Grid, highlight, masonry, and carousel layouts', 'custom-facebook-feed' ) . '</strong>',
987 ),
988 ),
989 ),
990 'conditionals' => array(
991 'lite' => array(
992 'status' => 'partial',
993 'text' => array(
994 '<strong>' . esc_html__( 'Image, carousel, and video thumbnails', 'custom-facebook-feed' ) . '</strong>',
995 ),
996 ),
997 'basic' => array(
998 'status' => 'full',
999 'text' => array(
1000 '<strong>' . esc_html__( 'Powerful Form Logic for Building Smart Forms', 'custom-facebook-feed' ) . '</strong>',
1001 ),
1002 ),
1003 'plus' => array(
1004 'status' => 'full',
1005 'text' => array(
1006 '<strong>' . esc_html__( 'Powerful Form Logic for Building Smart Forms', 'custom-facebook-feed' ) . '</strong>',
1007 ),
1008 ),
1009 'pro' => array(
1010 'status' => 'full',
1011 'text' => array(
1012 '<strong>' . esc_html__( 'Display images, swipe through carousel posts, and play videos in a pop-up lightbox', 'custom-facebook-feed' ) . '</strong>',
1013 ),
1014 ),
1015 ),
1016 'marketing' => array(
1017 'lite' => array(
1018 'status' => 'none',
1019 'text' => array(
1020 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1021 ),
1022 ),
1023 'basic' => array(
1024 'status' => 'partial',
1025 'text' => array(
1026 '<strong>' . esc_html__( 'Limited Marketing Integration', 'custom-facebook-feed' ) . '</strong>',
1027 esc_html__( 'Constant Contact only', 'custom-facebook-feed' ),
1028 ),
1029 ),
1030 'plus' => array(
1031 'status' => 'partial',
1032 'text' => array(
1033 '<strong>' . esc_html__( '6 Email Marketing Integrations', 'custom-facebook-feed' ) . '</strong>',
1034 esc_html__( 'Constant Contact, Mailchimp, AWeber, GetResponse, Campaign Monitor, and Drip', 'custom-facebook-feed' ),
1035 ),
1036 ),
1037 'pro' => array(
1038 'status' => 'full',
1039 'text' => array(
1040 '<strong>' . esc_html__( 'Display images and play videos in a pop-up lightbox', 'custom-facebook-feed' ) . '</strong>',
1041 ),
1042 ),
1043 ),
1044 'payments' => array(
1045 'lite' => array(
1046 'status' => 'partial',
1047 'text' => array(
1048 '<strong>' . esc_html__( 'Default post layout', 'custom-facebook-feed' ) . '</strong>',
1049 ),
1050 ),
1051 'basic' => array(
1052 'status' => 'none',
1053 'text' => array(
1054 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1055 ),
1056 ),
1057 'plus' => array(
1058 'status' => 'none',
1059 'text' => array(
1060 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1061 ),
1062 ),
1063 'pro' => array(
1064 'status' => 'full',
1065 'text' => array(
1066 '<strong>' . esc_html__( 'Choose from thumbnail, half-width or full-width post layouts, and grid layout for photo, album, and video feeds.', 'custom-facebook-feed' ) . '</strong>',
1067 ),
1068 ),
1069 ),
1070 'surveys' => array(
1071 'lite' => array(
1072 'status' => 'partial',
1073 'text' => array(
1074 '<strong>' . esc_html__( 'Basic post information', 'custom-facebook-feed' ) . '</strong>',
1075 ),
1076 ),
1077 'basic' => array(
1078 'status' => 'none',
1079 'text' => array(
1080 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1081 ),
1082 ),
1083 'plus' => array(
1084 'status' => 'none',
1085 'text' => array(
1086 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1087 ),
1088 ),
1089 'pro' => array(
1090 'status' => 'full',
1091 'text' => array(
1092 '<strong>' . esc_html__( 'Display the number of likes, shares, comments, and reactions below each post', 'custom-facebook-feed' ) . '</strong>',
1093 ),
1094 ),
1095 ),
1096 'advanced' => array(
1097 'lite' => array(
1098 'status' => 'none',
1099 'text' => array(
1100 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1101 ),
1102 ),
1103 'basic' => array(
1104 'status' => 'partial',
1105 'text' => array(
1106 '<strong>' . esc_html__( 'Limited Advanced Features', 'custom-facebook-feed' ) . '</strong>',
1107 esc_html__( 'Multi-page Forms, File Upload Forms, Multiple Form Notifications, Conditional Form Confirmation', 'custom-facebook-feed' ),
1108 ),
1109 ),
1110 'plus' => array(
1111 'status' => 'partial',
1112 'text' => array(
1113 '<strong>' . esc_html__( 'Limited Advanced Features', 'custom-facebook-feed' ) . '</strong>',
1114 esc_html__( 'Multi-page Forms, File Upload Forms, Multiple Form Notifications, Conditional Form Confirmation', 'custom-facebook-feed' ),
1115 ),
1116 ),
1117 'pro' => array(
1118 'status' => 'full',
1119 'text' => array(
1120 '<strong>' . esc_html__( 'Display comments below each post and in the pop-up lightbox', 'custom-facebook-feed' ) . '</strong>',
1121 ),
1122 ),
1123 ),
1124 'addons' => array(
1125 'lite' => array(
1126 'status' => 'partial',
1127 'text' => array(
1128 '<strong>' . esc_html__( 'Show feeds from a timeline', 'custom-facebook-feed' ) . '</strong>',
1129 ),
1130 ),
1131 'basic' => array(
1132 'status' => 'partial',
1133 'text' => array(
1134 '<strong>' . esc_html__( 'Custom Captcha Addon included', 'custom-facebook-feed' ) . '</strong>',
1135 ),
1136 ),
1137 'plus' => array(
1138 'status' => 'partial',
1139 'text' => array(
1140 '<strong>' . esc_html__( 'Email Marketing Addons included', 'custom-facebook-feed' ) . '</strong>',
1141 ),
1142 ),
1143 'pro' => array(
1144 'status' => 'full',
1145 'text' => array(
1146 '<strong>' . esc_html__( 'Timeline feeds, Photo Grids, Album feeds, Video feeds, Event feeds', 'custom-facebook-feed' ) . '</strong>',
1147 ),
1148 ),
1149 ),
1150 'addons1' => array(
1151 'lite' => array(
1152 'status' => 'partial',
1153 'text' => array(
1154 '<strong>' . esc_html__( 'Choose how many posts to display', 'custom-facebook-feed' ) . '</strong>',
1155 ),
1156 ),
1157 'basic' => array(
1158 'status' => 'partial',
1159 'text' => array(
1160 '<strong>' . esc_html__( 'Custom Captcha Addon included', 'custom-facebook-feed' ) . '</strong>',
1161 ),
1162 ),
1163 'plus' => array(
1164 'status' => 'partial',
1165 'text' => array(
1166 '<strong>' . esc_html__( 'Email Marketing Addons included', 'custom-facebook-feed' ) . '</strong>',
1167 ),
1168 ),
1169 'pro' => array(
1170 'status' => 'full',
1171 'text' => array(
1172 '<strong>' . esc_html__( 'Choose to dynamically load more posts using the Load More button', 'custom-facebook-feed' ) . '</strong>',
1173 ),
1174 ),
1175 ),
1176 'addons2' => array(
1177 'lite' => array(
1178 'status' => 'none',
1179 'text' => array(
1180 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1181 ),
1182 ),
1183 'basic' => array(
1184 'status' => 'partial',
1185 'text' => array(
1186 '<strong>' . esc_html__( 'Custom Captcha Addon included', 'custom-facebook-feed' ) . '</strong>',
1187 ),
1188 ),
1189 'plus' => array(
1190 'status' => 'partial',
1191 'text' => array(
1192 '<strong>' . esc_html__( 'Email Marketing Addons included', 'custom-facebook-feed' ) . '</strong>',
1193 ),
1194 ),
1195 'pro' => array(
1196 'status' => 'full',
1197 'text' => array(
1198 '<strong>' . esc_html__( 'Filter posts in your feed based on a particular hashtag, word, or phrase', 'custom-facebook-feed' ) . '</strong>',
1199 ),
1200 ),
1201 ),
1202 'extensions' => array(
1203 'lite' => array(
1204 'status' => 'none',
1205 'text' => array(
1206 '<strong>' . esc_html__( 'Not available', 'custom-facebook-feed' ) . '</strong>',
1207 ),
1208 ),
1209 'basic' => array(
1210 'status' => 'partial',
1211 'text' => array(
1212 '<strong>' . esc_html__( 'Custom Captcha Addon included', 'custom-facebook-feed' ) . '</strong>',
1213 ),
1214 ),
1215 'plus' => array(
1216 'status' => 'partial',
1217 'text' => array(
1218 '<strong>' . esc_html__( 'Email Marketing Addons included', 'custom-facebook-feed' ) . '</strong>',
1219 ),
1220 ),
1221 'pro' => array(
1222 'status' => 'full',
1223 'text' => array(
1224 '<strong>' . esc_html__( 'Supports all add-on extensions; Reviews, Multifeed, Date Range, Album Embed, Featured Post, and Carousel.', 'custom-facebook-feed' ) . '</strong>',
1225 ),
1226 ),
1227 ),
1228 'support' => array(
1229 'lite' => array(
1230 'status' => 'partial',
1231 'text' => array(
1232 '<strong>' . esc_html__( 'Limited support', 'custom-facebook-feed' ) . '</strong>',
1233 ),
1234 ),
1235 'basic' => array(
1236 'status' => 'partial',
1237 'text' => array(
1238 '<strong>' . esc_html__( 'Standard Support', 'custom-facebook-feed' ) . '</strong>',
1239 ),
1240 ),
1241 'plus' => array(
1242 'status' => 'partial',
1243 'text' => array(
1244 '<strong>' . esc_html__( 'Standard Support', 'custom-facebook-feed' ) . '</strong>',
1245 ),
1246 ),
1247 'pro' => array(
1248 'status' => 'full',
1249 'text' => array(
1250 '<strong>' . esc_html__( 'Priority support', 'custom-facebook-feed' ) . '</strong>',
1251 ),
1252 ),
1253 'elite' => array(
1254 'status' => 'full',
1255 'text' => array(
1256 '<strong>' . esc_html__( 'Premium Support', 'custom-facebook-feed' ) . '</strong>',
1257 ),
1258 ),
1259 'ultimate' => array(
1260 'status' => 'full',
1261 'text' => array(
1262 '<strong>' . esc_html__( 'Premium Support', 'custom-facebook-feed' ) . '</strong>',
1263 ),
1264 ),
1265 'agency' => array(
1266 'status' => 'full',
1267 'text' => array(
1268 '<strong>' . esc_html__( 'Premium Support', 'custom-facebook-feed' ) . '</strong>',
1269 ),
1270 ),
1271 ),
1272 'sites' => array(
1273 'basic' => array(
1274 'status' => 'partial',
1275 'text' => array(
1276 '<strong>' . esc_html__( '1 Site', 'custom-facebook-feed' ) . '</strong>',
1277 ),
1278 ),
1279 'plus' => array(
1280 'status' => 'partial',
1281 'text' => array(
1282 '<strong>' . esc_html__( '3 Sites', 'custom-facebook-feed' ) . '</strong>',
1283 ),
1284 ),
1285 'pro' => array(
1286 'status' => 'full',
1287 'text' => array(
1288 '<strong>' . esc_html__( '5 Sites', 'custom-facebook-feed' ) . '</strong>',
1289 ),
1290 ),
1291 'elite' => array(
1292 'status' => 'full',
1293 'text' => array(
1294 '<strong>' . esc_html__( 'Unlimited Sites', 'custom-facebook-feed' ) . '</strong>',
1295 ),
1296 ),
1297 'ultimate' => array(
1298 'status' => 'full',
1299 'text' => array(
1300 '<strong>' . esc_html__( 'Unlimited Sites', 'custom-facebook-feed' ) . '</strong>',
1301 ),
1302 ),
1303 'agency' => array(
1304 'status' => 'full',
1305 'text' => array(
1306 '<strong>' . esc_html__( 'Unlimited Sites', 'custom-facebook-feed' ) . '</strong>',
1307 ),
1308 ),
1309 ),
1310 );
1311
1312 // Wrong feature?
1313 if ( ! isset( $data[ $feature ] ) ) {
1314 return false;
1315 }
1316
1317 // Is a top level license?
1318 $is_licenses_top = in_array( $license, self::$licenses_top, true );
1319
1320 // Wrong license type?
1321 if ( ! isset( $data[ $feature ][ $license ] ) && ! $is_licenses_top ) {
1322 return false;
1323 }
1324
1325 // Some licenses have partial data.
1326 if ( isset( $data[ $feature ][ $license ] ) ) {
1327 return $data[ $feature ][ $license ];
1328 }
1329
1330 // Top level plans has no feature difference with `pro` plan in most cases.
1331 return $is_licenses_top ? $data[ $feature ]['pro'] : $data[ $feature ][ $license ];
1332 }
1333
1334 /**
1335 * Get the current installation license type (always lowercase).
1336 *
1337 * @since 2.4/5.5
1338 *
1339 * @return string
1340 */
1341 protected function get_license_type() {
1342
1343 //$type = cff_setting( 'type', '', 'cff_license' );
1344
1345 //if ( empty( $type ) || ! cff()->pro ) {
1346 $type = 'free';
1347 //}
1348
1349 return strtolower( $type );
1350 }
1351 }
1352
1353 new CFF_About();
1354