Strong Testimonials - Version 2.40.2

Version Description

Download this release

Release Info

Developer giucu91
Plugin Icon 128x128 Strong Testimonials
Version 2.40.2
Comparing to
See all releases

Code changes from version 2.40.1 to 2.40.2

Files changed (152) hide show
  1. admin/about/addons.php +0 -23
  2. admin/about/class-strong-testimonials-about.php +0 -100
  3. admin/about/how-to.php +0 -41
  4. admin/about/links.php +0 -21
  5. admin/about/privacy.php +0 -13
  6. admin/about/upsell.php +0 -10
  7. admin/about/whats-new.php +0 -107
  8. admin/admin.php +1 -1
  9. admin/class-strong-testimonials-admin-scripts.php +4 -9
  10. admin/class-strong-testimonials-defaults.php +5 -3
  11. admin/class-strong-testimonials-page-shortcodes.php +31 -5
  12. admin/class-strong-testimonials-review.php +154 -0
  13. admin/class-strong-testimonials-updater.php +2 -1
  14. admin/class-strong-testimonials-upsell.php +45 -83
  15. admin/class-strong-views-list-table.php +2 -0
  16. admin/css/order.css +37 -10
  17. admin/css/uninstall.css +114 -0
  18. admin/css/views.css +36 -14
  19. admin/img/bars-solid.svg +1 -0
  20. admin/img/check-square-regular.svg +1 -0
  21. admin/img/circle-regular.svg +1 -0
  22. admin/img/dot-circle-regular.svg +1 -0
  23. admin/img/hand-paper-regular.svg +1 -0
  24. admin/img/hand-rock-regular.svg +1 -0
  25. admin/img/minus-square-regular.svg +1 -0
  26. admin/img/spinner-solid.svg +1 -0
  27. admin/img/square-regular.svg +1 -0
  28. admin/js/addon-licenses.js +84 -0
  29. admin/js/admin-global.js +11 -2
  30. admin/js/st-uninstall.js +72 -0
  31. admin/partials/views/option-slideshow-behavior.php +10 -0
  32. admin/partials/views/option-title.php +35 -3
  33. admin/scss/_partials/_checkbox-icons.scss +11 -4
  34. admin/scss/_partials/_list-radio-buttons.scss +3 -2
  35. admin/settings/class-strong-testimonials-settings-general.php +3 -2
  36. admin/settings/partials/form.php +3 -0
  37. admin/settings/partials/general.php +38 -51
  38. admin/uninstall/class-strong-testimonials-uninstall.php +233 -0
  39. admin/views-validate.php +3 -2
  40. assets/css/admin-global.css +45 -0
  41. changelog.txt +18 -0
  42. includes/class-strong-testimonials-render.php +1 -5
  43. includes/class-strong-testimonials-shortcode-average.php +46 -36
  44. includes/class-strong-view-display.php +1 -1
  45. includes/class-strong-view-form.php +1 -2
  46. includes/class-strong-view-slideshow.php +2 -2
  47. includes/class-strong-view.php +10 -8
  48. includes/filters.php +17 -0
  49. includes/functions-template.php +25 -13
  50. includes/functions.php +2 -1
  51. includes/scripts.php +0 -10
  52. public/css/columns.css +1 -1
  53. public/css/grid.css +12 -12
  54. public/css/masonry.css +9 -9
  55. public/css/rating-display.css +12 -4
  56. public/css/rating-form.css +24 -7
  57. public/css/slider-controls-full-buttons.css +59 -7
  58. public/css/slider-controls-full-buttons2.css +49 -11
  59. public/css/slider-controls-full-buttons3.css +59 -7
  60. public/css/slider-controls-sides-buttons-pager-buttons.css +77 -11
  61. public/css/slider-controls-sides-buttons-pager-text.css +59 -7
  62. public/css/slider-controls-sides-buttons.css +59 -7
  63. public/css/slider-controls-sides-buttons2-pager-buttons.css +67 -15
  64. public/css/slider-controls-sides-buttons2-pager-text.css +49 -11
  65. public/css/slider-controls-sides-buttons2.css +49 -11
  66. public/css/slider-controls-sides-buttons3-pager-buttons.css +77 -11
  67. public/css/slider-controls-sides-buttons3-pager-text.css +59 -7
  68. public/css/slider-controls-sides-buttons3.css +59 -7
  69. public/css/slider-controls-sides-inside-buttons-pager-buttons.css +77 -11
  70. public/css/slider-controls-sides-inside-buttons-pager-text.css +59 -7
  71. public/css/slider-controls-sides-inside-buttons.css +58 -7
  72. public/css/slider-controls-sides-inside-buttons2-pager-buttons.css +67 -12
  73. public/css/slider-controls-sides-inside-buttons2-pager-text.css +49 -8
  74. public/css/slider-controls-sides-inside-buttons2.css +50 -9
  75. public/css/slider-controls-sides-inside-buttons3-pager-buttons.css +77 -11
  76. public/css/slider-controls-sides-inside-buttons3-pager-text.css +61 -7
  77. public/css/slider-controls-sides-inside-buttons3.css +59 -9
  78. public/css/slider-controls-sides-outside-buttons-pager-buttons.css +77 -11
  79. public/css/slider-controls-sides-outside-buttons-pager-text.css +59 -7
  80. public/css/slider-controls-sides-outside-buttons.css +59 -7
  81. public/css/slider-controls-sides-outside-buttons2-pager-buttons.css +67 -15
  82. public/css/slider-controls-sides-outside-buttons2-pager-text.css +49 -11
  83. public/css/slider-controls-sides-outside-buttons2.css +48 -11
  84. public/css/slider-controls-sides-outside-buttons3-pager-buttons.css +77 -11
  85. public/css/slider-controls-sides-outside-buttons3-pager-text.css +59 -7
  86. public/css/slider-controls-sides-outside-buttons3.css +59 -7
  87. public/css/slider-controls-simple-buttons-pager-buttons.css +77 -11
  88. public/css/slider-controls-simple-buttons-pager-text.css +59 -7
  89. public/css/slider-controls-simple-buttons.css +58 -7
  90. public/css/slider-controls-simple-buttons2-pager-buttons.css +67 -15
  91. public/css/slider-controls-simple-buttons2-pager-text.css +36 -9
  92. public/css/slider-controls-simple-buttons2.css +49 -11
  93. public/css/slider-controls-simple-buttons3-pager-buttons.css +77 -11
  94. public/css/slider-controls-simple-buttons3-pager-text.css +59 -8
  95. public/css/slider-controls-simple-buttons3.css +59 -7
  96. public/css/slider-controls-simple-text-pager-buttons.css +77 -11
  97. public/css/slider-pager-buttons.css +18 -4
  98. public/fonts/font-awesome-4.6.3/css/font-awesome.css +0 -2199
  99. public/fonts/font-awesome-4.6.3/css/font-awesome.min.css +0 -4
  100. public/fonts/font-awesome-4.6.3/css/index.php +0 -0
  101. public/fonts/font-awesome-4.6.3/fonts/FontAwesome.otf +0 -0
  102. public/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.eot +0 -0
  103. public/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.svg +0 -685
  104. public/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.ttf +0 -0
  105. public/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.woff +0 -0
  106. public/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.woff2 +0 -0
  107. public/js/controller.js +2 -2
  108. public/js/controller.min.js +1 -1
  109. public/js/lib/form-validation/form-validation.js +1 -1
  110. public/js/lib/form-validation/form-validation.min.js +1 -1
  111. public/scss/_partials/_buttons.scss +53 -8
  112. public/scss/_partials/_buttons2.scss +49 -11
  113. public/scss/_partials/_buttons3.scss +59 -7
  114. public/scss/_partials/_pager_buttons.scss +18 -4
  115. public/svg/chevron-circle-left-solid.svg +1 -0
  116. public/svg/chevron-circle-right-solid.svg +1 -0
  117. public/svg/chevron-left-solid.svg +1 -0
  118. public/svg/chevron-right-solid.svg +1 -0
  119. public/svg/circle-solid.svg +1 -0
  120. public/svg/pause-circle-solid.svg +1 -0
  121. public/svg/pause-solid.svg +1 -0
  122. public/svg/play-circle-solid.svg +1 -0
  123. public/svg/play-solid.svg +1 -0
  124. public/svg/quote-left-solid.svg +1 -0
  125. public/svg/quote-right-solid.svg +1 -0
  126. public/svg/spinner-solid.svg +1 -0
  127. public/svg/star-half-alt-solid.svg +1 -0
  128. public/svg/star-regular.svg +1 -0
  129. public/svg/star-solid.svg +1 -0
  130. readme.txt +30 -1
  131. strong-testimonials.php +17 -16
  132. templates-scss/_partials/_base.scss +4 -4
  133. templates-scss/_partials/_responsive-no-heading-background.scss +1 -1
  134. templates-scss/_partials/_responsive.scss +1 -1
  135. templates-scss/_partials/_rtl.scss +5 -5
  136. templates-scss/bold/content.scss +10 -10
  137. templates-scss/default/content.scss +20 -20
  138. templates-scss/modern/content.scss +29 -27
  139. templates-scss/simple/content.scss +9 -9
  140. templates-scss/small-widget/content.scss +16 -16
  141. templates/bold/content.css +38 -32
  142. templates/bold/content.php +18 -12
  143. templates/default/content.css +58 -54
  144. templates/default/content.php +14 -9
  145. templates/modern/content.css +66 -55
  146. templates/modern/content.php +12 -10
  147. templates/simple/content.css +39 -36
  148. templates/simple/content.php +13 -9
  149. templates/small-widget/content.css +41 -38
  150. templates/small-widget/content.php +13 -9
  151. templates/unstyled/content.css +3 -0
  152. templates/unstyled/content.php +13 -9
