Version Description
- June 16, 2018 =
- Fix "wait" spinner in unstyled form template.
- On forms, only show required symbol if field label is shown.
- Refactor inline style method.
- Improve exception handling.
Download this release
Release Info
Developer | cdillon27 |
Plugin | Strong Testimonials |
Version | 2.31.8 |
Comparing to | |
See all releases |
Code changes from version 2.31.7 to 2.31.8
- admin/class-strong-testimonials-defaults.php +1 -0
- admin/class-strong-testimonials-updater.php +7 -1
- admin/settings/partials/form.php +4 -1
- includes/class-strong-testimonials-render.php +2 -1
- includes/class-strong-view-display.php +1 -5
- includes/class-strong-view-form.php +1 -5
- includes/class-strong-view-slideshow.php +1 -5
- includes/class-strong-view.php +23 -4
- includes/functions-template-form.php +26 -20
- includes/scripts.php +0 -5
- readme.txt +10 -5
- strong-testimonials.php +2 -2
- templates-scss/_partials/_form-wait.scss +19 -0
- templates-scss/_partials/_structure-form.scss +0 -20
- templates-scss/default-form/form.scss +1 -0
- templates-scss/simple-form/form.scss +1 -0
- templates-scss/unstyled-form/form.scss +4 -0
- templates/unstyled-form/form.css +21 -0
admin/class-strong-testimonials-defaults.php
CHANGED
@@ -398,6 +398,7 @@ class Strong_Testimonials_Defaults {
|
|
398 |
/* translators: Settings > Form > Messages tab */
|
399 |
'description' => _x( 'Captcha Label', 'description', 'strong-testimonials' ),
|
400 |
'text' => _x( 'Captcha', 'Default label for Captcha field on submission form.', 'strong-testimonials' ),
|
|
|
401 |
),
|
402 |
'form-submit-button' => array(
|
403 |
'order' => 3,
|
398 |
/* translators: Settings > Form > Messages tab */
|
399 |
'description' => _x( 'Captcha Label', 'description', 'strong-testimonials' ),
|
400 |
'text' => _x( 'Captcha', 'Default label for Captcha field on submission form.', 'strong-testimonials' ),
|
401 |
+
'required' => false,
|
402 |
),
|
403 |
'form-submit-button' => array(
|
404 |
'order' => 3,
|
admin/class-strong-testimonials-updater.php
CHANGED
@@ -550,10 +550,16 @@ class Strong_Testimonials_Updater {
|
|
550 |
* Merge in new options.
|
551 |
*/
|
552 |
$defaults = Strong_Testimonials_Defaults::get_form_options();
|
|
|
553 |
$form_options = array_merge( $defaults, $form_options );
|
|
|
554 |
// Merge nested arrays individually. Don't use array_merge_recursive.
|
|
|
555 |
$form_options['default_recipient'] = array_merge( $defaults['default_recipient'], $form_options['default_recipient'] );
|
556 |
-
|
|
|
|
|
|
|
557 |
|
558 |
/**
|
559 |
* Convert Captcha plugin name.
|
550 |
* Merge in new options.
|
551 |
*/
|
552 |
$defaults = Strong_Testimonials_Defaults::get_form_options();
|
553 |
+
|
554 |
$form_options = array_merge( $defaults, $form_options );
|
555 |
+
|
556 |
// Merge nested arrays individually. Don't use array_merge_recursive.
|
557 |
+
|
558 |
$form_options['default_recipient'] = array_merge( $defaults['default_recipient'], $form_options['default_recipient'] );
|
559 |
+
|
560 |
+
foreach ( $defaults['messages'] as $key => $message ) {
|
561 |
+
$form_options['messages'][ $key ] = array_merge( $message, $form_options['messages'][ $key ] );
|
562 |
+
}
|
563 |
|
564 |
/**
|
565 |
* Convert Captcha plugin name.
|
admin/settings/partials/form.php
CHANGED
@@ -55,6 +55,8 @@ foreach ( $plugins as $key => $plugin ) {
|
|
55 |
<?php
|
56 |
$messages = $form_options['messages'];
|
57 |
foreach ( $messages as $key => $message ):
|
|
|
|
|
58 |
$elid = str_replace( '-', '_', $key );
|
59 |
// $string, $context, $name
|
60 |
$content = apply_filters( 'wpmtst_l10n', $message['text'], 'strong-testimonials-form-messages', $message['description'] );
|
@@ -90,7 +92,8 @@ foreach ( $plugins as $key => $plugin ) {
|
|
90 |
<?php endif; ?>
|
91 |
<input type="text" id="<?php echo $elid; ?>"
|
92 |
name="wpmtst_form_options[messages][<?php echo $key; ?>][text]"
|
93 |
-
value="<?php esc_attr_e( $content ); ?>"
|
|
|
94 |
<?php endif; ?>
|
95 |
</td>
|
96 |
<td class="actions">
|
55 |
<?php
|
56 |
$messages = $form_options['messages'];
|
57 |
foreach ( $messages as $key => $message ):
|
58 |
+
$required = isset( $message['required'] ) ? $message['required'] : true;
|
59 |
+
|
60 |
$elid = str_replace( '-', '_', $key );
|
61 |
// $string, $context, $name
|
62 |
$content = apply_filters( 'wpmtst_l10n', $message['text'], 'strong-testimonials-form-messages', $message['description'] );
|
92 |
<?php endif; ?>
|
93 |
<input type="text" id="<?php echo $elid; ?>"
|
94 |
name="wpmtst_form_options[messages][<?php echo $key; ?>][text]"
|
95 |
+
value="<?php esc_attr_e( $content ); ?>"
|
96 |
+
<?php echo $required ? 'required' : '' ?>/>
|
97 |
<?php endif; ?>
|
98 |
</td>
|
99 |
<td class="actions">
|
includes/class-strong-testimonials-render.php
CHANGED
@@ -247,7 +247,6 @@ class Strong_Testimonials_Render {
|
|
247 |
}
|
248 |
}
|
249 |
}
|
250 |
-
wp_enqueue_style( 'wpmtst-custom-style' );
|
251 |
}
|
252 |
|
253 |
/**
|
@@ -633,6 +632,8 @@ class Strong_Testimonials_Render {
|
|
633 |
if ( isset( $atts['id'] ) && $atts['id'] ) {
|
634 |
$atts['view'] = $atts['id'];
|
635 |
unset( $atts['id'] );
|
|
|
|
|
636 |
}
|
637 |
|
638 |
// Fetch the view
|
247 |
}
|
248 |
}
|
249 |
}
|
|
|
250 |
}
|
251 |
|
252 |
/**
|
632 |
if ( isset( $atts['id'] ) && $atts['id'] ) {
|
633 |
$atts['view'] = $atts['id'];
|
634 |
unset( $atts['id'] );
|
635 |
+
} else {
|
636 |
+
return array_merge( array( 'view_not_found' => 1 ), $atts );
|
637 |
}
|
638 |
|
639 |
// Fetch the view
|
includes/class-strong-view-display.php
CHANGED
@@ -107,11 +107,7 @@ class Strong_View_Display extends Strong_View {
|
|
107 |
$this->load_dependent_scripts();
|
108 |
$this->load_extra_stylesheets();
|
109 |
|
110 |
-
|
111 |
-
* If we cannot preprocess, add the inline style to the footer.
|
112 |
-
* If we were able to preprocess, this will not duplicate the code
|
113 |
-
* since `wpmtst-custom-style` was already enqueued (I think).
|
114 |
-
*/
|
115 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
116 |
|
117 |
/**
|
107 |
$this->load_dependent_scripts();
|
108 |
$this->load_extra_stylesheets();
|
109 |
|
110 |
+
// If we cannot preprocess, add the inline style to the footer.
|
|
|
|
|
|
|
|
|
111 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
112 |
|
113 |
/**
|
includes/class-strong-view-form.php
CHANGED
@@ -79,11 +79,7 @@ class Strong_View_Form extends Strong_View {
|
|
79 |
$this->custom_background();
|
80 |
$this->load_validator();
|
81 |
|
82 |
-
|
83 |
-
* If we cannot preprocess, add the inline style to the footer.
|
84 |
-
* If we were able to preprocess, this will not duplicate the code
|
85 |
-
* since `wpmtst-custom-style` was already enqueued (I think).
|
86 |
-
*/
|
87 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
88 |
add_action( 'wp_footer', array( $this, 'load_honeypots' ) );
|
89 |
|
79 |
$this->custom_background();
|
80 |
$this->load_validator();
|
81 |
|
82 |
+
// If we cannot preprocess, add the inline style to the footer.
|
|
|
|
|
|
|
|
|
83 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
84 |
add_action( 'wp_footer', array( $this, 'load_honeypots' ) );
|
85 |
|
includes/class-strong-view-slideshow.php
CHANGED
@@ -60,11 +60,7 @@ class Strong_View_Slideshow extends Strong_View_Display {
|
|
60 |
$this->load_dependent_scripts();
|
61 |
$this->load_extra_stylesheets();
|
62 |
|
63 |
-
|
64 |
-
* If we cannot preprocess, add the inline style to the footer.
|
65 |
-
* If we were able to preprocess, this will not duplicate the code
|
66 |
-
* since `wpmtst-custom-style` was already enqueued (I think).
|
67 |
-
*/
|
68 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
69 |
|
70 |
/**
|
60 |
$this->load_dependent_scripts();
|
61 |
$this->load_extra_stylesheets();
|
62 |
|
63 |
+
// If we cannot preprocess, add the inline style to the footer.
|
|
|
|
|
|
|
|
|
64 |
add_action( 'wp_footer', array( $this, 'add_custom_style' ) );
|
65 |
|
66 |
/**
|
includes/class-strong-view.php
CHANGED
@@ -43,6 +43,14 @@ class Strong_View {
|
|
43 |
*/
|
44 |
public $plugin_version;
|
45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
/**
|
47 |
* Strong_View constructor.
|
48 |
*
|
@@ -193,6 +201,7 @@ class Strong_View {
|
|
193 |
$stylesheet = WPMST()->templates->get_template_attr( $this->atts, 'stylesheet', false );
|
194 |
if ( $stylesheet ) {
|
195 |
$handle = 'testimonials-' . str_replace( ':', '-', $this->atts['template'] );
|
|
|
196 |
wp_register_style( $handle, $stylesheet, array(), $this->plugin_version );
|
197 |
if ( $enqueue ) {
|
198 |
WPMST()->render->add_style( $handle );
|
@@ -256,7 +265,8 @@ class Strong_View {
|
|
256 |
$this->custom_font_color();
|
257 |
|
258 |
/**
|
259 |
-
* Hook to add more inline style
|
|
|
260 |
* @since 2.22.0
|
261 |
*/
|
262 |
do_action( 'wpmtst_view_custom_style', $this );
|
@@ -288,13 +298,14 @@ class Strong_View {
|
|
288 |
|
289 |
if ( $c1 ) {
|
290 |
$view_el = ".strong-view-id-{$this->atts['view']}";
|
|
|
291 |
|
292 |
if ( $this->is_form() ) {
|
293 |
-
wp_add_inline_style(
|
294 |
"$view_el .strong-form-inner { color: $c1; }" );
|
295 |
}
|
296 |
else {
|
297 |
-
wp_add_inline_style(
|
298 |
"$view_el .testimonial-heading, " .
|
299 |
"$view_el .testimonial-content p, " .
|
300 |
"$view_el .testimonial-content a.readmore, " .
|
@@ -313,7 +324,7 @@ class Strong_View {
|
|
313 |
return;
|
314 |
}
|
315 |
|
316 |
-
$handle =
|
317 |
$c1 = '';
|
318 |
$c2 = '';
|
319 |
|
@@ -416,6 +427,14 @@ class Strong_View {
|
|
416 |
}
|
417 |
}
|
418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
}
|
420 |
|
421 |
endif;
|
43 |
*/
|
44 |
public $plugin_version;
|
45 |
|
46 |
+
/**
|
47 |
+
* The stylesheet handle. For adding inline style.
|
48 |
+
*
|
49 |
+
* @since 2.31.8
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
public $stylesheet;
|
53 |
+
|
54 |
/**
|
55 |
* Strong_View constructor.
|
56 |
*
|
201 |
$stylesheet = WPMST()->templates->get_template_attr( $this->atts, 'stylesheet', false );
|
202 |
if ( $stylesheet ) {
|
203 |
$handle = 'testimonials-' . str_replace( ':', '-', $this->atts['template'] );
|
204 |
+
$this->set_stylesheet( $handle );
|
205 |
wp_register_style( $handle, $stylesheet, array(), $this->plugin_version );
|
206 |
if ( $enqueue ) {
|
207 |
WPMST()->render->add_style( $handle );
|
265 |
$this->custom_font_color();
|
266 |
|
267 |
/**
|
268 |
+
* Hook to add more inline style.
|
269 |
+
*
|
270 |
* @since 2.22.0
|
271 |
*/
|
272 |
do_action( 'wpmtst_view_custom_style', $this );
|
298 |
|
299 |
if ( $c1 ) {
|
300 |
$view_el = ".strong-view-id-{$this->atts['view']}";
|
301 |
+
$handle = $this->get_stylesheet();
|
302 |
|
303 |
if ( $this->is_form() ) {
|
304 |
+
wp_add_inline_style( $handle,
|
305 |
"$view_el .strong-form-inner { color: $c1; }" );
|
306 |
}
|
307 |
else {
|
308 |
+
wp_add_inline_style( $handle,
|
309 |
"$view_el .testimonial-heading, " .
|
310 |
"$view_el .testimonial-content p, " .
|
311 |
"$view_el .testimonial-content a.readmore, " .
|
324 |
return;
|
325 |
}
|
326 |
|
327 |
+
$handle = $this->get_stylesheet();
|
328 |
$c1 = '';
|
329 |
$c2 = '';
|
330 |
|
427 |
}
|
428 |
}
|
429 |
|
430 |
+
public function set_stylesheet( $handle = '' ) {
|
431 |
+
$this->stylesheet = $handle;
|
432 |
+
}
|
433 |
+
|
434 |
+
public function get_stylesheet() {
|
435 |
+
return $this->stylesheet;
|
436 |
+
}
|
437 |
+
|
438 |
}
|
439 |
|
440 |
endif;
|
includes/functions-template-form.php
CHANGED
@@ -69,22 +69,24 @@ function wpmtst_single_form_field( $field ) {
|
|
69 |
|
70 |
if ( 'checkbox' != $field['input_type'] ) {
|
71 |
if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
}
|
78 |
wpmtst_field_before( $field );
|
79 |
}
|
80 |
|
81 |
// Check for callback first.
|
82 |
if ( isset( $field['action_input'] ) && $field['action_input'] ) {
|
|
|
83 |
$value = ( isset( $form_values[ $field['name'] ] ) && $form_values[ $field['name'] ] ) ? $form_values[ $field['name'] ] : '';
|
84 |
do_action( $field['action_input'], $field, $value );
|
85 |
-
|
86 |
-
|
87 |
-
|
|
|
88 |
switch ( $field['input_type'] ) {
|
89 |
|
90 |
case 'category-selector' :
|
@@ -138,8 +140,7 @@ function wpmtst_single_form_field( $field ) {
|
|
138 |
|
139 |
case 'checkbox' :
|
140 |
if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
|
141 |
-
|
142 |
-
echo $label;
|
143 |
}
|
144 |
|
145 |
wpmtst_field_before( $field );
|
@@ -155,13 +156,11 @@ function wpmtst_single_form_field( $field ) {
|
|
155 |
checked( $field['default_form_value'], 1, false ) );
|
156 |
|
157 |
if ( isset( $field['text'] ) ) {
|
158 |
-
echo '<label for="wpmtst_' . $field['name'] . '" class="checkbox-label">';
|
159 |
-
echo wpmtst_form_field_meta_l10n( $field['text'], $field, 'text' );
|
160 |
-
echo '</label>';
|
161 |
-
}
|
162 |
|
163 |
-
|
164 |
-
|
|
|
165 |
}
|
166 |
|
167 |
echo '</div><!-- .field-wrap -->';
|
@@ -179,6 +178,7 @@ function wpmtst_single_form_field( $field ) {
|
|
179 |
wpmtst_field_required_tag( $field ) );
|
180 |
|
181 |
}
|
|
|
182 |
}
|
183 |
|
184 |
wpmtst_field_after( $field );
|
@@ -407,17 +407,22 @@ function wpmtst_form_captcha() {
|
|
407 |
* To display or not to display.
|
408 |
*/
|
409 |
if ( $invisible && 'captcha-pro' == $form_options['captcha']) {
|
|
|
410 |
echo '<div class="form-field wpmtst-captcha">';
|
411 |
echo $captcha_html;
|
412 |
echo '</div>';
|
413 |
-
|
414 |
-
elseif ( $invisible ) {
|
|
|
415 |
echo $captcha_html;
|
416 |
-
|
417 |
-
else {
|
|
|
418 |
?>
|
419 |
<div class="form-field wpmtst-captcha">
|
|
|
420 |
<label for="wpmtst_captcha"><?php wpmtst_form_message( 'captcha' ); ?></label><span class="required symbol"></span>
|
|
|
421 |
<div>
|
422 |
<?php echo $captcha_html; ?>
|
423 |
<?php if ( isset( $errors['captcha'] ) ) : ?>
|
@@ -426,6 +431,7 @@ function wpmtst_form_captcha() {
|
|
426 |
</div>
|
427 |
</div>
|
428 |
<?php
|
|
|
429 |
}
|
430 |
}
|
431 |
add_action( 'wpmtst_form_after_fields', 'wpmtst_form_captcha' );
|
69 |
|
70 |
if ( 'checkbox' != $field['input_type'] ) {
|
71 |
if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
|
72 |
+
echo '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
|
73 |
+
|
74 |
+
if ( isset( $field['required'] ) && $field['required'] ) {
|
75 |
+
wpmtst_field_required_symbol();
|
76 |
+
}
|
77 |
}
|
78 |
wpmtst_field_before( $field );
|
79 |
}
|
80 |
|
81 |
// Check for callback first.
|
82 |
if ( isset( $field['action_input'] ) && $field['action_input'] ) {
|
83 |
+
|
84 |
$value = ( isset( $form_values[ $field['name'] ] ) && $form_values[ $field['name'] ] ) ? $form_values[ $field['name'] ] : '';
|
85 |
do_action( $field['action_input'], $field, $value );
|
86 |
+
|
87 |
+
} else {
|
88 |
+
|
89 |
+
// Check field type.
|
90 |
switch ( $field['input_type'] ) {
|
91 |
|
92 |
case 'category-selector' :
|
140 |
|
141 |
case 'checkbox' :
|
142 |
if ( ! isset( $field['show_label'] ) || $field['show_label'] ) {
|
143 |
+
echo '<label for="wpmtst_' . $field['name'] . '">' . wpmtst_form_field_meta_l10n( $field['label'], $field, 'label' ) . '</label>';
|
|
|
144 |
}
|
145 |
|
146 |
wpmtst_field_before( $field );
|
156 |
checked( $field['default_form_value'], 1, false ) );
|
157 |
|
158 |
if ( isset( $field['text'] ) ) {
|
159 |
+
echo '<label for="wpmtst_' . $field['name'] . '" class="checkbox-label">' . wpmtst_form_field_meta_l10n( $field['text'], $field, 'text' ) . '</label>';
|
|
|
|
|
|
|
160 |
|
161 |
+
if ( isset( $field['required'] ) && $field['required'] ) {
|
162 |
+
wpmtst_field_required_symbol();
|
163 |
+
}
|
164 |
}
|
165 |
|
166 |
echo '</div><!-- .field-wrap -->';
|
178 |
wpmtst_field_required_tag( $field ) );
|
179 |
|
180 |
}
|
181 |
+
|
182 |
}
|
183 |
|
184 |
wpmtst_field_after( $field );
|
407 |
* To display or not to display.
|
408 |
*/
|
409 |
if ( $invisible && 'captcha-pro' == $form_options['captcha']) {
|
410 |
+
|
411 |
echo '<div class="form-field wpmtst-captcha">';
|
412 |
echo $captcha_html;
|
413 |
echo '</div>';
|
414 |
+
|
415 |
+
} elseif ( $invisible ) {
|
416 |
+
|
417 |
echo $captcha_html;
|
418 |
+
|
419 |
+
} else {
|
420 |
+
|
421 |
?>
|
422 |
<div class="form-field wpmtst-captcha">
|
423 |
+
<?php if ( wpmtst_get_form_message( 'captcha' ) ) : ?>
|
424 |
<label for="wpmtst_captcha"><?php wpmtst_form_message( 'captcha' ); ?></label><span class="required symbol"></span>
|
425 |
+
<?php endif; ?>
|
426 |
<div>
|
427 |
<?php echo $captcha_html; ?>
|
428 |
<?php if ( isset( $errors['captcha'] ) ) : ?>
|
431 |
</div>
|
432 |
</div>
|
433 |
<?php
|
434 |
+
|
435 |
}
|
436 |
}
|
437 |
add_action( 'wpmtst_form_after_fields', 'wpmtst_form_captcha' );
|
includes/scripts.php
CHANGED
@@ -69,11 +69,6 @@ function wpmtst_scripts() {
|
|
69 |
false,
|
70 |
true );
|
71 |
|
72 |
-
/**
|
73 |
-
* View custom style
|
74 |
-
*/
|
75 |
-
wp_register_style( 'wpmtst-custom-style', WPMTST_PUBLIC_URL . 'css/custom.css' );
|
76 |
-
|
77 |
/**
|
78 |
* imagesLoaded, if less than WordPress 4.6
|
79 |
*/
|
69 |
false,
|
70 |
true );
|
71 |
|
|
|
|
|
|
|
|
|
|
|
72 |
/**
|
73 |
* imagesLoaded, if less than WordPress 4.6
|
74 |
*/
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: testimonials, testimonial slider, testimonial form, reviews, star ratings
|
|
4 |
Requires at least: 3.7
|
5 |
Requires PHP: 5.2.4
|
6 |
Tested up to: 4.9.6
|
7 |
-
Stable tag: 2.31.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -188,10 +188,6 @@ Yes. This requires a lightbox so if your theme does not include one, you will ne
|
|
188 |
|
189 |
No. If you already have testimonials in another plugin or theme, you will have to re-enter them. Why? Because every theme and plugin stores data differently.
|
190 |
|
191 |
-
= Can I import my existing testimonials? =
|
192 |
-
|
193 |
-
It depends. The plugin does not provide an import tool because every situation is different. With some technical skills, you may be able to successfully export your existing testimonials to a CSV file and import them into Strong Testimonials. Contact me if you want help with that. Otherwise, it may be simpler and easier to migrate them manually.
|
194 |
-
|
195 |
= Is it true that including a link to my site in my support requests really helps you troubleshoot problems? =
|
196 |
|
197 |
Undeniably, yes.
|
@@ -215,6 +211,12 @@ If you prefer, start a private support ticket at [support.strongplugins.com](htt
|
|
215 |
|
216 |
== Changelog ==
|
217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
= 2.31.7 - June 7, 2018 =
|
219 |
* Fix JavaScript incompatibility in IE and Edge.
|
220 |
|
@@ -322,3 +324,6 @@ Privacy exporter and eraser integration.
|
|
322 |
|
323 |
= 2.31.5 =
|
324 |
Fix XSS security vulnerabilities.
|
|
|
|
|
|
4 |
Requires at least: 3.7
|
5 |
Requires PHP: 5.2.4
|
6 |
Tested up to: 4.9.6
|
7 |
+
Stable tag: 2.31.8
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
188 |
|
189 |
No. If you already have testimonials in another plugin or theme, you will have to re-enter them. Why? Because every theme and plugin stores data differently.
|
190 |
|
|
|
|
|
|
|
|
|
191 |
= Is it true that including a link to my site in my support requests really helps you troubleshoot problems? =
|
192 |
|
193 |
Undeniably, yes.
|
211 |
|
212 |
== Changelog ==
|
213 |
|
214 |
+
= 2.31.8 - June 16, 2018 =
|
215 |
+
* Fix "wait" spinner in unstyled form template.
|
216 |
+
* On forms, only show required symbol if field label is shown.
|
217 |
+
* Refactor inline style method.
|
218 |
+
* Improve exception handling.
|
219 |
+
|
220 |
= 2.31.7 - June 7, 2018 =
|
221 |
* Fix JavaScript incompatibility in IE and Edge.
|
222 |
|
324 |
|
325 |
= 2.31.5 =
|
326 |
Fix XSS security vulnerabilities.
|
327 |
+
|
328 |
+
= 2.31.8 =
|
329 |
+
Minor improvements to forms and inline style.
|
strong-testimonials.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Plugin URI: https://strongplugins.com/plugins/strong-testimonials/
|
5 |
* Description: Collect and display your testimonials or reviews.
|
6 |
* Author: Chris Dillon
|
7 |
-
* Version: 2.31.
|
8 |
*
|
9 |
* Author URI: https://strongplugins.com/
|
10 |
* Text Domain: strong-testimonials
|
@@ -34,7 +34,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
34 |
exit;
|
35 |
}
|
36 |
|
37 |
-
define( 'WPMTST_VERSION', '2.31.
|
38 |
define( 'WPMTST_PLUGIN', plugin_basename( __FILE__ ) ); // strong-testimonials/strong-testimonials.php
|
39 |
define( 'WPMTST', dirname( WPMTST_PLUGIN ) ); // strong-testimonials
|
40 |
define( 'STRONGPLUGINS_STORE_URL', 'https://strongplugins.com' );
|
4 |
* Plugin URI: https://strongplugins.com/plugins/strong-testimonials/
|
5 |
* Description: Collect and display your testimonials or reviews.
|
6 |
* Author: Chris Dillon
|
7 |
+
* Version: 2.31.8
|
8 |
*
|
9 |
* Author URI: https://strongplugins.com/
|
10 |
* Text Domain: strong-testimonials
|
34 |
exit;
|
35 |
}
|
36 |
|
37 |
+
define( 'WPMTST_VERSION', '2.31.8' );
|
38 |
define( 'WPMTST_PLUGIN', plugin_basename( __FILE__ ) ); // strong-testimonials/strong-testimonials.php
|
39 |
define( 'WPMTST', dirname( WPMTST_PLUGIN ) ); // strong-testimonials
|
40 |
define( 'STRONGPLUGINS_STORE_URL', 'https://strongplugins.com' );
|
templates-scss/_partials/_form-wait.scss
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.strong-form-wait {
|
2 |
+
display: none;
|
3 |
+
position: absolute;
|
4 |
+
top: 0;
|
5 |
+
bottom: 0;
|
6 |
+
left: 0;
|
7 |
+
right: 0;
|
8 |
+
background: rgba(255,255,255,0.7);
|
9 |
+
|
10 |
+
.message {
|
11 |
+
position: absolute;
|
12 |
+
top: calc( 50% - 25px );
|
13 |
+
text-align: center;
|
14 |
+
width: 100%;
|
15 |
+
height: 50px;
|
16 |
+
line-height: 50px;
|
17 |
+
color: #111;
|
18 |
+
}
|
19 |
+
}
|
templates-scss/_partials/_structure-form.scss
CHANGED
@@ -120,23 +120,3 @@ img.captcha {
|
|
120 |
}
|
121 |
|
122 |
}
|
123 |
-
|
124 |
-
.strong-form-wait {
|
125 |
-
display: none;
|
126 |
-
position: absolute;
|
127 |
-
top: 0;
|
128 |
-
bottom: 0;
|
129 |
-
left: 0;
|
130 |
-
right: 0;
|
131 |
-
background: rgba(255,255,255,0.7);
|
132 |
-
|
133 |
-
.message {
|
134 |
-
position: absolute;
|
135 |
-
top: calc( 50% - 25px );
|
136 |
-
text-align: center;
|
137 |
-
width: 100%;
|
138 |
-
height: 50px;
|
139 |
-
line-height: 50px;
|
140 |
-
color: #111;
|
141 |
-
}
|
142 |
-
}
|
120 |
}
|
121 |
|
122 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates-scss/default-form/form.scss
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
* Strong Testimonials Default Form template
|
3 |
*/
|
4 |
@import "../_partials/structure-form";
|
|
|
5 |
|
6 |
.strong-form {
|
7 |
label {
|
2 |
* Strong Testimonials Default Form template
|
3 |
*/
|
4 |
@import "../_partials/structure-form";
|
5 |
+
@import "../_partials/form-wait";
|
6 |
|
7 |
.strong-form {
|
8 |
label {
|
templates-scss/simple-form/form.scss
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
* Strong Testimonials Simple Form template
|
3 |
*/
|
4 |
@import "../_partials/structure-form";
|
|
|
5 |
|
6 |
.strong-form {
|
7 |
/* error indicators */
|
2 |
* Strong Testimonials Simple Form template
|
3 |
*/
|
4 |
@import "../_partials/structure-form";
|
5 |
+
@import "../_partials/form-wait";
|
6 |
|
7 |
.strong-form {
|
8 |
/* error indicators */
|
templates-scss/unstyled-form/form.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Strong Testimonials Unstyled Form template
|
3 |
+
*/
|
4 |
+
@import "../_partials/form-wait";
|
templates/unstyled-form/form.css
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Strong Testimonials Unstyled Form template
|
3 |
+
*/
|
4 |
+
.strong-form-wait {
|
5 |
+
display: none;
|
6 |
+
position: absolute;
|
7 |
+
top: 0;
|
8 |
+
bottom: 0;
|
9 |
+
left: 0;
|
10 |
+
right: 0;
|
11 |
+
background: rgba(255, 255, 255, 0.7);
|
12 |
+
}
|
13 |
+
.strong-form-wait .message {
|
14 |
+
position: absolute;
|
15 |
+
top: calc( 50% - 25px );
|
16 |
+
text-align: center;
|
17 |
+
width: 100%;
|
18 |
+
height: 50px;
|
19 |
+
line-height: 50px;
|
20 |
+
color: #111;
|
21 |
+
}
|