PluginProbe ʕ •ᴥ•ʔ
Strong Testimonials / 3.3.3
Strong Testimonials v3.3.3
3.3.3 3.3.2 3.3.1 trunk 1.0.1 2.30.9 2.31.10 2.32 2.32.1 2.32.2 2.32.3 2.32.4 2.33 2.34 2.35 2.36 2.37 2.38 2.38.1 2.39 2.39.1 2.39.2 2.39.3 2.40.0 2.40.1 2.40.2 2.40.3 2.40.4 2.40.5 2.40.6 2.40.7 2.41.0 2.41.1 2.50.0 2.50.1 2.50.2 2.50.3 2.50.4 2.51.0 2.51.1 2.51.2 2.51.3 2.51.4 2.51.5 2.51.6 2.51.7 2.51.8 2.51.9 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.17 3.2.18 3.2.19 3.2.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0
strong-testimonials / includes / class-strong-testimonials-view-shortcode.php
strong-testimonials / includes Last commit date
elementor 1 year ago logs 2 months ago strong-testimonials-beaver-block 1 year ago submodules 9 months ago class-strong-gutemberg.php 1 year ago class-strong-log.php 1 year ago class-strong-mail.php 1 year ago class-strong-testimonials-average-shortcode.php 1 year ago class-strong-testimonials-count-shortcode.php 1 year ago class-strong-testimonials-defaults.php 4 days ago class-strong-testimonials-form.php 2 months ago class-strong-testimonials-order.php 1 year ago class-strong-testimonials-privacy.php 1 year ago class-strong-testimonials-render.php 2 months ago class-strong-testimonials-templates.php 4 days ago class-strong-testimonials-view-shortcode.php 3 weeks ago class-strong-testimonials-view-widget.php 1 year ago class-strong-view-display.php 2 weeks ago class-strong-view-form.php 4 days ago class-strong-view-slideshow.php 2 weeks ago class-strong-view.php 2 weeks ago class-walker-strong-category-checklist-front.php 1 year ago deprecated.php 1 year ago filters.php 2 months ago functions-activation.php 4 days ago functions-content.php 1 year ago functions-image.php 6 months ago functions-rating.php 1 year ago functions-template-form.php 4 days ago functions-template.php 4 days ago functions-views.php 1 year ago functions.php 4 days ago l10n-polylang.php 1 year ago l10n-wpml.php 1 year ago post-types.php 3 weeks ago retro.php 1 year ago scripts.php 2 months ago
class-strong-testimonials-view-shortcode.php
146 lines
1 <?php
2 /**
3 * Class Strong_Testimonials_View_Shortcode
4 *
5 * @since 2.28.0
6 */
7
8 class Strong_Testimonials_View_Shortcode {
9
10 /**
11 * @var string
12 */
13 public $shortcode = 'testimonial_view';
14
15 public function __construct() {
16 add_shortcode( $this->shortcode, array( $this, 'testimonial_view_shortcode' ) );
17 add_filter( 'shortcode_atts_' . $this->shortcode, array( $this, 'testimonial_view_filter' ), 10, 3 );
18
19 add_filter( 'widget_text', 'do_shortcode' );
20 add_filter( 'no_texturize_shortcodes', array( $this, 'no_texturize_shortcodes' ) );
21
22 add_filter( 'strong_view_html', array( $this, 'remove_whitespace' ) );
23 add_filter( 'strong_view_form_html', array( $this, 'remove_whitespace' ) );
24 }
25
26 public function get_shortcode() {
27 return $this->shortcode;
28 }
29
30 /**
31 * Our primary shortcode.
32 *
33 * @param $atts
34 * @param null $content
35 *
36 * @return mixed|string
37 */
38 public function testimonial_view_shortcode( $atts, $content = null ) {
39 $out = shortcode_atts( // phpcs:ignore sanitized in render_view
40 array(),
41 $atts,
42 $this->shortcode
43 );
44
45 return $this->render_view( $out );
46 }
47
48 /**
49 * Shortcode attribute filter
50 *
51 * @since 1.21.0
52 *
53 * @param array $out The output array of shortcode attributes.
54 * @param array $pairs The supported attributes and their defaults.
55 * @param array $atts The user defined shortcode attributes.
56 *
57 * @return array
58 */
59 public function testimonial_view_filter( $out, $pairs, $atts ) {
60 return WPMST()->render->parse_view( $out, $pairs, $atts );
61 }
62
63 /**
64 * Render the View.
65 *
66 * @param $out
67 *
68 * @return mixed|string
69 */
70 public function render_view( $out ) {
71 // Did we find this view?
72 if ( isset( $out['view_not_found'] ) && $out['view_not_found'] ) {
73 if ( current_user_can( 'strong_testimonials_views' ) ) {
74 ob_start();
75 ?>
76 <p style="color: #CD0000;">
77 <?php
78 // translators: %s is the placeholder for the testimonial view name or identifier.
79 printf( esc_html__( 'Testimonial view %s not found.', 'strong-testimonials' ), esc_attr( $out['view'] ) );
80 ?>
81 <br>
82 <span style="color: #777; font-size: 0.9em;"><?php esc_html_e( '(Only administrators see this message.)', 'strong-testimonials' ); ?></span>
83 </p>
84 <?php
85 return ob_get_clean();
86 }
87 return '';
88 }
89
90 switch ( $out['mode'] ) {
91 case 'form':
92 $view = new Strong_View_Form( $out );
93 if ( isset( $_GET['success'] ) && isset( $_GET['formid'] ) && (int) $out['form_id'] === (int) $_GET['formid'] ) {
94 $view->success();
95 } else {
96 $view->build();
97 }
98 break;
99 case 'slideshow':
100 $view = new Strong_View_Slideshow( $out );
101 $view->build();
102 break;
103 default:
104 $view = new Strong_View_Display( $out );
105 $view->build();
106 }
107
108 return $view->output();
109 }
110
111 /**
112 * Remove whitespace between tags. Helps prevent double wpautop in plugins
113 * like Posts For Pages and Custom Content Shortcode.
114 *
115 * @param $html
116 *
117 * @since 2.3
118 *
119 * @return mixed
120 */
121 public function remove_whitespace( $html ) {
122 $options = get_option( 'wpmtst_options' );
123 $saved_value = isset( $options['remove_whitespace'] ) ? (bool) $options['remove_whitespace'] : true;
124 if ( apply_filters( 'wpmtst_remove_whitespace_enabled', $saved_value ) ) {
125 return wpmtst_strip_whitespace( $html );
126 }
127
128 return $html;
129 }
130
131 /**
132 * Do not texturize shortcode.
133 *
134 * @since 1.11.5
135 *
136 * @param $shortcodes
137 *
138 * @return array
139 */
140 public function no_texturize_shortcodes( $shortcodes ) {
141 $shortcodes[] = $this->shortcode;
142
143 return $shortcodes;
144 }
145 }
146