PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 3.2.0
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v3.2.0
3.2.0 3.1.0 3.0.0 2.13.2 2.13.1 2.13.0 trunk 1.0.0 2.1.0 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.1 2.5.3 2.5.4 2.5.5 All 57 releases
slider-blocks / admin / views / compare.php

compare.php in GutSlider – All in One Slider and Carousel Blocks for Gutenberg 3.2.0, at admin/views/compare.php

289 lines 9.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Free vs Pro comparison (the Free vs Pro screen).
4 *
5 * @package GutSliderBlocks
6 *
7 * @var int $gs_free_total Number of free blocks.
8 * @var int $gs_pro_total Number of Pro blocks.
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13 }
14
15 $gs_pricing_url = 'https://gutslider.com/pricing';
16 $gs_demos_url = 'https://demos.gutslider.com/';
17
18 // Pro designs in the free blocks (the `pro: true` entries of each design picker).
19 $gs_pro_designs = 30;
20
21 /*
22 * Rows: label, hint, free value, pro value. A value is true (included),
23 * false (not included) or a short text.
24 */
25 $gs_compare = array(
26 array(
27 'title' => __( 'Blocks', 'slider-blocks' ),
28 'rows' => array(
29 array(
30 __( 'Slider, carousel and marquee blocks', 'slider-blocks' ),
31 __( 'Static, Flexible, Testimonial, Photo, Logo, Before After, Video, Blog Post and Marquee.', 'slider-blocks' ),
32 (string) $gs_free_total,
33 (string) ( $gs_free_total + $gs_pro_total ),
34 ),
35 array(
36 __( 'Creative effect sliders', 'slider-blocks' ),
37 __( 'Shader, Shutters, Slicer, Fashion and Triple sliders.', 'slider-blocks' ),
38 false,
39 true,
40 ),
41 array(
42 __( '3D and motion carousels', 'slider-blocks' ),
43 __( '3D, Panorama, Spring, Material and Marquee carousels.', 'slider-blocks' ),
44 false,
45 true,
46 ),
47 array(
48 __( 'Interactive sliders', 'slider-blocks' ),
49 __( 'Card, Hover and Tinder-style swipe sliders.', 'slider-blocks' ),
50 false,
51 true,
52 ),
53 array(
54 __( 'WooCommerce carousels', 'slider-blocks' ),
55 __( 'Product and product category carousels that help you sell.', 'slider-blocks' ),
56 false,
57 true,
58 ),
59 ),
60 ),
61 array(
62 'title' => __( 'Designs', 'slider-blocks' ),
63 'rows' => array(
64 array(
65 __( 'Ready-made designs in every block', 'slider-blocks' ),
66 __( 'Pick a look, then fine-tune it in the sidebar.', 'slider-blocks' ),
67 __( 'Starter set', 'slider-blocks' ),
68 __( 'Every design', 'slider-blocks' ),
69 ),
70 array(
71 __( 'Premium designs', 'slider-blocks' ),
72 __( 'Glass cards, cinema and playlist videos, polaroid stacks, avatar switchers, tag clouds and more.', 'slider-blocks' ),
73 false,
74 /* translators: %d: number of designs. */
75 sprintf( __( '%d+ designs', 'slider-blocks' ), $gs_pro_designs ),
76 ),
77 array(
78 __( 'Block patterns library', 'slider-blocks' ),
79 __( 'Ready-made slider layouts to insert and edit.', 'slider-blocks' ),
80 true,
81 true,
82 ),
83 ),
84 ),
85 array(
86 'key' => 'features',
87 'title' => __( 'Features', 'slider-blocks' ),
88 'rows' => array(
89 array(
90 __( 'Responsive controls, typography and Google Fonts', 'slider-blocks' ),
91 __( 'Separate Desktop, Tablet and Mobile values.', 'slider-blocks' ),
92 true,
93 true,
94 ),
95 array(
96 __( 'Lightweight output', 'slider-blocks' ),
97 __( 'No jQuery, assets only where used, one CSS file per page.', 'slider-blocks' ),
98 true,
99 true,
100 ),
101 array(
102 __( 'SEO schema markup', 'slider-blocks' ),
103 __( 'Video rich results for videos and ItemList markup for post sliders.', 'slider-blocks' ),
104 false,
105 true,
106 ),
107 array(
108 __( 'Before-after video comparisons', 'slider-blocks' ),
109 __( 'Two videos in sync, several comparisons with thumbnails, auto-play and fullscreen.', 'slider-blocks' ),
110 false,
111 true,
112 ),
113 array(
114 __( 'Video extras', 'slider-blocks' ),
115 __( 'Lightbox, preview on hover, silent loops, custom thumbnails and end times.', 'slider-blocks' ),
116 false,
117 true,
118 ),
119 array(
120 __( 'Content reveal', 'slider-blocks' ),
121 __( 'Subtitle, title, description and buttons play in one sequence: words rise, letters flip, blur in or mask reveal.', 'slider-blocks' ),
122 false,
123 true,
124 ),
125 array(
126 __( 'Content animations and background effects', 'slider-blocks' ),
127 __( 'Animated slide content, background motion and slide names as tabs.', 'slider-blocks' ),
128 false,
129 true,
130 ),
131 array(
132 __( 'Advanced marquee motion', 'slider-blocks' ),
133 __( 'Up to three rows, move with page scroll, drag to move, reverse and speed up on scroll.', 'slider-blocks' ),
134 false,
135 true,
136 ),
137 array(
138 __( 'Clickable slides and remote navigation', 'slider-blocks' ),
139 __( 'Link a whole slide, or control a slider from buttons anywhere on the page.', 'slider-blocks' ),
140 false,
141 true,
142 ),
143 array(
144 __( 'Per-device visibility and backgrounds', 'slider-blocks' ),
145 __( 'Show slides on chosen devices, with a different image for each screen size.', 'slider-blocks' ),
146 false,
147 true,
148 ),
149 array(
150 __( 'Thumbnail gallery navigation', 'slider-blocks' ),
151 __( 'Thumbnail navigation and detached content for the Static and Blog Post sliders.', 'slider-blocks' ),
152 false,
153 true,
154 ),
155 ),
156 ),
157 array(
158 'title' => __( 'Support', 'slider-blocks' ),
159 'rows' => array(
160 array(
161 __( 'Help from the GutSlider team', 'slider-blocks' ),
162 '',
163 __( 'Community forum', 'slider-blocks' ),
164 __( 'Priority support', 'slider-blocks' ),
165 ),
166 ),
167 ),
168 );
169
170 // Feature rows only Pro has, for the headline figure.
171 $gs_pro_features = 0;
172
173 foreach ( $gs_compare as $gs_group ) {
174 foreach ( $gs_group['rows'] as $gs_row ) {
175 if ( isset( $gs_group['key'] ) && 'features' === $gs_group['key'] && false === $gs_row[2] && true === $gs_row[3] ) {
176 ++$gs_pro_features;
177 }
178 }
179 }
180
181 /**
182 * Print one comparison cell.
183 *
184 * @param bool|string $value Cell value.
185 * @param bool $pro Whether this is the Pro column.
186 * @return void
187 */
188 $gs_cell = static function ( $value, $pro ) {
189 if ( true === $value ) {
190 echo '<span class="gs-compare__yes' . ( $pro ? ' is-pro' : '' ) . '">';
191 GutSlider_Admin::icon( 'check' );
192 echo '<span class="screen-reader-text">' . esc_html__( 'Included', 'slider-blocks' ) . '</span></span>';
193 } elseif ( false === $value ) {
194 echo '<span class="gs-compare__no" aria-hidden="true"></span>';
195 echo '<span class="screen-reader-text">' . esc_html__( 'Not included', 'slider-blocks' ) . '</span>';
196 } else {
197 echo '<span class="gs-compare__text' . ( $pro ? ' is-pro' : '' ) . '">' . esc_html( $value ) . '</span>';
198 }
199 };
200 ?>
201
202 <section class="gs-compare" id="gs-compare" aria-labelledby="gs-compare-title">
203 <div class="gs-upsell">
204 <div class="gs-upsell__text">
205 <span class="gs-upsell__eyebrow">
206 <?php GutSlider_Admin::icon( 'sparkles' ); ?>
207 <?php esc_html_e( 'GutSlider Pro', 'slider-blocks' ); ?>
208 </span>
209 <h2 class="gs-upsell__title" id="gs-compare-title"><?php esc_html_e( 'Make every slider unforgettable', 'slider-blocks' ); ?></h2>
210 <p class="gs-upsell__sub">
211 <?php esc_html_e( 'Unlock the premium blocks, every design and the effects that make visitors stop scrolling. Your current sliders keep working exactly as they are.', 'slider-blocks' ); ?>
212 </p>
213 <div class="gs-upsell__actions">
214 <a class="gs-btn gs-btn--invert" href="<?php echo esc_url( $gs_pricing_url ); ?>" target="_blank" rel="noopener noreferrer">
215 <?php esc_html_e( 'Get GutSlider Pro', 'slider-blocks' ); ?>
216 <?php GutSlider_Admin::icon( 'arrow-right' ); ?>
217 </a>
218 <a class="gs-btn gs-upsell__ghost" href="<?php echo esc_url( $gs_demos_url ); ?>" target="_blank" rel="noopener noreferrer">
219 <?php esc_html_e( 'See live demos', 'slider-blocks' ); ?>
220 </a>
221 </div>
222 </div>
223 <ul class="gs-upsell__stats">
224 <li>
225 <strong><?php echo esc_html( '+' . $gs_pro_total ); ?></strong>
226 <span><?php esc_html_e( 'premium blocks', 'slider-blocks' ); ?></span>
227 </li>
228 <li>
229 <strong><?php echo esc_html( $gs_pro_designs . '+' ); ?></strong>
230 <span><?php esc_html_e( 'premium designs', 'slider-blocks' ); ?></span>
231 </li>
232 <li>
233 <strong><?php echo esc_html( '+' . $gs_pro_features ); ?></strong>
234 <span><?php esc_html_e( 'pro-only features', 'slider-blocks' ); ?></span>
235 </li>
236 </ul>
237 </div>
238
239 <div class="gs-card gs-card--flush gs-compare__card">
240 <header class="gs-card__head">
241 <div>
242 <h2 class="gs-card__heading"><?php esc_html_e( 'Free vs Pro', 'slider-blocks' ); ?></h2>
243 <p class="gs-card__sub"><?php esc_html_e( 'Everything in Free, plus the blocks and features below.', 'slider-blocks' ); ?></p>
244 </div>
245 </header>
246
247 <div class="gs-compare__scroll">
248 <table class="gs-compare__table">
249 <thead>
250 <tr>
251 <th scope="col" class="gs-compare__feature"><?php esc_html_e( 'Feature', 'slider-blocks' ); ?></th>
252 <th scope="col" class="gs-compare__col"><?php esc_html_e( 'Free', 'slider-blocks' ); ?></th>
253 <th scope="col" class="gs-compare__col gs-compare__col--pro">
254 <span class="gs-compare__badge"><?php esc_html_e( 'Pro', 'slider-blocks' ); ?></span>
255 </th>
256 </tr>
257 </thead>
258 <?php foreach ( $gs_compare as $gs_group ) : ?>
259 <tbody>
260 <tr class="gs-compare__group">
261 <th scope="colgroup" colspan="3"><?php echo esc_html( $gs_group['title'] ); ?></th>
262 </tr>
263 <?php foreach ( $gs_group['rows'] as $gs_row ) : ?>
264 <tr>
265 <th scope="row" class="gs-compare__feature">
266 <span class="gs-compare__label"><?php echo esc_html( $gs_row[0] ); ?></span>
267 <?php if ( '' !== $gs_row[1] ) : ?>
268 <span class="gs-compare__hint"><?php echo esc_html( $gs_row[1] ); ?></span>
269 <?php endif; ?>
270 </th>
271 <td class="gs-compare__col"><?php $gs_cell( $gs_row[2], false ); ?></td>
272 <td class="gs-compare__col gs-compare__col--pro"><?php $gs_cell( $gs_row[3], true ); ?></td>
273 </tr>
274 <?php endforeach; ?>
275 </tbody>
276 <?php endforeach; ?>
277 </table>
278 </div>
279
280 <footer class="gs-compare__foot">
281 <p class="gs-compare__note"><?php esc_html_e( 'Install Pro next to the free plugin. Nothing to migrate or rebuild.', 'slider-blocks' ); ?></p>
282 <a class="gs-btn gs-btn--primary" href="<?php echo esc_url( $gs_pricing_url ); ?>" target="_blank" rel="noopener noreferrer">
283 <?php GutSlider_Admin::icon( 'sparkles' ); ?>
284 <?php esc_html_e( 'Upgrade to Pro', 'slider-blocks' ); ?>
285 </a>
286 </footer>
287 </div>
288 </section>
289