PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / trunk
Shortcodes and extra features for Phlox theme vtrunk
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elements / testimonial.php
auxin-elements / includes / elements Last commit date
about-widget.php 5 months ago accordion-widget.php 1 month ago accordion.php 5 months ago attachment-url.php 5 months ago audio.php 5 months ago before-after.php 5 months ago button.php 5 months ago code.php 5 months ago contact-box.php 5 months ago contact-form.php 5 months ago custom-list.php 5 months ago divider.php 5 months ago dropcap.php 5 months ago facebook.php 5 months ago flickr.php 5 months ago gallery.php 5 months ago gmap.php 5 months ago highlight.php 5 months ago image.php 5 months ago instagram-feed.php 5 months ago latest-posts-slider.php 5 months ago popular-posts-widget.php 5 months ago products-grid.php 5 months ago quote.php 5 months ago recent-posts-grid-carousel.php 5 months ago recent-posts-land-style.php 5 months ago recent-posts-masonry.php 5 months ago recent-posts-tiles-carousel.php 5 months ago recent-posts-tiles.php 5 months ago recent-posts-timeline.php 5 months ago recent-posts-widget.php 5 months ago recent-products.php 5 months ago related-posts.php 8 years ago sample-element.php 5 months ago search.php 5 months ago socials-list.php 5 months ago staff.php 5 months ago tab-widget.php 5 months ago tabs.php 5 months ago testimonial.php 5 months ago text.php 5 months ago touch-slider.php 5 months ago video.php 5 months ago
testimonial.php
282 lines
1 <?php
2 /**
3 * Testimonial Widget
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2026 averta
11 */
12
13 function auxin_get_testimonial_master_array( $master_array ) {
14
15 $master_array['aux_testimonial'] = array(
16 'name' => __('Testimonial ', 'auxin-elements'),
17 'auxin_output_callback' => 'auxin_widget_testimonial_callback',
18 'base' => 'aux_testimonial',
19 'description' => __('Testimonial Element', 'auxin-elements'),
20 'class' => 'aux-widget-testimonial',
21 'show_settings_on_create' => true,
22 'weight' => 1,
23 'is_widget' => true,
24 'is_shortcode' => true,
25 'category' => THEME_NAME,
26 'group' => '',
27 'admin_enqueue_js' => '',
28 'admin_enqueue_css' => '',
29 'front_enqueue_js' => '',
30 'front_enqueue_css' => '',
31 'icon' => 'aux-element aux-pb-icons-testimonial',
32 'custom_markup' => '',
33 'js_view' => '',
34 'html_template' => '',
35 'deprecated' => '',
36 'content_element' => '',
37 'as_parent' => '',
38 'as_child' => '',
39 'params' => array(
40 array(
41 'heading' => __( 'Testimonial Templates','auxin-elements' ),
42 'description' => '',
43 'param_name' => 'template',
44 'type' => 'aux_visual_select',
45 'def_value' => 'default',
46 'holder' => '',
47 'class' => 'template',
48 'admin_label' => false,
49 'dependency' => '',
50 'weight' => '',
51 'group' => '',
52 'edit_field_class' => '',
53 'choices' => array(
54 'default' => array(
55 'label' => __( 'Default Template', 'auxin-elements' ),
56 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-1.svg'
57 ),
58 'def-img' => array(
59 'label' => __( 'Default Template With Image', 'auxin-elements' ),
60 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-2.svg'
61 ),
62 'bordered' => array(
63 'label' => __( 'Bordered On Content', 'auxin-elements' ),
64 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-3.svg'
65 ),
66 'quote' => array(
67 'label' => __( 'Quotation Mark on Top of the Content', 'auxin-elements' ),
68 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-4.svg'
69 ),
70 'info-top' => array(
71 'label' => __( 'Show Info on Top of Content', 'auxin-elements' ),
72 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-5.svg'
73 ),
74 'image-top' => array(
75 'label' => __( 'Show Image on Top of the Content', 'auxin-elements' ),
76 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-6.svg'
77 )
78 )
79 ),
80 array(
81 'heading' => __('Customer Name','auxin-elements'),
82 'description' => __('Customer Name, leave it empty if you don`t need title.', 'auxin-elements'),
83 'param_name' => 'title',
84 'type' => 'textfield',
85 'value' => '',
86 'holder' => 'textfield',
87 'class' => 'title',
88 'admin_label' => true,
89 'dependency' => '',
90 'weight' => '',
91 'group' => '' ,
92 'edit_field_class' => ''
93 ),
94 array(
95 'heading' => __('Customer Link','auxin-elements'),
96 'description' => __('Customer Link, leave it empty if you don`t need it', 'auxin-elements'),
97 'param_name' => 'link',
98 'type' => 'textfield',
99 'value' => '',
100 'holder' => 'textfield',
101 'class' => 'title',
102 'admin_label' => true,
103 'dependency' => '',
104 'weight' => '',
105 'group' => '' ,
106 'edit_field_class' => ''
107 ),
108 array(
109 'heading' => __('Customer Occupation','auxin-elements'),
110 'description' => __('Customer Occupation, leave it empty if you don`t need it.', 'auxin-elements'),
111 'param_name' => 'subtitle',
112 'type' => 'textfield',
113 'value' => '',
114 'holder' => 'textfield',
115 'class' => 'subtitle',
116 'admin_label' => true,
117 'dependency' => '',
118 'weight' => '',
119 'group' => '' ,
120 'edit_field_class' => ''
121 ),
122 array(
123 'heading' => __('Customer Rating','auxin-elements'),
124 'description' => __('Customer Rating, Set it to "None" if you don`t need it.', 'auxin-elements'),
125 'param_name' => 'rating',
126 'type' => 'dropdown',
127 'def_value' => '',
128 'value' => array(
129 'none' => __( 'None' , 'auxin-elements' ),
130 '1' => '1',
131 '2' => '2',
132 '3' => '3',
133 '4' => '4',
134 '5' => '5',
135 ),
136 'holder' => 'dropdown',
137 'class' => 'rating',
138 'admin_label' => true,
139 'dependency' => '',
140 'weight' => '',
141 'group' => '' ,
142 'edit_field_class' => ''
143 ),
144 array(
145 'heading' => __('Customer Image', 'auxin-elements'),
146 'description' => '',
147 'param_name' => 'customer_img',
148 'type' => 'attach_image',
149 'def_value' => '',
150 'value' => '',
151 'holder' => '',
152 'class' => 'customer-img',
153 'admin_label' => true,
154 'dependency' => array(
155 'element' => 'template',
156 'value' => array('bordered', 'def-img', 'info-top', 'image-top')
157 ),
158 'weight' => '',
159 'group' => '',
160 'edit_field_class' => ''
161 ),
162 array(
163 'heading' => __('Content','auxin-elements'),
164 'description' => __('Enter a text as a text content.','auxin-elements'),
165 'param_name' => 'content',
166 'type' => 'textarea_html',
167 'value' => '',
168 'def_value' => '',
169 'holder' => 'div',
170 'class' => 'content',
171 'admin_label' => true,
172 'dependency' => '',
173 'weight' => '',
174 'group' => '' ,
175 'edit_field_class' => ''
176 ),
177 )
178 );
179
180 return $master_array;
181 }
182
183 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_testimonial_master_array', 10, 1 );
184
185
186 /**
187 * Testimonial Widget Markup
188 *
189 * The front-end output of this element is returned by the following function
190 *
191 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
192 * @param string $shortcode_content The shorcode content
193 * @return string The output of element markup
194 */
195 function auxin_widget_testimonial_callback( $atts, $shortcode_content = null ){
196
197 // Defining default attributes
198 $default_atts = array(
199
200 'template' => 'default',
201 'title' => '',
202 'subtitle' => '',
203 'rating' => '',
204 'link' => '',
205 'customer_img' => '',
206 'show_image' => true,
207 'image_html' => '',
208 'image_size' => 'thumbnail',
209 'content' => '',
210 'extra_classes' => '', // custom css class names for this element
211 'custom_el_id' => '', // custom id attribute for this element
212 'base_class' => 'aux-widget-testimonial-container' // base class name for container
213
214 );
215
216 $result = auxin_get_widget_scafold( $atts, $default_atts );
217
218 extract( $result['parsed_atts'] );
219
220 // Validate boolean variables
221 $show_image = auxin_is_true( $show_image );
222
223 $image_above_content = $template === 'image-top';
224
225 $image = empty( $image_html ) ? wp_get_attachment_image( $customer_img, $image_size, "", array( "class" => "img-square" ) ) : $image_html;
226 $content = empty( $content ) ? $shortcode_content : $content ;
227 $main_class = ' aux-widget-testimonial aux-testimonial-' . $template ;
228
229 ob_start();
230
231 // widget header ------------------------------
232 echo wp_kses_post( $result['widget_header'] );
233 ?>
234 <div class=" <?php echo esc_attr( $main_class );?> ">
235 <?php if( ! empty( $content ) && ! $image_above_content ) { ?>
236 <div class="aux-testimonial-content">
237 <div class="entry-content">
238 <?php $encoding_flag = defined('ENT_HTML401') ? ENT_HTML401 : ENT_QUOTES; ?>
239 <?php echo wp_kses_post( do_shortcode( html_entity_decode( $content, $encoding_flag, 'UTF-8') ) ); ?>
240 </div>
241 </div>
242 <?php } ?>
243 <div class="aux-testimonial-infobox">
244 <?php if ( !empty( $image ) && $show_image ) { ?>
245 <div class="aux-testimonial-image">
246 <?php echo wp_kses_post( $image ) ;?>
247 </div>
248 <?php } ?>
249 <div class="aux-testimonial-info">
250 <?php if( ! empty( $title ) && empty( $link ) ) { ?>
251 <h4 class="col-title"><?php echo auxin_kses( $title ); ?></h4>
252 <?php } elseif( ! empty( $title ) && ! empty( $link ) ) {?>
253 <h4 class="col-title"><a href="<?php echo esc_url( $link ); ?>">
254 <?php echo auxin_kses( $title ); ?></a>
255 </h4>
256 <?php } if( ! empty( $subtitle ) ) { ?>
257 <h5 class="col-subtitle"><?php echo auxin_kses( $subtitle ); ?></h5>
258 <?php } if ( 'none' !== $rating ) { ?>
259 <div class="aux-rating-box aux-star-rating">
260 <span class="aux-star-rating-avg" style="width: <?php echo ( absint( $rating ) / 5 ) * 100 ; ?>%"> </span>
261 </div>
262 <?php } ?>
263 </div>
264 </div>
265 <?php if( ! empty( $content ) && $image_above_content ) { ?>
266 <div class="aux-testimonial-content">
267 <div class="entry-content">
268 <?php $encoding_flag = defined('ENT_HTML401') ? ENT_HTML401 : ENT_QUOTES; ?>
269 <?php echo wp_kses_post( do_shortcode( html_entity_decode( $content, $encoding_flag, 'UTF-8') ) ); ?>
270 </div>
271 </div>
272 <?php } ?>
273 </div>
274
275 <?php
276
277 // widget footer ------------------------------
278 echo wp_kses_post( $result['widget_footer'] );
279 return ob_get_clean();
280
281 }
282