PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.14
Shortcodes and extra features for Phlox theme v2.17.14
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 1 year ago accordion-widget.php 1 year ago accordion.php 1 year ago attachment-url.php 1 year ago audio.php 1 year ago before-after.php 1 year ago button.php 1 year ago code.php 1 year ago contact-box.php 1 year ago contact-form.php 1 year ago custom-list.php 6 months ago divider.php 1 year ago dropcap.php 1 year ago facebook.php 1 year ago flickr.php 1 year ago gallery.php 1 year ago gmap.php 1 year ago highlight.php 1 year ago image.php 1 year ago instagram-feed.php 1 year ago latest-posts-slider.php 1 year ago popular-posts-widget.php 1 year ago products-grid.php 1 year ago quote.php 1 year ago recent-posts-grid-carousel.php 1 year ago recent-posts-land-style.php 1 year ago recent-posts-masonry.php 1 year ago recent-posts-tiles-carousel.php 1 year ago recent-posts-tiles.php 1 year ago recent-posts-timeline.php 1 year ago recent-posts-widget.php 1 year ago recent-products.php 1 year ago related-posts.php 8 years ago sample-element.php 1 year ago search.php 1 year ago socials-list.php 1 year ago staff.php 1 year ago tab-widget.php 1 year ago tabs.php 1 year ago testimonial.php 1 year ago text.php 1 year ago touch-slider.php 1 year ago video.php 1 year 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-2025 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