admin/about/addons.php DELETED
@@ -1,23 +0,0 @@
1
- <hr />
2
-
3
- <!-- <div id="addons" class="feature-section three-col">
4
- <div class="col sidebar-block sidebar-news addon multiple-forms">
5
- <h3></h3>
6
- <p></p>
7
- <div class="actions">
8
- <a href="" target="_blank">Learn more</a>
9
- </div>
10
- </div>
11
- <div class="col sidebar-block sidebar-news addon properties">
12
- <h3></h3>
13
- <p></p>
14
- <div class="actions">
15
- </div>
16
- </div>
17
- <div class="col sidebar-block sidebar-news addon assignment">
18
- <h3></h3>
19
- <p></p>
20
- <div class="actions">
21
- </div>
22
- </div>
23
- </div> -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/about/class-strong-testimonials-about.php DELETED
@@ -1,100 +0,0 @@
1
- <?php
2
- /**
3
- * Class Strong_Testimonials_About
4
- *
5
- * @since 2.27.0
6
- */
7
- class Strong_Testimonials_About {
8
-
9
- /**
10
- * Strong_Testimonials_About constructor.
11
- */
12
- public function __construct() {
13
- $this->add_actions();
14
- }
15
-
16
- /**
17
- * Add actions and filters.
18
- */
19
- public function add_actions() {
20
- add_filter( 'wpmtst_submenu_pages', array( $this, 'add_submenu' ) );
21
- }
22
-
23
- /**
24
- * Add submenu page.
25
- *
26
- * @param $pages
27
- *
28
- * @return mixed
29
- */
30
- public function add_submenu( $pages ) {
31
- $pages[90] = $this->get_submenu();
32
- return $pages;
33
- }
34
-
35
- /**
36
- * Return submenu page parameters.
37
- *
38
- * @return array
39
- */
40
- public function get_submenu() {
41
- return array(
42
- 'page_title' => __( 'About', 'strong-testimonials' ),
43
- 'menu_title' => __( 'About', 'strong-testimonials' ),
44
- 'capability' => 'strong_testimonials_about',
45
- 'menu_slug' => 'about-strong-testimonials',
46
- 'function' => array( $this, 'about_page' ),
47
- );
48
- }
49
-
50
- /**
51
- * Print the About page.
52
- */
53
- public function about_page() {
54
- $active_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'how-to';
55
- $url = admin_url( 'edit.php?post_type=wpm-testimonial&page=about-strong-testimonials' );
56
- ?>
57
- <div class="wrap about-wrap">
58
-
59
- <img class="wpmst-mascot" src="<?php echo esc_url( WPMTST_ADMIN_URL ); ?>/img/mascot.png" />
60
-
61
- <?php /* translators: %s is the plugin version number */ ?>
62
- <h1><?php printf( __( 'Welcome to Strong Testimonials %s', 'strong-testimonials' ), WPMTST_VERSION ); ?></h1>
63
-
64
- <p class="about-text">
65
- <?php esc_html_e( 'Thank you for updating to the latest version!', 'strong-testimonials' ); ?>
66
- <?php /* translators: %s is the plugin version number */ ?>
67
- </p>
68
- <br/>
69
-
70
- <h2 class="nav-tab-wrapper wp-clearfix">
71
-
72
- <a href="<?php echo add_query_arg( 'tab', 'how-to', $url ); ?>" class="nav-tab <?php echo $active_tab == 'how-to' ? 'nav-tab-active' : ''; ?>"><?php _e( 'How To', 'strong-testimonials' ); ?></a>
73
- <a href="<?php echo esc_url( add_query_arg( 'tab', 'privacy', $url ) ); ?>" class="nav-tab <?php echo $active_tab == 'privacy' ? 'nav-tab-active' : ''; ?>"><?php esc_html_e( 'Privacy', 'strong-testimonials' ); ?></a>
74
-
75
- </h2>
76
-
77
-
78
- <?php
79
- switch( $active_tab ) {
80
- case 'privacy':
81
- include WPMTST_ADMIN . 'about/privacy.php';
82
- break;
83
- default:
84
- include WPMTST_ADMIN . 'about/how-to.php';
85
- break;
86
- }
87
-
88
- include WPMTST_ADMIN . 'about/upsell.php';
89
- include WPMTST_ADMIN . 'about/links.php';
90
- include WPMTST_ADMIN . 'about/addons.php';
91
- ?>
92
-
93
- </div>
94
- <?php
95
- }
96
-
97
-
98
- }
99
-
100
- new Strong_Testimonials_About();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/about/how-to.php DELETED
@@ -1,41 +0,0 @@
1
- <?php
2
- $add_the_view = __( 'Add the view to a page or sidebar using its unique shortcode or the Strong Testimonials widget.', 'strong-testimonials' );
3
- ?>
4
- <h2><?php _e( 'Let\'s Get Started', 'strong-testimonials' ); ?></h2>
5
- <p class="lead-description"><?php _e( 'This plugin is different than others you may have tried.', 'strong-testimonials' ); ?></p>
6
-
7
- <div class="feature-section has-4-columns is-fullwidth four-col">
8
- <div class="col column">
9
- <h3><?php _e('How to Add the Form', 'strong-testimonials' ); ?></h3>
10
- <p>1. <?php printf( __( '<a href="%s">Check the custom fields</a>. The default set of fields are designed to suit most situations. Add or remove fields as you see fit.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial&page=testimonial-fields' ) ); ?>
11
- </p>
12
- <p>2. <?php printf( __( 'Create a <a href="%s">view</a>.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial&page=testimonial-views' ) ); ?>
13
- <?php _e( 'Select <strong>Form</strong> mode.', 'strong-testimonials' ); ?>
14
- </p>
15
- <p>3. <?php echo $add_the_view; ?></p>
16
- </div>
17
-
18
- <div class="col column">
19
- <h3><?php _e( 'How to Display Your Testimonials', 'strong-testimonials' ); ?></h3>
20
- <p>1. <?php printf( __( '<a href="%s">Enter your testimonials</a> if necessary. The plugin will not read existing testimonials from another plugin or theme. It will not import testimonials.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial' ) ); ?></p>
21
- <p>2. <?php printf( __( 'Create a <a href="%s">view</a>.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial&page=testimonial-views' ) ); ?>
22
- <?php _e( 'Select <strong>Display</strong> mode.', 'strong-testimonials' ); ?>
23
- </p>
24
- <p>3. <?php echo $add_the_view; ?></p>
25
- </div>
26
-
27
- <div class="col column">
28
- <h3><?php _e( 'How to Add a Slideshow', 'strong-testimonials' ); ?></h3>
29
- <p>1. <?php printf( __( '<a href="%s">Enter your testimonials</a> if necessary. The plugin will not read existing testimonials from another plugin or theme. It will not import testimonials.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial' ) ); ?></p>
30
- <p>2. <?php printf( __( 'Create a <a href="%s">view</a>.', 'strong-testimonials' ), admin_url( 'edit.php?post_type=wpm-testimonial&page=testimonial-views' ) ); ?>
31
- <?php _e( 'Select <strong>Slideshow</strong> mode.', 'strong-testimonials' ); ?>
32
- </p>
33
- <p>3. <?php echo $add_the_view; ?></p>
34
- </div>
35
-
36
- <div class="col column">
37
- <h3><?php _e( 'How to Translate', 'strong-testimonials' ); ?></h3>
38
- <p><?php _e( 'Strong Testimonials is compatible with WPML, Polylang and WP Globus.', 'strong-testimonials' ); ?></p>
39
- <p><?php _e( 'In WPML and Polylang, domains are added to the <strong>String Translation</strong> pages. Those domains encompass the form fields, the form messages, the notification email, and the "Read more" link text in your views. They are updated automatically when any of those settings change.', 'strong-testimonials' ); ?></p>
40
- </div>
41
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/about/links.php DELETED
@@ -1,21 +0,0 @@
1
- <hr />
2
-
3
- <div class="feature-section three-col">
4
- <div class="col">
5
- <h3><?php _e( 'Support', 'strong-testimonials' ); ?></h3>
6
- <?php
7
- $links = array();
8
-
9
- $links[] = sprintf( '<a href="%s" target="_blank">%s</a>',
10
- esc_url( 'http://wordpress.org/support/plugin/strong-testimonials' ),
11
- __( 'Use the community support forum', 'strong-testimonials' ) );
12
-
13
- ?>
14
- <ul>
15
- <?php foreach ( $links as $link ) : ?>
16
- <li><?php echo $link; ?></li>
17
- <?php endforeach; ?>
18
- </ul>
19
- </div>
20
-
21
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/about/privacy.php DELETED
@@ -1,13 +0,0 @@
1
- <h2><?php _e( 'Privacy and GDPR', 'strong-testimonials' ); ?></h2>
2
- <p class="lead-description"><?php _e( 'Compliance is entirely in your control.', 'strong-testimonials' ); ?></p>
3
- <div class="feature-section one-col">
4
- <div class="col">
5
- <p><?php _e( 'By default, this plugin does not store any user or visitor data, does not send any data to remote servers, act as a service or embed content, does not edit the comments form in any way.', 'strong-testimonials' ); ?></p>
6
- <p><?php _e( 'The plugin also prevents displaying email addresses in your testimonials on the front end.', 'strong-testimonials' ); ?></p>
7
- <p><strong><?php _e( 'However, this plugin provides features that may involve private data.', 'strong-testimonials' ); ?></strong></p>
8
- <p><?php _e( 'If you use the testimonial submission form, the data collected on that form will be stored in your database.', 'strong-testimonials' ); ?></p>
9
- <p><?php _e( 'If you enable the administrator notification email upon new testimonial submission, the data collected on your form, at your selection, may be included in that notification email.', 'strong-testimonials' ); ?></p>
10
- <p><?php _e( 'If you enable comments on testimonials, the plugin will use your theme\'s single post template and comment form.', 'strong-testimonials' ); ?></p>
11
- <p><?php _e( 'If you embed third-party posts such as Twitter, YouTube and FaceBook in your testimonials, you will be agreeing to the Terms of Use of those third-party sites.', 'strong-testimonials' ); ?></p>
12
- </div>
13
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/about/upsell.php DELETED
@@ -1,10 +0,0 @@
1
- <div class="wpmtst-notice wpmtst-notice--upsell">
2
- <div class="wpmtst-notice--upsell__bg"></div>
3
- <h3><?php esc_html_e( 'Upgrade to PRO', 'strong-testimonials' ); ?></h3>
4
- <p>
5
- <?php esc_html_e( 'Build trust and credibility with your products.', 'strong-testimonials' ); ?><br/>
6
- <?php esc_html_e( 'Do more with Strong Testimonials extensions.', 'strong-testimonials' ); ?>
7
- </p>
8
- <a class="button button-primary" target="_blank" href="<?php echo esc_url( WPMTST_STORE_UPGRADE_URL . '?utm_source=st-lite&utm_campaign=upsell&utm_medium=about-page-upsell' ); ?>""><?php esc_html_e( 'View pricing', 'strong-testimonials' ); ?></a>
9
- <a class="button button-secondary" href="<?php echo esc_url( admin_url( 'edit.php?post_type=wpm-testimonial&page=strong-testimonials-addons' ) ); ?>"><?php esc_html_e( 'View Extensions', 'strong-testimonials' ); ?></a>
10
- </div>
 
 
 
 
 
 
 
 
 
 
admin/about/whats-new.php DELETED
@@ -1,107 +0,0 @@
1
-
2
- <h2>Now Even Stronger</h2>
3
-
4
- <p class="lead-description">Version 2.32 adds the number one requested feature: Carousel</p>
5
-
6
- <div class="feature-section one-col">
7
- <div class="col">
8
- <p>NEW: Show 2 or 3 slides at the same time. Finally!</p>
9
- </div>
10
- </div>
11
-
12
- <p class="lead-description">Version 2.31 adds a highly requested feature and improves compatibility.</p>
13
-
14
- <div class="feature-section one-col">
15
- <div class="col">
16
- <p>NEW: Display your average rating with the <code>&#91;testimonial_average_rating&#93;</code> shortcode. Finally!</p>
17
- <p>NEW: Use the Load Event option to potentially fix problems with sliders and Masonry in complex themes.</p>
18
- <p>NEW: Use the Lazy Loading option to potentially fix problems with testimonial images being cut off.</p>
19
- <p>IMPROVED: The star ratings now use an empty star instead of a gray full star. This is the more popular approach.</p>
20
- <p>IMPROVED: Minor style tweaks in both admin and some templates for small screens.</p>
21
- <div class="feature-section-sub">
22
-
23
- <h3 class="heading">Point Releases</h3>
24
-
25
- <p>Security fixes, bug fixes and improved compatibility. <a href="https://wordpress.org/plugins/strong-testimonials/#developers" target="_blank">Read changelog on wordpress.org</a>.</p>
26
-
27
- <ul>
28
- <li>Version 2.31.1</li>
29
- <li>Version 2.31.2</li>
30
- <li>Version 2.31.3</li>
31
- <li>Version 2.31.4</li>
32
- <li>Version 2.31.5</li>
33
- <li>Version 2.31.6</li>
34
- <li>Version 2.31.7</li>
35
- <li>Version 2.31.8</li>
36
- <li>Version 2.31.9</li>
37
- <li>Version 2.31.10</li>
38
- </ul>
39
-
40
- </div>
41
- </div>
42
- </div>
43
-
44
- <p class="lead-description">Version 2.30 adds highly requested features, improves compatibility and fixes bugs.</p>
45
-
46
- <div class="feature-section one-col">
47
- <div class="col">
48
- <p>NEW: Option to select the font color in views. Finally!</p>
49
- <p>NEW: Option to add a CSS class to the image for lightboxes.</p>
50
- <p>NEW: Certain shortcode attributes will override view settings. This allows views to serve as reusable patterns.</p>
51
- <p>NEW: Using the WordPress email validation function for increased security.</p>
52
- <p>NEW: Using the WordPress number format function in the &#91;testimonial_count&#93; shortcode so the thousands separator will be properly localized.</p>
53
- <p>IMPROVED: Templates were completely reorganized to consolidate options and prepare for future features.</p>
54
- <p>IMPROVED: Simplified slideshow CSS will make adding custom CSS simpler.</p>
55
- <p>NEW: Option to disable touch swipe navigation to improve slideshow behavior on mobile devices.</p>
56
- <p>FIXED: An intermittent bug in the slideshow in Chrome.</p>
57
-
58
- <div class="feature-section-sub">
59
-
60
- <h3 class="heading">Point Releases</h3>
61
-
62
- <p>Bug fixes and improved compatibility. <a href="https://wordpress.org/plugins/strong-testimonials/#developers" target="_blank">Read changelog on wordpress.org</a>.</p>
63
-
64
- <ul>
65
- <li>Version 2.30.1</li>
66
- <li>Version 2.30.2</li>
67
- <li>Version 2.30.3</li>
68
- <li>Version 2.30.4</li>
69
- <li>Version 2.30.5</li>
70
- <li>Version 2.30.6</li>
71
- <li>Version 2.30.7</li>
72
- <li>Version 2.30.8</li>
73
- <li>Version 2.30.9</li>
74
- </ul>
75
-
76
- </div>
77
- </div>
78
- </div>
79
-
80
- <p class="lead-description">Version 2.29 improves Captcha options and fixes two bugs.</p>
81
-
82
- <div class="feature-section one-col">
83
- <div class="col">
84
- <p>NEW: Integration with Google Captcha by BestWebSoft. This allows use of either Invisible reCaptcha and reCatpcha V2, both excellent choices for modern spam warfare.</p>
85
- <p>REMOVED: Integration with the plugin Captcha due to security issues.</p>
86
- <p>REMOVED: Integration with the plugin Advanced noCaptcha reCaptcha due to compatibility issues and inadequate maintenance.</p>
87
- <p>FIXED: The notification email now displays a category name properly.</p>
88
- <p>IMPROVED: The notification settings UI was improved to make it easier to add your custom fields to the notification email.</p>
89
- <p>NEW: A new filter on the "Read more" page for total control over that link.</p>
90
- <p>FIXED: A conflict with Cherry Slider that made the slideshow invisible.</p>
91
- </div>
92
- </div>
93
-
94
- <p class="lead-description">Version 2.28 improves compatibility and adds some new features.</p>
95
-
96
- <div class="feature-section one-col">
97
- <div class="col">
98
- <p>NEW: Compatibility settings for sites that use Ajax page loading via theme or plugin.</p>
99
- <p>NEW: Views using simple pagination now provide a subtle transition effect.</p>
100
- <p>NEW: Standard pagination options including Previous/Next links and condensed navigation.</p>
101
- <p>IMPROVED: A JavaScript controller to coordinate multiple components like slideshows and paginated views.</p>
102
- <p>IMPROVED: The slider and pager scripts were refactored to improve performance. <strong style="color: #8224E3;">Clear your caches!</strong></p>
103
- <p>FIXED: Bug where standard pagination failed to include a trailing slash.</p>
104
- <p>FIXED: Capabilities check in multisite.</p>
105
- <p>IMPROVED: Many functions were refactored into classes to improve performance and future development.</p>
106
- </div>
107
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/admin.php CHANGED
@@ -92,7 +92,7 @@ add_action( 'admin_action_captcha-options-changed', 'wpmtst_action_captcha_optio
92
  function wpmtst_activation_redirect() {
93
  if ( get_option( 'wpmtst_do_activation_redirect', false ) ) {
94
  delete_option( 'wpmtst_do_activation_redirect' );
95
- wp_redirect( admin_url( 'edit.php?post_type=wpm-testimonial&page=about-strong-testimonials' ) );
96
  exit;
97
  }
98
  }
92
  function wpmtst_activation_redirect() {
93
  if ( get_option( 'wpmtst_do_activation_redirect', false ) ) {
94
  delete_option( 'wpmtst_do_activation_redirect' );
95
+ wp_redirect( admin_url( 'edit.php?post_type=wpm-testimonial' ) );
96
  exit;
97
  }
98
  }
admin/class-strong-testimonials-admin-scripts.php CHANGED
@@ -45,11 +45,6 @@ class Strong_Testimonials_Admin_Scripts {
45
 
46
  $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
47
 
48
- wp_register_style( 'wpmtst-font-awesome',
49
- WPMTST_PUBLIC_URL . 'fonts/font-awesome-4.6.3/css/font-awesome.min.css',
50
- array(),
51
- '4.6.3' );
52
-
53
  wp_register_script( 'wpmtst-help',
54
  WPMTST_ADMIN_URL . 'js/help.js',
55
  array( 'jquery' ),
@@ -73,12 +68,12 @@ class Strong_Testimonials_Admin_Scripts {
73
  wp_register_style(
74
  'wpmtst-admin-style',
75
  WPMTST_ASSETS_CSS . 'admin.css',
76
- array( 'wpmtst-font-awesome' ),
77
  $plugin_version );
78
 
79
  wp_register_style( 'wpmtst-post-editor',
80
  WPMTST_ADMIN_URL . 'css/post-editor.css',
81
- array( 'wpmtst-font-awesome' ),
82
  $plugin_version );
83
 
84
  wp_register_script( 'wpmtst-custom-spinner',
@@ -153,12 +148,12 @@ class Strong_Testimonials_Admin_Scripts {
153
  */
154
  wp_register_style( 'wpmtst-rating-display',
155
  WPMTST_PUBLIC_URL . 'css/rating-display.css',
156
- array( 'wpmtst-font-awesome' ),
157
  $plugin_version );
158
 
159
  wp_register_style( 'wpmtst-rating-form',
160
  WPMTST_PUBLIC_URL . 'css/rating-form.css',
161
- array( 'wpmtst-font-awesome' ),
162
  $plugin_version );
163
 
164
  wp_register_script( 'wpmtst-rating-script',
45
 
46
  $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
47
 
 
 
 
 
 
48
  wp_register_script( 'wpmtst-help',
49
  WPMTST_ADMIN_URL . 'js/help.js',
50
  array( 'jquery' ),
68
  wp_register_style(
69
  'wpmtst-admin-style',
70
  WPMTST_ASSETS_CSS . 'admin.css',
71
+ array( ),
72
  $plugin_version );
73
 
74
  wp_register_style( 'wpmtst-post-editor',
75
  WPMTST_ADMIN_URL . 'css/post-editor.css',
76
+ array( ),
77
  $plugin_version );
78
 
79
  wp_register_script( 'wpmtst-custom-spinner',
148
  */
149
  wp_register_style( 'wpmtst-rating-display',
150
  WPMTST_PUBLIC_URL . 'css/rating-display.css',
151
+ array( ),
152
  $plugin_version );
153
 
154
  wp_register_style( 'wpmtst-rating-form',
155
  WPMTST_PUBLIC_URL . 'css/rating-form.css',
156
+ array( ),
157
  $plugin_version );
158
 
159
  wp_register_script( 'wpmtst-rating-script',
admin/class-strong-testimonials-defaults.php CHANGED
@@ -30,11 +30,12 @@ class Strong_Testimonials_Defaults {
30
  public static function get_options() {
31
  $default_options = array(
32
  'embed_width' => '',
33
- 'load_font_awesome' => true,
34
  'nofollow' => false,
 
35
  'pending_indicator' => true,
36
  'remove_whitespace' => true,
37
- 'reorder' => false,
 
38
  'support_comments' => false,
39
  'support_custom_fields' => false,
40
  'single_testimonial_slug' => 'testimonial',
@@ -761,6 +762,7 @@ class Strong_Testimonials_Defaults {
761
  'speed' => 1,
762
  'pause' => 8,
763
  'auto_start' => true,
 
764
  'auto_hover' => true,
765
  'adapt_height' => true,
766
  'adapt_height_speed' => .5,
@@ -779,7 +781,7 @@ class Strong_Testimonials_Defaults {
779
  'thumbnail_height' => null,
780
  'thumbnail_width' => null,
781
  'title' => true,
782
- 'title_link' => false,
783
  'use_default_length' => true,
784
  'use_default_more' => false,
785
  'view' => '',
30
  public static function get_options() {
31
  $default_options = array(
32
  'embed_width' => '',
 
33
  'nofollow' => false,
34
+ 'disable_rewrite' => false,
35
  'pending_indicator' => true,
36
  'remove_whitespace' => true,
37
+ //@todo : delete commented line. For the moment let it be
38
+ //'reorder' => false,
39
  'support_comments' => false,
40
  'support_custom_fields' => false,
41
  'single_testimonial_slug' => 'testimonial',
762
  'speed' => 1,
763
  'pause' => 8,
764
  'auto_start' => true,
765
+ 'continuous_sliding' => false,
766
  'auto_hover' => true,
767
  'adapt_height' => true,
768
  'adapt_height_speed' => .5,
781
  'thumbnail_height' => null,
782
  'thumbnail_width' => null,
783
  'title' => true,
784
+ 'title_link' => 'none',
785
  'use_default_length' => true,
786
  'use_default_more' => false,
787
  'view' => '',
admin/class-strong-testimonials-page-shortcodes.php CHANGED
@@ -20,6 +20,8 @@ class Strong_Testimonials_Page_Shortcodes {
20
 
21
  $stars = '<span class="strong-rating"><span class="star0 star"></span><span class="star"></span><span class="star"></span><span class="star"></span><span class="star"></span><span class="star current half"></span></span>';
22
 
 
 
23
  $tags = array(
24
  'a' => array(
25
  'href' => array(),
@@ -285,18 +287,19 @@ class Strong_Testimonials_Page_Shortcodes {
285
  <table class="form-table shortcodes average">
286
  <tr>
287
  <td>
288
- <p><code>block</code> and <code>centered</code></p>
 
289
  </td>
290
  <td class="has-inner">
291
  <table class="inner" cellpadding="0" cellspacing="0">
292
  <tr>
293
- <td class="shortcode">&#91;testimonial_average_rating block centered /&#93;</td>
294
  </tr>
295
  <tr>
296
  <td>
297
- <div class="strong-rating-wrapper average block centered"><span class="strong-rating-title">Average Rating:</span>
298
- <?php echo $stars; ?>
299
- <span class="strong-rating-summary">4.3 stars (based on 9 ratings)</span>
300
  </div>
301
  </td>
302
  </tr>
@@ -305,6 +308,29 @@ class Strong_Testimonials_Page_Shortcodes {
305
  </tr>
306
  </table>
307
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
  <table class="form-table shortcodes average">
309
  <tr>
310
  <td>
20
 
21
  $stars = '<span class="strong-rating"><span class="star0 star"></span><span class="star"></span><span class="star"></span><span class="star"></span><span class="star"></span><span class="star current half"></span></span>';
22
 
23
+ $stars_rounded = '<span class="strong-rating"><span class="star0 star"></span><span class="star"></span><span class="star"></span><span class="star"></span><span class="star current"></span><span class="star"></span></span>';
24
+
25
  $tags = array(
26
  'a' => array(
27
  'href' => array(),
287
  <table class="form-table shortcodes average">
288
  <tr>
289
  <td>
290
+ <p><code>rounded</code></p>
291
+ <p class="description">Round the rating(ex.: from 4.3 -> 4 or 4.7->5)</p>
292
  </td>
293
  <td class="has-inner">
294
  <table class="inner" cellpadding="0" cellspacing="0">
295
  <tr>
296
+ <td class="shortcode">&#91;testimonial_average_rating rounded &#93;</td>
297
  </tr>
298
  <tr>
299
  <td>
300
+ <div class="strong-rating-wrapper average"><span class="strong-rating-title">Average Rating:</span>
301
+ <?php echo $stars_rounded; ?>
302
+ <span class="strong-rating-summary">4 stars (based on 9 ratings)</span>
303
  </div>
304
  </td>
305
  </tr>
308
  </tr>
309
  </table>
310
 
311
+ <table class="form-table shortcodes average">
312
+ <tr>
313
+ <td>
314
+ <p><code>block</code> and <code>centered</code></p>
315
+ </td>
316
+ <td class="has-inner">
317
+ <table class="inner" cellpadding="0" cellspacing="0">
318
+ <tr>
319
+ <td class="shortcode">&#91;testimonial_average_rating block centered /&#93;</td>
320
+ </tr>
321
+ <tr>
322
+ <td>
323
+ <div class="strong-rating-wrapper average block centered"><span class="strong-rating-title">Average Rating:</span>
324
+ <?php echo $stars; ?>
325
+ <span class="strong-rating-summary">4.3 stars (based on 9 ratings)</span>
326
+ </div>
327
+ </td>
328
+ </tr>
329
+ </table>
330
+ </td>
331
+ </tr>
332
+ </table>
333
+
334
  <table class="form-table shortcodes average">
335
  <tr>
336
  <td>
admin/class-strong-testimonials-review.php ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Strong_Review {
4
+
5
+ private $value;
6
+ private $messages;
7
+ private $link = 'https://wordpress.org/support/plugin/%s/reviews/#new-post';
8
+ private $slug = 'strong-testimonials';
9
+
10
+ function __construct() {
11
+
12
+ $this->messages = array(
13
+ 'notice' => __( "Hi there! Stoked to see you're using Strong Testimonials for a few days now - hope you like it! And if you do, please consider rating it. It would mean the world to us. Keep on rocking!", 'strong-testimonials' ),
14
+ 'rate' => __( 'Rate the plugin', 'strong-testimonials' ),
15
+ 'rated' => __( 'Remind me later', 'strong-testimonials' ),
16
+ 'no_rate' => __( 'Don\'t show again', 'strong-testimonials' ),
17
+ );
18
+
19
+ if ( isset( $args['messages'] ) ) {
20
+ $this->messages = wp_parse_args( $args['messages'], $this->messages );
21
+ }
22
+
23
+ add_action( 'init', array( $this, 'init' ) );
24
+
25
+ }
26
+
27
+ public function init() {
28
+ if ( ! is_admin() ) {
29
+ return;
30
+ }
31
+
32
+ $this->value = $this->value();
33
+
34
+ if ( $this->check() ) {
35
+ add_action( 'admin_notices', array( $this, 'five_star_wp_rate_notice' ) );
36
+ add_action( 'wp_ajax_strong-testimonials_review', array( $this, 'ajax' ) );
37
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
38
+ add_action( 'admin_print_footer_scripts', array( $this, 'ajax_script' ) );
39
+ }
40
+
41
+ }
42
+
43
+ private function check() {
44
+
45
+ if ( ! current_user_can('manage_options') ) {
46
+ return false;
47
+ }
48
+
49
+ return( time() > $this->value );
50
+
51
+ }
52
+
53
+ private function value() {
54
+
55
+ $value = get_option( 'strong-testimonials-rate-time', false );
56
+ if ( $value ) {
57
+ return $value;
58
+ }
59
+
60
+ $value = time() + DAY_IN_SECONDS;
61
+ update_option( 'strong-testimonials-rate-time', $value );
62
+
63
+ return $value;
64
+
65
+ }
66
+
67
+ public function five_star_wp_rate_notice() {
68
+
69
+ $url = sprintf( $this->link, $this->slug );
70
+
71
+ ?>
72
+ <div id="<?php echo esc_attr($this->slug) ?>-strong-testimonials-review-notice" class="notice notice-success is-dismissible" style="margin-top:30px;">
73
+ <p><?php echo sprintf( esc_html( $this->messages['notice'] ), $this->value ) ; ?></p>
74
+ <p class="actions">
75
+ <a id="strong-testimonials-rate" href="<?php echo esc_url( $url ) ?>" target="_blank" class="button button-primary strong-testimonials-review-button">
76
+ <?php echo esc_html( $this->messages['rate'] ); ?>
77
+ </a>
78
+ <a id="strong-testimonials-later" href="#" style="margin-left:10px" class="strong-testimonials-review-button"><?php echo esc_html( $this->messages['rated'] ); ?></a>
79
+ <a id="strong-testimonials-no-rate" href="#" style="margin-left:10px" class="strong-testimonials-review-button"><?php echo esc_html( $this->messages['no_rate'] ); ?></a>
80
+ </p>
81
+ </div>
82
+ <?php
83
+ }
84
+
85
+ public function ajax() {
86
+
87
+ check_ajax_referer( 'strong-testimonials-review', 'security' );
88
+
89
+ if ( ! isset( $_POST['check'] ) ) {
90
+ wp_die( 'ok' );
91
+ }
92
+
93
+ $time = get_option( 'strong-testimonials-rate-time' );
94
+
95
+ if ( 'strong-testimonials-rate' == $_POST['check'] ) {
96
+ $time = time() + YEAR_IN_SECONDS * 1;
97
+ }elseif ( 'strong-testimonials-later' == $_POST['check'] ) {
98
+ $time = time() + WEEK_IN_SECONDS;
99
+ }elseif ( 'strong-testimonials-no-rate' == $_POST['check'] ) {
100
+ $time = time() + YEAR_IN_SECONDS * 1;
101
+ }
102
+
103
+ update_option( 'strong-testimonials-rate-time', $time );
104
+ wp_die( 'ok' );
105
+
106
+ }
107
+
108
+ public function enqueue() {
109
+ wp_enqueue_script( 'jquery' );
110
+ }
111
+
112
+ public function ajax_script() {
113
+
114
+ $ajax_nonce = wp_create_nonce( "strong-testimonials-review" );
115
+
116
+ ?>
117
+
118
+ <script type="text/javascript">
119
+ jQuery( document ).ready( function( $ ){
120
+
121
+ $( '.strong-testimonials-review-button' ).click( function( evt ){
122
+ var href = $(this).attr('href'),
123
+ id = $(this).attr('id');
124
+
125
+ if ( 'strong-testimonials-rate' != id ) {
126
+ evt.preventDefault();
127
+ }
128
+
129
+ var data = {
130
+ action: 'strong-testimonials_review',
131
+ security: '<?php echo $ajax_nonce; ?>',
132
+ check: id
133
+ };
134
+
135
+ if ( 'strong-testimonials-rated' === id ) {
136
+ data['strong-testimonials-review'] = 1;
137
+ }
138
+
139
+ $.post( '<?php echo admin_url( 'admin-ajax.php' ) ?>', data, function( response ) {
140
+ $( '#<?php echo $this->slug ?>-strong-testimonials-review-notice' ).slideUp( 'fast', function() {
141
+ $( this ).remove();
142
+ } );
143
+ });
144
+
145
+ } );
146
+
147
+ });
148
+ </script>
149
+
150
+ <?php
151
+ }
152
+ }
153
+
154
+ new Strong_Review();
admin/class-strong-testimonials-updater.php CHANGED
@@ -1174,12 +1174,13 @@ class Strong_Testimonials_Updater {
1174
  */
1175
  public static function convert_title_link( $view_data ) {
1176
  if ( ! isset( $view_data['title_link'] ) ) {
1177
- $view_data['title_link'] = 0;
1178
  }
1179
 
1180
  return $view_data;
1181
  }
1182
 
 
1183
  /**
1184
  * Convert nofollow from (on|off) to (1|0).
1185
  *
1174
  */
1175
  public static function convert_title_link( $view_data ) {
1176
  if ( ! isset( $view_data['title_link'] ) ) {
1177
+ $view_data['title_link'] = 'none';
1178
  }
1179
 
1180
  return $view_data;
1181
  }
1182
 
1183
+
1184
  /**
1185
  * Convert nofollow from (on|off) to (1|0).
1186
  *
admin/class-strong-testimonials-upsell.php CHANGED
@@ -11,7 +11,6 @@ class Strong_Testimonials_Upsell {
11
  public function __construct() {
12
  $this->set_store_upgrade_url();
13
 
14
- add_action( 'admin_notices', array( $this, 'add_general_upsell_notice' ), 11 );
15
  add_action( 'wpmtst_after_form_type_selection', array( $this, 'add_upsells_1' ) );
16
  add_action( 'wpmtst_before_fields_settings', array( $this, 'add_upsells_2' ) );
17
  add_action( 'wpmtst_view_editor_after_groups', array( $this, 'add_upsells_3' ) );
@@ -71,44 +70,6 @@ class Strong_Testimonials_Upsell {
71
 
72
  }
73
 
74
- public function add_general_upsell_notice() {
75
- $screen = get_current_screen();
76
- if ( $screen->id !== 'edit-wpm-testimonial' && $screen->id !== 'wpm-testimonial_page_testimonial-views' ) {
77
- return;
78
- }
79
-
80
- $notices = get_option( 'wpmtst_admin_notices', array() );
81
- ?>
82
-
83
- <div class="notice wpmtst-notice-wrap">
84
-
85
- <?php if ( array_key_exists( 'feedback-notice', $notices ) ) : ?>
86
- <div class="wpmtst-notice wpmtst-notice--feedback" data-key="feedback-notice" data-nonce="<?php echo esc_attr( wp_create_nonce( 'wpmtst-admin' ) ); ?>">
87
- <div class="wpmtst-notice--feedback__bg"></div>
88
- <h2><?php esc_html_e( 'Feature Request', 'strong-testimonials' ); ?></h2>
89
- <p><?php esc_html_e( 'Do you enjoy using Strong Testimonials? Please take a minute to suggest a feature or tell us what you think.', 'strong-testimonials' ); ?></p>
90
- <a class="button" target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLScch0AchtnzxJsSrjUcW9ypcr1fZ9r-vyk3emEp8Sv47brb2g/viewform"><?php esc_html_e( 'Submit Feedback', 'strong-testimonials' ); ?></a>
91
- <button type="button" class="notice-dismiss"><span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'strong-testimonials' ); ?></span></button>
92
- </div><!-- wpmtst-notice--feedback -->
93
- <?php endif; ?>
94
-
95
- <?php if ( array_key_exists( 'upsell-notice', $notices ) && ! wpmtst_extensions_installed() ) : ?>
96
- <div class="wpmtst-notice wpmtst-notice--upsell" data-key="upsell-notice" data-nonce="<?php echo esc_attr( wp_create_nonce( 'wpmtst-admin' ) ); ?>">
97
- <div class="wpmtst-notice--upsell__bg"></div>
98
- <h2><?php esc_html_e( 'Upgrade to PRO', 'strong-testimonials' ); ?></h2>
99
- <p>
100
- <?php esc_html_e( 'Build trust and credibility with your products.', 'strong-testimonials' ); ?><br/>
101
- <?php esc_html_e( 'Do more with Strong Testimonials extensions.', 'strong-testimonials' ); ?>
102
- </p>
103
- <a class="button button-primary" target="_blank" href="<?php echo esc_url( $this->store_upgrade_url . '&utm_medium=' . $screen->id . '-notice-upsell' ); ?>"><?php esc_html_e( 'View pricing', 'strong-testimonials' ); ?></a>
104
- <button type="button" class="notice-dismiss"><span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'strong-testimonials' ); ?></span></button>
105
- </div><!-- wpmtst-notice--upsell -->
106
- <?php endif; ?>
107
-
108
- </div><!-- wpmtst-notice-wrap -->
109
- <?php
110
- }
111
-
112
  public function add_upsells_1() {
113
 
114
  if ( ! defined( 'WPMTST_COUNTRY_SELECTOR_VERSION' ) ) :
@@ -267,50 +228,51 @@ class Strong_Testimonials_Upsell {
267
 
268
  <h3><?php esc_html_e( 'Form Spam Control', 'strong-testimonials' ); ?></h3>
269
 
270
- <div class="wpmtst-alert">
271
- <?php
272
- printf(
273
- esc_html__( 'Protect your form against spam. Add Google recaptcha or honeypots with the %s extension.', 'strong-testimonials' ),
274
- sprintf(
275
- '<a href="%s" target="_blank">%s</a>',
276
- esc_url( WPMTST_STORE_URL . '/extensions/captcha?utm_source=st-lite&utm_campaign=upsell&utm_medium=form-settings-upsell' ),
277
- esc_html__( 'Strong Testimonials: Captcha', 'strong-testimonials' )
278
- )
279
- );
280
- ?>
281
- <p>
282
- <a class="button button-primary" target="_blank" href="<?php echo esc_url( $this->store_upgrade_url . '&utm_medium=form-settings-captcha-upsell' ); ?>"><?php esc_html_e( 'Upgrade', 'strong-testimonials' ); ?></a>
283
- </p>
284
- </div>
285
-
286
- <table class="form-table" cellpadding="0" cellspacing="0">
287
- <tr>
288
- <th scope="row">
289
- <label>
290
- <?php esc_html_e( 'Honeypot', 'strong-testimonials' ); ?>
291
- </label>
292
- </th>
293
- <td>
294
- <p>
295
- <?php esc_html_e( 'These methods for trapping spambots are both time-tested and widely used. May be used simultaneously for more protection.', 'strong-testimonials' ); ?>
296
- </p>
297
- </td>
298
- </tr>
299
- <tr valign="top">
300
- <th scope="row">
301
- <label>
302
- <a name="captcha-section"></a><?php esc_html_e( 'Captcha', 'strong-testimonials' ); ?>
303
- </label>
304
- </th>
305
- <td>
306
- <?php esc_html_e( 'Google reCAPTCHA prompts visitors to check a box to prove that they’re not a robot before they submit the form.', 'strong-testimonials' ); ?>
307
- <br/>
308
- <?php esc_html_e( 'In some cases, they’re prompted to complete another task, like identify a string of letters.', 'strong-testimonials' ); ?>
309
- <br/>
310
- <?php esc_html_e( 'This method makes it difficult for spambots to complete form submissions.', 'strong-testimonials' ); ?>
311
- </td>
312
- </tr>
313
- </table>
 
314
  <?php
315
  }
316
 
11
  public function __construct() {
12
  $this->set_store_upgrade_url();
13
 
 
14
  add_action( 'wpmtst_after_form_type_selection', array( $this, 'add_upsells_1' ) );
15
  add_action( 'wpmtst_before_fields_settings', array( $this, 'add_upsells_2' ) );
16
  add_action( 'wpmtst_view_editor_after_groups', array( $this, 'add_upsells_3' ) );
70
 
71
  }
72
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  public function add_upsells_1() {
74
 
75
  if ( ! defined( 'WPMTST_COUNTRY_SELECTOR_VERSION' ) ) :
228
 
229
  <h3><?php esc_html_e( 'Form Spam Control', 'strong-testimonials' ); ?></h3>
230
 
231
+ <div class="wpmtst-alert">
232
+ <?php
233
+ printf(
234
+ esc_html__( 'Protect your form against spam. Add Google recaptcha or honeypots with the %s extension.', 'strong-testimonials' ),
235
+ sprintf(
236
+ '<a href="%s" target="_blank">%s</a>',
237
+ esc_url( WPMTST_STORE_URL . '/extensions/captcha?utm_source=st-lite&utm_campaign=upsell&utm_medium=form-settings-upsell' ),
238
+ esc_html__( 'Strong Testimonials: Captcha', 'strong-testimonials' )
239
+ )
240
+ );
241
+ ?>
242
+
243
+ <table class="form-table" cellpadding="0" cellspacing="0">
244
+ <tr>
245
+ <th scope="row">
246
+ <label>
247
+ <?php esc_html_e( 'Honeypot', 'strong-testimonials' ); ?>
248
+ </label>
249
+ </th>
250
+ <td>
251
+ <p>
252
+ <?php esc_html_e( 'These methods for trapping spambots are both time-tested and widely used. May be used simultaneously for more protection.', 'strong-testimonials' ); ?>
253
+ </p>
254
+ </td>
255
+ </tr>
256
+ <tr valign="top">
257
+ <th scope="row">
258
+ <label>
259
+ <a name="captcha-section"></a><?php esc_html_e( 'Captcha', 'strong-testimonials' ); ?>
260
+ </label>
261
+ </th>
262
+ <td>
263
+ <?php esc_html_e( 'Google reCAPTCHA prompts visitors to check a box to prove that they’re not a robot before they submit the form.', 'strong-testimonials' ); ?>
264
+ <br/>
265
+ <?php esc_html_e( 'In some cases, they’re prompted to complete another task, like identify a string of letters.', 'strong-testimonials' ); ?>
266
+ <br/>
267
+ <?php esc_html_e( 'This method makes it difficult for spambots to complete form submissions.', 'strong-testimonials' ); ?>
268
+ </td>
269
+ </tr>
270
+ </table>
271
+ <p>
272
+ <a class="button button-primary" target="_blank"
273
+ href="<?php echo esc_url( $this->store_upgrade_url . '&utm_medium=form-settings-captcha-upsell' ); ?>"><?php esc_html_e( 'Upgrade', 'strong-testimonials' ); ?></a>
274
+ </p>
275
+ </div>
276
  <?php
277
  }
278
 
admin/class-strong-views-list-table.php CHANGED
@@ -129,6 +129,8 @@ class Strong_Views_List_Table extends Strong_Testimonials_List_Table {
129
  $actions['duplicate'] = '<a href="' . $duplicate_link . '">' . __( 'Duplicate', 'strong-testimonials' ) . '</a>';
130
  $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( $delete_link, 'delete-strong-view_' . $item['id'] ) . "' onclick=\"if ( confirm( '" . esc_js( sprintf( __( 'Delete "%s"?', 'strong-testimonials' ), $item['name'] ) ) . "' ) ) { return true;} return false;\">" . __( 'Delete', 'strong-testimonials' ) . '</a>';
131
 
 
 
132
  echo $this->row_actions( $actions );
133
  }
134
 
129
  $actions['duplicate'] = '<a href="' . $duplicate_link . '">' . __( 'Duplicate', 'strong-testimonials' ) . '</a>';
130
  $actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( $delete_link, 'delete-strong-view_' . $item['id'] ) . "' onclick=\"if ( confirm( '" . esc_js( sprintf( __( 'Delete "%s"?', 'strong-testimonials' ), $item['name'] ) ) . "' ) ) { return true;} return false;\">" . __( 'Delete', 'strong-testimonials' ) . '</a>';
131
 
132
+ $actions = apply_filters('wpmtst_views_actions',$actions,$item);
133
+
134
  echo $this->row_actions( $actions );
135
  }
136
 
admin/css/order.css CHANGED
@@ -23,28 +23,48 @@ td.column-handle {
23
 
24
  td.column-handle .help:before,
25
  td.column-handle .help-in-motion:before {
26
- font-family: FontAwesome;
27
- font-size: 20px;
28
  width: 1em;
29
  margin: 0 auto;
30
  color: #aaa;
31
  }
32
 
33
  td.column-handle .help:before {
34
- content: "\f0c9";
 
 
 
 
 
 
 
35
  }
36
 
37
  td.column-handle .help-in-motion:before {
38
- content: "\f255";
 
 
 
 
39
  color: #111;
40
- font-size: 20px;
41
  display: none;
 
 
42
  }
43
 
44
  #the-list:not(.ui-sortable-disabled) td.column-handle:not(.refresh):hover .help:before {
45
- content: "\f256";
 
 
 
 
46
  color: #111;
47
- font-size: 20px;
 
 
 
 
48
  }
49
 
50
  .ui-sortable tr.ui-sortable-helper {
@@ -53,7 +73,7 @@ td.column-handle .help-in-motion:before {
53
  }
54
 
55
  .ui-sortable tr.ui-sortable-helper .help:before {
56
- display: none;
57
  }
58
 
59
  .ui-sortable tr.ui-sortable-helper .help-in-motion:before {
@@ -91,9 +111,16 @@ td.column-handle .help-in-motion:before {
91
  }
92
 
93
  td.column-handle.refresh .help:before {
94
- content: "\f110";
 
 
 
 
 
 
95
  color: #0073AA;
96
- font-size: 20px;
 
97
  }
98
 
99
  td.column-handle.refresh .help {
23
 
24
  td.column-handle .help:before,
25
  td.column-handle .help-in-motion:before {
26
+ font-size: 20px;
 
27
  width: 1em;
28
  margin: 0 auto;
29
  color: #aaa;
30
  }
31
 
32
  td.column-handle .help:before {
33
+ content: "";
34
+ background: #aaa;
35
+ background-size: contain;
36
+ width: 20px;
37
+ height: 20px;
38
+ display: inline-block;
39
+ -webkit-mask: url('../img/bars-solid.svg') center center no-repeat;
40
+ mask: url('../img/bars-solid.svg') center center no-repeat;
41
  }
42
 
43
  td.column-handle .help-in-motion:before {
44
+ content: "";
45
+ background: #111;
46
+ background-size: contain;
47
+ width: 20px;
48
+ height: 20px;
49
  color: #111;
50
+ font-size: 20px;
51
  display: none;
52
+ -webkit-mask: url('../img/hand-rock-regular.svg') center center no-repeat;
53
+ mask: url('../img/hand-rock-regular.svg') center center no-repeat;
54
  }
55
 
56
  #the-list:not(.ui-sortable-disabled) td.column-handle:not(.refresh):hover .help:before {
57
+ content: "";
58
+ background: #111;
59
+ background-size: contain;
60
+ width: 20px;
61
+ height: 20px;
62
  color: #111;
63
+ font-size: 20px;
64
+ display: inline-block;
65
+ -webkit-mask: url('../img/hand-paper-regular.svg') center center no-repeat;
66
+ mask: url('../img/hand-paper-regular.svg') center center no-repeat;
67
+
68
  }
69
 
70
  .ui-sortable tr.ui-sortable-helper {
73
  }
74
 
75
  .ui-sortable tr.ui-sortable-helper .help:before {
76
+ display: none !important;
77
  }
78
 
79
  .ui-sortable tr.ui-sortable-helper .help-in-motion:before {
111
  }
112
 
113
  td.column-handle.refresh .help:before {
114
+ content: "";
115
+ background: #0073AA;
116
+ background-size: contain;
117
+ width: 20px;
118
+ height: 20px;
119
+ font-size: 20px;
120
+ display: inline-block;
121
  color: #0073AA;
122
+ mask: url('../img/spinner-solid.svg') center center no-repeat;
123
+ -webkit-mask: url('../img/spinner-solid.svg') center center no-repeat;
124
  }
125
 
126
  td.column-handle.refresh .help {
admin/css/uninstall.css ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .st-uninstall-form-active .st-uninstall-form-bg {
2
+ background: rgba(0, 0, 0, .5);
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100%;
7
+ height: 100%;
8
+ }
9
+
10
+ .st-uninstall-form-wrapper {
11
+ position: fixed;
12
+ z-index: 999;
13
+ display: none;
14
+ width: 100%;
15
+ height: 100%;
16
+ top: 0;
17
+ left: 0;
18
+ right: 0;
19
+ bottom: 0;
20
+ margin: 0 auto;
21
+ }
22
+
23
+ .st-uninstall-form-wrapper .uninstall {
24
+ text-align: center;
25
+ }
26
+
27
+ .st-uninstall-form-active .st-uninstall-form-wrapper {
28
+ display: block;
29
+ z-index: 999;
30
+ }
31
+
32
+ .st-uninstall-form {
33
+ display: none;
34
+ }
35
+
36
+ .st-uninstall-form-active .st-uninstall-form {
37
+ position: absolute;
38
+ left: 0;
39
+ right: 0;
40
+ margin: 0 auto;
41
+ top: 50%;
42
+ transform: translateY(-50%);
43
+ max-width: 600px;
44
+ background: #fff;
45
+ white-space: normal;
46
+ }
47
+
48
+ .st-uninstall-form-head {
49
+ background: #774cce;
50
+ padding: 8px 18px;
51
+ position: relative;
52
+ }
53
+
54
+ .st-uninstall-form-head h3 {
55
+ color: #fff;
56
+ }
57
+
58
+ .st-uninstall-form-body {
59
+ padding: 8px 18px;
60
+ color: #444;
61
+ }
62
+
63
+ .deactivating-spinner {
64
+ display: none;
65
+ }
66
+
67
+ .deactivating-spinner .spinner {
68
+ float: none;
69
+ margin: 4px 4px 0 18px;
70
+ vertical-align: bottom;
71
+ visibility: visible;
72
+ }
73
+
74
+ .toggle-spinner .deactivating-spinner {
75
+ display: block !important;
76
+ }
77
+
78
+ .st-uninstall-form-footer p {
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: space-between;
82
+ }
83
+
84
+ .st-uninstall-form.process-response .st-uninstall-form-body {
85
+ position: relative;
86
+ }
87
+
88
+ .st-uninstall-form.process-response .st-uninstall-form-body:after {
89
+ content: "";
90
+ display: block;
91
+ position: absolute;
92
+ top: 0;
93
+ left: 0;
94
+ width: 100%;
95
+ height: 100%;
96
+ background-color: rgba(255, 255, 255, .5);
97
+ }
98
+
99
+ .st-uninstall-form-head .close-uninstall-form {
100
+ position: absolute;
101
+ right: 15px;
102
+ color: #fff;
103
+ font-family: Arial;
104
+ font-size: 14px;
105
+ display: inline-block;
106
+ top: 50%;
107
+ transform: translateY(-50%);
108
+ cursor: pointer;
109
+ }
110
+
111
+ .st-red-text {
112
+ color:red !important;
113
+ font-weight:bold;
114
+ }
admin/css/views.css CHANGED
@@ -214,28 +214,40 @@ optgroup option {
214
  input[type=checkbox] {
215
  display: none; }
216
  input[type=checkbox] + label:before {
217
- font-family: FontAwesome;
218
  display: inline-block;
219
  font-size: 18px;
220
- width: 1em;
 
221
  position: relative;
222
- top: 1px;
223
  /* unchecked icon */
224
- content: "\f096";
225
- color: #00A4F3; }
 
 
 
 
226
  input[type=checkbox] + label:hover:before {
227
  color: #FF8900; }
228
  input[type=checkbox]:checked + label:before {
229
  /* checked icon */
230
- content: "\f14a"; }
 
 
 
231
  input[type=checkbox]:checked + label:hover:before {
232
  color: #FF8900; }
233
  input[type=checkbox]:disabled + label:before {
234
  /* disabled icon */
235
- content: "\f146";
236
- color: #888; }
 
 
 
 
237
  input[type=checkbox]:disabled + label:hover:before {
238
- color: #888; }
 
239
 
240
  /* -------------------------------------------------
241
  Misc.
@@ -585,24 +597,34 @@ span.title {
585
  line-height: 30px;
586
  margin-right: 15px; }
587
  .radio-buttons input[type=radio] + label:before {
588
- font-family: FontAwesome;
589
  display: inline-block;
590
  color: #999;
 
591
  text-align: center;
592
  font-size: 17px;
593
  margin-left: 5px;
594
  margin-right: 1px;
 
 
595
  width: 20px;
 
596
  /* unchecked icon */
597
- content: "\f10c"; }
 
 
 
598
  .radio-buttons input[type=radio] + label:hover:before {
599
  color: #FF8900; }
600
  .radio-buttons input[type=radio]:checked + label:before {
601
  /* checked icon */
602
- content: "\f192";
603
- color: #00A4F3; }
 
 
 
604
  .radio-buttons input[type=radio]:checked + label:hover:before {
605
- color: #FF8900; }
 
606
  .radio-buttons input[type=radio].error + label, .radio-buttons input[type=radio].error + label:before {
607
  color: red; }
608
  .radio-buttons input[type=radio]:disabled + label {
214
  input[type=checkbox] {
215
  display: none; }
216
  input[type=checkbox] + label:before {
 
217
  display: inline-block;
218
  font-size: 18px;
219
+ width: 20px;
220
+ height: 20px;
221
  position: relative;
222
+ top: 5px;
223
  /* unchecked icon */
224
+ content: "";
225
+ color: #00A4F3;
226
+ background: #00A4F3;
227
+ -webkit-mask: url('../img/square-regular.svg') center center no-repeat;
228
+ mask: url('../img/square-regular.svg') center center no-repeat;
229
+ }
230
  input[type=checkbox] + label:hover:before {
231
  color: #FF8900; }
232
  input[type=checkbox]:checked + label:before {
233
  /* checked icon */
234
+ content: "";
235
+ -webkit-mask: url('../img/check-square-regular.svg') center center no-repeat;
236
+ mask: url('../img/check-square-regular.svg') center center no-repeat;
237
+ }
238
  input[type=checkbox]:checked + label:hover:before {
239
  color: #FF8900; }
240
  input[type=checkbox]:disabled + label:before {
241
  /* disabled icon */
242
+ content: "";
243
+ -webkit-mask: url('../img/minus-square-regular.svg') center center no-repeat;
244
+ mask: url('../img/minus-square-regular.svg') center center no-repeat;
245
+ color: #888;
246
+ background: #888;
247
+ }
248
  input[type=checkbox]:disabled + label:hover:before {
249
+ color: #888;
250
+ background: #888;}
251
 
252
  /* -------------------------------------------------
253
  Misc.
597
  line-height: 30px;
598
  margin-right: 15px; }
599
  .radio-buttons input[type=radio] + label:before {
 
600
  display: inline-block;
601
  color: #999;
602
+ background:#999;
603
  text-align: center;
604
  font-size: 17px;
605
  margin-left: 5px;
606
  margin-right: 1px;
607
+ position: relative;
608
+ top:5px;
609
  width: 20px;
610
+ height:20px;
611
  /* unchecked icon */
612
+ content: "";
613
+ -webkit-mask: url('../img/circle-regular.svg') center center no-repeat;
614
+ mask: url('../img/circle-regular.svg') center center no-repeat;
615
+ }
616
  .radio-buttons input[type=radio] + label:hover:before {
617
  color: #FF8900; }
618
  .radio-buttons input[type=radio]:checked + label:before {
619
  /* checked icon */
620
+ content: "";
621
+ -webkit-mask: url('../img/dot-circle-regular.svg') center center no-repeat;
622
+ mask: url('../img/dot-circle-regular.svg') center center no-repeat;
623
+ color: #00A4F3;
624
+ background: #00A4F3;}
625
  .radio-buttons input[type=radio]:checked + label:hover:before {
626
+ color: #FF8900;
627
+ background: #FF8900;}
628
  .radio-buttons input[type=radio].error + label, .radio-buttons input[type=radio].error + label:before {
629
  color: red; }
630
  .radio-buttons input[type=radio]:disabled + label {
admin/img/bars-solid.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bars" class="svg-inline--fa fa-bars fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path></svg>
admin/img/check-square-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="check-square" class="svg-inline--fa fa-check-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"></path></svg>
admin/img/circle-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="circle" class="svg-inline--fa fa-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"></path></svg>
admin/img/dot-circle-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="dot-circle" class="svg-inline--fa fa-dot-circle fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"></path></svg>
admin/img/hand-paper-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="hand-paper" class="svg-inline--fa fa-hand-paper fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"></path></svg>
admin/img/hand-rock-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="hand-rock" class="svg-inline--fa fa-hand-rock fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"></path></svg>
admin/img/minus-square-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="minus-square" class="svg-inline--fa fa-minus-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"></path></svg>
admin/img/spinner-solid.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" class="svg-inline--fa fa-spinner fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"></path></svg>
admin/img/square-regular.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="square" class="svg-inline--fa fa-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"></path></svg>
admin/js/addon-licenses.js CHANGED
@@ -76,4 +76,88 @@
76
 
77
  });
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  })(jQuery);
 
 
76
 
77
  });
78
 
79
+ /**
80
+ * Prevent copy/inspect license key
81
+ */
82
+
83
+ $(document).on('contextmenu dragstart', function () {
84
+ return false;
85
+ });
86
+
87
+ /**
88
+ * Monitor which keys are being pressed
89
+ */
90
+ var st_protection_keys = {
91
+ 'alt': false,
92
+ 'shift': false,
93
+ 'meta': false,
94
+ };
95
+
96
+ $(document).on('keydown', function (e) {
97
+
98
+ // Alt Key Pressed
99
+ if (e.altKey) {
100
+ st_protection_keys.alt = true;
101
+ }
102
+
103
+ // Shift Key Pressed
104
+ if (e.shiftKey) {
105
+ st_protection_keys.shift = true;
106
+ }
107
+
108
+ // Meta Key Pressed (e.g. Mac Cmd)
109
+ if (e.metaKey) {
110
+ st_protection_keys.meta = true;
111
+ }
112
+
113
+ if (e.ctrlKey && '85' == e.keyCode) {
114
+ st_protection_keys.ctrl = true;
115
+ }
116
+
117
+
118
+ });
119
+ $(document).on('keyup', function (e) {
120
+
121
+ // Alt Key Released
122
+ if (!e.altKey) {
123
+ st_protection_keys.alt = false;
124
+ }
125
+
126
+ // Shift Key Released
127
+ if (e.shiftKey) {
128
+ st_protection_keys.shift = false;
129
+ }
130
+
131
+ // Meta Key Released (e.g. Mac Cmd)
132
+ if (!e.metaKey) {
133
+ st_protection_keys.meta = false;
134
+ }
135
+
136
+ if (!e.ctrlKey) {
137
+ st_protection_keys.ctrl = false;
138
+ }
139
+
140
+ });
141
+
142
+ /**
143
+ * Prevent automatic download when Alt + left click
144
+ */
145
+ jQuery(document).on('click', '#strong_testimonials_license_key', function (e) {
146
+ if (st_protection_keys.alt || st_protection_keys.shift || st_protection_keys.meta || st_protection_keys.ctrl) {
147
+ // User is trying to download - stop!
148
+ e.preventDefault();
149
+ return false;
150
+ }
151
+ });
152
+
153
+ jQuery(document).on('keydown click',function(e){
154
+ if (st_protection_keys.ctrl) {
155
+ // User is trying to view source
156
+ e.preventDefault();
157
+ return false;
158
+ }
159
+ });
160
+
161
  })(jQuery);
162
+
163
+
admin/js/admin-global.js CHANGED
@@ -22,5 +22,14 @@ jQuery(document).ready(function ($) {
22
  key: $this.parent().attr('data-key'),
23
  nonce: wpmtst_admin.nonce
24
  })
25
- })
26
- })
 
 
 
 
 
 
 
 
 
22
  key: $this.parent().attr('data-key'),
23
  nonce: wpmtst_admin.nonce
24
  })
25
+ });
26
+
27
+ $('input[name="wpmtst_options[disable_rewrite]"]').on('click',function(){
28
+
29
+ if($(this).is(':checked')){
30
+ $('tr[data-setting="single_testimonial_slug"]').hide();
31
+ } else {
32
+ $('tr[data-setting="single_testimonial_slug"]').show();
33
+ }
34
+ });
35
+ });
admin/js/st-uninstall.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function ($) {
2
+ var uninstall = $("a.uninstall-st"),
3
+ formContainer = $('#st-uninstall-form');
4
+
5
+ formContainer.on('click', '#delete_all', function () {
6
+ if ( $('#delete_all').is(':checked') ) {
7
+ $('#delete_options').prop('checked', true);
8
+ $('#delete_transients').prop('checked', true);
9
+ $('#delete_cpt').prop('checked', true);
10
+ $('#delete_st_tables').prop('checked', true);
11
+ $('#delete_terms').prop('checked', true);
12
+ } else {
13
+ $('#delete_options').prop('checked', false);
14
+ $('#delete_transients').prop('checked', false);
15
+ $('#delete_cpt').prop('checked', false);
16
+ $('#delete_st_tables').prop('checked', false);
17
+ $('#delete_terms').prop('checked', false);
18
+ }
19
+ });
20
+
21
+ $(uninstall).on("click", function () {
22
+
23
+ $('body').toggleClass('st-uninstall-form-active');
24
+ formContainer.fadeIn();
25
+
26
+ formContainer.on('click', '#st-uninstall-submit-form', function (e) {
27
+ formContainer.addClass('toggle-spinner');
28
+ var selectedOptions = {
29
+ delete_options: ($('#delete_options').is(':checked')) ? 1 : 0,
30
+ delete_transients: ($('#delete_transients').is(':checked')) ? 1 : 0,
31
+ delete_cpt: ($('#delete_cpt').is(':checked')) ? 1 : 0,
32
+ delete_st_tables: ($('#delete_st_tables').is(':checked')) ? 1 : 0,
33
+ delete_terms : ($('#delete_terms').is(':checked')) ? 1 : 0,
34
+ };
35
+
36
+ var data = {
37
+ 'action': 'st_uninstall_plugin',
38
+ 'security': wpStUninstall.nonce,
39
+ 'dataType': "json",
40
+ 'options': selectedOptions
41
+ };
42
+
43
+ $.post(
44
+ ajaxurl,
45
+ data,
46
+ function (response) {
47
+ // Redirect to plugins page
48
+ window.location.href = wpStUninstall.redirect_url;
49
+ }
50
+ );
51
+ });
52
+
53
+ // If we click outside the form, the form will close
54
+ // Stop propagation from form
55
+ formContainer.on('click', function (e) {
56
+ e.stopPropagation();
57
+ });
58
+
59
+ $('.st-uninstall-form-wrapper, .close-uninstall-form').on('click', function (e) {
60
+ e.stopPropagation();
61
+ formContainer.fadeOut();
62
+ $('body').removeClass('st-uninstall-form-active');
63
+ });
64
+
65
+ $(document).on("keyup", function (e) {
66
+ if ( e.key === "Escape" ) {
67
+ formContainer.fadeOut();
68
+ $('body').removeClass('st-uninstall-form-active');
69
+ }
70
+ });
71
+ });
72
+ });
admin/partials/views/option-slideshow-behavior.php CHANGED
@@ -14,6 +14,16 @@
14
  </div>
15
  </div>
16
 
 
 
 
 
 
 
 
 
 
 
17
  <div class="row">
18
  <div class="inline inline-middle">
19
  <input type="checkbox" id="view-auto_hover" name="view[data][slideshow_settings][auto_hover]" value="0"
14
  </div>
15
  </div>
16
 
17
+ <div class="row">
18
+ <div class="inline inline-middle">
19
+ <input type="checkbox" id="view-continuous_sliding" name="view[data][slideshow_settings][continuous_sliding]" value="0"
20
+ <?php checked( $view['slideshow_settings']['continuous_sliding'] ); ?> class="checkbox">
21
+ <label for="view-continuous_sliding">
22
+ <?php _ex( 'Continuous Sliding', 'slideshow setting', 'strong-testimonials' ); ?>
23
+ </label>
24
+ </div>
25
+ </div>
26
+
27
  <div class="row">
28
  <div class="inline inline-middle">
29
  <input type="checkbox" id="view-auto_hover" name="view[data][slideshow_settings][auto_hover]" value="0"
admin/partials/views/option-title.php CHANGED
@@ -1,3 +1,23 @@