Premium Addons for Elementor - Version 3.10.4

Version Description

  • Tweak: Added Multiple Persons options in Persons widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 3.10.4
Comparing to
See all releases

Code changes from version 3.10.3 to 3.10.4

admin/settings/modules-setting.php CHANGED
@@ -300,7 +300,7 @@ class Modules_Settings {
300
</label>
301
</td>
302
303
- <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Person', 'premium-addons-for-elementor') ); ?></th>
304
<td>
305
<label class="switch">
306
<input type="checkbox" id="premium-person" name="premium-person" <?php checked(1, $this->pa_get_settings['premium-person'], true) ?>>
300
</label>
301
</td>
302
303
+ <th><?php echo sprintf( '%1$s %2$s', $prefix, __('Persons', 'premium-addons-for-elementor') ); ?></th>
304
<td>
305
<label class="switch">
306
<input type="checkbox" id="premium-person" name="premium-person" <?php checked(1, $this->pa_get_settings['premium-person'], true) ?>>
assets/frontend/css/premium-addons.css CHANGED
@@ -2077,263 +2077,285 @@ button.premium-modal-box-modal-close {
2077
}
2078
/**************** Premium Person ******************/
2079
/**************************************************/
2080
- .premium-person-container {
2081
- position: relative;
2082
}
2083
.premium-person-style1 {
2084
- overflow: hidden;
2085
}
2086
- .premium-person-image-container {
2087
- position: relative;
2088
- text-align: center;
2089
}
2090
.premium-person-image-container .premium-person-image-wrap {
2091
- overflow: hidden;
2092
- }
2093
- .premium-person-zoomout-effect .premium-person-image-container img, .premium-person-scale-effect .premium-person-image-container img {
2094
- -webkit-transform: scale(1.2);
2095
- -moz-transform: scale(1.2);
2096
- -ms-transform: scale(1.2);
2097
- -o-transform: scale(1.2);
2098
- transform: scale(1.2);
2099
- }
2100
- .premium-person-sepia-effect .premium-person-image-container img {
2101
- -webkit-filter: sepia(30%);
2102
- filter: sepia(30%);
2103
- }
2104
- .premium-person-bright-effect .premium-person-image-container img {
2105
- -webkit-filter: brightness(1);
2106
- filter: brightness(1);
2107
- }
2108
- .premium-person-trans-effect .premium-person-image-container img {
2109
- -webkit-transform: translateX(-15px) scale(1.1);
2110
- transform: translateX(-15px) scale(1.1);
2111
- }
2112
- .premium-person-zoomin-effect:hover .premium-person-image-container img{
2113
- -webkit-transform: scale(1.2);
2114
- -moz-transform: scale(1.2);
2115
- -ms-transform: scale(1.2);
2116
- -o-transform: scale(1.2);
2117
- transform: scale(1.2);
2118
- }
2119
- .premium-person-zoomout-effect:hover .premium-person-image-container img{
2120
- -webkit-transform: scale(1.1);
2121
- -moz-transform: scale(1.1);
2122
- -ms-transform: scale(1.1);
2123
- -o-transform: scale(1.1);
2124
- transform: scale(1.1);
2125
- }
2126
- .premium-person-scale-effect:hover .premium-person-image-container img {
2127
- -webkit-transform: scale(1.3) rotate(5deg);
2128
- -moz-transform: scale(1.3) rotate(5deg);
2129
- -ms-transform: scale(1.3) rotate(5deg);
2130
- -o-transform: scale(1.3) rotate(5deg);
2131
- transform: scale(1.3) rotate(5deg);
2132
- }
2133
- .premium-person-grayscale-effect:hover .premium-person-image-container img {
2134
- -webkit-filter: grayscale(100%);
2135
- -moz-filter: grayscale(100%);
2136
- -ms-filter: grayscale(100%);
2137
- -o-filter: grayscale(100%);
2138
- filter: grayscale(100%);
2139
- }
2140
- .premium-person-blur-effect:hover .premium-person-image-container img {
2141
- -webkit-filter: blur(3px);
2142
- -moz-filter: blur(3px);
2143
- -ms-filter: blur(3px);
2144
- -o-filter: blur(3px);
2145
- filter: blur(3px);
2146
- }
2147
- .premium-person-sepia-effect:hover .premium-person-image-container img {
2148
- -webkit-filter: sepia(0%);
2149
- filter: sepia(0%);
2150
- }
2151
- .premium-person-bright-effect:hover .premium-person-image-container img {
2152
- -webkit-filter: brightness(1.2);
2153
- filter: brightness(1.2);
2154
- }
2155
- .premium-person-trans-effect:hover .premium-person-image-container img {
2156
- -webkit-transform: translateX(0px) scale(1.1);
2157
- transform: translateX(0px) scale(1.1);
2158
}
2159
- .premium-person-container .premium-person-image-container img {
2160
- width: 100%;
2161
- height: 100%;
2162
- object-fit: cover;
2163
- -webkit-transition: all 0.5s ease-in-out;
2164
- -moz-transition: all 0.5s ease-in-out;
2165
- -ms-transition: all 0.5s ease-in-out;
2166
- -o-transition: all 0.5s ease-in-out;
2167
- transition: all 0.5s ease-in-out;
2168
}
2169
- .premium-person-style1 .premium-person-info {
2170
position: absolute;
2171
- top: auto;
2172
- right: 0;
2173
left: 0;
2174
width: 100%;
2175
- -webkit-transition: all 500ms ease 0s;
2176
- -moz-transition: all 500ms ease 0s;
2177
- -ms-transition: all 500ms ease 0s;
2178
- -o-transition: all 500ms ease 0s;
2179
- transition: all 500ms ease 0s;
2180
- -webkit-transform: translate3d(0,100%,0);
2181
- -moz-transform: translate3d(0,100%,0);
2182
- -ms-transform: translate3d(0,100%,0);
2183
- -o-transform: translate3d(0,100%,0);
2184
- transform: translate3d(0,100%,0);
2185
- }
2186
- .premium-person-style2 .premium-person-social {
2187
- position: absolute;
2188
- top: 0;
2189
- left: 0;
2190
- width: 100%;
2191
- height: 100%;
2192
- z-index: 2;
2193
- display: -ms-flexbox;
2194
- display: -webkit-flex;
2195
- display: -moz-flex;
2196
- display: -ms-flex;
2197
- display: flex;
2198
- -webkit-justify-content: center;
2199
- justify-content: center;
2200
- -webkit-box-align: center;
2201
-ms-flex-align: center;
2202
- -webkit-align-items: center;
2203
- -ms-flex-align: center;
2204
- align-items: center;
2205
- box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2206
- -webkit-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2207
- -moz-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2208
- -ms-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2209
- -o-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2210
- -webkit-transition: all .5s linear 0s;
2211
- -moz-transition: all .5s linear 0s;
2212
- -ms-transition: all .5s linear 0s;
2213
- -o-transition: all .5s linear 0s;
2214
- transition: all .5s linear 0s;
2215
- opacity: 0;
2216
}
2217
.premium-person-style2 .premium-person-image-container:hover .premium-person-social {
2218
- opacity: 1;
2219
}
2220
.premium-person-list-item a {
2221
- display: inline-block;
2222
}
2223
.premium-person-style2 .premium-person-list-item a {
2224
- opacity: 0;
2225
- -webkit-transform: scale(0);
2226
- -moz-transform: scale(0);
2227
- -ms-transform: scale(0);
2228
- -o-transform: scale(0);
2229
- transform: scale(0);
2230
- -webkit-transition: all .5s ease-in-out 0s;
2231
- -moz-transition: all .5s ease-in-out 0s;
2232
- -ms-transition: all .5s ease-in-out 0s;
2233
- -o-transition: all .5s ease-in-out 0s;
2234
- transition: all .5s ease-in-out 0s;
2235
}
2236
.premium-person-style2 .premium-person-image-container:hover .premium-person-list-item a {
2237
- opacity: 1;
2238
- -webkit-transform: scale(1);
2239
- -moz-transform: scale(1);
2240
- -ms-transform: scale(1);
2241
- -o-transform: scale(1);
2242
- transform: scale(1);
2243
}
2244
- .premium-person-container:hover .premium-person-info {
2245
- -webkit-transform: translate3d(0,0,0);
2246
- -moz-transform: translate3d(0,0,0);
2247
- -ms-transform: translate3d(0,0,0);
2248
- -o-transform: translate3d(0,0,0);
2249
- transform: translate3d(0,0,0);
2250
- bottom: -1px !important;
2251
}
2252
- .premium-person-info-container {
2253
- padding: 30px 15px;
2254
}
2255
- .premium-person-name {
2256
- margin: 0 0 5px;
2257
- font-weight: 700;
2258
}
2259
- .premium-person-title {
2260
- margin: 0 0 20px;
2261
- padding: 0;
2262
}
2263
- .premium-person-content {
2264
- margin: 0 0 30px;
2265
}
2266
/*Override Theme List Margin*/
2267
- ul.premium-person-social-list {
2268
- margin: 0px !important;
2269
- padding: 0;
2270
- }
2271
- .premium-person-social-list .premium-person-list-item {
2272
- display: inline;
2273
- list-style: none;
2274
- }
2275
- .premium-person-social-list li, .premium-person-social-list li i {
2276
- position: relative;
2277
- bottom: 0px;
2278
- -webkit-transition: all 0.2s ease-in-out;
2279
- -moz-transition: all 0.2s ease-in-out;
2280
- -ms-transition: all 0.2s ease-in-out;
2281
- -o-transition: all 0.2s ease-in-out;
2282
- transition: all 0.2s ease-in-out;
2283
- }
2284
- .premium-person-style1 .premium-person-social-list li:hover {
2285
- bottom: 5px;
2286
}
2287
.premium-person-defaults-yes li.premium-person-facebook:hover a {
2288
- background-color: #3b5998 !important;
2289
}
2290
.premium-person-defaults-yes li.premium-person-twitter:hover a {
2291
- background-color: #55acee !important;
2292
}
2293
.premium-person-defaults-yes li.premium-person-linkedin:hover a {
2294
- background-color: #0077b5 !important;
2295
}
2296
.premium-person-defaults-yes li.premium-person-google:hover a {
2297
- background-color: #dc4e41 !important;
2298
}
2299
.premium-person-defaults-yes li.premium-person-youtube:hover a {
2300
- background-color: #b31217 !important;
2301
}
2302
.premium-person-defaults-yes li.premium-person-instagram:hover a {
2303
- background-color: #E4405F !important;
2304
}
2305
.premium-person-defaults-yes li.premium-person-skype:hover a {
2306
- background-color: #00AFF0 !important;
2307
}
2308
.premium-person-defaults-yes li.premium-person-pinterest:hover a {
2309
- background-color: #bd081c !important;
2310
}
2311
.premium-person-defaults-yes li.premium-person-dribbble:hover a {
2312
- background-color: #ea4c89 !important;
2313
}
2314
.premium-person-defaults-yes li.premium-person-mail:hover a {
2315
- background-color: #b23121 !important;
2316
}
2317
.premium-person-defaults-yes li.premium-person-behance:hover a {
2318
- background-color: #1769ff !important;
2319
}
2320
- .premium-person-social-list li:hover a {
2321
- box-shadow: none;
2322
}
2323
- .premium-person-social-list li a:focus {
2324
- box-shadow: none;
2325
- outline: none;
2326
}
2327
- .premium-person-social-list li i {
2328
- font-size: 18px;
2329
}
2330
- .elementor-widget-premium-addon-person .elementor-widget-container {
2331
display: -ms-flexbox;
2332
- display: -webkit-flex;
2333
- display: -moz-flex;
2334
- display: -ms-flex;
2335
- display: flex;
2336
- justify-content: center;
2337
}
2338
/**************** Premium Dual Header ******************/
2339
/*******************************************************/
2077
}
2078
/**************** Premium Person ******************/
2079
/**************************************************/
2080
+ .premium-person-container {
2081
+ position: relative;
2082
}
2083
.premium-person-style1 {
2084
+ overflow: hidden;
2085
}
2086
+ .premium-person-image-container {
2087
+ position: relative;
2088
+ text-align: center;
2089
}
2090
.premium-person-image-container .premium-person-image-wrap {
2091
+ overflow: hidden;
2092
}
2093
+ .premium-person-zoomout-effect .premium-person-image-container img, .premium-person-scale-effect .premium-person-image-container img {
2094
+ -webkit-transform: scale(1.2);
2095
+ -moz-transform: scale(1.2);
2096
+ -ms-transform: scale(1.2);
2097
+ -o-transform: scale(1.2);
2098
+ transform: scale(1.2);
2099
+ }
2100
+ .premium-person-sepia-effect .premium-person-image-container img {
2101
+ -webkit-filter: sepia(30%);
2102
+ filter: sepia(30%);
2103
+ }
2104
+ .premium-person-bright-effect .premium-person-image-container img {
2105
+ -webkit-filter: brightness(1);
2106
+ filter: brightness(1);
2107
+ }
2108
+ .premium-person-trans-effect .premium-person-image-container img {
2109
+ -webkit-transform: translateX(-15px) scale(1.1);
2110
+ transform: translateX(-15px) scale(1.1);
2111
+ }
2112
+ .premium-person-zoomin-effect:hover .premium-person-image-container img{
2113
+ -webkit-transform: scale(1.2);
2114
+ -moz-transform: scale(1.2);
2115
+ -ms-transform: scale(1.2);
2116
+ -o-transform: scale(1.2);
2117
+ transform: scale(1.2);
2118
+ }
2119
+ .premium-person-zoomout-effect:hover .premium-person-image-container img{
2120
+ -webkit-transform: scale(1.1);
2121
+ -moz-transform: scale(1.1);
2122
+ -ms-transform: scale(1.1);
2123
+ -o-transform: scale(1.1);
2124
+ transform: scale(1.1);
2125
+ }
2126
+ .premium-person-scale-effect:hover .premium-person-image-container img {
2127
+ -webkit-transform: scale(1.3) rotate(5deg);
2128
+ -moz-transform: scale(1.3) rotate(5deg);
2129
+ -ms-transform: scale(1.3) rotate(5deg);
2130
+ -o-transform: scale(1.3) rotate(5deg);
2131
+ transform: scale(1.3) rotate(5deg);
2132
+ }
2133
+ .premium-person-grayscale-effect:hover .premium-person-image-container img {
2134
+ -webkit-filter: grayscale(100%);
2135
+ -moz-filter: grayscale(100%);
2136
+ -ms-filter: grayscale(100%);
2137
+ -o-filter: grayscale(100%);
2138
+ filter: grayscale(100%);
2139
+ }
2140
+ .premium-person-blur-effect:hover .premium-person-image-container img {
2141
+ -webkit-filter: blur(3px);
2142
+ -moz-filter: blur(3px);
2143
+ -ms-filter: blur(3px);
2144
+ -o-filter: blur(3px);
2145
+ filter: blur(3px);
2146
+ }
2147
+ .premium-person-sepia-effect:hover .premium-person-image-container img {
2148
+ -webkit-filter: sepia(0%);
2149
+ filter: sepia(0%);
2150
+ }
2151
+ .premium-person-bright-effect:hover .premium-person-image-container img {
2152
+ -webkit-filter: brightness(1.2);
2153
+ filter: brightness(1.2);
2154
+ }
2155
+ .premium-person-trans-effect:hover .premium-person-image-container img {
2156
+ -webkit-transform: translateX(0px) scale(1.1);
2157
+ transform: translateX(0px) scale(1.1);
2158
+ }
2159
+ .premium-person-container .premium-person-image-container img {
2160
+ width: 100%;
2161
+ height: 100%;
2162
+ object-fit: cover;
2163
+ -webkit-transition: all 0.5s ease-in-out;
2164
+ -moz-transition: all 0.5s ease-in-out;
2165
+ -ms-transition: all 0.5s ease-in-out;
2166
+ -o-transition: all 0.5s ease-in-out;
2167
+ transition: all 0.5s ease-in-out;
2168
+ }
2169
+ .premium-person-style1 .premium-person-info {
2170
+ position: absolute;
2171
+ top: auto;
2172
+ right: 0;
2173
+ left: 0;
2174
+ /* width: 100%;*/
2175
+ -webkit-transition: all 500ms ease 0s;
2176
+ -moz-transition: all 500ms ease 0s;
2177
+ -ms-transition: all 500ms ease 0s;
2178
+ -o-transition: all 500ms ease 0s;
2179
+ transition: all 500ms ease 0s;
2180
+ -webkit-transform: translate3d(0,100%,0);
2181
+ -moz-transform: translate3d(0,100%,0);
2182
+ -ms-transform: translate3d(0,100%,0);
2183
+ -o-transform: translate3d(0,100%,0);
2184
+ transform: translate3d(0,100%,0);
2185
}
2186
+ .premium-person-style2 .premium-person-social {
2187
position: absolute;
2188
+ top: 0;
2189
left: 0;
2190
width: 100%;
2191
+ height: 100%;
2192
+ z-index: 2;
2193
+ display: -ms-flexbox;
2194
+ display: -webkit-flex;
2195
+ display: -moz-flex;
2196
+ display: -ms-flex;
2197
+ display: flex;
2198
+ -webkit-justify-content: center;
2199
+ justify-content: center;
2200
+ -webkit-box-align: center;
2201
+ -ms-flex-align: center;
2202
+ -webkit-align-items: center;
2203
-ms-flex-align: center;
2204
+ align-items: center;
2205
+ box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2206
+ -webkit-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2207
+ -moz-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2208
+ -ms-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2209
+ -o-box-shadow: inset 0 0 120px 0 rgba(0,0,0,.5);
2210
+ -webkit-transition: all .5s linear 0s;
2211
+ -moz-transition: all .5s linear 0s;
2212
+ -ms-transition: all .5s linear 0s;
2213
+ -o-transition: all .5s linear 0s;
2214
+ transition: all .5s linear 0s;
2215
+ opacity: 0;
2216
}
2217
.premium-person-style2 .premium-person-image-container:hover .premium-person-social {
2218
+ opacity: 1;
2219
}
2220
.premium-person-list-item a {
2221
+ display: inline-block;
2222
}
2223
.premium-person-style2 .premium-person-list-item a {
2224
+ opacity: 0;
2225
+ -webkit-transform: scale(0);
2226
+ -moz-transform: scale(0);
2227
+ -ms-transform: scale(0);
2228
+ -o-transform: scale(0);
2229
+ transform: scale(0);
2230
+ -webkit-transition: all .5s ease-in-out 0s;
2231
+ -moz-transition: all .5s ease-in-out 0s;
2232
+ -ms-transition: all .5s ease-in-out 0s;
2233
+ -o-transition: all .5s ease-in-out 0s;
2234
+ transition: all .5s ease-in-out 0s;
2235
}
2236
.premium-person-style2 .premium-person-image-container:hover .premium-person-list-item a {
2237
+ opacity: 1;
2238
+ -webkit-transform: scale(1);
2239
+ -moz-transform: scale(1);
2240
+ -ms-transform: scale(1);
2241
+ -o-transform: scale(1);
2242
+ transform: scale(1);
2243
}
2244
+ .premium-person-container:hover .premium-person-info {
2245
+ -webkit-transform: translate3d(0,0,0);
2246
+ -moz-transform: translate3d(0,0,0);
2247
+ -ms-transform: translate3d(0,0,0);
2248
+ -o-transform: translate3d(0,0,0);
2249
+ transform: translate3d(0,0,0);
2250
+ bottom: -1px !important;
2251
}
2252
+ .premium-person-info-container {
2253
+ padding: 30px 15px;
2254
}
2255
+ .premium-person-name {
2256
+ margin: 0 0 5px;
2257
+ font-weight: 700;
2258
}
2259
+ .premium-person-title {
2260
+ margin: 0 0 20px;
2261
+ padding: 0;
2262
}
2263
+ .premium-person-content {
2264
+ margin: 0 0 30px;
2265
}
2266
/*Override Theme List Margin*/
2267
+ ul.premium-person-social-list {
2268
+ margin: 0px !important;
2269
+ padding: 0;
2270
+ }
2271
+ .premium-person-social-list .premium-person-list-item {
2272
+ display: inline;
2273
+ list-style: none;
2274
+ }
2275
+ .premium-person-social-list li, .premium-person-social-list li i {
2276
+ position: relative;
2277
+ bottom: 0px;
2278
+ -webkit-transition: all 0.2s ease-in-out;
2279
+ -moz-transition: all 0.2s ease-in-out;
2280
+ -ms-transition: all 0.2s ease-in-out;
2281
+ -o-transition: all 0.2s ease-in-out;
2282
+ transition: all 0.2s ease-in-out;
2283
+ }
2284
+ .premium-person-style1 .premium-person-social-list li:hover {
2285
+ bottom: 5px;
2286
}
2287
.premium-person-defaults-yes li.premium-person-facebook:hover a {
2288
+ background-color: #3b5998 !important;
2289
}
2290
.premium-person-defaults-yes li.premium-person-twitter:hover a {
2291
+ background-color: #55acee !important;
2292
}
2293
.premium-person-defaults-yes li.premium-person-linkedin:hover a {
2294
+ background-color: #0077b5 !important;
2295
}
2296
.premium-person-defaults-yes li.premium-person-google:hover a {
2297
+ background-color: #dc4e41 !important;
2298
}
2299
.premium-person-defaults-yes li.premium-person-youtube:hover a {
2300
+ background-color: #b31217 !important;
2301
}
2302
.premium-person-defaults-yes li.premium-person-instagram:hover a {
2303
+ background-color: #E4405F !important;
2304
}
2305
.premium-person-defaults-yes li.premium-person-skype:hover a {
2306
+ background-color: #00AFF0 !important;
2307
}
2308
.premium-person-defaults-yes li.premium-person-pinterest:hover a {
2309
+ background-color: #bd081c !important;
2310
}
2311
.premium-person-defaults-yes li.premium-person-dribbble:hover a {
2312
+ background-color: #ea4c89 !important;
2313
}
2314
.premium-person-defaults-yes li.premium-person-mail:hover a {
2315
+ background-color: #b23121 !important;
2316
}
2317
.premium-person-defaults-yes li.premium-person-behance:hover a {
2318
+ background-color: #1769ff !important;
2319
}
2320
+ .premium-person-social-list li:hover a {
2321
+ box-shadow: none;
2322
}
2323
+ .premium-person-social-list li a:focus {
2324
+ box-shadow: none;
2325
+ outline: none;
2326
}
2327
+ .premium-person-social-list li i {
2328
+ font-size: 18px;
2329
+ }
2330
+ .elementor-widget-premium-addon-person .elementor-widget-container {
2331
+ display: -ms-flexbox;
2332
+ display: -webkit-flex;
2333
+ display: -moz-flex;
2334
+ display: -ms-flex;
2335
+ display: flex;
2336
+ justify-content: center;
2337
}
2338
+ /*
2339
+ * Multiple Persons
2340
+ */
2341
+ .premium-persons-container.multiple-persons {
2342
display: -ms-flexbox;
2343
+ display: -webkit-flex;
2344
+ display: -moz-flex;
2345
+ display: -ms-flex;
2346
+ display: flex;
2347
+ -webkit-flex-wrap: wrap;
2348
+ flex-wrap: wrap;
2349
+ width: 100%;
2350
+ }
2351
+ .premium-person-widget-style1 .multiple-persons:not([data-persons-equal="yes"]) {
2352
+ -webkit-align-items: flex-start;
2353
+ -ms-flex-align: flex-start;
2354
+ align-items: flex-start;
2355
+ }
2356
+ .premium-person-widget-style1 .multiple-persons[data-persons-equal="yes"] .premium-person-image-container,
2357
+ .premium-person-widget-style1 .multiple-persons[data-persons-equal="yes"] .premium-person-image-wrap {
2358
+ height: 100%;
2359
}
2360
/**************** Premium Dual Header ******************/
2361
/*******************************************************/
assets/frontend/js/premium-addons.js CHANGED
@@ -950,6 +950,42 @@
950
});
951
};
952
953
//Elementor JS Hooks
954
$(window).on("elementor/frontend/init", function() {
955
elementorFrontend.hooks.addAction(
@@ -997,6 +1033,11 @@
997
PremiumContactFormHandler
998
);
999
1000
if (elementorFrontend.isEditMode()) {
1001
elementorFrontend.hooks.addAction(
1002
"frontend/element_ready/premium-addon-progressbar.default",
950
});
951
};
952
953
+ var PremiumPersonsHandler = function($scope, $) {
954
+
955
+ if( ! $scope.hasClass("premium-person-widget-style2") )
956
+ return;
957
+
958
+ var $persons = $scope.find(".multiple-persons");
959
+
960
+ if( ! $persons.length )
961
+ return;
962
+
963
+ if( "yes" !== $persons.data("persons-equal") )
964
+ return;
965
+
966
+ var heights = new Array();
967
+
968
+ $persons.find( ".premium-person-style2" ).each(function( index, person ) {
969
+ $( person ).imagesLoaded( function(){} ).done( function(){
970
+ var imageHeight = $( person ).find( ".premium-person-image-container" ).outerHeight();
971
+ heights.push( imageHeight );
972
+ });
973
+ });
974
+
975
+ $persons.imagesLoaded(function(){}).done(function(){
976
+
977
+ var maxHeight = Math.max.apply( null, heights );
978
+
979
+ $persons.find( ".premium-person-image-wrap" ).css( "height", maxHeight + "px" );
980
+
981
+ });
982
+
983
+
984
+
985
+
986
+ };
987
+
988
+
989
//Elementor JS Hooks
990
$(window).on("elementor/frontend/init", function() {
991
elementorFrontend.hooks.addAction(
1033
PremiumContactFormHandler
1034
);
1035
1036
+ elementorFrontend.hooks.addAction(
1037
+ "frontend/element_ready/premium-addon-person.default",
1038
+ PremiumPersonsHandler
1039
+ );
1040
+
1041
if (elementorFrontend.isEditMode()) {
1042
elementorFrontend.hooks.addAction(
1043
"frontend/element_ready/premium-addon-progressbar.default",
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: Premium Addons for Elementor
4
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
Plugin URI: https://premiumaddons.com
6
- Version: 3.10.3
7
Author: Leap13
8
Author URI: https://leap13.com/
9
Text Domain: premium-addons-for-elementor
@@ -14,12 +14,12 @@ License: GNU General Public License v3.0
14
if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
16
// Define Constants
17
- define('PREMIUM_ADDONS_VERSION', '3.10.3');
18
define('PREMIUM_ADDONS_URL', plugins_url( '/', __FILE__ ) );
19
define('PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
20
define('PREMIUM_ADDONS_FILE', __FILE__);
21
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
- define('PREMIUM_ADDONS_STABLE_VERSION', '3.10.2');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
3
Plugin Name: Premium Addons for Elementor
4
Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
Plugin URI: https://premiumaddons.com
6
+ Version: 3.10.4
7
Author: Leap13
8
Author URI: https://leap13.com/
9
Text Domain: premium-addons-for-elementor
14
if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
16
// Define Constants
17
+ define('PREMIUM_ADDONS_VERSION', '3.10.4');
18
define('PREMIUM_ADDONS_URL', plugins_url( '/', __FILE__ ) );
19
define('PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
20
define('PREMIUM_ADDONS_FILE', __FILE__);
21
define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
+ define('PREMIUM_ADDONS_STABLE_VERSION', '3.10.3');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate Link: https://premiumaddons.com/?utm_source=wp-repo&utm_medium=link&utm_c
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
- Stable Tag: 3.10.3
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -175,6 +175,10 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
175
176
== Changelog ==
177
178
= 3.10.3 =
179
180
- Tweak: Two effects added in Fancy Text widget.
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
+ Stable Tag: 3.10.4
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
175
176
== Changelog ==
177
178
+ = 3.10.4 =
179
+
180
+ - Tweak: Added `Multiple Persons` options in Persons widget.
181
+
182
= 3.10.3 =
183
184
- Tweak: Two effects added in Fancy Text widget.
widgets/premium-person.php CHANGED
@@ -8,6 +8,7 @@ use Elementor\Utils;
8
use Elementor\Control_Media;
9
use Elementor\Controls_Manager;
10
use Elementor\Scheme_Color;
11
use Elementor\Scheme_Typography;
12
use Elementor\Group_Control_Image_Size;
13
use Elementor\Group_Control_Typography;
@@ -25,7 +26,7 @@ class Premium_Person extends Widget_Base {
25
}
26
27
public function get_title() {
28
- return sprintf( '%1$s %2$s', Helper_Functions::get_prefix(), __('Person', 'premium-addons-for-elementor') );
29
}
30
31
public function get_icon() {
@@ -37,15 +38,18 @@ class Premium_Person extends Widget_Base {
37
'premium-addons'
38
];
39
}
40
41
public function get_categories() {
42
return [ 'premium-elements' ];
43
}
44
45
- public function get_keywords() {
46
- return [ 'team', 'member' ];
47
- }
48
-
49
public function get_custom_help_url() {
50
return 'https://premiumaddons.com/support/';
51
}
@@ -53,11 +57,18 @@ class Premium_Person extends Widget_Base {
53
// Adding the controls fields for the premium person
54
// This will controls the animation, colors and background, dimensions etc
55
protected function _register_controls() {
56
-
57
- /*Start Premium Person Section*/
58
$this->start_controls_section('premium_person_general_settings',
59
[
60
- 'label' => __('Image', 'premium-addons-for-elementor')
61
]
62
);
63
@@ -71,27 +82,17 @@ class Premium_Person extends Widget_Base {
71
'style2' => __('Style 2', 'premium-addons-for-elementor')
72
],
73
'label_block' => true,
74
- ]
75
- );
76
-
77
- $this->add_control('premium_person_image',
78
- [
79
- 'label' => __('Image', 'premium-addons-for-elementor'),
80
- 'type' => Controls_Manager::MEDIA,
81
- 'dynamic' => [ 'active' => true ],
82
- 'default' => [
83
- 'url' => Utils::get_placeholder_image_src()
84
- ],
85
- 'label_block' => true
86
]
87
);
88
89
$this->add_group_control(
90
Group_Control_Image_Size::get_type(),
91
[
92
- 'name' => 'thumbnail',
93
- 'default' => 'full',
94
- 'separator' => 'none',
95
]
96
);
97
@@ -117,7 +118,7 @@ class Premium_Person extends Widget_Base {
117
],
118
'label_block' => true,
119
'selectors' => [
120
- '{{WRAPPER}} .premium-person-container' => 'width: {{SIZE}}{{UNIT}};',
121
]
122
]
123
);
@@ -167,27 +168,34 @@ class Premium_Person extends Widget_Base {
167
]
168
);
169
170
- $this->end_controls_section();
171
-
172
- $this->start_controls_section('premium_person_person_details_section',
173
- [
174
- 'label' => __('Person', 'premium-addons-for-elementor'),
175
- ]
176
- );
177
-
178
- $this->add_control('premium_person_name',
179
[
180
- 'label' => __('Name', 'premium-addons-for-elementor'),
181
- 'type' => Controls_Manager::TEXT,
182
- 'dynamic' => [ 'active' => true ],
183
- 'default' => 'John Frank',
184
- 'label_block' => true,
185
]
186
);
187
188
$this->add_control('premium_person_name_heading',
189
[
190
- 'label' => __('HTML Tag', 'premium-addons-for-elementor'),
191
'type' => Controls_Manager::SELECT,
192
'default' => 'h2',
193
'options' => [
@@ -201,20 +209,10 @@ class Premium_Person extends Widget_Base {
201
'label_block' => true,
202
]
203
);
204
-
205
- $this->add_control('premium_person_title',
206
- [
207
- 'label' => __('Job Title', 'premium-addons-for-elementor'),
208
- 'type' => Controls_Manager::TEXT,
209
- 'dynamic' => [ 'active' => true ],
210
- 'default' => __('Senior Developer', 'premium-addons-for-elementor'),
211
- 'label_block' => true,
212
- ]
213
- );
214
-
215
$this->add_control('premium_person_title_heading',
216
[
217
- 'label' => __('HTML Tag', 'premium-addons-for-elementor'),
218
'type' => Controls_Manager::SELECT,
219
'default' => 'h4',
220
'options' => [
@@ -229,45 +227,111 @@ class Premium_Person extends Widget_Base {
229
]
230
);
231
232
- $this->add_control('premium_person_content',
233
[
234
- 'label' => __('Description', 'premium-addons-for-elementor'),
235
- 'type' => Controls_Manager::WYSIWYG,
236
- 'dynamic' => [ 'active' => true ],
237
- 'default' => __('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ullamcorper nulla non metus auctor fringilla','premium-addons-for-elementor'),
238
]
239
);
240
241
- $this->add_responsive_control('premium_person_text_align',
242
[
243
- 'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
244
- 'type' => Controls_Manager::CHOOSE,
245
- 'options' => [
246
- 'left' => [
247
- 'title'=> __( 'Left', 'premium-addons-for-elementor' ),
248
- 'icon' => 'fa fa-align-left',
249
- ],
250
- 'center' => [
251
- 'title'=> __( 'Center', 'premium-addons-for-elementor' ),
252
- 'icon' => 'fa fa-align-center',
253
- ],
254
- 'right' => [
255
- 'title'=> __( 'Right', 'premium-addons-for-elementor' ),
256
- 'icon' => 'fa fa-align-right',
257
- ],
258
],
259
- 'default' => 'center',
260
'selectors' => [
261
- '{{WRAPPER}} .premium-person-info' => 'text-align: {{VALUE}};',
262
]
263
]
264
);
265
266
$this->end_controls_section();
267
268
- $this->start_controls_section('premium_person_social_section',
269
[
270
- 'label' => __('Social Icons', 'premium-addons-for-elementor'),
271
]
272
);
273
@@ -276,6 +340,7 @@ class Premium_Person extends Widget_Base {
276
'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ),
277
'type' => Controls_Manager::SWITCHER,
278
'default' => 'yes',
279
]
280
);
281
@@ -292,7 +357,6 @@ class Premium_Person extends Widget_Base {
292
]
293
);
294
295
- /*Person Twitter*/
296
$this->add_control('premium_person_twitter',
297
[
298
'label' => __('Twitter', 'premium-addons-for-elementor'),
@@ -306,7 +370,6 @@ class Premium_Person extends Widget_Base {
306
]
307
);
308
309
- /*Person Linkedin*/
310
$this->add_control('premium_person_linkedin',
311
[
312
'label' => __('LinkedIn', 'premium-addons-for-elementor'),
@@ -320,7 +383,6 @@ class Premium_Person extends Widget_Base {
320
]
321
);
322
323
- /*Person Google*/
324
$this->add_control('premium_person_google',
325
[
326
'label' => __('Google+', 'premium-addons-for-elementor'),
@@ -334,7 +396,6 @@ class Premium_Person extends Widget_Base {
334
]
335
);
336
337
- /*Person Youtube*/
338
$this->add_control('premium_person_youtube',
339
[
340
'label' => __('Youtube', 'premium-addons-for-elementor'),
@@ -347,7 +408,6 @@ class Premium_Person extends Widget_Base {
347
]
348
);
349
350
- /*Person Instagram*/
351
$this->add_control('premium_person_instagram',
352
[
353
'label' => __('Instagram', 'premium-addons-for-elementor'),
@@ -360,7 +420,6 @@ class Premium_Person extends Widget_Base {
360
]
361
);
362
363
- /*Person Skype*/
364
$this->add_control('premium_person_skype',
365
[
366
'label' => __('Skype', 'premium-addons-for-elementor'),
@@ -373,7 +432,6 @@ class Premium_Person extends Widget_Base {
373
]
374
);
375
376
- /*Person Pinterest*/
377
$this->add_control('premium_person_pinterest',
378
[
379
'label' => __('Pinterest', 'premium-addons-for-elementor'),
@@ -387,7 +445,6 @@ class Premium_Person extends Widget_Base {
387
]
388
);
389
390
- /*Person Dribble*/
391
$this->add_control('premium_person_dribbble',
392
[
393
'label' => __('Dribbble', 'premium-addons-for-elementor'),
@@ -401,7 +458,6 @@ class Premium_Person extends Widget_Base {
401
]
402
);
403
404
- /*Person Dribble*/
405
$this->add_control('premium_person_behance',
406
[
407
'label' => __('Behance', 'premium-addons-for-elementor'),
@@ -415,7 +471,6 @@ class Premium_Person extends Widget_Base {
415
]
416
);
417
418
- /*Person Google*/
419
$this->add_control('premium_person_mail',
420
[
421
'label' => __('Email Address', 'premium-addons-for-elementor'),
@@ -429,7 +484,231 @@ class Premium_Person extends Widget_Base {
429
]
430
);
431
432
- /*End Social Links Section*/
433
$this->end_controls_section();
434
435
/*Start Image Style Section*/
@@ -746,25 +1025,23 @@ class Premium_Person extends Widget_Base {
746
747
/*Start Content Style Section*/
748
$this->start_controls_section('premium_person_general_style',
749
- [
750
- 'label' => __('Content', 'premium-addons-for-elementor'),
751
- 'tab' => Controls_Manager::TAB_STYLE,
752
- ]
753
- );
754
755
- /*Content Background Color*/
756
$this->add_control('premium_person_content_background_color',
757
- [
758
- 'label' => __('Color', 'premium-addons-for-elementor'),
759
- 'type' => Controls_Manager::COLOR,
760
- 'default' => 'rgba(245,245,245,0.97)',
761
- 'selectors' => [
762
- '{{WRAPPER}} .premium-person-info' => 'background-color: {{VALUE}};',
763
- ]
764
- ]
765
- );
766
767
- /*Border Bottom Width*/
768
$this->add_responsive_control('premium_person_border_bottom_width',
769
[
770
'label' => __('Bottom Offset', 'premium-addons-for-elementor'),
@@ -781,6 +1058,9 @@ class Premium_Person extends Widget_Base {
781
'unit' => 'px'
782
],
783
'label_block' => true,
784
'selectors' => [
785
'{{WRAPPER}} .premium-person-info' => 'bottom: {{SIZE}}{{UNIT}}',
786
]
@@ -815,7 +1095,6 @@ class Premium_Person extends Widget_Base {
815
]
816
);
817
818
- /*End Content Style Section*/
819
$this->end_controls_section();
820
821
}
@@ -853,42 +1132,117 @@ class Premium_Person extends Widget_Base {
853
$image_html = Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'premium_person_image' );
854
}
855
856
- $this->add_render_attribute( 'container', 'class', [
857
'premium-person-container',
858
'premium-person-' . $image_effect . '-effect',
859
'premium-person-' . $settings['premium_person_style']
860
]);
861
862
?>
863
-
864
- <div <?php echo $this->get_render_attribute_string( 'container' ) ?>>
865
- <div class="premium-person-image-container">
866
- <div class="premium-person-image-wrap">
867
- <?php echo $image_html; ?>
868
- </div>
869
- <?php if( 'style2' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) : ?>
870
- <div class="premium-person-social">
871
- <?php $this->get_social_icons(); ?>
872
</div>
873
- <?php endif; ?>
874
- </div>
875
- <div class="premium-person-info">
876
- <div class="premium-person-info-container">
877
- <?php if( ! empty( $settings['premium_person_name'] ) ) : ?><<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string('premium_person_name'); ?>><?php echo $settings['premium_person_name']; ?></span></<?php echo $name_heading; ?>><?php endif; ?>
878
- <?php if( ! empty( $settings['premium_person_title'] ) ) : ?><<?php echo $title_heading; ?> class="premium-person-title"><span <?php echo $this->get_render_attribute_string('premium_person_title'); ?>><?php echo $settings['premium_person_title']; ?></span></<?php echo $title_heading; ?>><?php endif; ?>
879
- <?php if( ! empty( $settings['premium_person_content'] ) ) : ?>
880
- <div class="premium-person-content">
881
- <div <?php echo $this->get_render_attribute_string('premium_person_content'); ?>>
882
- <?php echo $settings['premium_person_content']; ?>
883
</div>
884
</div>
885
- <?php endif;
886
- if( 'style1' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) :
887
- $this->get_social_icons();
888
- endif; ?>
889
- </div>
890
</div>
891
- </div>
892
<?php
893
}
894
@@ -901,54 +1255,86 @@ class Premium_Person extends Widget_Base {
901
* @access protected
902
*
903
*/
904
- private function get_social_icons() {
905
906
$settings = $this->get_settings_for_display();
907
908
?>
909
910
<ul class="premium-person-social-list">
911
- <?php if( ! empty( $settings['premium_person_facebook'] ) ) : ?>
912
- <li class="elementor-icon premium-person-list-item premium-person-facebook"><a href="<?php echo $settings['premium_person_facebook']; ?>" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
913
<?php endif;
914
915
- if( ! empty( $settings['premium_person_twitter'] ) ) : ?>
916
- <li class="elementor-icon premium-person-list-item premium-person-twitter"><a href="<?php echo $settings['premium_person_twitter']; ?>" target="_blank"><i class="fab fa-twitter"></i></a></li>
917
<?php endif;
918
919
- if( ! empty( $settings['premium_person_linkedin'] ) ) : ?>
920
- <li class="elementor-icon premium-person-list-item premium-person-linkedin"><a href="<?php echo $settings['premium_person_linkedin']; ?>" target="_blank"><i class="fab fa-linkedin"></i></a></li>
921
<?php endif;
922
- if( ! empty( $settings['premium_person_google'] ) ) : ?>
923
- <li class="elementor-icon premium-person-list-item premium-person-google"><a href="<?php echo $settings['premium_person_google']; ?>" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
924
<?php endif;
925
926
- if( ! empty( $settings['premium_person_youtube'] ) ) : ?>
927
- <li class="elementor-icon premium-person-list-item premium-person-youtube"><a href="<?php echo $settings['premium_person_youtube']; ?>" target="_blank"><i class="fab fa-youtube"></i></a></li>
928
<?php endif;
929
930
- if( ! empty( $settings['premium_person_instagram'] ) ) : ?>
931
- <li class="elementor-icon premium-person-list-item premium-person-instagram"><a href="<?php echo $settings['premium_person_instagram']; ?>" target="_blank"><i class="fab fa-instagram"></i></a></li>
932
<?php endif;
933
934
- if( ! empty( $settings['premium_person_skype'] ) ) : ?>
935
- <li class="elementor-icon premium-person-list-item premium-person-skype"><a href="<?php echo $settings['premium_person_skype']; ?>" target="_blank"><i class="fab fa-skype"></i></a></li>
936
<?php endif;
937
938
- if( ! empty( $settings['premium_person_pinterest'] ) ) : ?>
939
- <li class="elementor-icon premium-person-list-item premium-person-pinterest"><a href="<?php echo $settings['premium_person_pinterest']; ?>" target="_blank"><i class="fab fa-pinterest"></i></a></li>
940
<?php endif;
941
942
- if( ! empty( $settings['premium_person_dribbble'] ) ) : ?>
943
- <li class="elementor-icon premium-person-list-item premium-person-dribbble"><a href="<?php echo $settings['premium_person_dribbble']; ?>" target="_blank"><i class="fab fa-dribbble"></i></a></li>
944
<?php endif;
945
946
- if( ! empty( $settings['premium_person_behance'] ) ) : ?>
947
- <li class="elementor-icon premium-person-list-item premium-person-behance"><a href="<?php echo $settings['premium_person_behance']; ?>" target="_blank"><i class="fab fa-behance"></i></a></li>
948
<?php endif;
949
950
- if( ! empty( $settings['premium_person_mail'] ) ) : ?>
951
- <li class="premium-person-list-item premium-person-mail"><a class="elementor-icon" href="<?php echo $settings['premium_person_mail']; ?>" target="_blank"><i class="far fa-envelope"></i></a></li>
952
<?php endif; ?>
953
</ul>
954
<?php
@@ -972,7 +1358,9 @@ class Premium_Person extends Widget_Base {
972
973
skin = 'premium-person-' + settings.premium_person_style;
974
975
- view.addRenderAttribute('container', 'class', [ 'premium-person-container', imageEffect, skin ] );
976
977
var imageHtml = '';
978
if ( settings.premium_person_image.url ) {
@@ -990,94 +1378,208 @@ class Premium_Person extends Widget_Base {
990
991
}
992
993
- function getSocialIcons() {
994
#>
995
<ul class="premium-person-social-list">
996
- <# if( '' != settings.premium_person_facebook ) { #>
997
- <li class="elementor-icon premium-person-list-item premium-person-facebook"><a href="{{ settings.premium_person_facebook }}" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
998
<# } #>
999
1000
- <# if( '' != settings.premium_person_twitter ) { #>
1001
- <li class="elementor-icon premium-person-list-item premium-person-twitter"><a href="{{ settings.premium_person_twitter }}" target="_blank"><i class="fab fa-twitter"></i></a></li>
1002
<# } #>
1003
1004
- <# if( '' != settings.premium_person_linkedin ) { #>
1005
- <li class="elementor-icon premium-person-list-item premium-person-linkedin"><a href="{{ settings.premium_person_linkedin }}" target="_blank"><i class="fab fa-linkedin"></i></a></li>
1006
<# } #>
1007
1008
- <# if( '' != settings.premium_person_google ) { #>
1009
- <li class="elementor-icon premium-person-list-item premium-person-google"><a href="{{ settings.premium_person_google }}" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
1010
<# } #>
1011
1012
- <# if( '' != settings.premium_person_youtube ) { #>
1013
- <li class="elementor-icon premium-person-list-item premium-person-youtube"><a href="{{ settings.premium_person_youtube }}" target="_blank"><i class="fab fa-youtube"></i></a></li>
1014
<# } #>
1015
1016
- <# if( '' != settings.premium_person_instagram ) { #>
1017
- <li class="elementor-icon premium-person-list-item premium-person-instagram"><a href="{{ settings.premium_person_instagram }}" target="_blank"><i class="fab fa-instagram"></i></a></li>
1018
<# } #>
1019
1020
- <# if( '' != settings.premium_person_skype) { #>
1021
- <li class="elementor-icon premium-person-list-item premium-person-skype"><a href="{{ settings.premium_person_skype }}" target="_blank"><i class="fab fa-skype"></i></a></li>
1022
<# } #>
1023
1024
- <# if( '' != settings.premium_person_pinterest ) { #>
1025
- <li class="elementor-icon premium-person-list-item premium-person-pinterest"><a href="{{ settings.premium_person_pinterest }}" target="_blank"><i class="fab fa-pinterest"></i></a></li>
1026
<# } #>
1027
1028
- <# if( '' != settings.premium_person_dribbble ) { #>
1029
- <li class="elementor-icon premium-person-list-item premium-person-dribbble"><a href="{{ settings.premium_person_dribbble }}" target="_blank"><i class="fab fa-dribbble"></i></a></li>
1030
<# } #>
1031
1032
- <# if( '' != settings.premium_person_behance ) { #>
1033
- <li class="elementor-icon premium-person-list-item premium-person-behance"><a href="{{ settings.premium_person_behance }}" target="_blank"><i class="fab fa-behance"></i></a></li>
1034
<# } #>
1035
1036
- <# if( '' != settings.premium_person_mail ) { #>
1037
- <li class="elementor-icon premium-person-list-item premium-person-mail"><a href="{{ settings.premium_person_mail }}" target="_blank"><i class="far fa-envelope"></i></a></li>
1038
<# } #>
1039
1040
</ul>
1041
<# }
1042
#>
1043
1044
- <div {{{ view.getRenderAttributeString('container') }}} >
1045
- <div class="premium-person-image-container">
1046
- <div class="premium-person-image-wrap">
1047
- {{{imageHtml}}}
1048
</div>
1049
- <# if ( 'style2' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) { #>
1050
- <div class="premium-person-social">
1051
- <# getSocialIcons(); #>
1052
</div>
1053
- <# } #>
1054
</div>
1055
- <div class="premium-person-info">
1056
- <div class="premium-person-info-container">
1057
- <# if( '' != settings.premium_person_name ) { #>
1058
- <{{{nameHeading}}} class="premium-person-name">
1059
- <span {{{ view.getRenderAttributeString('premium_person_name') }}}>
1060
- {{{ settings.premium_person_name }}}
1061
- </span></{{{nameHeading}}}>
1062
- <# }
1063
- if( '' != settings.premium_person_title ) { #>
1064
- <{{{titleHeading}}} class="premium-person-title">
1065
- <span {{{ view.getRenderAttributeString('premium_person_title') }}}>
1066
- {{{ settings.premium_person_title }}}
1067
- </span></{{{titleHeading}}}>
1068
- <# }
1069
- if( '' != settings.premium_person_content ) { #>
1070
- <div class="premium-person-content">
1071
- <div {{{ view.getRenderAttributeString('premium_person_content') }}}>
1072
- {{{ settings.premium_person_content }}}
1073
</div>
1074
</div>
1075
- <# }
1076
- if ( 'style1' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) {
1077
- getSocialIcons();
1078
- } #>
1079
- </div>
1080
- </div>
1081
</div>
1082
<?php
1083
}
8
use Elementor\Control_Media;
9
use Elementor\Controls_Manager;
10
use Elementor\Scheme_Color;
11
+ use Elementor\Repeater;
12
use Elementor\Scheme_Typography;
13
use Elementor\Group_Control_Image_Size;
14
use Elementor\Group_Control_Typography;
26
}
27
28
public function get_title() {
29
+ return sprintf( '%1$s %2$s', Helper_Functions::get_prefix(), __('Persons', 'premium-addons-for-elementor') );
30
}
31
32
public function get_icon() {
38
'premium-addons'
39
];
40
}
41
+
42
+ public function get_script_depends() {
43
+ return [
44
+ 'imagesloaded',
45
+ 'premium-addons-js'
46
+ ];
47
+ }
48
49
public function get_categories() {
50
return [ 'premium-elements' ];
51
}
52
53
public function get_custom_help_url() {
54
return 'https://premiumaddons.com/support/';
55
}
57
// Adding the controls fields for the premium person
58
// This will controls the animation, colors and background, dimensions etc
59
protected function _register_controls() {
60
+
61
$this->start_controls_section('premium_person_general_settings',
62
[
63
+ 'label' => __('General Settings', 'premium-addons-for-elementor')
64
+ ]
65
+ );
66
+
67
+ $this->add_control('multiple',
68
+ [
69
+ 'label' => __( 'Multiple Persons', 'premium-addons-for-elementor' ),
70
+ 'description' => __('Enable this option if you need to add multiple persons', 'premium-addons-for-elementor'),
71
+ 'type' => Controls_Manager::SWITCHER,
72
]
73
);
74
82
'style2' => __('Style 2', 'premium-addons-for-elementor')
83
],
84
'label_block' => true,
85
+ 'render_type' => 'template',
86
+ 'prefix_class' => 'premium-person-widget-'
87
]
88
);
89
90
$this->add_group_control(
91
Group_Control_Image_Size::get_type(),
92
[
93
+ 'name' => 'thumbnail',
94
+ 'default' => 'full',
95
+ 'separator' => 'none',
96
]
97
);
98
118
],
119
'label_block' => true,
120
'selectors' => [
121
+ '{{WRAPPER}} .premium-persons-container' => 'width: {{SIZE}}{{UNIT}};',
122
]
123
]
124
);
168
]
169
);
170
171
+ $this->add_responsive_control('premium_person_text_align',
172
[
173
+ 'label' => __( 'Content Alignment', 'premium-addons-for-elementor' ),
174
+ 'type' => Controls_Manager::CHOOSE,
175
+ 'options' => [
176
+ 'left' => [
177
+ 'title'=> __( 'Left', 'premium-addons-for-elementor' ),
178
+ 'icon' => 'fa fa-align-left',
179
+ ],
180
+ 'center' => [
181
+ 'title'=> __( 'Center', 'premium-addons-for-elementor' ),
182
+ 'icon' => 'fa fa-align-center',
183
+ ],
184
+ 'right' => [
185
+ 'title'=> __( 'Right', 'premium-addons-for-elementor' ),
186
+ 'icon' => 'fa fa-align-right',
187
+ ],
188
+ ],
189
+ 'default' => 'center',
190
+ 'selectors' => [
191
+ '{{WRAPPER}} .premium-person-info' => 'text-align: {{VALUE}};',
192
+ ],
193
]
194
);
195
196
$this->add_control('premium_person_name_heading',
197
[
198
+ 'label' => __('Name Tag', 'premium-addons-for-elementor'),
199
'type' => Controls_Manager::SELECT,
200
'default' => 'h2',
201
'options' => [
209
'label_block' => true,
210
]
211
);
212
+
213
$this->add_control('premium_person_title_heading',
214
[
215
+ 'label' => __('Title Tag', 'premium-addons-for-elementor'),
216
'type' => Controls_Manager::SELECT,
217
'default' => 'h4',
218
'options' => [
227
]
228
);
229
230
+ $this->add_responsive_control('persons_per_row',
231
[
232
+ 'label' => __('Persons/Row', 'premium-addons-pro'),
233
+ 'type' => Controls_Manager::SELECT,
234
+ 'options' => [
235
+ '100%' => __('1 Column', 'premium-addons-pro'),
236
+ '50%' => __('2 Columns', 'premium-addons-pro'),
237
+ '33.33%'=> __('3 Columns', 'premium-addons-pro'),
238
+ '25%' => __('4 Columns', 'premium-addons-pro'),
239
+ '20%' => __('5 Columns', 'premium-addons-pro'),
240
+ '16.667%'=> __('6 Columns', 'premium-addons-pro'),
241
+ ],
242
+ 'default' => '33.33%',
243
+ 'render_type' => 'template',
244
+ 'selectors' => [
245
+ '{{WRAPPER}} .premium-person-container' => 'width: {{VALUE}}'
246
+ ],
247
+ 'condition' => [
248
+ 'multiple' => 'yes'
249
+ ]
250
]
251
);
252
253
+ $this->add_responsive_control('spacing',
254
[
255
+ 'label' => __('Spacing', 'premium-addons-pro'),
256
+ 'type' => Controls_Manager::DIMENSIONS,
257
+ 'size_units' => ['px', '%', "em"],
258
+ 'default' => [
259
+ 'top' => 5,
260
+ 'right' => 5,
261
+ 'bottom'=> 5,
262
+ 'left' => 5
263
+ ],
264
+ 'condition' => [
265
+ 'multiple' => 'yes'
266
],
267
'selectors' => [
268
+ '{{WRAPPER}} .premium-person-container' => 'padding: 0 {{RIGHT}}{{UNIT}} 0 {{LEFT}}{{UNIT}}; margin: {{TOP}}{{UNIT}} 0 {{BOTTOM}}{{UNIT}} 0',
269
+ ' {{WRAPPER}} .premium-person-style1 .premium-person-info' => 'left: {{LEFT}}{{UNIT}}; right: {{RIGHT}}{{UNIT}}'
270
]
271
]
272
);
273
274
+ $this->add_control('multiple_equal_height',
275
+ [
276
+ 'label' => __( 'Equal Height', 'premium-addons-for-elementor' ),
277
+ 'type' => Controls_Manager::SWITCHER,
278
+ 'default' => 'yes',
279
+ 'condition' => [
280
+ 'multiple' => 'yes'
281
+ ],
282
+ ]
283
+ );
284
+
285
$this->end_controls_section();
286
287
+ $this->start_controls_section('premium_person_settings',
288
[
289
+ 'label' => __('Single Person Settings', 'premium-addons-for-elementor'),
290
+ 'condition' => [
291
+ 'multiple!' => 'yes'
292
+ ]
293
+ ]
294
+ );
295
+
296
+ $this->add_control('premium_person_image',
297
+ [
298
+ 'label' => __('Image', 'premium-addons-for-elementor'),
299
+ 'type' => Controls_Manager::MEDIA,
300
+ 'dynamic' => [ 'active' => true ],
301
+ 'default' => [
302
+ 'url' => Utils::get_placeholder_image_src()
303
+ ],
304
+ 'label_block' => true
305
+ ]
306
+ );
307
+
308
+ $this->add_control('premium_person_name',
309
+ [
310
+ 'label' => __('Name', 'premium-addons-for-elementor'),
311
+ 'type' => Controls_Manager::TEXT,
312
+ 'dynamic' => [ 'active' => true ],
313
+ 'default' => 'John Frank',
314
+ 'separator' => 'before',
315
+ 'label_block' => true,
316
+ ]
317
+ );
318
+
319
+ $this->add_control('premium_person_title',
320
+ [
321
+ 'label' => __('Title', 'premium-addons-for-elementor'),
322
+ 'type' => Controls_Manager::TEXT,
323
+ 'dynamic' => [ 'active' => true ],
324
+ 'default' => __('Senior Developer', 'premium-addons-for-elementor'),
325
+ 'label_block' => true,
326
+ ]
327
+ );
328
+
329
+ $this->add_control('premium_person_content',
330
+ [
331
+ 'label' => __('Description', 'premium-addons-for-elementor'),
332
+ 'type' => Controls_Manager::WYSIWYG,
333
+ 'dynamic' => [ 'active' => true ],
334
+ 'default' => __('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ullamcorper nulla non metus auctor fringilla','premium-addons-for-elementor'),
335
]
336
);
337
340
'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ),
341
'type' => Controls_Manager::SWITCHER,
342
'default' => 'yes',
343
+ 'separator' => 'before'
344
]
345
);
346
357
]
358
);
359
360
$this->add_control('premium_person_twitter',
361
[
362
'label' => __('Twitter', 'premium-addons-for-elementor'),
370
]
371
);
372
373
$this->add_control('premium_person_linkedin',
374
[
375
'label' => __('LinkedIn', 'premium-addons-for-elementor'),
383
]
384
);
385
386
$this->add_control('premium_person_google',
387
[
388
'label' => __('Google+', 'premium-addons-for-elementor'),
396
]
397
);
398
399
$this->add_control('premium_person_youtube',
400
[
401
'label' => __('Youtube', 'premium-addons-for-elementor'),
408
]
409
);
410
411
$this->add_control('premium_person_instagram',
412
[
413
'label' => __('Instagram', 'premium-addons-for-elementor'),
420
]
421
);
422
423
$this->add_control('premium_person_skype',
424
[
425
'label' => __('Skype', 'premium-addons-for-elementor'),
432
]
433
);
434
435
$this->add_control('premium_person_pinterest',
436
[
437
'label' => __('Pinterest', 'premium-addons-for-elementor'),
445
]
446
);
447
448
$this->add_control('premium_person_dribbble',
449
[
450
'label' => __('Dribbble', 'premium-addons-for-elementor'),
458
]
459
);
460
461
$this->add_control('premium_person_behance',
462
[
463
'label' => __('Behance', 'premium-addons-for-elementor'),
471
]
472
);
473
474
$this->add_control('premium_person_mail',
475
[
476
'label' => __('Email Address', 'premium-addons-for-elementor'),
484
]
485
);
486
487
+ $this->end_controls_section();
488
+
489
+
490
+ $this->start_controls_section('multiple_settings',
491
+ [
492
+ 'label' => __('Multiple Persons Settings', 'premium-addons-for-elementor'),
493
+ 'condition' => [
494
+ 'multiple' => 'yes'
495
+ ]
496
+ ]
497
+ );
498
+
499
+ $repeater = new REPEATER();
500
+
501
+ $repeater->add_control( 'multiple_image',
502
+ [
503
+ 'label' => __( 'Image', 'premium-addons-for-elementor' ),
504
+ 'type' => Controls_Manager::MEDIA,
505
+ 'dynamic' => [ 'active' => true ],
506
+ 'default' => [
507
+ 'url' => Utils::get_placeholder_image_src(),
508
+ ],
509
+ ]
510
+ );
511
+
512
+ $repeater->add_control('multiple_name',
513
+ [
514
+ 'label' => __('Name', 'premium-addons-for-elementor'),
515
+ 'type' => Controls_Manager::TEXT,
516
+ 'dynamic' => [ 'active' => true ],
517
+ 'default' => 'John Frank',
518
+ 'separator' => 'before',
519
+ 'label_block' => true,
520
+ ]
521
+ );
522
+
523
+ $repeater->add_control('multiple_title',
524
+ [
525
+ 'label' => __('Title', 'premium-addons-for-elementor'),
526
+ 'type' => Controls_Manager::TEXT,
527
+ 'dynamic' => [ 'active' => true ],
528
+ 'default' => __('Senior Developer', 'premium-addons-for-elementor'),
529
+ 'label_block' => true,
530
+ ]
531
+ );
532
+
533
+ $repeater->add_control('multiple_description',
534
+ [
535
+ 'label' => __('Description', 'premium-addons-for-elementor'),
536
+ 'type' => Controls_Manager::WYSIWYG,
537
+ 'dynamic' => [ 'active' => true ],
538
+ 'default' => __('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ullamcorper nulla non metus auctor fringilla','premium-addons-for-elementor'),
539
+ ]
540
+ );
541
+
542
+ $repeater->add_control('multiple_social_enable',
543
+ [
544
+ 'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ),
545
+ 'type' => Controls_Manager::SWITCHER,
546
+ 'default' => 'yes',
547
+ 'separator' => 'before'
548
+ ]
549
+ );
550
+
551
+ $repeater->add_control('multiple_facebook',
552
+ [
553
+ 'label' => __('Facebook', 'premium-addons-for-elementor'),
554
+ 'type' => Controls_Manager::TEXT,
555
+ 'dynamic' => [ 'active' => true ],
556
+ 'default' => '#',
557
+ 'label_block' => true,
558
+ 'condition' => [
559
+ 'multiple_social_enable' => 'yes'
560
+ ]
561
+ ]
562
+ );
563
+
564
+ $repeater->add_control('multiple_twitter',
565
+ [
566
+ 'label' => __('Twitter', 'premium-addons-for-elementor'),
567
+ 'type' => Controls_Manager::TEXT,
568
+ 'dynamic' => [ 'active' => true ],
569
+ 'default' => '#',
570
+ 'label_block' => true,
571
+ 'condition' => [
572
+ 'multiple_social_enable' => 'yes'
573
+ ]
574
+ ]
575
+ );
576
+
577
+ $repeater->add_control('multiple_linkedin',
578
+ [
579
+ 'label' => __('LinkedIn', 'premium-addons-for-elementor'),
580
+ 'type' => Controls_Manager::TEXT,
581
+ 'dynamic' => [ 'active' => true ],
582
+ 'default' => '#',
583
+ 'label_block' => true,
584
+ 'condition' => [
585
+ 'multiple_social_enable' => 'yes'
586
+ ]
587
+ ]
588
+ );
589
+
590
+ $repeater->add_control('multiple_google',
591
+ [
592
+ 'label' => __('Google+', 'premium-addons-for-elementor'),
593
+ 'type' => Controls_Manager::TEXT,
594
+ 'dynamic' => [ 'active' => true ],
595
+ 'default' => '#',
596
+ 'label_block' => true,
597
+ 'condition' => [
598
+ 'multiple_social_enable' => 'yes'
599
+ ]
600
+ ]
601
+ );
602
+
603
+ $repeater->add_control('multiple_youtube',
604
+ [
605
+ 'label' => __('Youtube', 'premium-addons-for-elementor'),
606
+ 'type' => Controls_Manager::TEXT,
607
+ 'dynamic' => [ 'active' => true ],
608
+ 'label_block' => true,
609
+ 'condition' => [
610
+ 'multiple_social_enable' => 'yes'
611
+ ]
612
+ ]
613
+ );
614
+
615
+ $repeater->add_control('multiple_instagram',
616
+ [
617
+ 'label' => __('Instagram', 'premium-addons-for-elementor'),
618
+ 'type' => Controls_Manager::TEXT,
619
+ 'dynamic' => [ 'active' => true ],
620
+ 'label_block' => true,
621
+ 'condition' => [
622
+ 'multiple_social_enable' => 'yes'
623
+ ]
624
+ ]
625
+ );
626
+
627
+ $repeater->add_control('multiple_skype',
628
+ [
629
+ 'label' => __('Skype', 'premium-addons-for-elementor'),
630
+ 'type' => Controls_Manager::TEXT,
631
+ 'dynamic' => [ 'active' => true ],
632
+ 'label_block' => true,
633
+ 'condition' => [
634
+ 'multiple_social_enable' => 'yes'
635
+ ]
636
+ ]
637
+ );
638
+
639
+ $repeater->add_control('multiple_pinterest',
640
+ [
641
+ 'label' => __('Pinterest', 'premium-addons-for-elementor'),
642
+ 'type' => Controls_Manager::TEXT,
643
+ 'dynamic' => [ 'active' => true ],
644
+ 'default' => '#',
645
+ 'label_block' => true,
646
+ 'condition' => [
647
+ 'multiple_social_enable' => 'yes'
648
+ ]
649
+ ]
650
+ );
651
+
652
+ $repeater->add_control('multiple_dribbble',
653
+ [
654
+ 'label' => __('Dribbble', 'premium-addons-for-elementor'),
655
+ 'type' => Controls_Manager::TEXT,
656
+ 'dynamic' => [ 'active' => true ],
657
+ 'default' => '#',
658
+ 'label_block' => true,
659
+ 'condition' => [
660
+ 'premium_person_social_enable' => 'yes'
661
+ ]
662
+ ]
663
+ );
664
+
665
+ $repeater->add_control('multiple_behance',
666
+ [
667
+ 'label' => __('Behance', 'premium-addons-for-elementor'),
668
+ 'type' => Controls_Manager::TEXT,
669
+ 'dynamic' => [ 'active' => true ],
670
+ 'default' => '#',
671
+ 'label_block' => true,
672
+ 'condition' => [
673
+ 'multiple_social_enable' => 'yes'
674
+ ]
675
+ ]
676
+ );
677
+
678
+ $repeater->add_control('multiple_mail',
679
+ [
680
+ 'label' => __('Email Address', 'premium-addons-for-elementor'),
681
+ 'type' => Controls_Manager::TEXT,
682
+ 'dynamic' => [ 'active' => true ],
683
+ 'default' => '#',
684
+ 'label_block' => true,
685
+ 'condition' => [
686
+ 'multiple_social_enable' => 'yes'
687
+ ]
688
+ ]
689
+ );
690
+
691
+ $this->add_control('multiple_persons',
692
+ [
693
+ 'label' => __( 'Persons', 'premium-addons-for-elementor' ),
694
+ 'type' => Controls_Manager::REPEATER,
695
+ 'default' => [
696
+ [
697
+ 'multiple_name' => 'John Frank'
698
+ ],
699
+ [
700
+ 'multiple_name' => 'John Frank'
701
+ ],
702
+ [
703
+ 'multiple_name' => 'John Frank'
704
+ ]
705
+ ],
706
+ 'fields' => array_values( $repeater->get_controls() ),
707
+ 'title_field' => '{{{multiple_name}}} - {{{multiple_title}}}',
708
+ 'prevent_empty' => false
709
+ ]
710
+ );
711
+
712
$this->end_controls_section();
713
714
/*Start Image Style Section*/
1025
1026
/*Start Content Style Section*/
1027
$this->start_controls_section('premium_person_general_style',
1028
+ [
1029
+ 'label' => __('Content', 'premium-addons-for-elementor'),
1030
+ 'tab' => Controls_Manager::TAB_STYLE,
1031
+ ]
1032
+ );
1033
1034
$this->add_control('premium_person_content_background_color',
1035
+ [
1036
+ 'label' => __('Color', 'premium-addons-for-elementor'),
1037
+ 'type' => Controls_Manager::COLOR,
1038
+ 'default' => 'rgba(245,245,245,0.97)',
1039
+ 'selectors' => [
1040
+ '{{WRAPPER}} .premium-person-info' => 'background-color: {{VALUE}};',
1041
+ ]
1042
+ ]
1043
+ );
1044
1045
$this->add_responsive_control('premium_person_border_bottom_width',
1046
[
1047
'label' => __('Bottom Offset', 'premium-addons-for-elementor'),
1058
'unit' => 'px'
1059
],
1060
'label_block' => true,
1061
+ 'condition' => [
1062
+ 'premium_person_style' => 'style1'
1063
+ ],
1064
'selectors' => [
1065
'{{WRAPPER}} .premium-person-info' => 'bottom: {{SIZE}}{{UNIT}}',
1066
]
1095
]
1096
);
1097
1098
$this->end_controls_section();
1099
1100
}
1132
$image_html = Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'premium_person_image' );
1133
}
1134
1135
+ $this->add_render_attribute( 'persons_container', 'class', 'premium-persons-container' );
1136
+
1137
+ $this->add_render_attribute( 'person_container', 'class', [
1138
'premium-person-container',
1139
'premium-person-' . $image_effect . '-effect',
1140
'premium-person-' . $settings['premium_person_style']
1141
]);
1142
+
1143
+ if( 'yes' === $settings['multiple'] ) {
1144
+ $persons = $settings['multiple_persons'];
1145
+ $this->add_render_attribute( 'persons_container', 'class', 'multiple-persons' );
1146
+ $this->add_render_attribute( 'persons_container', 'data-persons-equal', $settings['multiple_equal_height'] );
1147
+ }
1148
+
1149
1150
?>
1151
+ <div <?php echo $this->get_render_attribute_string( 'persons_container' ) ?>>
1152
+ <?php if( 'yes' !== $settings['multiple'] ) : ?>
1153
+ <div <?php echo $this->get_render_attribute_string( 'person_container' ) ?>>
1154
+ <div class="premium-person-image-container">
1155
+ <div class="premium-person-image-wrap">
1156
+ <?php echo $image_html; ?>
1157
+ </div>
1158
+ <?php if( 'style2' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) : ?>
1159
+ <div class="premium-person-social">
1160
+ <?php $this->get_social_icons(); ?>
1161
+ </div>
1162
+ <?php endif; ?>
1163
+ </div>
1164
+ <div class="premium-person-info">
1165
+ <div class="premium-person-info-container">
1166
+ <?php if( ! empty( $settings['premium_person_name'] ) ) : ?>
1167
+ <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string('premium_person_name'); ?>><?php echo $settings['premium_person_name']; ?></span></<?php echo $name_heading; ?>>
1168
+ <?php endif;
1169
+
1170
+ if( ! empty( $settings['premium_person_title'] ) ) : ?>
1171
+ <<?php echo $title_heading; ?> class="premium-person-title"><span <?php echo $this->get_render_attribute_string('premium_person_title'); ?>><?php echo $settings['premium_person_title']; ?></span></<?php echo $title_heading; ?>>
1172
+ <?php endif;
1173
+
1174
+ if( ! empty( $settings['premium_person_content'] ) ) : ?>
1175
+ <div class="premium-person-content">
1176
+ <div <?php echo $this->get_render_attribute_string('premium_person_content'); ?>>
1177
+ <?php echo $settings['premium_person_content']; ?>
1178
+ </div>
1179
+ </div>
1180
+ <?php endif;
1181
+
1182
+ if( 'style1' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) :
1183
+ $this->get_social_icons();
1184
+ endif; ?>
1185
+ </div>
1186
+ </div>
1187
</div>
1188
+ <?php else :
1189
+ foreach( $persons as $index => $person ) {
1190
+
1191
+ $name_setting_key = $this->get_repeater_setting_key( 'multiple_name', 'multiple_persons', $index );
1192
+ $title_setting_key = $this->get_repeater_setting_key( 'multiple_title', 'multiple_persons', $index );
1193
+ $desc_setting_key = $this->get_repeater_setting_key( 'multiple_description', 'multiple_persons', $index );
1194
+
1195
+ $this->add_inline_editing_attributes( $name_setting_key );
1196
+ $this->add_inline_editing_attributes( $title_setting_key );
1197
+ $this->add_inline_editing_attributes( $desc_setting_key, 'advanced' );
1198
+
1199
+ $person_image_html = '';
1200
+ if ( ! empty( $person['multiple_image']['url'] ) ) {
1201
+ $this->add_render_attribute( 'image', 'src', $person['multiple_image']['url'] );
1202
+ $this->add_render_attribute( 'image', 'alt', Control_Media::get_image_alt( $person['multiple_image'] ) );
1203
+ $this->add_render_attribute( 'image', 'title', Control_Media::get_image_title( $person['multiple_image'] ) );
1204
+
1205
+ $person_image_html = Group_Control_Image_Size::get_attachment_image_html( $person, 'thumbnail', 'multiple_image' );
1206
+ }
1207
+ ?>
1208
+ <div <?php echo $this->get_render_attribute_string( 'person_container' ) ?>>
1209
+ <div class="premium-person-image-container">
1210
+ <div class="premium-person-image-wrap">
1211
+ <?php echo $person_image_html; ?>
1212
+ </div>
1213
+ <?php if( 'style2' === $settings['premium_person_style'] && 'yes' === $person['multiple_social_enable'] ) : ?>
1214
+ <div class="premium-person-social">
1215
+ <?php $this->get_social_icons( $person ); ?>
1216
+ </div>
1217
+ <?php endif; ?>
1218
+ </div>
1219
+ <div class="premium-person-info">
1220
+ <div class="premium-person-info-container">
1221
+ <?php if( ! empty( $person['multiple_name'] ) ) : ?>
1222
+ <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string($name_setting_key); ?>><?php echo $person['multiple_name']; ?></span></<?php echo $name_heading; ?>>
1223
+ <?php endif;
1224
+
1225
+ if( ! empty( $person['multiple_title'] ) ) : ?>
1226
+ <<?php echo $title_heading; ?> class="premium-person-title"><span <?php echo $this->get_render_attribute_string($title_setting_key); ?>><?php echo $person['multiple_title']; ?></span></<?php echo $title_heading; ?>>
1227
+ <?php endif;
1228
+
1229
+ if( ! empty( $person['multiple_description'] ) ) : ?>
1230
+ <div class="premium-person-content">
1231
+ <div <?php echo $this->get_render_attribute_string($desc_setting_key); ?>>
1232
+ <?php echo $person['multiple_description']; ?>
1233
+ </div>
1234
+ </div>
1235
+ <?php endif;
1236
+
1237
+ if( 'style1' === $settings['premium_person_style'] && 'yes' === $person['multiple_social_enable'] ) :
1238
+ $this->get_social_icons( $person );
1239
+ endif; ?>
1240
+ </div>
1241
</div>
1242
</div>
1243
+ <?php }
1244
+ endif; ?>
1245
</div>
1246
<?php
1247
}
1248
1255
* @access protected
1256
*
1257
*/
1258
+ private function get_social_icons( $person = '' ) {
1259
1260
$settings = $this->get_settings_for_display();
1261
+
1262
+ if( '' === $person ) {
1263
+ $personSettings = $settings;
1264
+ $socialIcons = [
1265
+ 'facebook' => $settings['premium_person_facebook'],
1266
+ 'twitter' => $settings['premium_person_twitter'],
1267
+ 'linkedin' => $settings['premium_person_twitter'],
1268
+ 'google' => $settings['premium_person_google'],
1269
+ 'youtube' => $settings['premium_person_youtube'],
1270
+ 'instagram' => $settings['premium_person_instagram'],
1271
+ 'skype' => $settings['premium_person_skype'],
1272
+ 'pinterest' => $settings['premium_person_pinterest'],
1273
+ 'dribbble' => $settings['premium_person_dribbble'],
1274
+ 'behance' => $settings['premium_person_behance'],
1275
+ 'mail' => $settings['premium_person_mail']
1276
+ ];
1277
+ } else {
1278
+ $personSettings = $person;
1279
+ $socialIcons = [
1280
+ 'facebook' => $person['multiple_facebook'],
1281
+ 'twitter' => $person['multiple_twitter'],
1282
+ 'linkedin' => $person['multiple_linkedin'],
1283
+ 'google' => $person['multiple_google'],
1284
+ 'youtube' => $person['multiple_youtube'],
1285
+ 'instagram' => $person['multiple_instagram'],
1286
+ 'skype' => $person['multiple_skype'],
1287
+ 'pinterest' => $person['multiple_pinterest'],
1288
+ 'dribbble' => $person['multiple_dribbble'],
1289
+ 'behance' => $person['multiple_behance'],
1290
+ 'mail' => $person['multiple_mail']
1291
+ ];
1292
+ }
1293
1294
?>
1295
1296
<ul class="premium-person-social-list">
1297
+ <?php if( ! empty( $socialIcons['facebook'] ) ) : ?>
1298
+ <li class="elementor-icon premium-person-list-item premium-person-facebook"><a href="<?php echo $socialIcons['facebook']; ?>" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
1299
<?php endif;
1300
1301
+ if( ! empty( $socialIcons['twitter'] ) ) : ?>
1302
+ <li class="elementor-icon premium-person-list-item premium-person-twitter"><a href="<?php echo $socialIcons['twitter']; ?>" target="_blank"><i class="fab fa-twitter"></i></a></li>
1303
<?php endif;
1304
1305
+ if( ! empty( $socialIcons['linkedin'] ) ) : ?>
1306
+ <li class="elementor-icon premium-person-list-item premium-person-linkedin"><a href="<?php echo $socialIcons['linkedin']; ?>" target="_blank"><i class="fab fa-linkedin"></i></a></li>
1307
<?php endif;
1308
+ if( ! empty( $socialIcons['google'] ) ) : ?>
1309
+ <li class="elementor-icon premium-person-list-item premium-person-google"><a href="<?php echo $socialIcons['google'] ?>" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
1310
<?php endif;
1311
1312
+ if( ! empty( $socialIcons['youtube'] ) ) : ?>
1313
+ <li class="elementor-icon premium-person-list-item premium-person-youtube"><a href="<?php echo $socialIcons['youtube']; ?>" target="_blank"><i class="fab fa-youtube"></i></a></li>
1314
<?php endif;
1315
1316
+ if( ! empty( $socialIcons['instagram'] ) ) : ?>
1317
+ <li class="elementor-icon premium-person-list-item premium-person-instagram"><a href="<?php echo $socialIcons['instagram']; ?>" target="_blank"><i class="fab fa-instagram"></i></a></li>
1318
<?php endif;
1319
1320
+ if( ! empty( $socialIcons['skype'] ) ) : ?>
1321
+ <li class="elementor-icon premium-person-list-item premium-person-skype"><a href="<?php echo $socialIcons['skype'] ?>" target="_blank"><i class="fab fa-skype"></i></a></li>
1322
<?php endif;
1323
1324
+ if( ! empty( $socialIcons['pinterest'] ) ) : ?>
1325
+ <li class="elementor-icon premium-person-list-item premium-person-pinterest"><a href="<?php echo $socialIcons['pinterest']; ?>" target="_blank"><i class="fab fa-pinterest"></i></a></li>
1326
<?php endif;
1327
1328
+ if( ! empty( $socialIcons['dribbble'] ) ) : ?>
1329
+ <li class="elementor-icon premium-person-list-item premium-person-dribbble"><a href="<?php echo $socialIcons['dribbble']; ?>" target="_blank"><i class="fab fa-dribbble"></i></a></li>
1330
<?php endif;
1331
1332
+ if( ! empty( $socialIcons['behance'] ) ) : ?>
1333
+ <li class="elementor-icon premium-person-list-item premium-person-behance"><a href="<?php echo $socialIcons['behance']; ?>" target="_blank"><i class="fab fa-behance"></i></a></li>
1334
<?php endif;
1335
1336
+ if( ! empty( $socialIcons['mail'] ) ) : ?>
1337
+ <li class="elementor-icon premium-person-list-item premium-person-mail"><a class="elementor-icon" href="<?php echo $socialIcons['mail']; ?>" target="_blank"><i class="far fa-envelope"></i></a></li>
1338
<?php endif; ?>
1339
</ul>
1340
<?php
1358
1359
skin = 'premium-person-' + settings.premium_person_style;
1360
1361
+ view.addRenderAttribute( 'persons_container', 'class', 'premium-persons-container' );
1362
+
1363
+ view.addRenderAttribute('person_container', 'class', [ 'premium-person-container', imageEffect, skin ] );
1364
1365
var imageHtml = '';
1366
if ( settings.premium_person_image.url ) {
1378
1379
}
1380
1381
+ if ( settings.multiple ) {
1382
+ var persons = settings.multiple_persons;
1383
+ view.addRenderAttribute( 'persons_container', 'class', 'multiple-persons' );
1384
+ view.addRenderAttribute( 'persons_container', 'data-persons-equal', settings.multiple_equal_height );
1385
+ }
1386
+
1387
+
1388
+ function getSocialIcons( person = null ) {
1389
+
1390
+ var personSettings,
1391
+ socialIcons;
1392
+
1393
+ if( null === person ) {
1394
+ personSettings = settings;
1395
+ socialIcons = {
1396
+ facebook: settings.premium_person_facebook,
1397
+ twitter: settings.premium_person_twitter,
1398
+ linkedin: settings.premium_person_twitter,
1399
+ google: settings.premium_person_google,
1400
+ youtube: settings.premium_person_youtube,
1401
+ instagram: settings.premium_person_instagram,
1402
+ skype: settings.premium_person_skype,
1403
+ pinterest: settings.premium_person_pinterest,
1404
+ dribbble: settings.premium_person_dribbble,
1405
+ behance: settings.premium_person_behance,
1406
+ mail: settings.premium_person_mail
1407
+ };
1408
+ } else {
1409
+ personSettings = person;
1410
+ socialIcons = {
1411
+ facebook: person.multiple_facebook,
1412
+ twitter: person.multiple_twitter,
1413
+ linkedin: person.multiple_linkedin,
1414
+ google: person.multiple_google,
1415
+ youtube: person.multiple_youtube,
1416
+ instagram: person.multiple_instagram,
1417
+ skype: person.multiple_skype,
1418
+ pinterest: person.multiple_pinterest,
1419
+ dribbble: person.multiple_dribbble,
1420
+ behance: person.multiple_behance,
1421
+ mail: person.multiple_mail
1422
+ };
1423
+ }
1424
+
1425
#>
1426
<ul class="premium-person-social-list">
1427
+ <# if( '' != socialIcons.facebook ) { #>
1428
+ <li class="elementor-icon premium-person-list-item premium-person-facebook"><a href="{{ socialIcons.facebook }}" target="_blank"><i class="fab fa-facebook-f"></i></a></li>
1429
<# } #>
1430
1431
+ <# if( '' != socialIcons.twitter ) { #>
1432
+ <li class="elementor-icon premium-person-list-item premium-person-twitter"><a href="{{ socialIcons.twitter }}" target="_blank"><i class="fab fa-twitter"></i></a></li>
1433
<# } #>
1434
1435
+ <# if( '' != socialIcons.linkedin ) { #>
1436
+ <li class="elementor-icon premium-person-list-item premium-person-linkedin"><a href="{{ socialIcons.linkedin }}" target="_blank"><i class="fab fa-linkedin"></i></a></li>
1437
<# } #>
1438
1439
+ <# if( '' != socialIcons.google ) { #>
1440
+ <li class="elementor-icon premium-person-list-item premium-person-google"><a href="{{ socialIcons.google }}" target="_blank"><i class="fab fa-google-plus-g"></i></a></li>
1441
<# } #>
1442
1443
+ <# if( '' != socialIcons.youtube ) { #>
1444
+ <li class="elementor-icon premium-person-list-item premium-person-youtube"><a href="{{ socialIcons.youtube }}" target="_blank"><i class="fab fa-youtube"></i></a></li>
1445
<# } #>
1446
1447
+ <# if( '' != socialIcons.instagram ) { #>
1448
+ <li class="elementor-icon premium-person-list-item premium-person-instagram"><a href="{{ socialIcons.instagram }}" target="_blank"><i class="fab fa-instagram"></i></a></li>
1449
<# } #>
1450
1451
+ <# if( '' != socialIcons.skype ) { #>
1452
+ <li class="elementor-icon premium-person-list-item premium-person-skype"><a href="{{ socialIcons.skype }}" target="_blank"><i class="fab fa-skype"></i></a></li>
1453
<# } #>
1454
1455
+ <# if( '' != socialIcons.pinterest ) { #>
1456
+ <li class="elementor-icon premium-person-list-item premium-person-pinterest"><a href="{{ socialIcons.pinterest }}" target="_blank"><i class="fab fa-pinterest"></i></a></li>
1457
<# } #>
1458
1459
+ <# if( '' != socialIcons.dribbble ) { #>
1460
+ <li class="elementor-icon premium-person-list-item premium-person-dribbble"><a href="{{ socialIcons.dribbble }}" target="_blank"><i class="fab fa-dribbble"></i></a></li>
1461
<# } #>
1462
1463
+ <# if( '' != socialIcons.behance ) { #>
1464
+ <li class="elementor-icon premium-person-list-item premium-person-behance"><a href="{{ socialIcons.behance }}" target="_blank"><i class="fab fa-behance"></i></a></li>
1465
<# } #>
1466
1467
+ <# if( '' != socialIcons.mail ) { #>
1468
+ <li class="elementor-icon premium-person-list-item premium-person-mail"><a href="{{ socialIcons.mail }}" target="_blank"><i class="far fa-envelope"></i></a></li>
1469
<# } #>
1470
1471
</ul>
1472
<# }
1473
#>
1474
1475
+ <div {{{ view.getRenderAttributeString('persons_container') }}}>
1476
+ <# if( 'yes' !== settings.multiple ) { #>
1477
+ <div {{{ view.getRenderAttributeString('person_container') }}}>
1478
+ <div class="premium-person-image-container">
1479
+ <div class="premium-person-image-wrap">
1480
+ {{{imageHtml}}}
1481
+ </div>
1482
+ <# if ( 'style2' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) { #>
1483
+ <div class="premium-person-social">
1484
+ <# getSocialIcons(); #>
1485
+ </div>
1486
+ <# } #>
1487
</div>
1488
+ <div class="premium-person-info">
1489
+ <div class="premium-person-info-container">
1490
+ <# if( '' != settings.premium_person_name ) { #>
1491
+ <{{{nameHeading}}} class="premium-person-name">
1492
+ <span {{{ view.getRenderAttributeString('premium_person_name') }}}>
1493
+ {{{ settings.premium_person_name }}}
1494
+ </span></{{{nameHeading}}}>
1495
+ <# }
1496
+ if( '' != settings.premium_person_title ) { #>
1497
+ <{{{titleHeading}}} class="premium-person-title">
1498
+ <span {{{ view.getRenderAttributeString('premium_person_title') }}}>
1499
+ {{{ settings.premium_person_title }}}
1500
+ </span></{{{titleHeading}}}>
1501
+ <# }
1502
+ if( '' != settings.premium_person_content ) { #>
1503
+ <div class="premium-person-content">
1504
+ <div {{{ view.getRenderAttributeString('premium_person_content') }}}>
1505
+ {{{ settings.premium_person_content }}}
1506
+ </div>
1507
+ </div>
1508
+ <# }
1509
+ if ( 'style1' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) {
1510
+ getSocialIcons();
1511
+ } #>
1512
</div>
1513
+ </div>
1514
</div>
1515
+ <# } else {
1516
+ _.each( persons, function( person, index ) {
1517
+ var nameSettingKey = view.getRepeaterSettingKey( 'multiple_name', 'multiple_persons', index ),
1518
+ titleSettingKey = view.getRepeaterSettingKey( 'multiple_title', 'multiple_persons', index ),
1519
+ descSettingKey = view.getRepeaterSettingKey( 'multiple_description', 'multiple_persons', index );
1520
+
1521
+
1522
+ view.addInlineEditingAttributes( nameSettingKey );
1523
+ view.addInlineEditingAttributes( titleSettingKey );
1524
+ view.addInlineEditingAttributes( descSettingKey, 'advanced' );
1525
+
1526
+ var personImageHtml = '';
1527
+ if ( person.multiple_image.url ) {
1528
+ var personImage = {
1529
+ id: person.multiple_image.id,
1530
+ url: person.multiple_image.url,
1531
+ size: settings.thumbnail_size,
1532
+ dimension: settings.thumbnail_custom_dimension,
1533
+ model: view.getEditModel()
1534
+ };
1535
+
1536
+ var personImageUrl = elementor.imagesManager.getImageUrl( personImage );
1537
+
1538
+ personImageHtml = '<img src="' + personImageUrl + '"/>';
1539
+
1540
+ }
1541
+ #>
1542
+ <div {{{ view.getRenderAttributeString('person_container') }}}>
1543
+ <div class="premium-person-image-container">
1544
+ <div class="premium-person-image-wrap">
1545
+ {{{personImageHtml}}}
1546
+ </div>
1547
+ <# if ( 'style2' === settings.premium_person_style && 'yes' === person.multiple_social_enable ) { #>
1548
+ <div class="premium-person-social">
1549
+ <# getSocialIcons( person ); #>
1550
</div>
1551
+ <# } #>
1552
</div>
1553
+ <div class="premium-person-info">
1554
+ <div class="premium-person-info-container">
1555
+ <# if( '' != person.multiple_name ) { #>
1556
+ <{{{nameHeading}}} class="premium-person-name">
1557
+ <span {{{ view.getRenderAttributeString( nameSettingKey ) }}}>
1558
+ {{{ person.multiple_name }}}
1559
+ </span></{{{nameHeading}}}>
1560
+ <# }
1561
+ if( '' != person.multiple_title ) { #>
1562
+ <{{{titleHeading}}} class="premium-person-title">
1563
+ <span {{{ view.getRenderAttributeString( titleSettingKey ) }}}>
1564
+ {{{ person.multiple_title }}}
1565
+ </span></{{{titleHeading}}}>
1566
+ <# }
1567
+ if( '' != person.multiple_description ) { #>
1568
+ <div class="premium-person-content">
1569
+ <div {{{ view.getRenderAttributeString( descSettingKey ) }}}>
1570
+ {{{ person.multiple_description }}}
1571
+ </div>
1572
+ </div>
1573
+ <# }
1574
+ if ( 'style1' === settings.premium_person_style && 'yes' === person.multiple_social_enable ) {
1575
+ getSocialIcons( person );
1576
+ } #>
1577
+ </div>
1578
+ </div>
1579
+ </div>
1580
+ <# });
1581
+ } #>
1582
+
1583
</div>
1584
<?php
1585
}