PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.62 3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / Package / views / lock-options-iframe.php
download-manager / src / Package / views Last commit date
link-templates 5 months ago lock-options 6 months ago page-templates 4 months ago all-packages-shortcode.php 1 week ago category-shortcode-toolbar.php 1 year ago file-list.php 5 years ago lock-options-iframe.php 5 months ago packages-shortcode-toolbar.php 1 year ago packages-shortcode.php 2 years ago search-result.php 5 years ago shortcode-iframe.php 5 months ago
lock-options-iframe.php
887 lines
1 <?php
2 if (!defined('ABSPATH')) die();
3 /**
4 * User: shahnuralam
5 * Date: 1/16/18
6 * Time: 12:33 AM
7 */
8
9 error_reporting(0);
10 //global $post;
11 $ID = wpdm_query_var('__wpdmlo');
12
13 $post_type = get_post_type($ID);
14 $post_status = get_post_status($ID);
15 if($post_type !== 'wpdmpro' && $post_status !== 'publish'){
16 \WPDM\__\Messages::fullPage("Error: Invalid request", \WPDM\__\UI::card("Error: Invalid request", ["Your request could not be processed."]));
17 die();
18 }
19
20 //$post = get_post(wpdm_query_var('__wpdmlo'));
21 //setup_postdata($post);
22 //$pack = new \WPDM\Package();
23 //$pack->Prepare(get_the_ID());
24 $form_lock = (int)get_post_meta($ID, '__wpdm_form_lock', true);
25 $terms_lock = (int)get_post_meta($ID, '__wpdm_terms_lock', true);
26 $base_price = (float)get_post_meta($ID, '__wpdm_base_price', true);
27 $color_scheme = get_option('__wpdm_color_scheme', 'light');
28
29 ?><!DOCTYPE html>
30 <html style="background: transparent">
31 <head>
32 <title>Download <?php get_the_title($ID); ?></title>
33
34
35 <?php if($form_lock === 1 || $base_price > 0) wp_head(); else { ?>
36 <script type="text/javascript">
37 const wpdm_url = <?php echo json_encode(WPDM()->wpdm_urls);?>;
38 </script>
39 <link rel="stylesheet" href="<?php echo WPDM_ASSET_URL; ?>css/front.min.css" />
40 <?php if ($color_scheme !== 'light') { ?>
41 <link rel="stylesheet" href="<?php echo WPDM_ASSET_URL; ?>css/front-dark.min.css" />
42 <?php } ?>
43 <link rel="stylesheet" href="<?= WPDM_FONTAWESOME_URL ?>" />
44 <script src="<?php echo includes_url(); ?>/js/jquery/jquery.js"></script>
45 <script src="<?php echo includes_url(); ?>/js/jquery/jquery.form.min.js"></script>
46 <script src="<?php echo WPDM_ASSET_URL; ?>js/wpdm.js"></script>
47 <script src="<?php echo WPDM_ASSET_URL; ?>js/front.min.js"></script>
48 <?php
49 $_font = get_option('__wpdm_google_font', 'Sen');
50 $font = explode(":", $_font);
51 $font = $font[0];
52 $font = $font ? $font . ',' : '';
53 if($_font) {
54 ?>
55 <link href="https://fonts.googleapis.com/css2?family=<?php echo str_replace("regular", 400, $_font); ?>" rel="stylesheet">
56 <style>
57 .w3eden .fetfont,
58 .w3eden .btn,
59 .w3eden .btn.wpdm-front h3.title,
60 .w3eden .wpdm-social-lock-box .IN-widget a span:last-child,
61 .w3eden .card-header,
62 .w3eden .card-footer,
63 .w3eden .badge,
64 .w3eden .label,
65 .w3eden .table,
66 .w3eden .card-body,
67 .w3eden .wpdm-frontend-tabs a,
68 .w3eden .alert:before,
69 .w3eden .discount-msg,
70 .w3eden .panel.dashboard-panel h3,
71 .w3eden #wdmds .list-group-item,
72 .w3eden #package-description .wp-switch-editor,
73 .w3eden .w3eden.author-dashbboard .nav.nav-tabs li a,
74 .w3eden .wpdm_cart thead th,
75 .w3eden #csp .list-group-item,
76 .w3eden .modal-title {
77 font-family: <?php echo $font; ?> -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
78 }
79 .w3eden .btn
80 {
81 font-weight: 800 !important;
82 }
83 .w3eden .btn {
84 letter-spacing: 1px;
85 text-transform: uppercase;
86 }
87 .w3eden #csp .list-group-item {
88 text-transform: unset;
89 }
90
91
92 </style>
93 <?php
94 }
95 $wpdmss = maybe_unserialize(get_option('__wpdm_disable_scripts', array()));
96 $uicolors = maybe_unserialize(get_option('__wpdm_ui_colors', array()));
97 $primary = isset($uicolors['primary']) ? $uicolors['primary'] : '#4a8eff';
98 $secondary = isset($uicolors['secondary']) ? $uicolors['secondary'] : '#4a8eff';
99 $success = isset($uicolors['success']) ? $uicolors['success'] : '#18ce0f';
100 $info = isset($uicolors['info']) ? $uicolors['info'] : '#2CA8FF';
101 $warning = isset($uicolors['warning']) ? $uicolors['warning'] : '#f29e0f';
102 $danger = isset($uicolors['danger']) ? $uicolors['danger'] : '#ff5062';
103 $font = get_option('__wpdm_google_font', 'Sen');
104 $font = explode(":", $font);
105 $font = $font[0];
106 $font = $font ? "\"{$font}\"," : '';
107 if (is_singular('wpdmpro'))
108 $ui_button = get_option('__wpdm_ui_download_button');
109 else
110 $ui_button = get_option('__wpdm_ui_download_button_sc');
111 $class = ".btn." . (isset($ui_button['color']) ? $ui_button['color'] : 'btn-primary') . (isset($ui_button['size']) && $ui_button['size'] != '' ? "." . $ui_button['size'] : '');
112
113 ?>
114 <style>
115
116 :root {
117 --color-primary: <?php echo $primary; ?>;
118 --color-primary-rgb: <?php echo wpdm_hex2rgb($primary); ?>;
119 --color-primary-hover: <?php echo isset($uicolors['primary'])?$uicolors['primary_hover']:'#4a8eff'; ?>;
120 --color-primary-active: <?php echo isset($uicolors['primary'])?$uicolors['primary_active']:'#4a8eff'; ?>;
121 --clr-sec: <?php echo $secondary; ?>;
122 --clr-sec-rgb: <?php echo wpdm_hex2rgb($secondary); ?>;
123 --clr-sec-hover: <?php echo isset($uicolors['secondary'])?$uicolors['secondary_hover']:'#4a8eff'; ?>;
124 --clr-sec-active: <?php echo isset($uicolors['secondary'])?$uicolors['secondary_active']:'#4a8eff'; ?>;
125 --color-success: <?php echo $success; ?>;
126 --color-success-rgb: <?php echo wpdm_hex2rgb($success); ?>;
127 --color-success-hover: <?php echo isset($uicolors['success_hover'])?$uicolors['success_hover']:'#4a8eff'; ?>;
128 --color-success-active: <?php echo isset($uicolors['success_active'])?$uicolors['success_active']:'#4a8eff'; ?>;
129 --color-info: <?php echo $info; ?>;
130 --color-info-rgb: <?php echo wpdm_hex2rgb($info); ?>;
131 --color-info-hover: <?php echo isset($uicolors['info_hover'])?$uicolors['info_hover']:'#2CA8FF'; ?>;
132 --color-info-active: <?php echo isset($uicolors['info_active'])?$uicolors['info_active']:'#2CA8FF'; ?>;
133 --color-warning: <?php echo $warning; ?>;
134 --color-warning-rgb: <?php echo wpdm_hex2rgb($warning); ?>;
135 --color-warning-hover: <?php echo isset($uicolors['warning_hover'])?$uicolors['warning_hover']:'orange'; ?>;
136 --color-warning-active: <?php echo isset($uicolors['warning_active'])?$uicolors['warning_active']:'orange'; ?>;
137 --color-danger: <?php echo $danger; ?>;
138 --color-danger-rgb: <?php echo wpdm_hex2rgb($danger); ?>;
139 --color-danger-hover: <?php echo isset($uicolors['danger_hover'])?$uicolors['danger_hover']:'#ff5062'; ?>;
140 --color-danger-active: <?php echo isset($uicolors['danger_active'])?$uicolors['danger_active']:'#ff5062'; ?>;
141 --color-green: <?php echo isset($uicolors['green'])?$uicolors['green']:'#30b570'; ?>;
142 --color-blue: <?php echo isset($uicolors['blue'])?$uicolors['blue']:'#0073ff'; ?>;
143 --color-purple: <?php echo isset($uicolors['purple'])?$uicolors['purple']:'#8557D3'; ?>;
144 --color-red: <?php echo isset($uicolors['red'])?$uicolors['red']:'#ff5062'; ?>;
145 --color-muted: rgba(69, 89, 122, 0.6);
146 --wpdm-font: <?php echo $font; ?> -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
147 }
148
149 .wpdm-download-link<?php echo $class; ?> {
150 border-radius: <?php echo (isset($ui_button['borderradius'])?$ui_button['borderradius']:4); ?>px;
151 }
152
153
154 </style>
155 <?php
156 }
157 ?>
158 <style>
159 /* ============================================
160 Lock Panel - Premium Modal UI
161 ============================================ */
162
163 :root {
164 --lp-bg: #ffffff;
165 --lp-shadow:
166 0 0 0 1px rgba(0, 0, 0, 0.04),
167 0 4px 8px rgba(0, 0, 0, 0.04),
168 0 12px 24px rgba(0, 0, 0, 0.06),
169 0 24px 48px rgba(0, 0, 0, 0.08),
170 0 48px 96px rgba(0, 0, 0, 0.12);
171 --lp-radius: 24px;
172 --lp-icon-size: 88px;
173 --lp-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
174 --lp-smooth: cubic-bezier(0.4, 0, 0.2, 1);
175 --lp-exit: cubic-bezier(0.4, 0, 1, 1);
176 --lp-accent: var(--color-primary, #6366f1);
177 --lp-accent-rgb: var(--color-primary-rgb, 99, 102, 241);
178 --lp-accent2: var(--color-purple, #8557D3);
179 }
180
181 html, body {
182 overflow: visible;
183 height: 100%;
184 width: 100%;
185 padding: 0;
186 margin: 0;
187 font-weight: 400;
188 font-size: 10pt;
189 font-family: var(--wpdm-font);
190 -webkit-font-smoothing: antialiased;
191 -moz-osx-font-smoothing: grayscale;
192 }
193
194 /* Lock Panel Root */
195 .wpdm-lp {
196 position: fixed;
197 inset: 0;
198 z-index: 99999;
199 display: flex;
200 align-items: center;
201 justify-content: center;
202 pointer-events: none;
203 visibility: hidden;
204 }
205
206 .wpdm-lp--visible {
207 pointer-events: auto;
208 visibility: visible;
209 }
210
211 /* Backdrop - deeper, richer */
212 .wpdm-lp__backdrop {
213 position: absolute;
214 inset: 0;
215 background: linear-gradient(135deg, rgba(15, 23, 42, 0.35) 0%, rgba(30, 20, 60, 0.4) 100%);
216 backdrop-filter: blur(6px) saturate(1.2);
217 -webkit-backdrop-filter: blur(6px) saturate(1.2);
218 opacity: 0;
219 transition: opacity 0.5s var(--lp-smooth);
220 }
221
222 .wpdm-lp--visible .wpdm-lp__backdrop {
223 opacity: 1;
224 }
225
226 /* Dialog Container */
227 .wpdm-lp__dialog {
228 position: relative;
229 z-index: 1;
230 transform: scale(0.92) translateY(40px);
231 opacity: 0;
232 transition:
233 transform 0.6s var(--lp-spring),
234 opacity 0.4s var(--lp-smooth);
235 }
236
237 .wpdm-lp--visible .wpdm-lp__dialog {
238 transform: scale(1) translateY(0);
239 opacity: 1;
240 }
241
242 /* Exit animation */
243 .wpdm-lp--closing .wpdm-lp__backdrop {
244 opacity: 0;
245 transition: opacity 0.3s var(--lp-exit);
246 }
247
248 .wpdm-lp--closing .wpdm-lp__dialog {
249 transform: scale(0.95) translateY(20px);
250 opacity: 0;
251 transition:
252 transform 0.25s var(--lp-exit),
253 opacity 0.2s var(--lp-exit);
254 }
255
256 /* Panel */
257 .wpdm-lp__panel {
258 background: var(--lp-bg);
259 border: 1px solid rgba(0, 0, 0, 0.06);
260 border-radius: var(--lp-radius);
261 box-shadow: var(--lp-shadow);
262 max-width: 100%;
263 padding-top: calc(var(--lp-icon-size) / 2 + 12px);
264 overflow: visible;
265 position: relative;
266 }
267
268 /* Accent gradient wash across top */
269 .wpdm-lp__panel::before {
270 content: '';
271 position: absolute;
272 top: 0;
273 left: 0;
274 right: 0;
275 height: 140px;
276 background: linear-gradient(175deg,
277 rgba(var(--lp-accent-rgb), 0.06) 0%,
278 rgba(var(--lp-accent-rgb), 0.02) 40%,
279 transparent 100%);
280 pointer-events: none;
281 border-radius: var(--lp-radius) var(--lp-radius) 0 0;
282 }
283
284 /* Top accent stripe */
285 .wpdm-lp__panel::after {
286 content: '';
287 position: absolute;
288 top: 0;
289 left: 50%;
290 transform: translateX(-50%);
291 width: 60px;
292 height: 3px;
293 background: linear-gradient(90deg, var(--lp-accent), var(--lp-accent2));
294 border-radius: 0 0 3px 3px;
295 opacity: 0;
296 animation: lpStripeFadeIn 0.4s var(--lp-smooth) 0.5s forwards;
297 }
298
299 @keyframes lpStripeFadeIn {
300 to { opacity: 0.7; }
301 }
302
303 /* Header */
304 .wpdm-lp__header {
305 padding: 0 24px;
306 position: relative;
307 }
308
309 .wpdm-lp__header h4 {
310 font-weight: 700;
311 text-transform: uppercase;
312 letter-spacing: 2px;
313 color: #1e293b;
314 font-size: 11px;
315 display: inline-block;
316 font-family: var(--wpdm-font);
317 margin: 0 0 10px;
318 padding: 5px 14px;
319 background: linear-gradient(135deg, rgba(var(--lp-accent-rgb), 0.08), rgba(var(--lp-accent-rgb), 0.04));
320 border-radius: 20px;
321 border: 1px solid rgba(var(--lp-accent-rgb), 0.1);
322 opacity: 0;
323 transform: translateY(10px);
324 animation: lpContentFadeIn 0.5s var(--lp-spring) 0.2s forwards;
325 }
326
327 /* Package title */
328 .wpdm-lp__header .wpdm-lp__title {
329 display: block;
330 font-size: 13pt;
331 font-weight: 600;
332 color: #334155;
333 letter-spacing: 0.2px;
334 line-height: 1.4;
335 margin-bottom: 0;
336 opacity: 0;
337 transform: translateY(10px);
338 animation: lpContentFadeIn 0.5s var(--lp-spring) 0.3s forwards;
339 }
340
341 /* Separator line */
342 .wpdm-lp__sep {
343 display: block;
344 width: 40px;
345 height: 1px;
346 background: linear-gradient(90deg, transparent, rgba(var(--lp-accent-rgb), 0.3), transparent);
347 margin: 16px auto;
348 opacity: 0;
349 animation: lpContentFadeIn 0.5s var(--lp-smooth) 0.35s forwards;
350 }
351
352 @keyframes lpContentFadeIn {
353 to {
354 opacity: 1;
355 transform: translateY(0);
356 }
357 }
358
359 /* Avatar - Floating with animated ring */
360 .wpdm-lp__avatar {
361 width: var(--lp-icon-size);
362 height: var(--lp-icon-size);
363 padding: 4px;
364 display: flex;
365 align-items: center;
366 justify-content: center;
367 top: 0;
368 border-radius: 50%;
369 margin-top: calc(var(--lp-icon-size) / -2);
370 left: calc(50% - var(--lp-icon-size) / 2);
371 position: absolute;
372 z-index: 999999;
373 background: linear-gradient(145deg, #ffffff 0%, #f1f5f9 100%);
374 box-shadow:
375 0 4px 12px rgba(var(--lp-accent-rgb), 0.15),
376 0 8px 32px rgba(0, 0, 0, 0.12),
377 inset 0 1px 0 rgba(255, 255, 255, 0.9);
378 opacity: 0;
379 transform: scale(0.5) translateY(20px);
380 animation: lpIconPop 0.6s var(--lp-spring) 0.1s forwards;
381 }
382
383 @keyframes lpIconPop {
384 to {
385 opacity: 1;
386 transform: scale(1) translateY(0);
387 }
388 }
389
390 /* Animated gradient ring */
391 .wpdm-lp__avatar::before {
392 content: '';
393 position: absolute;
394 inset: -4px;
395 border-radius: 50%;
396 background: conic-gradient(
397 from 0deg,
398 var(--lp-accent),
399 var(--lp-accent2),
400 var(--color-info, #2CA8FF),
401 var(--lp-accent)
402 );
403 opacity: 0.2;
404 z-index: -1;
405 animation: lpRingSpin 8s linear infinite;
406 }
407
408 @keyframes lpRingSpin {
409 to { transform: rotate(360deg); }
410 }
411
412 /* Outer glow pulse */
413 .wpdm-lp__avatar::after {
414 content: '';
415 position: absolute;
416 inset: -8px;
417 border-radius: 50%;
418 background: radial-gradient(circle, rgba(var(--lp-accent-rgb), 0.12) 0%, transparent 70%);
419 z-index: -2;
420 animation: lpGlowPulse 3s ease-in-out infinite;
421 }
422
423 @keyframes lpGlowPulse {
424 0%, 100% { opacity: 0.5; transform: scale(1); }
425 50% { opacity: 1; transform: scale(1.08); }
426 }
427
428 .wpdm-lp__avatar img,
429 .wpdm-lp__avatar .wp-post-image {
430 border-radius: 50%;
431 width: 100% !important;
432 height: 100% !important;
433 object-fit: cover;
434 }
435
436 /* Close Button */
437 .wpdm-lp__close {
438 position: absolute;
439 z-index: 999999;
440 top: 14px;
441 right: 14px;
442 width: 32px;
443 height: 32px;
444 padding: 0;
445 margin: 0;
446 display: flex;
447 align-items: center;
448 justify-content: center;
449 background: rgba(0, 0, 0, 0.04);
450 border: 1px solid rgba(0, 0, 0, 0.06);
451 border-radius: 10px;
452 opacity: 1;
453 cursor: pointer;
454 transition: all 0.2s var(--lp-smooth);
455 }
456
457 .wpdm-lp__close svg {
458 width: 16px;
459 height: 16px;
460 color: #94a3b8;
461 transition: color 0.2s var(--lp-smooth);
462 }
463
464 .wpdm-lp__close:hover {
465 background: #fef2f2;
466 border-color: #fecaca;
467 }
468
469 .wpdm-lp__close:hover svg {
470 color: #ef4444;
471 }
472
473 .wpdm-lp__close:active {
474 transform: scale(0.92);
475 }
476
477 /* Panel Body */
478 .wpdm-lp__body {
479 max-height: calc(100vh - 260px);
480 overflow-y: auto;
481 padding: 0 24px 24px;
482 opacity: 0;
483 transform: translateY(15px);
484 animation: lpBodyFadeIn 0.5s var(--lp-spring) 0.4s forwards;
485 }
486
487 @keyframes lpBodyFadeIn {
488 to {
489 opacity: 1;
490 transform: translateY(0);
491 }
492 }
493
494 /* Custom Scrollbar */
495 .wpdm-lp__body::-webkit-scrollbar {
496 width: 5px;
497 }
498
499 .wpdm-lp__body::-webkit-scrollbar-track {
500 background: transparent;
501 }
502
503 .wpdm-lp__body::-webkit-scrollbar-thumb {
504 background: rgba(var(--lp-accent-rgb), 0.15);
505 border-radius: 10px;
506 }
507
508 .wpdm-lp__body::-webkit-scrollbar-thumb:hover {
509 background: rgba(var(--lp-accent-rgb), 0.3);
510 }
511
512 /* ---- Inner Content Styling ---- */
513
514 /* Cards */
515 .w3eden .card {
516 margin-bottom: 0;
517 border-radius: 14px;
518 border: 1px solid rgba(0, 0, 0, 0.06);
519 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
520 transition: all 0.3s var(--lp-smooth);
521 overflow: hidden;
522 }
523
524 .w3eden .card:hover {
525 box-shadow:
526 0 4px 12px rgba(0, 0, 0, 0.06),
527 0 1px 3px rgba(0, 0, 0, 0.04);
528 border-color: rgba(var(--lp-accent-rgb), 0.12);
529 }
530
531 .w3eden .card:last-child {
532 margin-bottom: 10px !important;
533 }
534
535 .w3eden .card-default {
536 margin-top: 10px !important;
537 }
538
539 .w3eden .card-header {
540 background: linear-gradient(135deg, rgba(var(--lp-accent-rgb), 0.04) 0%, rgba(var(--lp-accent-rgb), 0.01) 100%);
541 border-bottom: 1px solid rgba(0, 0, 0, 0.05);
542 font-weight: 600;
543 }
544
545 .card-body {
546 line-height: 1.7;
547 letter-spacing: 0.2px;
548 font-size: 10.5pt;
549 color: #334155;
550 }
551
552
553
554 .btn-viewcart,
555 #cart_submit {
556 line-height: 30px !important;
557 width: 100%;
558 }
559
560 /* Social Lock Buttons */
561 .wpdm-social-lock.btn {
562 display: flex;
563 align-items: center;
564 justify-content: center;
565 gap: 8px;
566 width: 100%;
567 border-radius: 12px !important;
568 padding: 13px 16px;
569 margin-bottom: 8px;
570 font-weight: 600 !important;
571 letter-spacing: 0.5px;
572 border: none !important;
573 position: relative;
574 overflow: hidden;
575 }
576
577 .wpdm-social-lock.btn::after {
578 content: '';
579 position: absolute;
580 inset: 0;
581 background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 50%);
582 pointer-events: none;
583 }
584
585 .wpdm-social-lock.btn:hover {
586 transform: translateY(-2px);
587 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2) !important;
588 }
589
590 /* Price Display */
591 .w3eden h3.wpdmpp-product-price {
592 text-align: center;
593 margin-bottom: 24px !important;
594 font-size: 28pt;
595 font-weight: 800;
596 color: #1e293b;
597 letter-spacing: -0.5px;
598 }
599
600 /* Spin Animation */
601 @keyframes spin {
602 from { transform: rotate(0deg); }
603 to { transform: rotate(360deg); }
604 }
605
606 .spin {
607 animation: spin 1.5s linear infinite;
608 display: inline-block;
609 }
610
611 /* Images */
612 img {
613 max-width: 100%;
614 }
615
616 .wp-post-image {
617 width: 100%;
618 height: auto;
619 border-radius: 50%;
620 }
621
622 form * {
623 max-width: 100% !important;
624 }
625
626 /* Terms checkbox area */
627 .w3eden .wpdm-checkbox,
628 .w3eden .custom-control {
629 padding: 12px 14px;
630 background: #f8fafc;
631 border: 1px solid rgba(0, 0, 0, 0.06);
632 border-radius: 12px;
633 margin-bottom: 12px;
634 }
635
636 /* Reduced Motion Support */
637 @media (prefers-reduced-motion: reduce) {
638 .wpdm-lp__dialog,
639 .wpdm-lp__backdrop,
640 .wpdm-lp__avatar,
641 .wpdm-lp__avatar::before,
642 .wpdm-lp__avatar::after,
643 .wpdm-lp__panel::after,
644 .wpdm-lp__header h4,
645 .wpdm-lp__header .wpdm-lp__title,
646 .wpdm-lp__sep,
647 .wpdm-lp__body {
648 animation: none !important;
649 transition-duration: 0.01ms !important;
650 opacity: 1 !important;
651 transform: none !important;
652 }
653 }
654
655 /* ---- Dark Mode ---- */
656
657 /* Manual dark mode */
658 .w3eden.dark-mode .wpdm-lp__panel {
659 background: var(--dm-bg-secondary, #1e293b);
660 border-color: rgba(255, 255, 255, 0.06);
661 }
662 .w3eden.dark-mode .wpdm-lp__panel::before {
663 background: linear-gradient(175deg, rgba(var(--lp-accent-rgb), 0.1) 0%, transparent 100%);
664 }
665 .w3eden.dark-mode .wpdm-lp__panel::after {
666 opacity: 0.5;
667 }
668 .w3eden.dark-mode .wpdm-lp__header h4 {
669 color: var(--dm-text, #f1f5f9);
670 background: rgba(var(--lp-accent-rgb), 0.15);
671 border-color: rgba(var(--lp-accent-rgb), 0.2);
672 }
673 .w3eden.dark-mode .wpdm-lp__header .wpdm-lp__title {
674 color: var(--dm-text-secondary, #cbd5e1);
675 }
676 .w3eden.dark-mode .wpdm-lp__sep {
677 background: linear-gradient(90deg, transparent, rgba(var(--lp-accent-rgb), 0.4), transparent);
678 }
679 .w3eden.dark-mode .wpdm-lp__avatar {
680 background: linear-gradient(145deg, var(--dm-bg-tertiary, #334155) 0%, var(--dm-bg-secondary, #1e293b) 100%);
681 box-shadow:
682 0 4px 12px rgba(var(--lp-accent-rgb), 0.2),
683 0 8px 32px rgba(0, 0, 0, 0.4),
684 inset 0 1px 0 rgba(255, 255, 255, 0.06);
685 }
686 .w3eden.dark-mode .wpdm-lp__close {
687 background: rgba(255, 255, 255, 0.06);
688 border-color: rgba(255, 255, 255, 0.08);
689 }
690 .w3eden.dark-mode .wpdm-lp__close svg {
691 color: var(--dm-text-muted, #94a3b8);
692 }
693 .w3eden.dark-mode .wpdm-lp__close:hover {
694 background: rgba(239, 68, 68, 0.15);
695 border-color: rgba(239, 68, 68, 0.2);
696 }
697 .w3eden.dark-mode .wpdm-lp__close:hover svg {
698 color: #f87171;
699 }
700 .w3eden.dark-mode .form-control {
701 background: var(--dm-bg-tertiary, #334155);
702 border-color: rgba(255, 255, 255, 0.08);
703 color: var(--dm-text, #f1f5f9);
704 }
705 .w3eden.dark-mode .form-control:focus {
706 background: rgba(var(--lp-accent-rgb), 0.08);
707 border-color: var(--lp-accent);
708 }
709 .w3eden.dark-mode .card {
710 border-color: rgba(255, 255, 255, 0.06);
711 background: rgba(255, 255, 255, 0.03);
712 }
713 .w3eden.dark-mode .card:hover {
714 border-color: rgba(var(--lp-accent-rgb), 0.15);
715 }
716 .w3eden.dark-mode .card-header {
717 background: rgba(var(--lp-accent-rgb), 0.08);
718 border-bottom-color: rgba(255, 255, 255, 0.05);
719 }
720 .w3eden.dark-mode h3.wpdmpp-product-price {
721 color: var(--dm-text, #f1f5f9);
722 }
723 .w3eden.dark-mode .wpdm-checkbox,
724 .w3eden.dark-mode .custom-control {
725 background: var(--dm-bg-tertiary, #334155);
726 border-color: rgba(255, 255, 255, 0.06);
727 }
728
729 /* System preference dark mode */
730 @media (prefers-color-scheme: dark) {
731 .w3eden:not(.light-mode) .wpdm-lp__panel {
732 background: var(--dm-bg-secondary, #1e293b);
733 border-color: rgba(255, 255, 255, 0.06);
734 }
735 .w3eden:not(.light-mode) .wpdm-lp__panel::before {
736 background: linear-gradient(175deg, rgba(var(--lp-accent-rgb), 0.1) 0%, transparent 100%);
737 }
738 .w3eden:not(.light-mode) .wpdm-lp__panel::after {
739 opacity: 0.5;
740 }
741 .w3eden:not(.light-mode) .wpdm-lp__header h4 {
742 color: var(--dm-text, #f1f5f9);
743 background: rgba(var(--lp-accent-rgb), 0.15);
744 border-color: rgba(var(--lp-accent-rgb), 0.2);
745 }
746 .w3eden:not(.light-mode) .wpdm-lp__header .wpdm-lp__title {
747 color: var(--dm-text-secondary, #cbd5e1);
748 }
749 .w3eden:not(.light-mode) .wpdm-lp__sep {
750 background: linear-gradient(90deg, transparent, rgba(var(--lp-accent-rgb), 0.4), transparent);
751 }
752 .w3eden:not(.light-mode) .wpdm-lp__avatar {
753 background: linear-gradient(145deg, var(--dm-bg-tertiary, #334155) 0%, var(--dm-bg-secondary, #1e293b) 100%);
754 box-shadow:
755 0 4px 12px rgba(var(--lp-accent-rgb), 0.2),
756 0 8px 32px rgba(0, 0, 0, 0.4),
757 inset 0 1px 0 rgba(255, 255, 255, 0.06);
758 }
759 .w3eden:not(.light-mode) .wpdm-lp__close {
760 background: rgba(255, 255, 255, 0.06);
761 border-color: rgba(255, 255, 255, 0.08);
762 }
763 .w3eden:not(.light-mode) .wpdm-lp__close svg {
764 color: var(--dm-text-muted, #94a3b8);
765 }
766 .w3eden:not(.light-mode) .wpdm-lp__close:hover {
767 background: rgba(239, 68, 68, 0.15);
768 border-color: rgba(239, 68, 68, 0.2);
769 }
770 .w3eden:not(.light-mode) .wpdm-lp__close:hover svg {
771 color: #f87171;
772 }
773 .w3eden:not(.light-mode) .form-control {
774 background: var(--dm-bg-tertiary, #334155);
775 border-color: rgba(255, 255, 255, 0.08);
776 color: var(--dm-text, #f1f5f9);
777 }
778 .w3eden:not(.light-mode) .form-control:focus {
779 background: rgba(var(--lp-accent-rgb), 0.08);
780 border-color: var(--lp-accent);
781 }
782 .w3eden:not(.light-mode) .card {
783 border-color: rgba(255, 255, 255, 0.06);
784 background: rgba(255, 255, 255, 0.03);
785 }
786 .w3eden:not(.light-mode) .card:hover {
787 border-color: rgba(var(--lp-accent-rgb), 0.15);
788 }
789 .w3eden:not(.light-mode) .card-header {
790 background: rgba(var(--lp-accent-rgb), 0.08);
791 border-bottom-color: rgba(255, 255, 255, 0.05);
792 }
793 .w3eden:not(.light-mode) h3.wpdmpp-product-price {
794 color: var(--dm-text, #f1f5f9);
795 }
796 .w3eden:not(.light-mode) .wpdm-checkbox,
797 .w3eden:not(.light-mode) .custom-control {
798 background: var(--dm-bg-tertiary, #334155);
799 border-color: rgba(255, 255, 255, 0.06);
800 }
801 }
802
803 </style>
804
805
806
807
808 <?php do_action("wpdm_modal_iframe_head"); ?>
809 </head>
810 <?php
811 // Build body classes based on color scheme setting
812 $body_classes = 'w3eden';
813 if ($color_scheme === 'light') {
814 $body_classes .= ' light-mode';
815 } elseif ($color_scheme === 'dark') {
816 $body_classes .= ' dark-mode';
817 }
818 // 'system' = no extra class, follows OS preference via @media (prefers-color-scheme: dark)
819 ?>
820 <body class="<?php echo esc_attr($body_classes); ?>" style="background: transparent">
821
822 <div class="wpdm-lp" id="wpdm-locks">
823 <div class="wpdm-lp__backdrop"></div>
824 <div class="wpdm-lp__dialog" style="width: <?php echo $terms_lock === 1?395:365; ?>px;max-width: calc(100% - 20px);">
825 <div class="wpdm-lp__panel">
826 <div class="wpdm-lp__avatar">
827 <?php if(has_post_thumbnail($ID)) echo get_the_post_thumbnail($ID, 'thumbnail'); else echo WPDM()->package::icon($ID, true, 'p-2'); ?>
828 </div>
829 <button type="button" class="wpdm-lp__close" aria-label="Close">
830 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
831 </button>
832 <div class="wpdm-lp__header text-center" style="margin-top: 16px">
833 <h4><?php echo ($base_price > 0)? __('Buy','download-manager'): __('Download','download-manager'); ?></h4>
834 <span class="wpdm-lp__title"><?php echo get_the_title($ID); ?></span>
835 <span class="wpdm-lp__sep"></span>
836 </div>
837 <div class="wpdm-lp__body" id="wpdm-lock-options">
838 <?php
839 $extras = isset($_REQUEST['__wpdmfl']) ? ['ind' => wpdm_query_var('__wpdmfl', 'txt')] : [];
840 echo WPDM()->package->downloadLink(wpdm_query_var('__wpdmlo', 'int'), 1, $extras);
841 ?>
842 </div>
843 </div>
844 </div>
845 </div>
846
847 <script>
848 jQuery(function ($) {
849
850 $('a').each(function () {
851 if($(this).attr('href') !== '#')
852 $(this).attr('target', '_blank');
853 });
854
855 var $locks = $('#wpdm-locks');
856
857 function closeLockPanel() {
858 $locks.addClass('wpdm-lp--closing');
859 $locks.removeClass('wpdm-lp--visible');
860 setTimeout(function () {
861 var parentWindow = document.createElement("a");
862 parentWindow.href = document.referrer.toString();
863 if(parentWindow.hostname === window.location.hostname)
864 window.parent.hideLockFrame();
865 else
866 window.parent.postMessage({'task': 'hideiframe'}, "*");
867 }, 300);
868 }
869
870 $locks.on('click', '.wpdm-lp__close', closeLockPanel);
871 $locks.on('click', '.wpdm-lp__backdrop', closeLockPanel);
872
873 showModal();
874 });
875
876 function showModal() {
877 jQuery('#wpdm-locks').addClass('wpdm-lp--visible');
878 }
879
880 </script>
881 <div style="display: none">
882 <?php if($form_lock === 1 || $base_price > 0) wp_footer(); ?>
883 <?php do_action("wpdm_modal_iframe_footer"); ?>
884 </div>
885 </body>
886 </html>
887