Headline
CVE-2023-5666: Changeset 2982015 for accordions-wp – WordPress Plugin Repository
The Accordion plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin’s ‘tcpaccordion’ shortcode in all versions up to, and including, 2.6 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers with contributor-level and above permissions to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
accordions-wp/trunk/admin/css/accordion-backend-admin.css
r2406278
r2982015
19
19
font-size: 15px;
20
20
}
21
22
21
.tp_accordions_pro_hint .only_pro_v {
23
22
color: red;
…
…
32
31
overflow: hidden;
33
32
}
34
35
33
.tabs-menu li {
36
34
padding: 10px;
…
…
42
40
border-left: 1px solid #d4d4d1;
43
41
}
44
45
42
.tabs-menu li.current {
46
43
position: relative;
…
…
48
45
z-index: 5;
49
46
}
50
51
47
.tabs-menu li a {
52
48
padding: 10px;
…
…
55
51
text-decoration: none;
56
52
}
57
58
53
.tabs-menu .current a {
59
54
color: #fff;
…
…
62
57
background-color: #fff;
63
58
}
64
65
59
.tab-content {
66
60
display: none;
67
61
}
68
69
62
#tab-1 {
70
63
display: block;
…
…
98
91
}
99
92
100
101
102
103
93
#custom_accordions_pro_details .wp-editor-container textarea.wp-editor-area {
104
94
color: unset !important;
105
95
}
106
107
96
.wrap h2.team-manager-admin-support {
108
97
padding-bottom: 15px;
…
…
125
114
margin-bottom: 12px;
126
115
}
127
accordions-wp/trunk/admin/js/accordion-backend-admin.js
r2406278
r2982015
2
2
'use strict';
3
3
4
5
4
jQuery(".tabs-menu a").click(function(event) {
6
5
event.preventDefault();
…
…
11
10
$(tab).fadeIn();
12
11
});
13
12
14
13
})( jQuery );
15
accordions-wp/trunk/custom-accordion-admin.php
r1712731
r2982015
1
<?php
2
if( !defined( 'ABSPATH' ) ){
3
exit;
4
}
5
?>
6
1
7
<div class="wrap">
2
<h2 class="team-manager-admin-support">Support</h2>
8
<h2 class="team-manager-admin-support"><?php echo esc\_html\_\_( 'Support', 'tcaccordion' ); ?></h2>
3
9
<div class="postbox team-manager-admin-area">
4
<h3 class="eddpcs-admin-hthree">Support Forum</h3>
10
<h3 class="eddpcs-admin-hthree"><?php echo esc\_html\_\_( 'Support Forum', 'tcaccordion' ); ?></h3>
5
11
<p>If you need any helps, please don't hesitate to post it on <a href="https://wordpress.org/support/plugin/accordions-wp" target="\_blank">WordPress.org Support Forum</a> or <a href="https://themepoints.com/questions-answer/" target="\_blank">Themepoints.com Support Forum</a>.</p><br />
6
12
<h3>Submit a Review</h3>
7
<p>We spend plenty of time to develop a plugin like this and give you freely to make your life easier. If you like this plugin, please <a href="https://wordpress.org/plugins/accordions-wp/" target="\_blank">rate it 5 stars</a>. If you have any problems with the plugin, please <a href="https://themepoints.com/questions-answer/" target="\_blank">let us know</a> before leaving a review.</p><br />
8
<h3>Unlock More Features</h3>
9
<p>Upgrading to the <a href="https://themepoints.com/product/wp-accordions-pro/" target="\_blank"><span style="color: red;text-decoration:none;">Premium Version</span></a> would unlock more amazing features of this plugin.</p>
13
<p>We spend plenty of time to develop a plugin like this and give you freely to make your life easier. If you like this plugin, please <a href="https://wordpress.org/plugins/accordions-wp/" target="\_blank">rate it 5 stars</a>. If you have any problems with the plugin, please <a href="https://themepoints.com/contact/" target="\_blank">let us know</a> before leaving a review.</p><br />
14
<h3><?php echo esc\_html\_\_( 'Unlock More Features', 'tcaccordion' ); ?></h3>
15
<p><?php echo esc\_html\_\_( 'Upgrading to the', 'tcaccordion' ); ?> <a href="https://themepoints.com/product/wp-accordions-pro/" target="\_blank"><span style="color: red;text-decoration:none;"> <?php echo esc\_html\_\_( 'Premium Version', 'tcaccordion' ); ?></span></a> <?php echo esc\_html\_\_( 'would unlock more amazing features of this plugin.', 'tcaccordion' ); ?></p>
10
16
</div>
11
17
</div>
12
accordions-wp/trunk/custom-accordion-wp.php
r2406278
r2982015
1
1
<?php
2
3
2
/\*
4
Plugin Name: Accordion-Wp
5
Plugin URI: https://themepoints.com/product/wp-accordions-pro
6
Description: Wp Accordions is a component ready to use on mobile devices and desktop devices. It’s a fluid component and easy to use. It provides various skins, options and features for data organization and it comes with many different styles.
7
Version: 2.6
8
Author: themepoints
9
Author URI: https://themepoints.com
10
TextDomain: tcaccordion
11
License: GPLv2
3
Plugin Name: Accordion-Wp
4
Plugin URI: https://themepoints.com/product/wp-accordions-pro
5
Description: Wp Accordions is a component ready to use on mobile devices and desktop devices. It’s a fluid component and easy to use. It provides various skins, options and features for data organization and it comes with many different styles.
6
Version: 2.7
7
Author: Themepoints
8
Author URI: https://themepoints.com
9
TextDomain: tcaccordion
10
License: GPLv2
12
11
\*/
13
12
…
…
58
57
add\_action('admin\_enqueue\_scripts', 'custom\_accordion\_admin\_enqueue\_scripts');
59
58
60
59
// Pro Version Purchase Link
61
60
function tps\_accordion\_prover\_action\_links( $links ) {
62
61
$links\[\] = '<a href="https://themepoints.com/product/wp-accordions-pro" style="color: red; font-weight: bold;" target="\_blank">Buy Pro!</a>';
…
…
118
117
return $title;
119
118
}
120
add\_filter( 'enter\_title\_here', 'custom\_accordion\_wordpress\_title' );
121
122
123
function custom\_accordion\_free\_redirect\_options\_page( $plugin ) {
124
if ( $plugin == plugin\_basename( \_\_FILE\_\_ ) ) {
125
exit( wp\_redirect( admin\_url( 'options-general.php' ) ) );
126
}
127
}
128
add\_action( 'activated\_plugin', 'custom\_accordion\_free\_redirect\_options\_page' );
129
130
131
# admin menu
132
function custom\_accordion\_free\_plugins\_options\_framwrork() {
133
add\_options\_page( 'Accordion Pro Version Help & Features', \_\_('Accordion Pro Features', 'tcaccordion'), 'manage\_options', 'accordion-free-features', 'tp\_accordions\_frees\_options\_framework' );
134
}
135
add\_action( 'admin\_menu', 'custom\_accordion\_free\_plugins\_options\_framwrork' );
136
137
138
if ( is\_admin() ) : // Load only if we are viewing an admin page
139
140
function tp\_accordions\_options\_framework\_settings() {
141
// Register settings and call sanitation functions
142
register\_setting( 'accordion\_free\_options', 'tp\_accordion\_free\_options', 'tpls\_accordion\_free\_options' );
143
}
144
add\_action( 'admin\_init', 'tp\_accordions\_options\_framework\_settings' );
145
146
147
function tp\_accordions\_frees\_options\_framework() {
148
149
if ( ! isset( $\_REQUEST\['updated'\] ) ) {
150
$\_REQUEST\['updated'\] = false;
151
} ?>
152
153
154
<div class="wrap about-wrap">
155
<h1>Welcome To Accordion - Version - 2.6</h1>
156
<div class="about-text">Thank you for using our Accordion Wp plugin free version. if you really love this plugin please give us a <a style="color:red" target="\_blank" href="https://wordpress.org/plugins/accordions-wp/">Five Stars Feedback</a> with some valuable comments.</div>
157
<hr>
158
<h3>We create a <a target="\_blank" href="https://themepoints.com/product/wp-accordions-pro/">premium version</a> of this plugin with some amazing cool features?</h3>
159
<br>
160
<hr>
161
<div class="feature-section two-col">
162
<h1>Premium Version Amazing Features</h1>
163
<div class="col">
164
<ul>
165
<li><span class="dashicons dashicons-yes"></span> All Features of the free version.</li>
166
<li><span class="dashicons dashicons-yes"></span> Fully Responsive Design.</li>
167
<li><span class="dashicons dashicons-yes"></span> Create Your Own Style.</li>
168
<li><span class="dashicons dashicons-yes"></span> Highly customized for User Experience.</li>
169
<li><span class="dashicons dashicons-yes"></span> Widget Ready.</li>
170
<li><span class="dashicons dashicons-yes"></span> Unlimited Domain Support.</li>
171
<li><span class="dashicons dashicons-yes"></span> Unlimited Accordions Support.</li>
172
<li><span class="dashicons dashicons-yes"></span> Support wysiwyg text editor.</li>
173
<li><span class="dashicons dashicons-yes"></span> Create accordions by group.</li>
174
<li><span class="dashicons dashicons-yes"></span> Cross-browser compatibility.</li>
175
<li><span class="dashicons dashicons-yes"></span> Drag & Drop accordion items sorting.</li>
176
<li><span class="dashicons dashicons-yes"></span> Multi-level Accordion Support.</li>
177
<li><span class="dashicons dashicons-yes"></span> Auto Open Accordion Items Options.</li>
178
<li><span class="dashicons dashicons-yes"></span> Accordion Icon Insert Options.</li>
179
<li><span class="dashicons dashicons-yes"></span> Choose Accordion Plus Icon.</li>
180
<li><span class="dashicons dashicons-yes"></span> Choose Accordion Minus Icon.</li>
181
<li><span class="dashicons dashicons-yes"></span> Accordion Fontawesome Icon Support.</li>
182
<li><span class="dashicons dashicons-yes"></span> Accordion Icon Position Left/Right.</li>
183
<li><span class="dashicons dashicons-yes"></span> Accordion Icon Color Options.</li>
184
<li><span class="dashicons dashicons-yes"></span> Accordion CloseAble Options.</li>
185
<li><span class="dashicons dashicons-yes"></span> Accordion Close Other Items Options.</li>
186
</ul>
187
</div>
188
<div class="col">
189
<ul>
190
<li><span class="dashicons dashicons-yes"></span> Expand/collapse Slide speed of Animation Options.</li>
191
<li><span class="dashicons dashicons-yes"></span> Add and remove accordion item from backend.</li>
192
<li><span class="dashicons dashicons-yes"></span> Accordion header title font size.</li>
193
<li><span class="dashicons dashicons-yes"></span> Accordion header title font color.</li>
194
<li><span class="dashicons dashicons-yes"></span> Accordion header title text position.</li>
195
<li><span class="dashicons dashicons-yes"></span> Accordion header title background color.</li>
196
<li><span class="dashicons dashicons-yes"></span> Accordion content font size.</li>
197
<li><span class="dashicons dashicons-yes"></span> Accordion content font color.</li>
198
<li><span class="dashicons dashicons-yes"></span> Accordion content background.</li>
199
<li><span class="dashicons dashicons-yes"></span> Custom Accordion Padding Options.</li>
200
<li><span class="dashicons dashicons-yes"></span> Accordion area background image Options.</li>
201
<li><span class="dashicons dashicons-yes"></span> Accordions Area Padding Options.</li>
202
<li><span class="dashicons dashicons-yes"></span> Support Any videos (Ex: youtube, vimeo )</li>
203
<li><span class="dashicons dashicons-yes"></span> Valid HTML5 & CSS3 layout.</li>
204
<li><span class="dashicons dashicons-yes"></span> Use via short-codes.</li>
205
<li><span class="dashicons dashicons-yes"></span> Clean Design & Code.</li>
206
<li><span class="dashicons dashicons-yes"></span> Unlimited accordion anywhere in the themes or template.</li>
207
<li><span class="dashicons dashicons-yes"></span> Life Time Self hosted auto updated enable.</li>
208
<li><span class="dashicons dashicons-yes"></span> Online Documentation.</li>
209
<li><span class="dashicons dashicons-yes"></span> 24/7 Dedicated support forum.</li>
210
<li><span class="dashicons dashicons-yes"></span> And Many More</li>
211
</ul>
212
</div>
213
</div>
214
<h2>
215
<a href="https://themepoints.com/product/wp-accordions-pro/" class="button button-primary button-hero" target="\_blank">Buy Premium Version Only $8</a>
216
</h2>
217
<br>
218
<br>
219
<br>
220
<br>
221
</div>
222
<?php
223
}
224
225
226
endif; // EndIf is\_admin()
227
228
register\_activation\_hook( \_\_FILE\_\_, 'accordion\_pro\_free\_plugin\_active\_hook' );
229
add\_action( 'admin\_init', 'accordion\_pro\_free\_main\_active\_redirect\_hook' );
230
231
function accordion\_pro\_free\_plugin\_active\_hook() {
232
add\_option( 'accordion\_pro\_plugin\_active\_free\_redirect\_hook', true );
233
}
234
235
function accordion\_pro\_free\_main\_active\_redirect\_hook() {
236
if ( get\_option( 'accordion\_pro\_plugin\_active\_free\_redirect\_hook', false ) ) {
237
delete\_option( 'accordion\_pro\_plugin\_active\_free\_redirect\_hook' );
238
if ( ! isset( $\_GET\['activate-multi'\] ) ) {
239
wp\_redirect( "options-general.php?page=accordion-free-features" );
240
}
241
}
242
}
119
add\_filter( 'enter\_title\_here', 'custom\_accordion\_wordpress\_title' );
243
120
244
121
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
accordions-wp/trunk/inc/accordions-wp-post-type.php
r2406278
r2982015
7
7
// Register Custom Post Type
8
8
function custom\_accordion\_post\_register() {
9
10
9
$labels = array(
11
10
'name' => \_x( 'Accordions', 'Post Type General Name', 'tcaccordion' ),
…
…
56
55
);
57
56
register\_post\_type( 'accordion\_tp', $args );
58
59
57
}
60
58
add\_action( 'init', 'custom\_accordion\_post\_register', 0 );
…
…
291
289
// OK, we're authenticated: we need to find and save the data
292
290
293
294
291
$custom\_accordion\_columns\_post\_themes = sanitize\_text\_field( $\_POST\['custom\_accordion\_columns\_post\_themes'\] );
295
292
$custom\_accordion\_title\_bg\_color = sanitize\_text\_field( $\_POST\['custom\_accordion\_title\_bg\_color'\] );
…
…
330
327
update\_post\_meta($post\_id, '\_tpaccpro\_wiki\_acc\_theme\_content\_margin', $\_POST\['\_tpaccpro\_wiki\_acc\_theme\_content\_margin'\]);
331
328
}
332
333
334
335
329
}
336
330
// Do something with the data entered
accordions-wp/trunk/readme.txt
r2406278
r2982015
4
4
Tags: accordion, accordions, responsive accordions, jQuery accordions, accordions shortcode, Responsive accordions plugin
5
5
Requires at least: 3.8
6
Tested up to: 5.5.1
7
Stable tag: 2.6
6
Tested up to: 6.3.2
7
Stable tag: 2.7
8
8
License: GPLv2 or later
9
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
…
…
17
17
18
18
<ul>
19
<li><a href="https://themepoints.com/product/wp-accordions-pro/">Upgrade to Pro Version</a></li>
20
19
<li><a href="https://themepoints.com/product/wp-accordions-pro">Live Preview</a></li>
21
20
<li><a href="https://themepoints.com/wp-accordions/free-version-doc/">Documentation</a></li>
22
<li><a href="https://themepoints.com/questions-answer/">Need Support</a></li>
21
<li><a href="https://themepoints.com/contact/">Need Support</a></li>
23
22
</ul>
24
23
…
…
81
80
82
81
83
[Upgrade to Premium!»](https://themepoints.com/product/wp-accordions-pro/)
84
85
<strong> Why Accordion Pro ?</strong>
86
87
* Unlimited Features.
88
* Self Hosted Auto Update Enable.
89
* 24/7 Dedicated Support Forum.
90
* Continuously Updated New Features.
91
* One Time Purchase.
92
* No Hidden Charge.
93
* No Yearly Charge.
94
* Reasonable price.
95
96
97
98
82
<strong>Activation</strong>
99
83
…
…
172
156
== Changelog ==
173
157
158
= 2.7 =
159
* Update Option Page.
160
* Fix Security Issues.
161
* Fix CSS Issue.
162
174
163
= 2.6 =
175
164
* Update Option Page.
accordions-wp/trunk/theme/custom-wp-accordion-themes.php
r2406278
r2982015
18
18
if($custom\_accordion\_columns\_post\_themes=="theme1"){
19
19
$logotesting ='';
20
$logotesting.='<div class="container '.$custom\_accordion\_columns\_post\_themes.'" style="width:100%; height:auto">';
20
$logotesting.='<div class="container '.esc\_attr( $custom\_accordion\_columns\_post\_themes ).'" style="width:100%; height:auto">';
21
21
$logotesting.='<ul class="responsive-accordion responsive-accordion-default bm-larger">';
22
22
foreach ($tcpfeaturess as $tcpfeature) {
23
23
$logotesting.='<li>';
24
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.$custom\_accordion\_title\_bg\_color.'">';
25
$logotesting.='<span style="color:'.$custom\_accordion\_title\_font\_color.';font-size:'.$custom\_accordion\_title\_font\_size.'px">'.$tcpfeature\['custom\_accordions\_pro\_title'\].'</span>';
24
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.esc\_attr( $custom\_accordion\_title\_bg\_color ).'">';
25
$logotesting.='<span style="color:'.esc\_attr( $custom\_accordion\_title\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_title\_font\_size ).'px">'.esc\_attr( $tcpfeature\['custom\_accordions\_pro\_title'\] ).'</span>';
26
26
$logotesting.='<i class="fa fa-chevron-down responsive-accordion-plus fa-fw"></i><i class="fa fa-chevron-up responsive-accordion-minus fa-fw"></i>';
27
27
$logotesting.='</div>';
28
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.$custom\_accordion\_content\_bg\_color.';padding:'.$custom\_accordion\_content\_padding.'px;color:'.$custom\_accordion\_content\_font\_color.';font-size:'.$custom\_accordion\_content\_font\_size.'px">';
28
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.esc\_attr( $custom\_accordion\_content\_bg\_color ).';padding:'.$custom\_accordion\_content\_padding.'px;color:'.esc\_attr( $custom\_accordion\_content\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_content\_font\_size ).'px">';
29
29
$logotesting.=''.wpautop( do\_shortcode( $tcpfeature\['custom\_accordions\_pro\_details'\] ) ).'';
30
30
$logotesting.='</div>';
…
…
37
37
if($custom\_accordion\_columns\_post\_themes=="theme2"){
38
38
$logotesting ='';
39
$logotesting.='<div class="container '.$custom\_accordion\_columns\_post\_themes.'" style="width:100%; height:auto">';
39
$logotesting.='<div class="container '.esc\_attr( $custom\_accordion\_columns\_post\_themes ).'" style="width:100%; height:auto">';
40
40
$logotesting.='<ul class="responsive-accordion responsive-accordion-default bm-larger">';
41
41
foreach ($tcpfeaturess as $tcpfeature) {
42
42
$logotesting.='<li>';
43
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.$custom\_accordion\_title\_bg\_color.'">';
44
$logotesting.='<span style="color:'.$custom\_accordion\_title\_font\_color.';font-size:'.$custom\_accordion\_title\_font\_size.'px">'.$tcpfeature\['custom\_accordions\_pro\_title'\].'</span>';
43
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.esc\_attr( $custom\_accordion\_title\_bg\_color ).'">';
44
$logotesting.='<span style="color:'.esc\_attr( $custom\_accordion\_title\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_title\_font\_size ).'px">'.esc\_attr( $tcpfeature\['custom\_accordions\_pro\_title'\] ).'</span>';
45
45
$logotesting.='<i class="fa fa-chevron-down responsive-accordion-plus fa-fw"></i><i class="fa fa-chevron-up responsive-accordion-minus fa-fw"></i>';
46
46
$logotesting.='</div>';
47
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.$custom\_accordion\_content\_bg\_color.';padding:'.$custom\_accordion\_content\_padding.'px;color:'.$custom\_accordion\_content\_font\_color.';font-size:'.$custom\_accordion\_content\_font\_size.'px">';
47
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.esc\_attr( $custom\_accordion\_content\_bg\_color ).';padding:'.esc\_attr( $custom\_accordion\_content\_padding ).'px;color:'.esc\_attr( $custom\_accordion\_content\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_content\_font\_size ).'px">';
48
48
$logotesting.=''.wpautop( do\_shortcode( $tcpfeature\['custom\_accordions\_pro\_details'\] ) ).'';
49
49
$logotesting.='</div>';
…
…
56
56
if($custom\_accordion\_columns\_post\_themes=="theme3"){
57
57
$logotesting ='';
58
$logotesting.='<div class="container '.$custom\_accordion\_columns\_post\_themes.'" style="width:100%; height:auto">';
58
$logotesting.='<div class="container '.esc\_attr( $custom\_accordion\_columns\_post\_themes ).'" style="width:100%; height:auto">';
59
59
$logotesting.='<ul class="responsive-accordion responsive-accordion-default bm-larger">';
60
60
61
61
foreach ($tcpfeaturess as $tcpfeature) {
62
62
$logotesting.='<li>';
63
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.$custom\_accordion\_title\_bg\_color.'">';
64
$logotesting.='<span style="color:'.$custom\_accordion\_title\_font\_color.';font-size:'.$custom\_accordion\_title\_font\_size.'px">'.$tcpfeature\['custom\_accordions\_pro\_title'\].'</span>';
63
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.esc\_attr( $custom\_accordion\_title\_bg\_color ).'">';
64
$logotesting.='<span style="color:'.esc\_attr( $custom\_accordion\_title\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_title\_font\_size ).'px">'.esc\_attr( $tcpfeature\['custom\_accordions\_pro\_title'\] ).'</span>';
65
65
$logotesting.='<i class="fa fa-chevron-down responsive-accordion-plus fa-fw"></i><i class="fa fa-chevron-up responsive-accordion-minus fa-fw"></i>';
66
66
$logotesting.='</div>';
67
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.$custom\_accordion\_content\_bg\_color.';padding:'.$custom\_accordion\_content\_padding.'px;color:'.$custom\_accordion\_content\_font\_color.';font-size:'.$custom\_accordion\_content\_font\_size.'px">';
67
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.esc\_attr( $custom\_accordion\_content\_bg\_color ).';padding:'.esc\_attr( $custom\_accordion\_content\_padding ).'px;color:'.esc\_attr( $custom\_accordion\_content\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_content\_font\_size ).'px">';
68
68
$logotesting.=''.wpautop( do\_shortcode( $tcpfeature\['custom\_accordions\_pro\_details'\] ) ).'';
69
69
$logotesting.='</div>';
…
…
76
76
if($custom\_accordion\_columns\_post\_themes=="theme4"){
77
77
$logotesting ='';
78
$logotesting.='<div class="container '.$custom\_accordion\_columns\_post\_themes.'" style="width:100%; height:auto">';
78
$logotesting.='<div class="container '.esc\_attr( $custom\_accordion\_columns\_post\_themes ).'" style="width:100%; height:auto">';
79
79
$logotesting.='<ul class="responsive-accordion responsive-accordion-default bm-larger">';
80
80
81
81
foreach ($tcpfeaturess as $tcpfeature) {
82
82
$logotesting.='<li>';
83
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.$custom\_accordion\_title\_bg\_color.'">';
84
$logotesting.='<span style="color:'.$custom\_accordion\_title\_font\_color.';font-size:'.$custom\_accordion\_title\_font\_size.'px">'.$tcpfeature\['custom\_accordions\_pro\_title'\].'</span>';
83
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.esc\_attr( $custom\_accordion\_title\_bg\_color ).'">';
84
$logotesting.='<span style="color:'.esc\_attr( $custom\_accordion\_title\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_title\_font\_size ).'px">'.esc\_attr( $tcpfeature\['custom\_accordions\_pro\_title'\] ).'</span>';
85
85
$logotesting.='<i class="fa fa-chevron-down responsive-accordion-plus fa-fw"></i><i class="fa fa-chevron-up responsive-accordion-minus fa-fw"></i>';
86
86
$logotesting.='</div>';
87
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.$custom\_accordion\_content\_bg\_color.';padding:'.$custom\_accordion\_content\_padding.'px;color:'.$custom\_accordion\_content\_font\_color.';font-size:'.$custom\_accordion\_content\_font\_size.'px">';
87
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.esc\_attr( $custom\_accordion\_content\_bg\_color ).';padding:'.esc\_attr( $custom\_accordion\_content\_padding ).'px;color:'.esc\_attr( $custom\_accordion\_content\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_content\_font\_size ).'px">';
88
88
$logotesting.=''.wpautop( do\_shortcode( $tcpfeature\['custom\_accordions\_pro\_details'\] ) ).'';
89
89
$logotesting.='</div>';
…
…
96
96
if($custom\_accordion\_columns\_post\_themes=="theme5"){
97
97
$logotesting ='';
98
$logotesting.='<div class="container '.$custom\_accordion\_columns\_post\_themes.'" style="width:100%; height:auto">';
98
$logotesting.='<div class="container '.esc\_attr( $custom\_accordion\_columns\_post\_themes ).'" style="width:100%; height:auto">';
99
99
$logotesting.='<ul class="responsive-accordion responsive-accordion-default bm-larger">';
100
100
foreach ($tcpfeaturess as $tcpfeature) {
101
101
$logotesting.='<li>';
102
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.$custom\_accordion\_title\_bg\_color.'">';
103
$logotesting.='<span style="color:'.$custom\_accordion\_title\_font\_color.';font-size:'.$custom\_accordion\_title\_font\_size.'px">'.$tcpfeature\['custom\_accordions\_pro\_title'\].'</span>';
102
$logotesting.='<div class="responsive-accordion-head" style="background-color:'.esc\_attr( $custom\_accordion\_title\_bg\_color ).'">';
103
$logotesting.='<span style="color:'.esc\_attr( $custom\_accordion\_title\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_title\_font\_size ).'px">'.esc\_attr( $tcpfeature\['custom\_accordions\_pro\_title'\] ).'</span>';
104
104
$logotesting.='<i class="fa fa-chevron-down responsive-accordion-plus fa-fw"></i><i class="fa fa-chevron-up responsive-accordion-minus fa-fw"></i>';
105
105
$logotesting.='</div>';
106
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.$custom\_accordion\_content\_bg\_color.';padding:'.$custom\_accordion\_content\_padding.'px;color:'.$custom\_accordion\_content\_font\_color.';font-size:'.$custom\_accordion\_content\_font\_size.'px">';
106
$logotesting.='<div class="responsive-accordion-panel"style="background-color:'.esc\_attr( $custom\_accordion\_content\_bg\_color ).';padding:'.esc\_attr( $custom\_accordion\_content\_padding ).'px;color:'.esc\_attr( $custom\_accordion\_content\_font\_color ).';font-size:'.esc\_attr( $custom\_accordion\_content\_font\_size ).'px">';
107
107
$logotesting.=''.wpautop( do\_shortcode( $tcpfeature\['custom\_accordions\_pro\_details'\] ) ).'';
108
108
$logotesting.='</div>';