Version Description
Download this release
Release Info
Developer | raldea89 |
Plugin | Download Monitor |
Version | 4.5.9 |
Comparing to | |
See all releases |
Code changes from version 4.5.8 to 4.5.9
- assets/css/admin.css +1 -1
- assets/css/admin.less +22 -0
- assets/images/Sebastian-Herrmann.jpeg +0 -0
- assets/images/banner-dlm.png +0 -0
- assets/images/carlos-espinosa.jpeg +0 -0
- assets/images/features/content-grouping.png +0 -0
- assets/images/features/customisable-endpoints.png +0 -0
- assets/images/features/data-importing-exporting.png +0 -0
- assets/images/features/downloading-page.png +0 -0
- assets/images/features/easy-duplication.png +0 -0
- assets/images/features/enforce-download-limits.png +0 -0
- assets/images/features/gated-content.png +0 -0
- assets/images/features/instant-notifications.png +0 -0
- assets/images/features/link-downloads-from-cloud.png +0 -0
- assets/images/features/monetize-your-downloads.png +0 -0
- assets/images/features/page-addon.png +0 -0
- assets/images/features/spam-protection.png +0 -0
- assets/images/features/track-your-content.png +0 -0
- assets/js/edit-product.min.js +0 -0
- assets/js/shop/edit-product.js +11 -0
- assets/js/shop/edit-product.min.js +1 -1
- assets/js/shop/product-script.js +14 -0
- assets/js/shop/product-script.min.js +1 -0
- changelog.txt +10 -0
- download-monitor.php +2 -2
- includes/admin/class-dlm-welcome.php +195 -0
- includes/bootstrap.php +2 -0
- includes/installer-functions.php +1 -1
- includes/submodules/banner/assets/css/wpchill-welcome.css +365 -0
- includes/submodules/banner/assets/img/star.svg +12 -0
- includes/submodules/banner/class-wpchill-welcome.php +260 -0
- includes/submodules/banner/readme.txt +1 -0
- readme.txt +1 -1
- src/Admin/Admin.php +4 -0
- src/Admin/Settings/Page.php +98 -1
- src/Admin/Settings/Settings.php +8 -0
- src/Admin/WritePanels.php +10 -2
- src/DLM.php +3 -0
- src/DownloadHandler.php +25 -12
- src/FileManager.php +72 -2
- src/Installer.php +7 -0
- src/Logs/LoggingListTable.php +2 -2
- src/Polyfill/DateTimeImmutable/DateTimeImmutable.php +3 -1
- src/Shop/Admin/ProductTableColumns.php +9 -5
- src/Shop/Admin/WritePanels.php +74 -4
- src/Shop/Util/Assets.php +19 -0
- src/Version/Version.php +12 -0
- vendor/composer/autoload_classmap.php +2 -0
- vendor/composer/autoload_static.php +2 -0
assets/css/admin.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.post-type-dlm_download h1 a.dlm-delete-logs{color:#a00}.post-type-dlm_download h1 a.dlm-delete-logs:hover{color:#fff;background:#a00;border-color:#7c0900}.post-type-dlm_download .dlm-page-header{border-bottom:1px solid #ccc;padding:15px 20px;display:flex;justify-content:space-between;background:#fff;width:calc(100% + 20px);box-sizing:border-box;margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links{margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links a span{vertical-align:middle;position:relative;top:-2px;padding-right:10px}.post-type-dlm_download .dlm-page-header .dlm-header-logo img{max-height:35px}.post-type-dlm_download td.column-shortcode .hidden{display:none}#dlm_logs td{padding:7px 7px;vertical-align:middle}#dlm_logs .check-column{width:1%;padding:0;vertical-align:middle}#dlm_logs .column-status{width:2%}#dlm_logs td.column-status{font-size:10px;vertical-align:middle;text-align:center}#dlm_logs td.column-status span{color:#fff;font-weight:400;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;height:18px;line-height:18px;width:18px;display:inline-block;background:url(../images/log-status-icons.png) top left no-repeat}#dlm_logs td.column-status .completed{background-color:#6cc644}#dlm_logs td.column-status .failed{background-color:#bd2c00;background-position-y:-18px}#dlm_logs td.column-status .redirected{background-color:#1c769b;background-position-y:-36px}#dlm_logs td.column-user_agent,#dlm_logs td.column-user_ip{font-family:monospace;font-weight:400}#dlm_logs span.dlm-description{font-weight:400}#dlm_logs .column-download,#dlm_logs .column-file,#dlm_logs .column-user,#dlm_logs .column-user_ua{width:16%!important}#dlm_logs .column-date,#dlm_logs .column-user_ip{width:6%!important}.post-type-dlm_download .inline-edit-row .inline-edit-col-dlm .inline-edit-col-dlm-inner{margin-top:10px}.dlm-settings-sub-nav{margin:0 0 10px 0;width:100%;border-bottom:1px solid #ccc;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-settings-sub-nav li{margin-right:10px;margin-bottom:-2px}.dlm-settings-sub-nav a{padding:13px;display:block}.dlm-settings-sub-nav .active-section{margin-bottom:-2px}.dlm-settings-sub-nav .active-section a{border-bottom:4px solid #000;padding-bottom:9px;margin-bottom:-2px;font-weight:600}.admin-color-blue .dlm-settings-sub-nav .active-section a{border-bottom-color:#096484}.admin-color-coffee .dlm-settings-sub-nav .active-section a{border-bottom-color:#c7a589}.admin-color-ectoplasm .dlm-settings-sub-nav .active-section a{border-bottom-color:#a3b745}.admin-color-midnight .dlm-settings-sub-nav .active-section a{border-bottom-color:#e14d43}.admin-color-ocean .dlm-settings-sub-nav .active-section a{border-bottom-color:#627c83}.admin-color-sunrise .dlm-settings-sub-nav .active-section a{border-bottom-color:#be3631}.admin-color-light .dlm-settings-sub-nav .active-section a{border-bottom-color:#888}.admin-color-evergreen .dlm-settings-sub-nav .active-section a{border-bottom-color:#36533f}.admin-color-mint .dlm-settings-sub-nav .active-section a{border-bottom-color:#4f6d59}.admin-color-modern .dlm-settings-sub-nav .active-section a{border-bottom-color:#3858e9}.dlm-admin-settings #setting-dlm_decimal_separator,.dlm-admin-settings #setting-dlm_thousand_separator{width:50px}.dlm-admin-settings table td{padding:15px 0}.dlm-admin-settings h3{margin:2em 0 0}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px 5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759b;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-locked_download span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-locked_download .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-locked_download{width:3.5em}table.wp-list-table th.column-locked_download span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f160";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-locked_download,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-locked_download span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-locked_download span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-locked_download span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-locked_download span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px 0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{background:#ececec;border:1px solid #ececec;margin:9px 0!important}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-blury:before{content:url(../images/ajax-loader.gif);display:block;position:absolute;top:50%;transform:translateY(-50%);width:100%;left:0;margin:0 auto;color:#cecece;text-align:center;z-index:11;font-size:16px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-blury:after{content:"";display:block;background:rgba(0,0,0,.5);width:100%;top:0;left:0;margin:0 auto;height:100%;z-index:10;position:absolute}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:6px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 button{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{line-height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none!important;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px 6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:first-child h3{background-color:#fafafa;border-bottom:1px solid #dcdcde}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_media_library:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f104";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin-bottom:.5em;margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options p.not-active{opacity:.7}#download-monitor-options .options_upsell_link{color:unset;text-decoration:none}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#insert-download{padding:20px 20px}#insert-download #drag-drop-area,#insert-download #insert-shortcode{margin:1em 0}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em 0;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em 0;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm-code-nginx-rules{display:block}.settings_panel .form-table td{padding-left:0}.settings_panel .dlm-lazy-select-loader{display:inline-block;vertical-align:middle;padding:0 0 0 3px}.settings_panel .dlm-lazy-select-loader img{display:inline-block;height:25px;width:25px;margin-top:1px}.dlm-reports h1 .dlm-reports-actions{float:right}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period,.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher{margin:0 5px;float:left}.dlm-reports h1 .dlm-reports-actions>:last-child{margin-right:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector{position:relative;font-size:14px;padding:0 .5em 0 1em;background:#fff;border:1px solid #ccc;border-radius:3px;user-select:none;cursor:pointer}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm-arrow:before{font-family:dashicons!important;content:"\f140";font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;font-size:1.6em;vertical-align:middle;margin-top:-2px}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay{display:block;width:466px;padding:10px;background:#fff;border:1px solid #ccc;position:absolute;top:30px;right:0;z-index:10;overflow:hidden}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date{font-size:70%;margin-right:5px;float:left;z-index:11}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline{border:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline .ui-state-highlight{background:#e6e6e6 url(../images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;color:#555;border:1px solid #d3d3d3}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline .ui-state-active{border:1px solid #aaa;background:#fff url(../images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline td,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline th{padding:0;margin:0;line-height:2em}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline td a,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline th a{text-align:center!important}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_actions{width:70px;padding-left:10px;text-align:center;float:left}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher{display:block;margin-top:1px;padding-top:4px;color:#23282d;text-decoration:none}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher:before{font-family:dashicons!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;font-size:1.4em}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher.dlm-line:before{content:"\f238"}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher.dlm-bar:before{content:"\f185"}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a{border-color:#ccc!important}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a:first-child{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a:last-child{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.dlm-reports .dlm_reports_loader{position:absolute;width:32px;height:32px;top:50%;left:50%;margin:-16px 0 0 -16px}.dlm-reports .dlm-reports-block-chart{width:100%;height:300px;margin-top:20px;background:#fff;border:1px solid #e5e5e5;overflow:hidden}.dlm-reports .dlm-reports-block-chart .chart-container h6{display:none}.dlm-reports .dlm-reports-block-summary #popular span{line-height:1em}.dlm-reports .dlm-reports-block{position:relative;box-sizing:border-box;width:100%;padding:20px 10px;margin-top:20px;background:#fff;border:1px solid #e5e5e5;overflow:hidden;float:left}.dlm-reports .dlm-reports-block.dlm-reports-block-half{width:49%;margin-right:1%}.dlm-reports .dlm-reports-block.dlm-reports-block-half-right{width:49%;margin-left:1%}.dlm-reports .dlm-reports-block .dlm-reports-placeholder-no-data{display:inline-block;width:100%;font-size:1.5em;color:#b4b9be;font-style:italic;text-align:center}.dlm-reports .dlm-reports-block ul{box-sizing:border-box;width:100%;padding:0;margin:0}.dlm-reports .dlm-reports-block ul li{display:inline-block;width:33%;padding:5px 0}.dlm-reports .dlm-reports-block ul li label,.dlm-reports .dlm-reports-block ul li span{display:block;width:100%;text-align:center}.dlm-reports .dlm-reports-block ul li span{font-size:2.5em;font-weight:700;padding:.5em 0 0}.dlm-reports .dlm-reports-block table{width:100%}.dlm-reports .dlm-reports-block table td,.dlm-reports .dlm-reports-block table th{text-align:center;padding:10px 0;border-bottom:1px solid #e5e5e5}.dlm-reports .dlm-reports-block table td:first-child,.dlm-reports .dlm-reports-block table th:first-child{text-align:left}.dlm-reports .dlm-reports-block table th{padding-bottom:20px}.dlm-reports-block-summary{background:#333!important;color:#fff}.post-type-dlm_product table.wp-list-table .column-title{width:65%!important}.dlm_mb_shop_product_information .dlm_shop_field_row{width:100%;overflow:hidden}.dlm_mb_shop_product_information .dlm_shop_field_row label.dlm_shop_field_label{display:inline-block;width:20%;height:100%;line-height:2.2em;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input{display:inline-block;width:50%;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .dlm_shop_input{width:100%;padding:5px 7px}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection--multiple{border:1px solid #ddd}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search,.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection__choice{margin-bottom:0}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search__field{padding-top:3px}.dlm-order-overview #dlm_empty_trash{margin-left:3px}.dlm-order-overview .wp-list-table td .column-id{width:25%}.dlm-order-details{max-width:1250px;margin-left:auto;margin-right:auto;padding-right:20px}.dlm-order-details h1{padding-bottom:25px}.dlm-order-details .dlm-order-details-main,.dlm-order-details .dlm-order-details-side{width:100%;float:left}.dlm-order-details .dlm-order-details-block{padding:0;margin-bottom:20px;line-height:1;border:1px solid #e5e5e5;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-order-details .dlm-order-details-block h2.dlm-order-details-block-title{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside{margin:6px 0 0 0;padding:6px 12px 12px;line-height:1.4em;font-size:13px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside label{display:block;font-weight:700;padding-bottom:6px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside p{padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul,.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{list-style:none;padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{padding:6px 0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside .dlm-order-details-current-state{width:70%;height:30px}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer .dlm-order-details-customer-image{float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li{margin-bottom:4px;padding:0}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li:first-child{font-weight:700}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items{overflow:hidden}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview{width:25%;float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td,.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{padding-top:1.5em;padding-bottom:1.5em;text-align:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{width:50%;font-weight:400}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td{padding-right:1em;font-weight:700}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table{width:100%}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{text-align:center}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td:first-child,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th:first-child{text-align:left;padding-left:.5em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{padding-top:.5em;padding-bottom:.5em;border-bottom:2px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td{padding-top:1.5em;padding-bottom:1.5em;border-bottom:1px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-details-order-items-item-total,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-details-order-items-item-total{text-align:right;padding-right:1em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:none}.dlm-order-details .dlm-order-details-block .dlm-order-details-update-successful{font-size:2em;padding:.2em .3em;color:#46b450}@media (min-width:768px){.dlm-order-details .dlm-order-details-main{width:62%;float:left}.dlm-order-details .dlm-order-details-side{width:35%;float:right}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:table-cell}}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-one-col{margin:0 auto;max-width:680px}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-cta{margin-top:40px;text-align:center}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col{max-width:680px;margin:40px auto 0;overflow:hidden;display:flex;justify-content:space-between;flex-wrap:wrap}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:2.5em;flex:1;align-self:flex-start;min-width:100%;max-width:100%}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col img{width:100%}.dlm-onboarding .dlm-onboarding-section h2{margin:60px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.dlm-onboarding .dlm-onboarding-section p{max-width:55em;margin:.6em auto 0 auto}.dlm-onboarding .dlm-onboarding-section a.button-hero{height:46px;font-size:14px;line-height:44px;padding:0 36px;font-weight:700;text-align:center}.dlm-onboarding .dlm-onboarding-pages{max-width:55em;margin:0 auto;padding:2em 0 0}.dlm-onboarding .dlm-onboarding-pages a.button-hero{width:170px}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists{background:#46b450;border-color:#46b450 #4a8442 #467a3f;box-shadow:0 2px 0 #467a3f;text-shadow:0 -1px 1px #4a8442,1px 0 1px #4a8442,0 1px 1px #4a8442,-1px 0 1px #4a8442}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists:active{box-shadow:0 2px 0 #467a3f}.dlm-onboarding .dlm-onboarding-pages td,.dlm-onboarding .dlm-onboarding-pages th{padding:1em 0;border-bottom:1px solid #ccc}.dlm-onboarding .dlm-onboarding-pages th{width:13%;min-width:6em;text-align:left}.dlm-onboarding .dlm-onboarding-pages td{padding-right:.5em;padding-left:.5em}.dlm-onboarding .dlm-onboarding-pages td.dlm-onboarding-pages-page-title{font-weight:700}@media (min-width:768px){.dlm-onboarding .dlm-onboarding-section .dlm-onboarding-pages{width:55em}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:0;min-width:31%;max-width:31%}}.dlm_extensions_wrap a.dlm-reload-button{float:right;position:relative;top:-40px}.dlm_extensions_wrap #available-extensions{clear:both}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions .dlm_extension{background-color:#fff;width:calc(20% - 15px);margin:0 15px 15px 0;display:inline-block;vertical-align:top}.dlm_extensions_wrap .dlm_extensions .dlm_extension p{margin:0}.dlm_extensions_wrap .dlm_extensions .dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419ccb;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions .dlm_extension h3{padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension div.extension-desc{min-height:120px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer{padding:15px 15px 15px 0;text-align:right;background-color:#fafafa;border-top:1px solid #dcdcde}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .button .dashicons{vertical-align:middle;font-size:16px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error{padding:.5em;margin-bottom:15px;background:#ffffe0}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error a{color:#00f;text-decoration:underline}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}#ui-datepicker-div{display:none}.wpchill-upsell{background:#fff;border:0;padding:15px;margin-top:30px}.wpchill-upsell .wpchill-upsell-features{text-align:left;display:flex;flex-wrap:wrap;padding:20px 0}.wpchill-upsell .wpchill-upsell-features li{width:33%}.wpchill-upsell a:first-child{margin-right:10px}.wpchill-upsells-wrapper{width:100%}.wrap.dlm-admin-settings .form-table{width:65%;float:left}.wrap.dlm-admin-settings .form-table+.wpchill-upsells-wrapper{width:30%;float:right}.wrap.dlm-admin-settings .form-table .dlm_htaccess_notice{margin-bottom:5px}.wrap.dlm-admin-settings .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:10px;border-radius:10px}#total_downloads_browser_table a.nav-tab{text-transform:capitalize}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{display:flex;flex-wrap:wrap;background:#f1f1f1}#dlm-amazon-s3-upsell .inside .wpchill-upsell,#dlm-buttons-upsell .inside .wpchill-upsell,#dlm-download-page-upsell .inside .wpchill-upsell,#dlm-google-drive-upsell .inside .wpchill-upsell{background:0 0;text-align:center;width:100%;margin-top:0}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{margin:0;padding:0}.upsells-columns{display:flex;flex-wrap:wrap;align-items:center;align-content:center}.upsells-columns .upsells-columns-2{width:50%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column{width:100%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column>*{display:inline-block;align-content:center;vertical-align:middle;margin:0 15px;padding:10px 0}.upsells-columns .upsells-column>.wpchill-upsell{position:relative;float:none;flex-grow:1;display:flex;align-items:center}.upsells-columns .upsells-column>.wpchill-upsell .wpchill-upsell-description{margin:0 auto}.upsells-columns .upsells-column h3{line-height:1.3em}.upsells-columns .upsells-column:last-child{border-top:1px solid #c3c4c7;border-bottom:1px solid #c3c4c7}.upsells-columns .wpchill-upsell{margin-top:0}.dlm_download_page_dlm-extensions .theme.dlm_extension{background-color:#fff}body.rsvp_page_rsvp-upgrade-to-pro #wpcontent .wrap{margin-left:0;max-width:85%}.rsvp-lite-vs-premium,.rsvp-lite-vs-premium p{font-size:14px;margin:0}.rsvp-lite-vs-premium>.wpchill-plans-table.wpchill-highlight>.wpchill-pricing-package{background:#fefff0;box-shadow:0 0 15px rgb(208 219 219)}.rsvp-lite-vs-premium .wp-badge{display:inline-block;vertical-align:middle;position:relative;margin-right:2.5%}.rsvp-lite-vs-premium h3{display:block;position:relative;font-size:16px;margin:0}.rsvp-lite-vs-premium .wpchill-plans-table{display:flex}.rsvp-lite-vs-premium .wpchill-plans-table.table-header{margin-top:50px;border-top:0}.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package{border:0}.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package.wpchill-title.wpchill-highlight::before,.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package:not(.wpchill-modula-lite):last-child:before{content:'';width:auto;display:inline-block;opacity:1;position:absolute;top:-1px;background:#41495b;text-align:center;left:0;right:0;color:#fff;font-size:15px;text-transform:uppercase;padding:10px 5px;transform:translateY(-100%)}.rsvp-lite-vs-premium.table-footer .wpchill-pricing-package:last-child{border:0}.rsvp-lite-vs-premium .wpchill-pricing-package{text-align:center;line-height:1.5;padding:10px 15px;display:flex;align-content:center;align-items:center;justify-content:center;background:#fff;border-top:1px solid #ccc;width:32%}.rsvp-lite-vs-premium .wpchill-pricing-package:not(:first-child){max-width:300px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title{font-weight:400;color:#666;font-size:1.25rem;height:auto;-ms-flex-direction:column;flex-direction:column;padding-top:30px;padding-bottom:30px;justify-content:space-between;position:relative}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-name{margin:0;font-size:36px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title.wpchill-modula-lite{justify-content:center}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title p.description{font-style:italic;font-size:13px;margin-bottom:40px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p:last-child{font-size:30px;margin:0 0 40px 0}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price{margin:0;position:relative}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price:after{content:"";height:2px;width:60px;background:red;display:block;position:absolute;left:50%;top:52%;transform:translate(-50%,-50%)}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price sup{top:2px;position:relative;font-size:15px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-empty{background:0 0;border-color:transparent}.rsvp-lite-vs-premium .wpchill-pricing-package.feature-name{justify-content:space-between;font-weight:400;text-align:left;font-size:13px;display:block;background:0 0}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons-saved{color:green}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons{width:30px;height:30px;font-size:30px}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons-no-alt{color:#ff3439}.rsvp-lite-vs-premium .wpchill-pricing-package:last-child{background:#fefff0}.rsvp-lite-vs-premium .button .dashicons{font-size:16px;vertical-align:middle;line-height:26px}.wpchill-tooltip{position:relative;display:inline-block;float:left;margin-right:10px}.wpchill-tooltip>span{cursor:pointer;color:#0073aa;text-decoration:underline;margin-left:5px}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip-button{position:relative}.wpchill-tooltip-button .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:25px;transform:translate(50%,-135%);width:auto;background:rgba(0,0,0,.8);color:#fff;padding:10px 15px;box-sizing:border-box;font-size:14px;z-index:99}.wpchill-tooltip-button:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip-button .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;bottom:-12px;left:50%;transform:rotate(-90deg)}.dlm-file-link{display:block;margin-top:3px}
|
1 |
+
.post-type-dlm_download h1 a.dlm-delete-logs{color:#a00}.post-type-dlm_download h1 a.dlm-delete-logs:hover{color:#fff;background:#a00;border-color:#7c0900}.post-type-dlm_download .dlm-page-header{border-bottom:1px solid #ccc;padding:15px 20px;display:flex;justify-content:space-between;background:#fff;width:calc(100% + 20px);box-sizing:border-box;margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links{margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links a span{vertical-align:middle;position:relative;top:-2px;padding-right:10px}.post-type-dlm_download .dlm-page-header .dlm-header-logo img{max-height:35px}.post-type-dlm_download td.column-shortcode .hidden{display:none}#dlm_logs td{padding:7px 7px;vertical-align:middle}#dlm_logs .check-column{width:1%;padding:0;vertical-align:middle}#dlm_logs .column-status{width:2%}#dlm_logs td.column-status{font-size:10px;vertical-align:middle;text-align:center}#dlm_logs td.column-status span{color:#fff;font-weight:400;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;height:18px;line-height:18px;width:18px;display:inline-block;background:url(../images/log-status-icons.png) top left no-repeat}#dlm_logs td.column-status .completed{background-color:#6cc644}#dlm_logs td.column-status .failed{background-color:#bd2c00;background-position-y:-18px}#dlm_logs td.column-status .redirected{background-color:#1c769b;background-position-y:-36px}#dlm_logs td.column-user_agent,#dlm_logs td.column-user_ip{font-family:monospace;font-weight:400}#dlm_logs span.dlm-description{font-weight:400}#dlm_logs .column-download,#dlm_logs .column-file,#dlm_logs .column-user,#dlm_logs .column-user_ua{width:16%!important}#dlm_logs .column-date,#dlm_logs .column-user_ip{width:6%!important}.post-type-dlm_download .inline-edit-row .inline-edit-col-dlm .inline-edit-col-dlm-inner{margin-top:10px}.dlm-settings-sub-nav{margin:0 0 10px 0;width:100%;border-bottom:1px solid #ccc;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-settings-sub-nav li{margin-right:10px;margin-bottom:-2px}.dlm-settings-sub-nav a{padding:13px;display:block}.dlm-settings-sub-nav .active-section{margin-bottom:-2px}.dlm-settings-sub-nav .active-section a{border-bottom:4px solid #000;padding-bottom:9px;margin-bottom:-2px;font-weight:600}.admin-color-blue .dlm-settings-sub-nav .active-section a{border-bottom-color:#096484}.admin-color-coffee .dlm-settings-sub-nav .active-section a{border-bottom-color:#c7a589}.admin-color-ectoplasm .dlm-settings-sub-nav .active-section a{border-bottom-color:#a3b745}.admin-color-midnight .dlm-settings-sub-nav .active-section a{border-bottom-color:#e14d43}.admin-color-ocean .dlm-settings-sub-nav .active-section a{border-bottom-color:#627c83}.admin-color-sunrise .dlm-settings-sub-nav .active-section a{border-bottom-color:#be3631}.admin-color-light .dlm-settings-sub-nav .active-section a{border-bottom-color:#888}.admin-color-evergreen .dlm-settings-sub-nav .active-section a{border-bottom-color:#36533f}.admin-color-mint .dlm-settings-sub-nav .active-section a{border-bottom-color:#4f6d59}.admin-color-modern .dlm-settings-sub-nav .active-section a{border-bottom-color:#3858e9}.dlm-admin-settings #setting-dlm_decimal_separator,.dlm-admin-settings #setting-dlm_thousand_separator{width:50px}.dlm-admin-settings table td{padding:15px 0}.dlm-admin-settings h3{margin:2em 0 0}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px 5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759b;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-locked_download span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-locked_download .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-locked_download{width:3.5em}table.wp-list-table th.column-locked_download span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f160";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-locked_download,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-locked_download span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-locked_download span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-locked_download span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-locked_download span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px 0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{background:#ececec;border:1px solid #ececec;margin:9px 0!important}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-blury:before{content:url(../images/ajax-loader.gif);display:block;position:absolute;top:50%;transform:translateY(-50%);width:100%;left:0;margin:0 auto;color:#cecece;text-align:center;z-index:11;font-size:16px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-blury:after{content:"";display:block;background:rgba(0,0,0,.5);width:100%;top:0;left:0;margin:0 auto;height:100%;z-index:10;position:absolute}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:6px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 button{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{line-height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none!important;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px 6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:first-child h3{background-color:#fafafa;border-bottom:1px solid #dcdcde}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_media_library:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f104";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-product-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-product-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin-bottom:.5em;margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options p.not-active{opacity:.7}#download-monitor-options .options_upsell_link{color:unset;text-decoration:none}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#insert-download{padding:20px 20px}#insert-download #drag-drop-area,#insert-download #insert-shortcode{margin:1em 0}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em 0;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em 0;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm-code-nginx-rules{display:block}.settings_panel .form-table td{padding-left:0}.settings_panel .dlm-lazy-select-loader{display:inline-block;vertical-align:middle;padding:0 0 0 3px}.settings_panel .dlm-lazy-select-loader img{display:inline-block;height:25px;width:25px;margin-top:1px}.dlm-reports h1 .dlm-reports-actions{float:right}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period,.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher{margin:0 5px;float:left}.dlm-reports h1 .dlm-reports-actions>:last-child{margin-right:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector{position:relative;font-size:14px;padding:0 .5em 0 1em;background:#fff;border:1px solid #ccc;border-radius:3px;user-select:none;cursor:pointer}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm-arrow:before{font-family:dashicons!important;content:"\f140";font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;font-size:1.6em;vertical-align:middle;margin-top:-2px}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay{display:block;width:466px;padding:10px;background:#fff;border:1px solid #ccc;position:absolute;top:30px;right:0;z-index:10;overflow:hidden}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date{font-size:70%;margin-right:5px;float:left;z-index:11}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline{border:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline .ui-state-highlight{background:#e6e6e6 url(../images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;color:#555;border:1px solid #d3d3d3}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline .ui-state-active{border:1px solid #aaa;background:#fff url(../images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline td,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline th{padding:0;margin:0;line-height:2em}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline td a,.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_date .ui-datepicker-inline th a{text-align:center!important}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .dlm_rdrs_actions{width:70px;padding-left:10px;text-align:center;float:left}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher{display:block;margin-top:1px;padding-top:4px;color:#23282d;text-decoration:none}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher:before{font-family:dashicons!important;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;font-size:1.4em}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher.dlm-line:before{content:"\f238"}.dlm-reports h1 .dlm-reports-actions a.dlm-reports-header-chart-switcher.dlm-bar:before{content:"\f185"}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a{border-color:#ccc!important}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a:first-child{border-bottom-right-radius:0;border-top-right-radius:0;border-right:0}.dlm-reports h1 .dlm-reports-actions .dlm-reports-header-period a:last-child{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0}.dlm-reports .dlm_reports_loader{position:absolute;width:32px;height:32px;top:50%;left:50%;margin:-16px 0 0 -16px}.dlm-reports .dlm-reports-block-chart{width:100%;height:300px;margin-top:20px;background:#fff;border:1px solid #e5e5e5;overflow:hidden}.dlm-reports .dlm-reports-block-chart .chart-container h6{display:none}.dlm-reports .dlm-reports-block-summary #popular span{line-height:1em}.dlm-reports .dlm-reports-block{position:relative;box-sizing:border-box;width:100%;padding:20px 10px;margin-top:20px;background:#fff;border:1px solid #e5e5e5;overflow:hidden;float:left}.dlm-reports .dlm-reports-block.dlm-reports-block-half{width:49%;margin-right:1%}.dlm-reports .dlm-reports-block.dlm-reports-block-half-right{width:49%;margin-left:1%}.dlm-reports .dlm-reports-block .dlm-reports-placeholder-no-data{display:inline-block;width:100%;font-size:1.5em;color:#b4b9be;font-style:italic;text-align:center}.dlm-reports .dlm-reports-block ul{box-sizing:border-box;width:100%;padding:0;margin:0}.dlm-reports .dlm-reports-block ul li{display:inline-block;width:33%;padding:5px 0}.dlm-reports .dlm-reports-block ul li label,.dlm-reports .dlm-reports-block ul li span{display:block;width:100%;text-align:center}.dlm-reports .dlm-reports-block ul li span{font-size:2.5em;font-weight:700;padding:.5em 0 0}.dlm-reports .dlm-reports-block table{width:100%}.dlm-reports .dlm-reports-block table td,.dlm-reports .dlm-reports-block table th{text-align:center;padding:10px 0;border-bottom:1px solid #e5e5e5}.dlm-reports .dlm-reports-block table td:first-child,.dlm-reports .dlm-reports-block table th:first-child{text-align:left}.dlm-reports .dlm-reports-block table th{padding-bottom:20px}.dlm-reports-block-summary{background:#333!important;color:#fff}.post-type-dlm_product table.wp-list-table .column-title{width:65%!important}.dlm_mb_shop_product_information .dlm_shop_field_row{width:100%;overflow:hidden}.dlm_mb_shop_product_information .dlm_shop_field_row label.dlm_shop_field_label{display:inline-block;width:20%;height:100%;line-height:2.2em;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input{display:inline-block;width:50%;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .dlm_shop_input{width:100%;padding:5px 7px}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection--multiple{border:1px solid #ddd}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search,.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection__choice{margin-bottom:0}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search__field{padding-top:3px}.dlm-order-overview #dlm_empty_trash{margin-left:3px}.dlm-order-overview .wp-list-table td .column-id{width:25%}.dlm-order-details{max-width:1250px;margin-left:auto;margin-right:auto;padding-right:20px}.dlm-order-details h1{padding-bottom:25px}.dlm-order-details .dlm-order-details-main,.dlm-order-details .dlm-order-details-side{width:100%;float:left}.dlm-order-details .dlm-order-details-block{padding:0;margin-bottom:20px;line-height:1;border:1px solid #e5e5e5;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-order-details .dlm-order-details-block h2.dlm-order-details-block-title{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside{margin:6px 0 0 0;padding:6px 12px 12px;line-height:1.4em;font-size:13px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside label{display:block;font-weight:700;padding-bottom:6px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside p{padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul,.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{list-style:none;padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{padding:6px 0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside .dlm-order-details-current-state{width:70%;height:30px}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer .dlm-order-details-customer-image{float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li{margin-bottom:4px;padding:0}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li:first-child{font-weight:700}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items{overflow:hidden}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview{width:25%;float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td,.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{padding-top:1.5em;padding-bottom:1.5em;text-align:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{width:50%;font-weight:400}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td{padding-right:1em;font-weight:700}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table{width:100%}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{text-align:center}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td:first-child,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th:first-child{text-align:left;padding-left:.5em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{padding-top:.5em;padding-bottom:.5em;border-bottom:2px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td{padding-top:1.5em;padding-bottom:1.5em;border-bottom:1px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-details-order-items-item-total,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-details-order-items-item-total{text-align:right;padding-right:1em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:none}.dlm-order-details .dlm-order-details-block .dlm-order-details-update-successful{font-size:2em;padding:.2em .3em;color:#46b450}@media (min-width:768px){.dlm-order-details .dlm-order-details-main{width:62%;float:left}.dlm-order-details .dlm-order-details-side{width:35%;float:right}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:table-cell}}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-one-col{margin:0 auto;max-width:680px}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-cta{margin-top:40px;text-align:center}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col{max-width:680px;margin:40px auto 0;overflow:hidden;display:flex;justify-content:space-between;flex-wrap:wrap}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:2.5em;flex:1;align-self:flex-start;min-width:100%;max-width:100%}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col img{width:100%}.dlm-onboarding .dlm-onboarding-section h2{margin:60px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.dlm-onboarding .dlm-onboarding-section p{max-width:55em;margin:.6em auto 0 auto}.dlm-onboarding .dlm-onboarding-section a.button-hero{height:46px;font-size:14px;line-height:44px;padding:0 36px;font-weight:700;text-align:center}.dlm-onboarding .dlm-onboarding-pages{max-width:55em;margin:0 auto;padding:2em 0 0}.dlm-onboarding .dlm-onboarding-pages a.button-hero{width:170px}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists{background:#46b450;border-color:#46b450 #4a8442 #467a3f;box-shadow:0 2px 0 #467a3f;text-shadow:0 -1px 1px #4a8442,1px 0 1px #4a8442,0 1px 1px #4a8442,-1px 0 1px #4a8442}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists:active{box-shadow:0 2px 0 #467a3f}.dlm-onboarding .dlm-onboarding-pages td,.dlm-onboarding .dlm-onboarding-pages th{padding:1em 0;border-bottom:1px solid #ccc}.dlm-onboarding .dlm-onboarding-pages th{width:13%;min-width:6em;text-align:left}.dlm-onboarding .dlm-onboarding-pages td{padding-right:.5em;padding-left:.5em}.dlm-onboarding .dlm-onboarding-pages td.dlm-onboarding-pages-page-title{font-weight:700}@media (min-width:768px){.dlm-onboarding .dlm-onboarding-section .dlm-onboarding-pages{width:55em}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:0;min-width:31%;max-width:31%}}.dlm_extensions_wrap a.dlm-reload-button{float:right;position:relative;top:-40px}.dlm_extensions_wrap #available-extensions{clear:both}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions .dlm_extension{background-color:#fff;width:calc(20% - 15px);margin:0 15px 15px 0;display:inline-block;vertical-align:top}.dlm_extensions_wrap .dlm_extensions .dlm_extension p{margin:0}.dlm_extensions_wrap .dlm_extensions .dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419ccb;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions .dlm_extension h3{padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension div.extension-desc{min-height:120px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer{padding:15px 15px 15px 0;text-align:right;background-color:#fafafa;border-top:1px solid #dcdcde}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .button .dashicons{vertical-align:middle;font-size:16px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error{padding:.5em;margin-bottom:15px;background:#ffffe0}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error a{color:#00f;text-decoration:underline}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}#ui-datepicker-div{display:none}.wpchill-upsell{background:#fff;border:0;padding:15px;margin-top:30px}.wpchill-upsell .wpchill-upsell-features{text-align:left;display:flex;flex-wrap:wrap;padding:20px 0}.wpchill-upsell .wpchill-upsell-features li{width:33%}.wpchill-upsell a:first-child{margin-right:10px}.wpchill-upsells-wrapper{width:100%}.wrap.dlm-admin-settings .form-table{width:65%;float:left}.wrap.dlm-admin-settings .form-table+.wpchill-upsells-wrapper{width:30%;float:right}.wrap.dlm-admin-settings .form-table .dlm_htaccess_notice{margin-bottom:5px}.wrap.dlm-admin-settings .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:10px;border-radius:10px}#total_downloads_browser_table a.nav-tab{text-transform:capitalize}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{display:flex;flex-wrap:wrap;background:#f1f1f1}#dlm-amazon-s3-upsell .inside .wpchill-upsell,#dlm-buttons-upsell .inside .wpchill-upsell,#dlm-download-page-upsell .inside .wpchill-upsell,#dlm-google-drive-upsell .inside .wpchill-upsell{background:0 0;text-align:center;width:100%;margin-top:0}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{margin:0;padding:0}.upsells-columns{display:flex;flex-wrap:wrap;align-items:center;align-content:center}.upsells-columns .upsells-columns-2{width:50%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column{width:100%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column>*{display:inline-block;align-content:center;vertical-align:middle;margin:0 15px;padding:10px 0}.upsells-columns .upsells-column>.wpchill-upsell{position:relative;float:none;flex-grow:1;display:flex;align-items:center}.upsells-columns .upsells-column>.wpchill-upsell .wpchill-upsell-description{margin:0 auto}.upsells-columns .upsells-column h3{line-height:1.3em}.upsells-columns .upsells-column:last-child{border-top:1px solid #c3c4c7;border-bottom:1px solid #c3c4c7}.upsells-columns .wpchill-upsell{margin-top:0}.dlm_download_page_dlm-extensions .theme.dlm_extension{background-color:#fff}body.rsvp_page_rsvp-upgrade-to-pro #wpcontent .wrap{margin-left:0;max-width:85%}.rsvp-lite-vs-premium,.rsvp-lite-vs-premium p{font-size:14px;margin:0}.rsvp-lite-vs-premium>.wpchill-plans-table.wpchill-highlight>.wpchill-pricing-package{background:#fefff0;box-shadow:0 0 15px rgb(208 219 219)}.rsvp-lite-vs-premium .wp-badge{display:inline-block;vertical-align:middle;position:relative;margin-right:2.5%}.rsvp-lite-vs-premium h3{display:block;position:relative;font-size:16px;margin:0}.rsvp-lite-vs-premium .wpchill-plans-table{display:flex}.rsvp-lite-vs-premium .wpchill-plans-table.table-header{margin-top:50px;border-top:0}.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package{border:0}.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package.wpchill-title.wpchill-highlight::before,.rsvp-lite-vs-premium .wpchill-plans-table.table-header .wpchill-pricing-package:not(.wpchill-modula-lite):last-child:before{content:'';width:auto;display:inline-block;opacity:1;position:absolute;top:-1px;background:#41495b;text-align:center;left:0;right:0;color:#fff;font-size:15px;text-transform:uppercase;padding:10px 5px;transform:translateY(-100%)}.rsvp-lite-vs-premium.table-footer .wpchill-pricing-package:last-child{border:0}.rsvp-lite-vs-premium .wpchill-pricing-package{text-align:center;line-height:1.5;padding:10px 15px;display:flex;align-content:center;align-items:center;justify-content:center;background:#fff;border-top:1px solid #ccc;width:32%}.rsvp-lite-vs-premium .wpchill-pricing-package:not(:first-child){max-width:300px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title{font-weight:400;color:#666;font-size:1.25rem;height:auto;-ms-flex-direction:column;flex-direction:column;padding-top:30px;padding-bottom:30px;justify-content:space-between;position:relative}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-name{margin:0;font-size:36px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title.wpchill-modula-lite{justify-content:center}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title p.description{font-style:italic;font-size:13px;margin-bottom:40px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p:last-child{font-size:30px;margin:0 0 40px 0}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price{margin:0;position:relative}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price:after{content:"";height:2px;width:60px;background:red;display:block;position:absolute;left:50%;top:52%;transform:translate(-50%,-50%)}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-title .wpchill-price sup{top:2px;position:relative;font-size:15px}.rsvp-lite-vs-premium .wpchill-pricing-package.wpchill-empty{background:0 0;border-color:transparent}.rsvp-lite-vs-premium .wpchill-pricing-package.feature-name{justify-content:space-between;font-weight:400;text-align:left;font-size:13px;display:block;background:0 0}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons-saved{color:green}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons{width:30px;height:30px;font-size:30px}.rsvp-lite-vs-premium .wpchill-pricing-package .dashicons-no-alt{color:#ff3439}.rsvp-lite-vs-premium .wpchill-pricing-package:last-child{background:#fefff0}.rsvp-lite-vs-premium .button .dashicons{font-size:16px;vertical-align:middle;line-height:26px}.wpchill-tooltip{position:relative;display:inline-block;float:left;margin-right:10px}.wpchill-tooltip>span{cursor:pointer;color:#0073aa;text-decoration:underline;margin-left:5px}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip-button{position:relative}.wpchill-tooltip-button .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:25px;transform:translate(50%,-135%);width:auto;background:rgba(0,0,0,.8);color:#fff;padding:10px 15px;box-sizing:border-box;font-size:14px;z-index:99}.wpchill-tooltip-button:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip-button .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;bottom:-12px;left:50%;transform:rotate(-90deg)}.dlm-file-link{display:block;margin-top:3px}
|
assets/css/admin.less
CHANGED
@@ -824,6 +824,28 @@ table.wp-list-table {
|
|
824 |
}
|
825 |
}
|
826 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
827 |
|
828 |
#download-monitor-options {
|
829 |
.inside {
|
824 |
}
|
825 |
}
|
826 |
}
|
827 |
+
#download-monitor-product-information {
|
828 |
+
.dlm_information_panel {
|
829 |
+
div {
|
830 |
+
p {
|
831 |
+
overflow: hidden;
|
832 |
+
width: 100%;
|
833 |
+
font-weight: bold;
|
834 |
+
box-sizing: border-box;
|
835 |
+
line-height: 28px;
|
836 |
+
margin-bottom: 5px;
|
837 |
+
}
|
838 |
+
}
|
839 |
+
|
840 |
+
input {
|
841 |
+
margin: 0;
|
842 |
+
border-top-right-radius: 0;
|
843 |
+
border-bottom-right-radius: 0;
|
844 |
+
flex-grow: 1;
|
845 |
+
width: calc(100% - 45px);
|
846 |
+
}
|
847 |
+
}
|
848 |
+
}
|
849 |
|
850 |
#download-monitor-options {
|
851 |
.inside {
|
assets/images/Sebastian-Herrmann.jpeg
ADDED
Binary file
|
assets/images/banner-dlm.png
ADDED
Binary file
|
assets/images/carlos-espinosa.jpeg
ADDED
Binary file
|
assets/images/features/content-grouping.png
ADDED
Binary file
|
assets/images/features/customisable-endpoints.png
ADDED
Binary file
|
assets/images/features/data-importing-exporting.png
ADDED
Binary file
|
assets/images/features/downloading-page.png
ADDED
Binary file
|
assets/images/features/easy-duplication.png
ADDED
Binary file
|
assets/images/features/enforce-download-limits.png
ADDED
Binary file
|
assets/images/features/gated-content.png
ADDED
Binary file
|
assets/images/features/instant-notifications.png
ADDED
Binary file
|
assets/images/features/link-downloads-from-cloud.png
ADDED
Binary file
|
assets/images/features/monetize-your-downloads.png
ADDED
Binary file
|
assets/images/features/page-addon.png
ADDED
Binary file
|
assets/images/features/spam-protection.png
ADDED
Binary file
|
assets/images/features/track-your-content.png
ADDED
Binary file
|
assets/js/edit-product.min.js
DELETED
File without changes
|
assets/js/shop/edit-product.js
CHANGED
@@ -1,3 +1,14 @@
|
|
1 |
jQuery( function ( $ ) {
|
2 |
$('.dlm-select-ext').select2();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
});
|
1 |
jQuery( function ( $ ) {
|
2 |
$('.dlm-select-ext').select2();
|
3 |
+
|
4 |
+
// Copy button functionality
|
5 |
+
$('.copy-dlm-button').click(function(e) {
|
6 |
+
e.preventDefault();
|
7 |
+
var dlm_input = $(this).parent().find('input');
|
8 |
+
dlm_input.focus();
|
9 |
+
dlm_input.select();
|
10 |
+
document.execCommand('copy');
|
11 |
+
$(this).next('span').text( $(this).data('item') + ' copied');
|
12 |
+
$('.copy-dlm-button').not($(this)).parent().find('span').text('');
|
13 |
+
});
|
14 |
});
|
assets/js/shop/edit-product.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(e){e(".dlm-select-ext").select2()});
|
1 |
+
jQuery(function(e){e(".dlm-select-ext").select2(),e(".copy-dlm-button").click(function(t){t.preventDefault();t=e(this).parent().find("input");t.focus(),t.select(),document.execCommand("copy"),e(this).next("span").text(e(this).data("item")+" copied"),e(".copy-dlm-button").not(e(this)).parent().find("span").text("")})});
|
assets/js/shop/product-script.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( function ( $ ) {
|
2 |
+
// Copy shortcode functionality
|
3 |
+
$('.copy-dlm-shortcode').click( (e) => {
|
4 |
+
e.preventDefault();
|
5 |
+
|
6 |
+
const target = $(e.currentTarget);
|
7 |
+
const dlm_shortcode = target.find('input');
|
8 |
+
navigator.clipboard.writeText(dlm_shortcode.val());
|
9 |
+
target.find('.wpchill-tooltip-content span').text(dlm_product_overview.shortcode_copied);
|
10 |
+
setTimeout(() => {
|
11 |
+
target.find('.wpchill-tooltip-content span').text(dlm_product_overview.copy_shortcode);
|
12 |
+
}, 1000);
|
13 |
+
});
|
14 |
+
});
|
assets/js/shop/product-script.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(c){c(".copy-dlm-shortcode").click(t=>{t.preventDefault();const o=c(t.currentTarget),e=o.find("input");navigator.clipboard.writeText(e.val()),o.find(".wpchill-tooltip-content span").text(dlm_product_overview.shortcode_copied),setTimeout(()=>{o.find(".wpchill-tooltip-content span").text(dlm_product_overview.copy_shortcode)},1e3)})});
|
changelog.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 4.5.8 - 28.03.2022 =
|
2 |
Fixed: Upgrade to PRO now disappears when all extensions installed ( https://github.com/WPChill/download-monitor/issues/875 )
|
3 |
|
1 |
+
= 4.5.9 - 05.04.2022 =
|
2 |
+
Fixed: Security issues regarding file downloads and download titles
|
3 |
+
Added: Option to not count admin downloads. ( https://github.com/WPChill/download-monitor/issues/854 )
|
4 |
+
Added: No-index/no-follow header for redirect to file option ( https://github.com/WPChill/download-monitor/issues/879 )
|
5 |
+
Added: Welcome banner on activation ( https://github.com/WPChill/download-monitor/issues/874 )
|
6 |
+
Added: Robots.txt generation/protection setting ( https://github.com/WPChill/download-monitor/issues/878 )
|
7 |
+
Added: Metabox and shortcode column for products ( https://github.com/WPChill/download-monitor/issues/866 )
|
8 |
+
Fixed: Error downloading files if the files have been modified directly using a File Manager and the Download has not been updated ( https://github.com/WPChill/download-monitor/issues/860 )
|
9 |
+
Fixed: Polyfill DateTimeImmutable __set_state array initialization
|
10 |
+
|
11 |
= 4.5.8 - 28.03.2022 =
|
12 |
Fixed: Upgrade to PRO now disappears when all extensions installed ( https://github.com/WPChill/download-monitor/issues/875 )
|
13 |
|
download-monitor.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Download Monitor
|
4 |
Plugin URI: https://www.download-monitor.com
|
5 |
Description: A full solution for managing and selling downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
|
6 |
-
Version: 4.5.
|
7 |
Author: WPChill
|
8 |
Author URI: https://wpchill.com
|
9 |
Requires at least: 5.4
|
@@ -33,7 +33,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
33 |
} // Exit if accessed directly
|
34 |
|
35 |
// Define DLM Version
|
36 |
-
define( 'DLM_VERSION', '4.5.
|
37 |
|
38 |
// Define DLM FILE
|
39 |
define( 'DLM_PLUGIN_FILE', __FILE__ );
|
3 |
Plugin Name: Download Monitor
|
4 |
Plugin URI: https://www.download-monitor.com
|
5 |
Description: A full solution for managing and selling downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
|
6 |
+
Version: 4.5.9
|
7 |
Author: WPChill
|
8 |
Author URI: https://wpchill.com
|
9 |
Requires at least: 5.4
|
33 |
} // Exit if accessed directly
|
34 |
|
35 |
// Define DLM Version
|
36 |
+
define( 'DLM_VERSION', '4.5.9' );
|
37 |
|
38 |
// Define DLM FILE
|
39 |
define( 'DLM_PLUGIN_FILE', __FILE__ );
|
includes/admin/class-dlm-welcome.php
ADDED
@@ -0,0 +1,195 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* The welcome page shown on fresh installs
|
5 |
+
*/
|
6 |
+
class DLM_Welcome_Page {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Holds the class object.
|
10 |
+
*
|
11 |
+
* @since 4.5.9
|
12 |
+
*
|
13 |
+
* @var object
|
14 |
+
*/
|
15 |
+
public static $instance;
|
16 |
+
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Primary class constructor.
|
20 |
+
*
|
21 |
+
* @since 4.5.9
|
22 |
+
*/
|
23 |
+
private function __construct() {
|
24 |
+
|
25 |
+
add_filter( 'dlm_admin_menu_links', array( $this, 'dlm_about_menu' ) );
|
26 |
+
add_filter( 'submenu_file', array( $this, 'remove_about_submenu_item' ) );
|
27 |
+
add_action( 'dlm_after_install_setup', array( $this, 'dlm_on_activation' ), 15 );
|
28 |
+
}
|
29 |
+
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Add the About submenu
|
33 |
+
*
|
34 |
+
* @param $links
|
35 |
+
*
|
36 |
+
* @return mixed
|
37 |
+
* @since 4.5.9
|
38 |
+
*/
|
39 |
+
public function dlm_about_menu( $links ) {
|
40 |
+
|
41 |
+
// Register the hidden submenu.
|
42 |
+
$links[] = array(
|
43 |
+
'page_title' => esc_html__( 'About', 'download-monitor' ),
|
44 |
+
'menu_title' => esc_html__( 'About', 'download-monitor' ),
|
45 |
+
'capability' => 'manage_options',
|
46 |
+
'menu_slug' => 'download-monitor-about-page',
|
47 |
+
'function' => array( $this, 'about_page' ),
|
48 |
+
'priority' => 45,
|
49 |
+
);
|
50 |
+
|
51 |
+
return $links;
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* @param $submenu_file
|
56 |
+
* @return mixed
|
57 |
+
*
|
58 |
+
* Remove the About submenu
|
59 |
+
*/
|
60 |
+
public function remove_about_submenu_item( $submenu_file ) {
|
61 |
+
|
62 |
+
remove_submenu_page( 'edit.php?post_type=dlm_download', 'download-monitor-about-page' );
|
63 |
+
|
64 |
+
return $submenu_file;
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Returns the singleton instance of the class.
|
70 |
+
*
|
71 |
+
* @return object The DLM_Welcome_Page object.
|
72 |
+
* @since 4.5.9
|
73 |
+
*/
|
74 |
+
public static function get_instance() {
|
75 |
+
|
76 |
+
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof DLM_Welcome_Page ) ) {
|
77 |
+
self::$instance = new DLM_Welcome_Page();
|
78 |
+
}
|
79 |
+
|
80 |
+
return self::$instance;
|
81 |
+
}
|
82 |
+
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Add activation hook. Need to be this way so that the About page can be created and accessed
|
86 |
+
*
|
87 |
+
* @param $first_install
|
88 |
+
* @since 4.5.9
|
89 |
+
*/
|
90 |
+
public function dlm_on_activation( $first_install ) {
|
91 |
+
|
92 |
+
if ( $first_install ) {
|
93 |
+
add_action( 'activated_plugin', array( $this, 'redirect_on_activation' ) );
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Redirect to About page when activated
|
99 |
+
*
|
100 |
+
* @param $plugin
|
101 |
+
* @since 4.5.9
|
102 |
+
*/
|
103 |
+
public function redirect_on_activation( $plugin ) {
|
104 |
+
|
105 |
+
if ( DLM_FILE === $plugin ) {
|
106 |
+
wp_safe_redirect( admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-about-page' ) );
|
107 |
+
exit();
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
|
112 |
+
/**
|
113 |
+
* @since 4.5.9
|
114 |
+
* Display About page
|
115 |
+
*/
|
116 |
+
public function about_page() {
|
117 |
+
|
118 |
+
// WPChill Welcome Class
|
119 |
+
require_once plugin_dir_path( DLM_PLUGIN_FILE ) . '/includes/submodules/banner/class-wpchill-welcome.php';
|
120 |
+
|
121 |
+
if ( ! class_exists( 'WPChill_Welcome' ) ) {
|
122 |
+
return;
|
123 |
+
}
|
124 |
+
|
125 |
+
$welcome = WPChill_Welcome::get_instance();
|
126 |
+
?>
|
127 |
+
<div id="wpchill-welcome">
|
128 |
+
|
129 |
+
<div class="container">
|
130 |
+
|
131 |
+
<div class="hero features">
|
132 |
+
|
133 |
+
<div class="mascot">
|
134 |
+
<img src="<?php echo esc_attr( DLM_URL . 'assets/images/logo.png' ); ?>" alt="<?php esc_attr_e( 'Download Monitor Logo', 'download-monitor' ); ?>">
|
135 |
+
</div>
|
136 |
+
|
137 |
+
<div class="block">
|
138 |
+
<?php $welcome->display_heading( esc_html__( 'Thank you for installing Download Monitor', 'download-monitor' ) ); ?>
|
139 |
+
<?php $welcome->display_subheading( esc_html__( 'You\'re just a few steps away from adding, displaying and tracking your first download on your website with the easiest to use WordPress download plugin.', 'download-monitor' ) ); ?>
|
140 |
+
</div>
|
141 |
+
<div class="button-wrap-single">
|
142 |
+
<?php $welcome->display_button( esc_html__( 'Read our step-by-step guide to get started', 'download-monitor' ), 'https://www.download-monitor.com/kb/add-your-first-download/', true, '#7364ff' ); ?>
|
143 |
+
</div>
|
144 |
+
<?php $welcome->display_empty_space(); ?>
|
145 |
+
<img src="<?php echo esc_url( DLM_URL ); ?>assets/images/banner-dlm.png" alt="<?php esc_attr_e( 'Watch how to', 'strong-testimonials' ); ?>" class="video-thumbnail">
|
146 |
+
<?php $welcome->horizontal_delimiter(); ?>
|
147 |
+
<div class="block">
|
148 |
+
<?php $welcome->display_heading( esc_html__( 'Features&Add-ons', 'download-monitor' ) ); ?>
|
149 |
+
<?php $welcome->layout_start( 2, 'feature-list clear' ); ?>
|
150 |
+
<?php $welcome->display_extension( esc_html__( 'Gated content', 'download-monitor' ), esc_html__( 'Use our Email Lock or Gravity/Ninja Forms extensions to lock downloads and gather leads. Alternatively, use Twitter Lock to require tweets in exchange for access to digital products.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/gated-content.png', true, '#7364ff' ); ?>
|
151 |
+
<?php $welcome->display_extension( esc_html__( 'Enforce download limits', 'download-monitor' ), esc_html__( 'Create advanced access rules and IP restrictions to control who can access downloads, how many times can files be downloaded by each user or when do files expire.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/enforce-download-limits.png', true, '#7364ff' ); ?>
|
152 |
+
<?php $welcome->display_extension( esc_html__( 'Host files externally', 'download-monitor' ), esc_html__( 'Easily link files from Amazon S3 and Google Drive to your website.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/link-downloads-from-cloud.png', true, '#7364ff' ); ?>
|
153 |
+
<?php $welcome->display_extension( esc_html__( 'Track your content', 'download-monitor' ), esc_html__( 'Gain access to detailed reports to see how your downloads are behaving.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/track-your-content.png' ); ?>
|
154 |
+
<?php $welcome->display_extension( esc_html__( 'Content grouping', 'download-monitor' ), esc_html__( 'Easily assign categories, tags or other meta to your downloads.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/content-grouping.png' ); ?>
|
155 |
+
<?php $welcome->display_extension( esc_html__( 'Customisable endpoints', 'download-monitor' ), esc_html__( 'For showing appealing download links and engaging buttons.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/customisable-endpoints.png', true, '#7364ff' ); ?>
|
156 |
+
<?php $welcome->display_extension( esc_html__( 'Spam protection', 'download-monitor' ), esc_html__( 'Our smart Captcha extension stops bots from finding, accessing and/or downloading your files without authorization', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/spam-protection.png', true, '#7364ff' ); ?>
|
157 |
+
<?php $welcome->display_extension( esc_html__( 'Monetize your downloads', 'download-monitor' ), esc_html__( 'Ability to sell your downloads straight from your WordPress website.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/monetize-your-downloads.png' ); ?>
|
158 |
+
<?php $welcome->display_extension( esc_html__( 'Instant notifications', 'download-monitor' ), esc_html__( 'Receive instant email notifications whenever someone downloads your content.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/instant-notifications.png', true, '#7364ff' ); ?>
|
159 |
+
<?php $welcome->display_extension( esc_html__( 'Page Addon', 'download-monitor' ), esc_html__( 'Make use of a shortcode to turn a page into a fully featured download listing page.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/page-addon.png', true, '#7364ff' ); ?>
|
160 |
+
<?php $welcome->display_extension( esc_html__( 'Downloading Page', 'download-monitor' ), esc_html__( 'Forces your downloads to be served from a separate page.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/downloading-page.png', true, '#7364ff' ); ?>
|
161 |
+
<?php $welcome->display_extension( esc_html__( 'Easy data importing/exporting', 'download-monitor' ), esc_html__( ' Import/export all download data including categories, tags and all file versions to and from a CSV file.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/features/data-importing-exporting.png', true, '#7364ff' ); ?>
|
162 |
+
<?php $welcome->layout_end(); ?>
|
163 |
+
|
164 |
+
<div class="button-wrap-single clear">
|
165 |
+
<div class="right">
|
166 |
+
<?php $welcome->display_button( esc_html__( 'Upgrade Now', 'download-monitor' ), 'https://www.download-monitor.com/pricing/?utm_source=welcome_banner&utm_medium=upgradenow&utm_campaign=welcome_banner&utm_content=first_button', true, '#E76F51' ); ?>
|
167 |
+
</div>
|
168 |
+
</div>
|
169 |
+
</div>
|
170 |
+
<?php $welcome->horizontal_delimiter(); ?>
|
171 |
+
<div class="block">
|
172 |
+
<div class="testimonials">
|
173 |
+
<div class="clear">
|
174 |
+
<?php $welcome->display_heading( esc_html__( 'Happy users of Download Monitor', 'download-monitor' ) ); ?>
|
175 |
+
<?php $welcome->display_testimonial( esc_html__( 'Do not spend any time considering other plugins that may offer the same bells and whistles. Not only is this full of fantastic functionality, the support behind the plugin is superior to anything you will get from any other developer.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/carlos-espinosa.jpeg', 'Carlos Espinosa' ); ?>
|
176 |
+
<?php $welcome->display_testimonial( esc_html__( 'Download Monitor rocks! It lets me easily implement customized/themed lists of downloads and offers useful statistics and access logs for my downloads.', 'download-monitor' ), esc_url( DLM_URL ) . 'assets/images/Sebastian-Herrmann.jpeg', 'Sebastian Herrmann' ); ?>
|
177 |
+
</div>
|
178 |
+
</div><!-- testimonials -->
|
179 |
+
|
180 |
+
<div class="button-wrap clear">
|
181 |
+
<div class="left">
|
182 |
+
<?php $welcome->display_button( esc_html__( 'Start Adding Downloads', 'download-monitor' ), esc_url( admin_url( 'edit.php?post_type=dlm_download' ) ), true, '#7364ff' ); ?>
|
183 |
+
</div>
|
184 |
+
<div class="right">
|
185 |
+
<?php $welcome->display_button( esc_html__( 'Upgrade Now', 'download-monitor' ), 'https://www.download-monitor.com/pricing/?utm_source=welcome_banner&utm_medium=upgradenow&utm_campaign=welcome_banner&utm_content=second_button', true, '#E76F51' ); ?>
|
186 |
+
</div>
|
187 |
+
</div>
|
188 |
+
</div>
|
189 |
+
</div><!-- hero -->
|
190 |
+
</div><!-- container -->
|
191 |
+
</div><!-- wpchill welcome -->
|
192 |
+
<?php
|
193 |
+
}
|
194 |
+
|
195 |
+
}
|
includes/bootstrap.php
CHANGED
@@ -15,6 +15,7 @@ function download_monitor() {
|
|
15 |
function _load_download_monitor() {
|
16 |
// fetch instance and store in global
|
17 |
$GLOBALS['download_monitor'] = download_monitor();
|
|
|
18 |
}
|
19 |
|
20 |
// require autoloader
|
@@ -42,4 +43,5 @@ if ( is_admin() && ( false === defined( 'DOING_AJAX' ) || false === DOING_AJAX )
|
|
42 |
|
43 |
// Multisite blog delete
|
44 |
add_filter( 'wpmu_drop_tables', '_download_monitor_mu_delete_blog' );
|
|
|
45 |
}
|
15 |
function _load_download_monitor() {
|
16 |
// fetch instance and store in global
|
17 |
$GLOBALS['download_monitor'] = download_monitor();
|
18 |
+
|
19 |
}
|
20 |
|
21 |
// require autoloader
|
43 |
|
44 |
// Multisite blog delete
|
45 |
add_filter( 'wpmu_drop_tables', '_download_monitor_mu_delete_blog' );
|
46 |
+
|
47 |
}
|
includes/installer-functions.php
CHANGED
@@ -89,4 +89,4 @@ function _download_monitor_mu_delete_blog( $tables ) {
|
|
89 |
$tables[] = $wpdb->prefix . 'download_log';
|
90 |
|
91 |
return $tables;
|
92 |
-
}
|
89 |
$tables[] = $wpdb->prefix . 'download_log';
|
90 |
|
91 |
return $tables;
|
92 |
+
}
|
includes/submodules/banner/assets/css/wpchill-welcome.css
ADDED
@@ -0,0 +1,365 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#wpchill-welcome {
|
2 |
+
padding-top: 80px;
|
3 |
+
}
|
4 |
+
|
5 |
+
#wpchill-welcome *, #wpchill-welcome *::before, #wpchill-welcome *::after {
|
6 |
+
-webkit-box-sizing: border-box;
|
7 |
+
-moz-box-sizing: border-box;
|
8 |
+
box-sizing: border-box;
|
9 |
+
}
|
10 |
+
|
11 |
+
#wpchill-welcome .clear:before {
|
12 |
+
content: " ";
|
13 |
+
display: table;
|
14 |
+
}
|
15 |
+
|
16 |
+
#wpchill-welcome .clear:after {
|
17 |
+
clear: both;
|
18 |
+
content: " ";
|
19 |
+
display: table;
|
20 |
+
}
|
21 |
+
|
22 |
+
#wpchill-welcome .container {
|
23 |
+
margin: 0 auto;
|
24 |
+
max-width: 800px;
|
25 |
+
padding: 0;
|
26 |
+
}
|
27 |
+
|
28 |
+
#wpchill-welcome .block {
|
29 |
+
padding: 40px;
|
30 |
+
}
|
31 |
+
|
32 |
+
#wpchill-welcome img {
|
33 |
+
max-width: 100%;
|
34 |
+
height: auto;
|
35 |
+
}
|
36 |
+
|
37 |
+
#wpchill-welcome h1 {
|
38 |
+
color: #222;
|
39 |
+
font-size: 24px;
|
40 |
+
margin: 0 0 16px 0;
|
41 |
+
}
|
42 |
+
|
43 |
+
#wpchill-welcome h5 {
|
44 |
+
color: #222;
|
45 |
+
font-size: 16px;
|
46 |
+
margin: 0 0 8px 0;
|
47 |
+
}
|
48 |
+
|
49 |
+
#wpchill-welcome h6 {
|
50 |
+
font-size: 16px;
|
51 |
+
font-weight: 400;
|
52 |
+
line-height: 1.6;
|
53 |
+
margin: 0;
|
54 |
+
}
|
55 |
+
|
56 |
+
#wpchill-welcome .wpmtst-btn-lg {
|
57 |
+
font-size: 16px;
|
58 |
+
font-weight: 600;
|
59 |
+
padding: 16px 28px;
|
60 |
+
}
|
61 |
+
|
62 |
+
#wpchill-welcome .wpmtst-btn-block {
|
63 |
+
display: block;
|
64 |
+
width: 100%;
|
65 |
+
}
|
66 |
+
|
67 |
+
#wpchill-welcome .wpmtst-btn {
|
68 |
+
border: 0;
|
69 |
+
border-radius: 40px;
|
70 |
+
cursor: pointer;
|
71 |
+
display: inline-block;
|
72 |
+
margin: 0;
|
73 |
+
text-decoration: none;
|
74 |
+
text-align: center;
|
75 |
+
vertical-align: middle;
|
76 |
+
white-space: nowrap;
|
77 |
+
box-shadow: none;
|
78 |
+
}
|
79 |
+
|
80 |
+
|
81 |
+
#wpchill-welcome .button-wrap {
|
82 |
+
max-width: 590px;
|
83 |
+
margin: 0 auto 0 auto;
|
84 |
+
}
|
85 |
+
|
86 |
+
#wpchill-welcome .button-wrap .left {
|
87 |
+
margin-bottom: 10px;
|
88 |
+
}
|
89 |
+
|
90 |
+
#wpchill-welcome .button-wrap-single a {
|
91 |
+
font-size: 14px;
|
92 |
+
}
|
93 |
+
|
94 |
+
#wpchill-welcome .button-wrap-single {
|
95 |
+
padding: 0 20px;
|
96 |
+
}
|
97 |
+
|
98 |
+
@media screen and (min-width: 720px) {
|
99 |
+
|
100 |
+
#wpchill-welcome .button-wrap .left {
|
101 |
+
margin-bottom: 0px;
|
102 |
+
float: left;
|
103 |
+
width: 50%;
|
104 |
+
padding-right: 20px;
|
105 |
+
}
|
106 |
+
|
107 |
+
#wpchill-welcome .button-wrap .right {
|
108 |
+
float: right;
|
109 |
+
width: 50%;
|
110 |
+
padding-left: 20px;
|
111 |
+
}
|
112 |
+
|
113 |
+
#wpchill-welcome .button-wrap-single a {
|
114 |
+
font-size: 16px;
|
115 |
+
}
|
116 |
+
}
|
117 |
+
|
118 |
+
/* hero section */
|
119 |
+
#wpchill-welcome .hero {
|
120 |
+
background-color: #fff;
|
121 |
+
border-radius: 10px;
|
122 |
+
margin-bottom: 30px;
|
123 |
+
position: relative;
|
124 |
+
box-shadow: -3px 2px 70px 0px rgba(128, 144, 174, 0.1);
|
125 |
+
padding-top: 40px;
|
126 |
+
}
|
127 |
+
|
128 |
+
#wpchill-welcome .hero .mascot {
|
129 |
+
background-color: #fff;
|
130 |
+
border-radius: 50%;
|
131 |
+
height: 90px;
|
132 |
+
width: 90px;
|
133 |
+
padding: 28px 28px;
|
134 |
+
position: absolute;
|
135 |
+
top: -45px;
|
136 |
+
left: 50%;
|
137 |
+
margin-left: -45px;
|
138 |
+
}
|
139 |
+
|
140 |
+
#wpchill-welcome .hero .video-thumbnail {
|
141 |
+
display: block;
|
142 |
+
margin: 0;
|
143 |
+
width: 100%;
|
144 |
+
}
|
145 |
+
|
146 |
+
#wpchill-welcome .hero .button-wrap {
|
147 |
+
margin-top: 20px;
|
148 |
+
}
|
149 |
+
|
150 |
+
|
151 |
+
/* features section */
|
152 |
+
#wpchill-welcome .features {
|
153 |
+
background-color: #fff;
|
154 |
+
border-top-left-radius: 10px;
|
155 |
+
border-top-right-radius: 10px;
|
156 |
+
position: relative;
|
157 |
+
padding-top: 20px;
|
158 |
+
}
|
159 |
+
|
160 |
+
#wpchill-welcome .features .feature-list {
|
161 |
+
margin-top: 40px;
|
162 |
+
}
|
163 |
+
|
164 |
+
#wpchill-welcome .features .feature-block {
|
165 |
+
margin-bottom: 30px;
|
166 |
+
}
|
167 |
+
|
168 |
+
@media screen and (min-width: 720px) {
|
169 |
+
|
170 |
+
#wpchill-welcome .block-row-2 .feature-block {
|
171 |
+
margin: 0 auto;
|
172 |
+
float: left;
|
173 |
+
width: 50%;
|
174 |
+
padding-bottom: 32px;
|
175 |
+
overflow: auto;
|
176 |
+
}
|
177 |
+
|
178 |
+
#wpchill-welcome .block-row-3 .feature-block {
|
179 |
+
margin: 0 auto;
|
180 |
+
float: left;
|
181 |
+
width: 33%;
|
182 |
+
padding-bottom: 32px;
|
183 |
+
overflow: auto;
|
184 |
+
}
|
185 |
+
|
186 |
+
#wpchill-welcome .block-row-2 .feature-block:nth-child(odd) {
|
187 |
+
padding-right: 22px;
|
188 |
+
clear: both;
|
189 |
+
}
|
190 |
+
|
191 |
+
#wpchill-welcome .block-row-3 .feature-block:not(:nth-child(3n+3)) {
|
192 |
+
padding-right: 22px;
|
193 |
+
}
|
194 |
+
|
195 |
+
#wpchill-welcome .block-row-3 .feature-block:nth-child(3n+1) {
|
196 |
+
clear: both;
|
197 |
+
}
|
198 |
+
|
199 |
+
#wpchill-welcome .features .feature-block.last {
|
200 |
+
padding-left: 22px;
|
201 |
+
}
|
202 |
+
.block-row-1 > * {
|
203 |
+
width: 100%;
|
204 |
+
}
|
205 |
+
.block-row{
|
206 |
+
display:flex;
|
207 |
+
flex-wrap:wrap;
|
208 |
+
align-items:flex-start;
|
209 |
+
flex-direction: row;
|
210 |
+
justify-content: flex-start;
|
211 |
+
}
|
212 |
+
|
213 |
+
.block-row-2 > * {
|
214 |
+
width: 50%;
|
215 |
+
}
|
216 |
+
|
217 |
+
.block-row-3 > * {
|
218 |
+
width: 33%;
|
219 |
+
}
|
220 |
+
|
221 |
+
.block-row-4 > * {
|
222 |
+
width: 25%;
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
#wpchill-welcome .features .feature-block img {
|
227 |
+
float: left;
|
228 |
+
max-width: 44px;
|
229 |
+
max-height: 44px;
|
230 |
+
}
|
231 |
+
|
232 |
+
#wpchill-welcome .features .feature-block h5 {
|
233 |
+
margin-left: 70px;
|
234 |
+
}
|
235 |
+
|
236 |
+
#wpchill-welcome .features .feature-block p {
|
237 |
+
margin-left: 70px;
|
238 |
+
}
|
239 |
+
|
240 |
+
#wpchill-welcome .features .pro-label {
|
241 |
+
display: inline-block;
|
242 |
+
line-height: 1;
|
243 |
+
color: #fff;
|
244 |
+
padding: 3px 6px;
|
245 |
+
font-size: 0.75rem;
|
246 |
+
border-radius: 20px;
|
247 |
+
vertical-align: text-top;
|
248 |
+
margin-left: 20px;
|
249 |
+
}
|
250 |
+
|
251 |
+
#wpchill-welcome .features .feature-list a {
|
252 |
+
color: #5333ED;
|
253 |
+
}
|
254 |
+
|
255 |
+
/* upgrade section */
|
256 |
+
#wpchill-welcome .upgrade {
|
257 |
+
background-color: white;
|
258 |
+
text-align: center;
|
259 |
+
}
|
260 |
+
|
261 |
+
#wpchill-welcome .upgrade h1{
|
262 |
+
color: #fff;
|
263 |
+
}
|
264 |
+
|
265 |
+
@media screen and (min-width: 720px) {
|
266 |
+
|
267 |
+
#wpchill-welcome .upgrade .left{
|
268 |
+
float: left;
|
269 |
+
width: 50%;
|
270 |
+
padding-left: 20%;
|
271 |
+
margin-bottom: 30px;
|
272 |
+
text-align: left;
|
273 |
+
}
|
274 |
+
|
275 |
+
#wpchill-welcome .upgrade .right{
|
276 |
+
float: left;
|
277 |
+
width: 50%;
|
278 |
+
padding-right: 20%;
|
279 |
+
margin-bottom: 30px;
|
280 |
+
text-align: left;
|
281 |
+
}
|
282 |
+
#wpchill-welcome .button-wrap-single{
|
283 |
+
width: 50%;
|
284 |
+
margin: 0 auto;
|
285 |
+
}
|
286 |
+
}
|
287 |
+
|
288 |
+
/* testimonials section */
|
289 |
+
#wpchill-welcome .testimonials {
|
290 |
+
background-color: #fafafa;
|
291 |
+
|
292 |
+
position: relative;
|
293 |
+
box-shadow: -3px 2px 70px 0px rgba(128, 144, 174, 0.1);
|
294 |
+
}
|
295 |
+
|
296 |
+
#wpchill-welcome .testimonials .testimonial-block {
|
297 |
+
padding: 0 16px 32px;
|
298 |
+
overflow: auto;
|
299 |
+
margin-top: 40px;
|
300 |
+
text-align: center;
|
301 |
+
}
|
302 |
+
|
303 |
+
@media screen and (min-width: 720px) {
|
304 |
+
|
305 |
+
#wpchill-welcome .testimonials .testimonial-block {
|
306 |
+
float: left;
|
307 |
+
width: 50%;
|
308 |
+
}
|
309 |
+
|
310 |
+
}
|
311 |
+
|
312 |
+
#wpchill-welcome .testimonials .testimonial-block p {
|
313 |
+
font-size: 14px;
|
314 |
+
font-weight: 400;
|
315 |
+
line-height: 1.6;
|
316 |
+
}
|
317 |
+
|
318 |
+
#wpchill-welcome .testimonials .testimonial-block img {
|
319 |
+
max-width: 60px;
|
320 |
+
max-height: 60px;
|
321 |
+
border-radius: 50%;
|
322 |
+
filter: grayscale(100%);
|
323 |
+
box-shadow: 0 0 12px rgba(0,0,0,0.15);
|
324 |
+
}
|
325 |
+
|
326 |
+
/* testimonials footer */
|
327 |
+
#wpchill-welcome .footer {
|
328 |
+
background-color: #fff;
|
329 |
+
border-bottom-left-radius: 10px;
|
330 |
+
border-bottom-right-radius: 10px;
|
331 |
+
margin-bottom: 30px;
|
332 |
+
position: relative;
|
333 |
+
box-shadow: -3px 2px 70px 0px rgba(128, 144, 174, 0.1);
|
334 |
+
}
|
335 |
+
|
336 |
+
#wpchill-welcome .container {
|
337 |
+
position: relative;
|
338 |
+
width: 100%;
|
339 |
+
height: 0;
|
340 |
+
padding-bottom: 56.25%;
|
341 |
+
}
|
342 |
+
|
343 |
+
#wpchill-welcome .video {
|
344 |
+
position: absolute;
|
345 |
+
top: 0;
|
346 |
+
left: 0;
|
347 |
+
width: 100%;
|
348 |
+
height: 100%;
|
349 |
+
}
|
350 |
+
|
351 |
+
#wpchill-welcome .stars_wrapper svg {
|
352 |
+
height: 20px;
|
353 |
+
}
|
354 |
+
|
355 |
+
#wpchill-welcome .wpchill_empty_space{
|
356 |
+
display:block;
|
357 |
+
clear:both;
|
358 |
+
}
|
359 |
+
|
360 |
+
.wpchill_horizontal_delimiter {
|
361 |
+
background-color: #f0f0f1;
|
362 |
+
height:20px;
|
363 |
+
width:100%;
|
364 |
+
margin:0 auto;
|
365 |
+
}
|
includes/submodules/banner/assets/img/star.svg
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4 |
+
viewBox="-274 399.8 53 43.1" style="enable-background:new -274 399.8 53 43.1;" xml:space="preserve">
|
5 |
+
<style type="text/css">
|
6 |
+
.st0{fill:#5333ED;}
|
7 |
+
</style>
|
8 |
+
<g>
|
9 |
+
<path class="st0" d="M-234.8,415h-11.5l-3.6-11c-1.4-4.3-3.7-4.3-5.1,0l-3.6,11h-11.5c-4.5,0-5.3,2.2-1.6,4.8l9.3,6.8l-3.6,11
|
10 |
+
c-1.4,4.3,0.4,5.7,4.1,3l9.3-6.8l9.3,6.8c3.7,2.7,5.5,1.3,4.1-3l-3.6-11l9.3-6.8C-229.6,417.1-230.3,415-234.8,415z"/>
|
11 |
+
</g>
|
12 |
+
</svg>
|
includes/submodules/banner/class-wpchill-welcome.php
ADDED
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists( 'WPChill_Welcome' ) ) {
|
4 |
+
|
5 |
+
class WPChill_Welcome {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Contains the instance of the Class
|
9 |
+
*
|
10 |
+
* @since 1.0.0
|
11 |
+
* @param WPChill_Welcome $instance
|
12 |
+
*/
|
13 |
+
private static $instance = null;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @since 1.0.0
|
17 |
+
* @param string $textdomain - wpchill textdomain
|
18 |
+
*/
|
19 |
+
public $textdomain = 'wpchill';
|
20 |
+
|
21 |
+
private function __construct() {
|
22 |
+
add_action( 'admin_footer', array( $this, 'welcome_style' ) );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @since 1.0.0
|
27 |
+
* Singleton
|
28 |
+
*/
|
29 |
+
public static function get_instance() {
|
30 |
+
|
31 |
+
if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WPChill_Welcome ) ) {
|
32 |
+
self::$instance = new WPChill_Welcome();
|
33 |
+
}
|
34 |
+
|
35 |
+
return self::$instance;
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @since 1.0.0
|
40 |
+
* Enqueue admin Wellcome style
|
41 |
+
*/
|
42 |
+
public function welcome_style() {
|
43 |
+
wp_register_style( 'wpchill-welcome-style', plugins_url( '/assets/css/wpchill-welcome.css', __FILE__ ), null, '1.0.0' );
|
44 |
+
wp_print_styles( array( 'wpchill-welcome-style' ) );
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @since 1.0.0
|
49 |
+
* Renders buttons
|
50 |
+
*
|
51 |
+
* @param string $text
|
52 |
+
*
|
53 |
+
* @param string $url
|
54 |
+
*
|
55 |
+
* @param bool $fill
|
56 |
+
*
|
57 |
+
* @param string $color
|
58 |
+
*/
|
59 |
+
public function display_button( $text, $link, $fill = true, $color = '#5D3CE4' ) {
|
60 |
+
$style = 'style="background-color:' . sanitize_hex_color( $color ) . ';border-color:' . sanitize_hex_color( $color ) . ';color:#fff;"';
|
61 |
+
echo '<a href="' . esc_attr( $link ) . '" ' . ( $fill ? $style : '' ) . ' class="wpmtst-btn wpmtst-btn-block wpmtst-btn-lg">' . esc_html( $text ) . '</a>';
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @since 1.0.0
|
66 |
+
* Renders extension html
|
67 |
+
*
|
68 |
+
* @param string $title
|
69 |
+
*
|
70 |
+
* @param string $description
|
71 |
+
*
|
72 |
+
* @param string $icon (icon URL)
|
73 |
+
*
|
74 |
+
* @param bool $pro
|
75 |
+
*/
|
76 |
+
public function display_extension( $title, $description = '', $icon = '', $pro = false, $pro_color = '#5333ED' ) {
|
77 |
+
|
78 |
+
echo '<div class="feature-block">';
|
79 |
+
if ( '' != $icon ) {
|
80 |
+
echo '<img src="' . esc_attr( $icon ) . '">';
|
81 |
+
}
|
82 |
+
echo '<h5>' . esc_html( $title ) . ( ( $pro ) ? '<div style="background-color:' . esc_attr( $pro_color ) . '" class="pro-label">PRO</div>' : '' ) . '</h5>';
|
83 |
+
echo '<p>' . esc_html( $description ) . '</p>';
|
84 |
+
echo '</div>';
|
85 |
+
}
|
86 |
+
|
87 |
+
/**
|
88 |
+
* @since 1.0.0
|
89 |
+
* Displays h1 heading
|
90 |
+
*
|
91 |
+
* @param string $text
|
92 |
+
*
|
93 |
+
* @param string $position
|
94 |
+
*/
|
95 |
+
public function display_heading( $text, $position = 'center' ) {
|
96 |
+
echo '<h1 style="text-align: ' . esc_attr( $position ) . ';" >' . esc_html( $text ) . '</h1>';
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* @since 1.0.0
|
101 |
+
* Displays h6 subheading
|
102 |
+
*
|
103 |
+
* @param string $text
|
104 |
+
*
|
105 |
+
* @param string $position
|
106 |
+
*/
|
107 |
+
public function display_subheading( $text, $position = 'center' ) {
|
108 |
+
echo '<h6 style="text-align: ' . esc_attr( $position ) . '" >' . esc_html( $text ) . '</h6>';
|
109 |
+
}
|
110 |
+
|
111 |
+
|
112 |
+
/**
|
113 |
+
* @since 1.0.0
|
114 |
+
* Renders testimonial block
|
115 |
+
*
|
116 |
+
* @param string $text
|
117 |
+
*
|
118 |
+
* @param string $icon
|
119 |
+
*
|
120 |
+
* @param string $name
|
121 |
+
*
|
122 |
+
* @param string $job (reviewer's job or company)
|
123 |
+
*/
|
124 |
+
public function display_testimonial( $text, $icon = '', $name = '', $job = '', $star_color = '' ) {
|
125 |
+
|
126 |
+
echo '<div class="testimonial-block">';
|
127 |
+
if ( '' != $icon ) {
|
128 |
+
echo '<img src=" ' . esc_url( $icon ) . ' "/>';
|
129 |
+
}
|
130 |
+
echo '<p>' . esc_html( $text ) . '</p>';
|
131 |
+
|
132 |
+
$this->display_stars( $star_color );
|
133 |
+
|
134 |
+
if ( '' !== $name || '' !== $job ) {
|
135 |
+
echo '<p>';
|
136 |
+
|
137 |
+
if ( '' !== $name ) {
|
138 |
+
echo '<strong>' . esc_html( $name ) . '</strong><br/>';
|
139 |
+
}
|
140 |
+
if ( '' !== $job ) {
|
141 |
+
echo esc_html( $job );
|
142 |
+
}
|
143 |
+
echo '</p>';
|
144 |
+
}
|
145 |
+
|
146 |
+
echo '</div>';
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* @since 1.0.0
|
151 |
+
* Renders a UL list
|
152 |
+
*
|
153 |
+
* @param array $items - array of list items
|
154 |
+
*/
|
155 |
+
public function display_listing( $items ) {
|
156 |
+
echo '<ul>';
|
157 |
+
|
158 |
+
foreach ( $items as $item ) {
|
159 |
+
echo '<li>' . esc_html( $item ) . '</li>';
|
160 |
+
}
|
161 |
+
|
162 |
+
echo '</ul>';
|
163 |
+
}
|
164 |
+
|
165 |
+
|
166 |
+
/**
|
167 |
+
* @since 1.0.0
|
168 |
+
* Renders a UL list
|
169 |
+
*
|
170 |
+
* @param string $url - youtube.com url
|
171 |
+
*/
|
172 |
+
public function display_video( $url ) {
|
173 |
+
parse_str( wp_parse_url( esc_url( $url ), PHP_URL_QUERY ), $video_vars );
|
174 |
+
echo '<div class="container"><iframe src="https://www.youtube.com/embed/' . esc_attr( $video_vars['v'] ) . '" frameborder="0" allowfullscreen class="video"></iframe></div>';
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* @since 1.0.0
|
179 |
+
* Renders rating stars block
|
180 |
+
*
|
181 |
+
* @param string $color - code of the star color fill
|
182 |
+
*/
|
183 |
+
public function display_stars( $color ) {
|
184 |
+
$color = ( '' === $color ) ? '#FFD700' : sanitize_hex_color( $color );
|
185 |
+
$id = wp_rand( 0, 9999999 );
|
186 |
+
$star = '<svg version="1.1" class="svg-' . absint( $id ) . '" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-274 399.8 53 43.1" style="enable-background:new -274 399.8 53 43.1;" xml:space="preserve">
|
187 |
+
<g>
|
188 |
+
<path class="st0" d="M-234.8,415h-11.5l-3.6-11c-1.4-4.3-3.7-4.3-5.1,0l-3.6,11h-11.5c-4.5,0-5.3,2.2-1.6,4.8l9.3,6.8l-3.6,11
|
189 |
+
c-1.4,4.3,0.4,5.7,4.1,3l9.3-6.8l9.3,6.8c3.7,2.7,5.5,1.3,4.1-3l-3.6-11l9.3-6.8C-229.6,417.1-230.3,415-234.8,415z"/>
|
190 |
+
</g>
|
191 |
+
</svg>';
|
192 |
+
|
193 |
+
$svg_args = array(
|
194 |
+
'svg' => array(
|
195 |
+
'class' => true,
|
196 |
+
'aria-hidden' => true,
|
197 |
+
'aria-labelledby' => true,
|
198 |
+
'role' => true,
|
199 |
+
'xmlns' => true,
|
200 |
+
'width' => true,
|
201 |
+
'height' => true,
|
202 |
+
'viewbox' => true, // <= Must be lower case!
|
203 |
+
'id' => true,
|
204 |
+
),
|
205 |
+
'g' => array( 'fill' => true ),
|
206 |
+
'title' => array( 'title' => true ),
|
207 |
+
'path' => array(
|
208 |
+
'd' => true,
|
209 |
+
'fill' => true,
|
210 |
+
),
|
211 |
+
'style' => array( 'type' => true ),
|
212 |
+
);
|
213 |
+
|
214 |
+
echo '<style>';
|
215 |
+
echo '.svg-' . absint( $id ) . '{ fill:' . sanitize_hex_color( $color ) . ';}';
|
216 |
+
echo '</style>';
|
217 |
+
echo '<div class="stars_wrapper">' . wp_kses( $star . $star . $star . $star . $star, $svg_args ) . '</div>';
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* @since 1.0.0
|
222 |
+
* Columns wrapper start
|
223 |
+
*
|
224 |
+
* @param int $cols - # of columns the contained objects should be displayed as. (1/2/3)
|
225 |
+
*/
|
226 |
+
public function layout_start( $cols = 2, $class = '' ) {
|
227 |
+
echo '<div class="' . esc_attr( $class ) . ' block-row block-row-' . absint( $cols ) . '">';
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* @since 1.0.0
|
232 |
+
* Columns wrapper end
|
233 |
+
*/
|
234 |
+
public function layout_end() {
|
235 |
+
echo '</div>';
|
236 |
+
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* @since 1.0.0
|
240 |
+
* Renders empty space block
|
241 |
+
*
|
242 |
+
* @param int $height - height(px) of space
|
243 |
+
*/
|
244 |
+
public function display_empty_space( $height = 25 ) {
|
245 |
+
|
246 |
+
echo '<div class="wpchill_empty_space" style="height:' . esc_attr( $height ) . 'px;"></div>';
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Horizontal delimiter
|
251 |
+
*
|
252 |
+
* @return void
|
253 |
+
* @since 1.0.0
|
254 |
+
*/
|
255 |
+
public function horizontal_delimiter() {
|
256 |
+
echo '<hr class="wpchill_horizontal_delimiter">';
|
257 |
+
}
|
258 |
+
|
259 |
+
}
|
260 |
+
}
|
includes/submodules/banner/readme.txt
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
Readme
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: wpchill, silkalns, barrykooij, mikejolley
|
|
3 |
Tags: download manager, document management, file manager, digital store, ecommerce, document management plugin, download monitor, download counter, password protection, download protection, password, protect downloads, tracker, sell, shop, ecommerce, paypal
|
4 |
Requires at least: 5.4
|
5 |
Tested up to: 5.9
|
6 |
-
Stable tag: 4.5.
|
7 |
License: GPLv3
|
8 |
Text Domain: -
|
9 |
Requires PHP: 5.6
|
3 |
Tags: download manager, document management, file manager, digital store, ecommerce, document management plugin, download monitor, download counter, password protection, download protection, password, protect downloads, tracker, sell, shop, ecommerce, paypal
|
4 |
Requires at least: 5.4
|
5 |
Tested up to: 5.9
|
6 |
+
Stable tag: 4.5.9
|
7 |
License: GPLv3
|
8 |
Text Domain: -
|
9 |
Requires PHP: 5.6
|
src/Admin/Admin.php
CHANGED
@@ -230,6 +230,10 @@ class DLM_Admin {
|
|
230 |
$enqueue = true;
|
231 |
}
|
232 |
|
|
|
|
|
|
|
|
|
233 |
if ( ! $enqueue ) {
|
234 |
return;
|
235 |
}
|
230 |
$enqueue = true;
|
231 |
}
|
232 |
|
233 |
+
if ( 'dlm_product' === get_current_screen()->id ) {
|
234 |
+
$enqueue = true;
|
235 |
+
}
|
236 |
+
|
237 |
if ( ! $enqueue ) {
|
238 |
return;
|
239 |
}
|
src/Admin/Settings/Page.php
CHANGED
@@ -60,12 +60,17 @@ class DLM_Settings_Page {
|
|
60 |
}
|
61 |
break;
|
62 |
case 'dlm_regenerate_protection':
|
63 |
-
|
64 |
if ( $this->regenerate_protection() ) {
|
65 |
wp_redirect( add_query_arg( array( 'dlm_action_done' => $action ), admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-settings&tab=advanced§ion=misc' ) ) );
|
66 |
exit;
|
67 |
}
|
68 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
}
|
71 |
|
@@ -106,6 +111,9 @@ class DLM_Settings_Page {
|
|
106 |
case 'dlm_regenerate_protection':
|
107 |
echo "<p>" . esc_html__( '.htaccess file successfully regenerated!', 'download-monitor' ) . "</p>";
|
108 |
break;
|
|
|
|
|
|
|
109 |
}
|
110 |
?>
|
111 |
</div>
|
@@ -290,6 +298,8 @@ class DLM_Settings_Page {
|
|
290 |
add_filter( 'dlm_page_header', array( $this, 'page_header_locations' ) );
|
291 |
|
292 |
add_filter( 'dlm_settings', array( $this, 'access_files_checker_field' ) );
|
|
|
|
|
293 |
}
|
294 |
|
295 |
/**
|
@@ -530,4 +540,91 @@ Deny from all
|
|
530 |
}
|
531 |
}
|
532 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
}
|
|
|
|
|
|
60 |
}
|
61 |
break;
|
62 |
case 'dlm_regenerate_protection':
|
|
|
63 |
if ( $this->regenerate_protection() ) {
|
64 |
wp_redirect( add_query_arg( array( 'dlm_action_done' => $action ), admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-settings&tab=advanced§ion=misc' ) ) );
|
65 |
exit;
|
66 |
}
|
67 |
break;
|
68 |
+
case 'dlm_regenerate_robots':
|
69 |
+
if ( $this->regenerate_robots() ) {
|
70 |
+
wp_redirect( add_query_arg( array( 'dlm_action_done' => $action ), admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-settings&tab=advanced§ion=misc' ) ) );
|
71 |
+
exit;
|
72 |
+
}
|
73 |
+
break;
|
74 |
}
|
75 |
}
|
76 |
|
111 |
case 'dlm_regenerate_protection':
|
112 |
echo "<p>" . esc_html__( '.htaccess file successfully regenerated!', 'download-monitor' ) . "</p>";
|
113 |
break;
|
114 |
+
case 'dlm_regenerate_robots':
|
115 |
+
echo "<p>" . esc_html__( 'Robots.txt file successfully regenerated!', 'download-monitor' ) . "</p>";
|
116 |
+
break;
|
117 |
}
|
118 |
?>
|
119 |
</div>
|
298 |
add_filter( 'dlm_page_header', array( $this, 'page_header_locations' ) );
|
299 |
|
300 |
add_filter( 'dlm_settings', array( $this, 'access_files_checker_field' ) );
|
301 |
+
|
302 |
+
add_filter( 'dlm_settings', array( $this, 'robots_files_checker_field' ) );
|
303 |
}
|
304 |
|
305 |
/**
|
540 |
}
|
541 |
}
|
542 |
|
543 |
+
/**
|
544 |
+
* Add setting to check if the robots.txt file is there
|
545 |
+
*
|
546 |
+
* @param Array $settings
|
547 |
+
* @return array
|
548 |
+
*
|
549 |
+
* @since 4.5.9
|
550 |
+
*/
|
551 |
+
public function robots_files_checker_field( $settings ) {
|
552 |
+
|
553 |
+
$robots_file = "{$_SERVER['DOCUMENT_ROOT']}/robots.txt";
|
554 |
+
$page = wp_remote_get( get_home_url() . '/robots.txt');
|
555 |
+
$has_virtual_robots = false !== strpos( $page['headers']['content-type'], 'text/plain' );
|
556 |
+
|
557 |
+
if ( ! file_exists( $robots_file ) ) {
|
558 |
+
$icon = 'dashicons-dismiss';
|
559 |
+
$icon_color = '#f00';
|
560 |
+
$icon_text = __( 'Robots.txt is missing.', 'download-monitor' );
|
561 |
+
|
562 |
+
if ( $has_virtual_robots ) {
|
563 |
+
$icon_text = __( 'Robots.txt file is missing but site has virtual Robots.txt file. If you regenerate this you will loose the restrictions set in the virtual one. Please either update the virtual with the corresponding rules for dlm_uploads or regenerate and update the newly created one with the contents from the virtual file.', 'download-monitor' );
|
564 |
+
}
|
565 |
+
} else {
|
566 |
+
|
567 |
+
$content = file_get_contents( $robots_file );
|
568 |
+
if ( stristr( $content, 'dlm_uploads' ) ) {
|
569 |
+
$icon = 'dashicons-yes-alt';
|
570 |
+
$icon_color = '#00A32A';
|
571 |
+
$icon_text = __( 'You are protected by robots.txt.', 'download-monitor' );
|
572 |
+
} else {
|
573 |
+
$icon = 'dashicons-dismiss';
|
574 |
+
$icon_color = '#f00';
|
575 |
+
$icon_text = __( 'Robots.txt file exists but dlm_uploads folder is not protected.', 'download-monitor' );
|
576 |
+
}
|
577 |
+
}
|
578 |
+
|
579 |
+
$settings['advanced']['sections']['misc']['fields'][] = array(
|
580 |
+
'name' => 'dlm_regenerate_robots',
|
581 |
+
'label' => __( 'Regenerate crawler protection for uploads folder', 'download-monitor' ),
|
582 |
+
'desc' => __( 'Regenerates the robots.txt file.', 'download-monitor' ),
|
583 |
+
'link' => admin_url( 'edit.php?post_type=dlm_download&page=download-monitor-settings' ) . '&tab=advanced§ion=misc',
|
584 |
+
'icon' => $icon,
|
585 |
+
'icon-color' => $icon_color,
|
586 |
+
'icon-text' => $icon_text,
|
587 |
+
'disabled' => isset( $disabled ) ? 'true' : 'false',
|
588 |
+
'type' => 'htaccess_status',
|
589 |
+
);
|
590 |
+
|
591 |
+
return $settings;
|
592 |
+
}
|
593 |
+
|
594 |
+
/**
|
595 |
+
* Function used to regenerate the robots.txt for the dlm_uploads folder
|
596 |
+
*
|
597 |
+
* @return void
|
598 |
+
*
|
599 |
+
* @since 4.5.9
|
600 |
+
*/
|
601 |
+
private function regenerate_robots(){
|
602 |
+
|
603 |
+
$robots_file = "{$_SERVER['DOCUMENT_ROOT']}/robots.txt";
|
604 |
+
if( ! file_exists( $robots_file ) ) {
|
605 |
+
$txt = 'User-agent: *' . "\n" . 'Disallow: /dlm_uploads/';
|
606 |
+
$dlm_robots = fopen( $robots_file, "w" );
|
607 |
+
fwrite( $dlm_robots, $txt );
|
608 |
+
|
609 |
+
return true;
|
610 |
+
|
611 |
+
} else {
|
612 |
+
|
613 |
+
$content = file_get_contents( $robots_file );
|
614 |
+
if ( ! stristr( $content, 'dlm_uploads' ) ) {
|
615 |
+
|
616 |
+
$dlm_robots = fopen( $robots_file, "w" );
|
617 |
+
$txt = 'User-agent: *' . "\n" . 'Disallow: /dlm_uploads/' . "\n\n" . $content;
|
618 |
+
|
619 |
+
fwrite( $dlm_robots, $txt );
|
620 |
+
|
621 |
+
return true;
|
622 |
+
}
|
623 |
+
}
|
624 |
+
|
625 |
+
return false;
|
626 |
+
}
|
627 |
}
|
628 |
+
|
629 |
+
|
630 |
+
|
src/Admin/Settings/Settings.php
CHANGED
@@ -281,6 +281,14 @@ class DLM_Admin_Settings {
|
|
281 |
'desc' => sprintf( __( 'If enabled, the counter for each download will only increment and create a log entry once per IP address. Note that this option only works if %1$s is set to %2$s.', 'download-monitor' ), '<strong>' . __( 'IP Address Logging', 'download-monitor' ) . '</strong>', '<strong>' . __( 'Store full IP address', 'download-monitor' ) . '</strong>' ),
|
282 |
'type' => 'checkbox',
|
283 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
),
|
285 |
),
|
286 |
'misc' => array(
|
281 |
'desc' => sprintf( __( 'If enabled, the counter for each download will only increment and create a log entry once per IP address. Note that this option only works if %1$s is set to %2$s.', 'download-monitor' ), '<strong>' . __( 'IP Address Logging', 'download-monitor' ) . '</strong>', '<strong>' . __( 'Store full IP address', 'download-monitor' ) . '</strong>' ),
|
282 |
'type' => 'checkbox',
|
283 |
),
|
284 |
+
array(
|
285 |
+
'name' => 'dlm_log_admin_download_count',
|
286 |
+
'std' => '1',
|
287 |
+
'label' => __( 'Admin count', 'download-monitor' ),
|
288 |
+
'cb_label' => __( 'Disable', 'download-monitor' ),
|
289 |
+
'desc' => __( 'If disabled, the counter for each download will not increment when an administrator downloads a file.', 'download-monitor' ),
|
290 |
+
'type' => 'checkbox',
|
291 |
+
),
|
292 |
),
|
293 |
),
|
294 |
'misc' => array(
|
src/Admin/WritePanels.php
CHANGED
@@ -373,7 +373,7 @@ class DLM_Admin_Writepanels {
|
|
373 |
$downloadable_file_id = $_POST['downloadable_file_id'];
|
374 |
$downloadable_file_menu_order = $_POST['downloadable_file_menu_order'];
|
375 |
$downloadable_file_version = $_POST['downloadable_file_version'];
|
376 |
-
$downloadable_file_urls = $_POST['downloadable_file_urls'];
|
377 |
$downloadable_file_date = $_POST['downloadable_file_date'];
|
378 |
$downloadable_file_date_hour = $_POST['downloadable_file_date_hour'];
|
379 |
$downloadable_file_date_minute = $_POST['downloadable_file_date_minute'];
|
@@ -397,6 +397,13 @@ class DLM_Admin_Writepanels {
|
|
397 |
$file_date = sanitize_text_field( $downloadable_file_date[ $i ] );
|
398 |
$file_download_count = sanitize_text_field( $downloadable_file_download_count[ $i ] );
|
399 |
$files = array_filter( array_map( 'trim', explode( "\n", $downloadable_file_urls[ $i ] ) ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
|
401 |
// only continue if there's a file_id
|
402 |
if ( ! $file_id ) {
|
@@ -420,7 +427,7 @@ class DLM_Admin_Writepanels {
|
|
420 |
$version->set_menu_order( $file_menu_order );
|
421 |
$version->set_version( $file_version );
|
422 |
$version->set_date( $file_date_obj );
|
423 |
-
$version->set_mirrors( $
|
424 |
|
425 |
// only set download count if is posted
|
426 |
if ( '' !== $file_download_count ) {
|
@@ -498,4 +505,5 @@ class DLM_Admin_Writepanels {
|
|
498 |
wp_send_json_success( array( 'file_url' => wp_get_attachment_url( $attach_id ) ) );
|
499 |
|
500 |
}
|
|
|
501 |
}
|
373 |
$downloadable_file_id = $_POST['downloadable_file_id'];
|
374 |
$downloadable_file_menu_order = $_POST['downloadable_file_menu_order'];
|
375 |
$downloadable_file_version = $_POST['downloadable_file_version'];
|
376 |
+
$downloadable_file_urls = wp_unslash( $_POST['downloadable_file_urls'] );
|
377 |
$downloadable_file_date = $_POST['downloadable_file_date'];
|
378 |
$downloadable_file_date_hour = $_POST['downloadable_file_date_hour'];
|
379 |
$downloadable_file_date_minute = $_POST['downloadable_file_date_minute'];
|
397 |
$file_date = sanitize_text_field( $downloadable_file_date[ $i ] );
|
398 |
$file_download_count = sanitize_text_field( $downloadable_file_download_count[ $i ] );
|
399 |
$files = array_filter( array_map( 'trim', explode( "\n", $downloadable_file_urls[ $i ] ) ) );
|
400 |
+
$secured_files = array();
|
401 |
+
$file_manager = new DLM_File_Manager();
|
402 |
+
|
403 |
+
foreach ( $files as $file ) {
|
404 |
+
list( $file_path ) = $file_manager->get_secure_path( $file, true );
|
405 |
+
$secured_files[] = addslashes( $file_path );
|
406 |
+
}
|
407 |
|
408 |
// only continue if there's a file_id
|
409 |
if ( ! $file_id ) {
|
427 |
$version->set_menu_order( $file_menu_order );
|
428 |
$version->set_version( $file_version );
|
429 |
$version->set_date( $file_date_obj );
|
430 |
+
$version->set_mirrors( $secured_files );
|
431 |
|
432 |
// only set download count if is posted
|
433 |
if ( '' !== $file_download_count ) {
|
505 |
wp_send_json_success( array( 'file_url' => wp_get_attachment_url( $attach_id ) ) );
|
506 |
|
507 |
}
|
508 |
+
|
509 |
}
|
src/DLM.php
CHANGED
@@ -109,6 +109,9 @@ class WP_DLM {
|
|
109 |
$upgrade_manager = new DLM_Upgrade_Manager();
|
110 |
$upgrade_manager->setup();
|
111 |
|
|
|
|
|
|
|
112 |
// Legacy Upgrader
|
113 |
$lu_page = new DLM_LU_Page();
|
114 |
$lu_page->setup();
|
109 |
$upgrade_manager = new DLM_Upgrade_Manager();
|
110 |
$upgrade_manager->setup();
|
111 |
|
112 |
+
// DLM Welcome page
|
113 |
+
DLM_Welcome_Page::get_instance();
|
114 |
+
|
115 |
// Legacy Upgrader
|
116 |
$lu_page = new DLM_LU_Page();
|
117 |
$lu_page->setup();
|
src/DownloadHandler.php
CHANGED
@@ -409,6 +409,17 @@ class DLM_Download_Handler {
|
|
409 |
wp_die( esc_html__( 'No file paths defined.', 'download-monitor' ) . ' <a href="' . esc_url( home_url() ) . '">' . esc_html__( 'Go to homepage →', 'download-monitor' ) . '</a>', esc_html__( 'Download Error', 'download-monitor' ) );
|
410 |
}
|
411 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
// Check Access
|
413 |
if ( ! apply_filters( 'dlm_can_download', true, $download, $version ) ) {
|
414 |
|
@@ -440,7 +451,7 @@ class DLM_Download_Handler {
|
|
440 |
}else{
|
441 |
$no_access_permalink = untrailingslashit( $no_access_permalink ) . '/download-id/' . $download->get_id() . '/';
|
442 |
}
|
443 |
-
|
444 |
if ( ! $download->get_version()->is_latest() ) {
|
445 |
$no_access_permalink = add_query_arg( 'version', $download->get_version()->get_version(), $no_access_permalink );
|
446 |
}
|
@@ -494,18 +505,15 @@ class DLM_Download_Handler {
|
|
494 |
|
495 |
// Ensure we have a valid URL, not a file path
|
496 |
$scheme = parse_url( get_option( 'home' ), PHP_URL_SCHEME );
|
497 |
-
$
|
498 |
-
|
499 |
-
header(
|
|
|
500 |
exit;
|
501 |
}
|
502 |
|
503 |
-
// Parse file path
|
504 |
-
list( $file_path, $remote_file ) = download_monitor()->service( 'file_manager' )->parse_file_path( $file_path );
|
505 |
-
$file_path = apply_filters( 'dlm_file_path', $file_path, $remote_file, $download );
|
506 |
-
|
507 |
$this->download_headers( $file_path, $download, $version );
|
508 |
-
|
509 |
do_action( 'dlm_start_download_process', $download, $version, $file_path, $remote_file );
|
510 |
|
511 |
if ( get_option( 'dlm_xsendfile_enabled' ) ) {
|
@@ -531,7 +539,7 @@ class DLM_Download_Handler {
|
|
531 |
// phpcs:ignore
|
532 |
$file_path = str_ireplace( $_SERVER['DOCUMENT_ROOT'], '', $file_path );
|
533 |
}
|
534 |
-
|
535 |
header( "X-Accel-Redirect: /$file_path" );
|
536 |
exit;
|
537 |
}
|
@@ -659,8 +667,13 @@ class DLM_Download_Handler {
|
|
659 |
$headers['Content-Disposition'] = "attachment; filename=\"{$file_name}\";";
|
660 |
$headers['Content-Transfer-Encoding'] = 'binary';
|
661 |
|
662 |
-
|
663 |
-
|
|
|
|
|
|
|
|
|
|
|
664 |
$headers['Accept-Ranges'] = 'bytes';
|
665 |
}
|
666 |
|
409 |
wp_die( esc_html__( 'No file paths defined.', 'download-monitor' ) . ' <a href="' . esc_url( home_url() ) . '">' . esc_html__( 'Go to homepage →', 'download-monitor' ) . '</a>', esc_html__( 'Download Error', 'download-monitor' ) );
|
410 |
}
|
411 |
|
412 |
+
$redirect_path = $file_path;
|
413 |
+
// Parse file path
|
414 |
+
list( $file_path, $remote_file ) = download_monitor()->service( 'file_manager' )->get_secure_path( $file_path );
|
415 |
+
$file_path = apply_filters( 'dlm_file_path', $file_path, $remote_file, $download );
|
416 |
+
|
417 |
+
// The return of the get_secure_path function is an array that consists of the path ( string or false ) and the remote file ( bool ).
|
418 |
+
// If the path is false it means that the file is restricted, so don't download it or redirect to it.
|
419 |
+
if ( ! $file_path ) {
|
420 |
+
wp_die( esc_html__( 'Access denied to this file', 'download-monitor' ) . ' <a href="' . esc_url( home_url() ) . '">' . esc_html__( 'Go to homepage →', 'download-monitor' ) . '</a>', esc_html__( 'Download Error', 'download-monitor' ) );
|
421 |
+
}
|
422 |
+
|
423 |
// Check Access
|
424 |
if ( ! apply_filters( 'dlm_can_download', true, $download, $version ) ) {
|
425 |
|
451 |
}else{
|
452 |
$no_access_permalink = untrailingslashit( $no_access_permalink ) . '/download-id/' . $download->get_id() . '/';
|
453 |
}
|
454 |
+
|
455 |
if ( ! $download->get_version()->is_latest() ) {
|
456 |
$no_access_permalink = add_query_arg( 'version', $download->get_version()->get_version(), $no_access_permalink );
|
457 |
}
|
505 |
|
506 |
// Ensure we have a valid URL, not a file path
|
507 |
$scheme = parse_url( get_option( 'home' ), PHP_URL_SCHEME );
|
508 |
+
$redirect_path = str_replace( ABSPATH, site_url( '/', $scheme ), $redirect_path );
|
509 |
+
|
510 |
+
header("X-Robots-Tag: noindex, nofollow", true);
|
511 |
+
header( 'Location: ' . $redirect_path );
|
512 |
exit;
|
513 |
}
|
514 |
|
|
|
|
|
|
|
|
|
515 |
$this->download_headers( $file_path, $download, $version );
|
516 |
+
|
517 |
do_action( 'dlm_start_download_process', $download, $version, $file_path, $remote_file );
|
518 |
|
519 |
if ( get_option( 'dlm_xsendfile_enabled' ) ) {
|
539 |
// phpcs:ignore
|
540 |
$file_path = str_ireplace( $_SERVER['DOCUMENT_ROOT'], '', $file_path );
|
541 |
}
|
542 |
+
|
543 |
header( "X-Accel-Redirect: /$file_path" );
|
544 |
exit;
|
545 |
}
|
667 |
$headers['Content-Disposition'] = "attachment; filename=\"{$file_name}\";";
|
668 |
$headers['Content-Transfer-Encoding'] = 'binary';
|
669 |
|
670 |
+
$file_manager = new DLM_File_Manager();
|
671 |
+
$file_size = $file_manager->get_file_size( $file_path );
|
672 |
+
|
673 |
+
if ( $file_size ) {
|
674 |
+
// Replace the old way ( getting the filesize from the DB ) in case the user has replaced the file directly using cPanel,
|
675 |
+
// FTP or other File Manager, or sometimes using an optimization service it may cause unwanted results.
|
676 |
+
$headers['Content-Length'] = $file_size;
|
677 |
$headers['Accept-Ranges'] = 'bytes';
|
678 |
}
|
679 |
|
src/FileManager.php
CHANGED
@@ -76,7 +76,6 @@ class DLM_File_Manager {
|
|
76 |
$file_path = trim( str_replace( $wp_uploads_url, $wp_uploads_dir, $file_path ) );
|
77 |
$file_path = realpath( $file_path );
|
78 |
|
79 |
-
|
80 |
} elseif ( is_multisite() && ( ( strpos( $file_path, network_site_url( '/', 'http' ) ) !== false ) || ( strpos( $file_path, network_site_url( '/', 'https' ) ) !== false ) ) ) {
|
81 |
|
82 |
/** This is a local file outside of wp-content so figure out the path */
|
@@ -239,4 +238,75 @@ class DLM_File_Manager {
|
|
239 |
return download_monitor()->service( 'hasher' )->get_file_hashes( $file_path );
|
240 |
}
|
241 |
|
242 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
$file_path = trim( str_replace( $wp_uploads_url, $wp_uploads_dir, $file_path ) );
|
77 |
$file_path = realpath( $file_path );
|
78 |
|
|
|
79 |
} elseif ( is_multisite() && ( ( strpos( $file_path, network_site_url( '/', 'http' ) ) !== false ) || ( strpos( $file_path, network_site_url( '/', 'https' ) ) !== false ) ) ) {
|
80 |
|
81 |
/** This is a local file outside of wp-content so figure out the path */
|
238 |
return download_monitor()->service( 'hasher' )->get_file_hashes( $file_path );
|
239 |
}
|
240 |
|
241 |
+
/**
|
242 |
+
* Return the secured file path or url of the downloadable file. Should not let restricted files or out of root files to be downloaded.
|
243 |
+
*
|
244 |
+
* @param string $file The file path/url
|
245 |
+
* @param bool $relative Wheter or not to return a relative path. Default is false
|
246 |
+
*
|
247 |
+
* @return string The secured file path/url
|
248 |
+
* @since 4.5.9
|
249 |
+
*/
|
250 |
+
public function get_secure_path( $file, $relative = false ) {
|
251 |
+
|
252 |
+
// ABSPATH needs to be defined
|
253 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
254 |
+
die;
|
255 |
+
}
|
256 |
+
|
257 |
+
list( $file_path, $remote_file ) = $this->parse_file_path( $file );
|
258 |
+
|
259 |
+
// If the file is remote, return the file path. If the file is not located on local server, return the file path.
|
260 |
+
// This is available even if the file is one of the restricted files below. The plugin will let the user download the file,
|
261 |
+
// but the file will be empty, with a 404 error or an error message.
|
262 |
+
if ( $remote_file ) {
|
263 |
+
return array( $file_path, $remote_file );
|
264 |
+
}
|
265 |
+
|
266 |
+
// The list of predefined restricted files.
|
267 |
+
$restricted_files = array(
|
268 |
+
'wp-config.php',
|
269 |
+
'.htaccess',
|
270 |
+
'php.ini',
|
271 |
+
);
|
272 |
+
|
273 |
+
// Specify the files that should be restricted from the download process.
|
274 |
+
$restricted_files = array_merge(
|
275 |
+
$restricted_files,
|
276 |
+
apply_filters(
|
277 |
+
'dlm_file_urls_security_files',
|
278 |
+
array()
|
279 |
+
)
|
280 |
+
);
|
281 |
+
|
282 |
+
// Loop through the restricted files and return empty string if found.
|
283 |
+
foreach ( $restricted_files as $restricted_file ) {
|
284 |
+
|
285 |
+
if ( basename( $file_path ) === $restricted_file ) {
|
286 |
+
// If the file is restricted, return empty string.
|
287 |
+
$file_path = false;
|
288 |
+
return array( $file_path, $remote_file );
|
289 |
+
}
|
290 |
+
}
|
291 |
+
|
292 |
+
// If we get here it means the file is not restricted so we can get put the relative path. Use a untrailingslashit on ABSPATH because on some systems
|
293 |
+
// we have `\` and on others we have `/` for paths.
|
294 |
+
$abspath_sub = untrailingslashit( ABSPATH );
|
295 |
+
|
296 |
+
// If ABSPATH is not completly in the file path it means that the file is not in the root of the site, so return empty string.
|
297 |
+
if ( false === strpos( $file_path, $abspath_sub ) ) {
|
298 |
+
$file_path = false;
|
299 |
+
return array( $file_path, $remote_file );
|
300 |
+
}
|
301 |
+
|
302 |
+
if ( $relative ) {
|
303 |
+
// If we get here it means the file is not restricted so we can get put the relative path. Use a substract of ABSPATH because on some systems
|
304 |
+
// the ABSPATH ends on \ and on others it ends on /
|
305 |
+
$file_path = str_replace( $abspath_sub, '', $file_path );
|
306 |
+
}
|
307 |
+
|
308 |
+
return array( $file_path, $remote_file );
|
309 |
+
|
310 |
+
}
|
311 |
+
|
312 |
+
}
|
src/Installer.php
CHANGED
@@ -42,6 +42,7 @@ class DLM_Installer {
|
|
42 |
$no_access_page_endpoint = new DLM_Download_No_Access_Page_Endpoint();
|
43 |
$no_access_page_endpoint->setup();
|
44 |
|
|
|
45 |
// Set the current version
|
46 |
update_option( DLM_Constants::OPTION_CURRENT_VERSION, DLM_VERSION );
|
47 |
|
@@ -50,6 +51,12 @@ class DLM_Installer {
|
|
50 |
|
51 |
// flush rewrite rules
|
52 |
flush_rewrite_rules();
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
|
42 |
$no_access_page_endpoint = new DLM_Download_No_Access_Page_Endpoint();
|
43 |
$no_access_page_endpoint->setup();
|
44 |
|
45 |
+
$first_install = ! get_option( DLM_Constants::OPTION_CURRENT_VERSION ) ? true : false;
|
46 |
// Set the current version
|
47 |
update_option( DLM_Constants::OPTION_CURRENT_VERSION, DLM_VERSION );
|
48 |
|
51 |
|
52 |
// flush rewrite rules
|
53 |
flush_rewrite_rules();
|
54 |
+
|
55 |
+
// We need this class here also so that we can use it in the activation hook.
|
56 |
+
// DLM Welcome page
|
57 |
+
DLM_Welcome_Page::get_instance();
|
58 |
+
|
59 |
+
do_action( 'dlm_after_install_setup', $first_install );
|
60 |
}
|
61 |
|
62 |
|
src/Logs/LoggingListTable.php
CHANGED
@@ -109,8 +109,8 @@ class DLM_Logging_List_Table extends WP_List_Table {
|
|
109 |
}
|
110 |
|
111 |
|
112 |
-
$download_string = '<a href="' . admin_url( 'post.php?post=' . $download->get_id() . '&action=edit' ) . '">';
|
113 |
-
$download_string .= '#' . $download->get_id() . ' – ' . $download->get_title();
|
114 |
$download_string .= '</a>';
|
115 |
|
116 |
if ( $log->get_version() ) {
|
109 |
}
|
110 |
|
111 |
|
112 |
+
$download_string = '<a href="' . admin_url( 'post.php?post=' . absint( $download->get_id() ) . '&action=edit' ) . '">';
|
113 |
+
$download_string .= '#' . $download->get_id() . ' – ' . esc_html( $download->get_title() );
|
114 |
$download_string .= '</a>';
|
115 |
|
116 |
if ( $log->get_version() ) {
|
src/Polyfill/DateTimeImmutable/DateTimeImmutable.php
CHANGED
@@ -14,9 +14,11 @@ if ( ! class_exists( "DateTimeImmutable" ) ) {
|
|
14 |
|
15 |
|
16 |
class DateTimeImmutable implements DateTimeInterface {
|
17 |
-
public static function __set_state() {
|
|
|
18 |
}
|
19 |
|
|
|
20 |
public static function createFromFormat( $format, $time, $object = null ) {
|
21 |
$dt = DateTime::createFromFormat( $format, $time, $object );
|
22 |
if ( $dt === false ) {
|
14 |
|
15 |
|
16 |
class DateTimeImmutable implements DateTimeInterface {
|
17 |
+
public static function __set_state( array $array ) {
|
18 |
+
return new DateTimeImmutable( $array['date'] );
|
19 |
}
|
20 |
|
21 |
+
|
22 |
public static function createFromFormat( $format, $time, $object = null ) {
|
23 |
$dt = DateTime::createFromFormat( $format, $time, $object );
|
24 |
if ( $dt === false ) {
|
src/Shop/Admin/ProductTableColumns.php
CHANGED
@@ -28,11 +28,12 @@ class ProductTableColumns {
|
|
28 |
public function add_columns( $columns ) {
|
29 |
$columns = array();
|
30 |
|
31 |
-
$columns["cb"]
|
32 |
-
$columns["thumb"]
|
33 |
-
$columns["title"]
|
34 |
-
$columns["
|
35 |
-
$columns["
|
|
|
36 |
|
37 |
return $columns;
|
38 |
}
|
@@ -63,6 +64,9 @@ class ProductTableColumns {
|
|
63 |
case "price" :
|
64 |
echo esc_html( dlm_format_money( $product->get_price() ) );
|
65 |
break;
|
|
|
|
|
|
|
66 |
}
|
67 |
}
|
68 |
|
28 |
public function add_columns( $columns ) {
|
29 |
$columns = array();
|
30 |
|
31 |
+
$columns["cb"] = "<input type=\"checkbox\" />";
|
32 |
+
$columns["thumb"] = '<span>' . __( "Image", 'download-monitor' ) . '</span>';
|
33 |
+
$columns["title"] = __( "Title", 'download-monitor' );
|
34 |
+
$columns["shortcode"] = __( "Shortcode", 'download-monitor' );
|
35 |
+
$columns["price"] = __( "Price", 'download-monitor' );
|
36 |
+
$columns["date"] = __( "Date", 'download-monitor' );
|
37 |
|
38 |
return $columns;
|
39 |
}
|
64 |
case "price" :
|
65 |
echo esc_html( dlm_format_money( $product->get_price() ) );
|
66 |
break;
|
67 |
+
case "shortcode" :
|
68 |
+
echo '<button class="wpchill-tooltip-button copy-dlm-shortcode button button-primary dashicons dashicons-shortcode" style="width:40px;"><div class="wpchill-tooltip-content"><span class="dlm-copy-text">' . esc_html__( 'Copy shortcode', 'download-monitor' ) . '</span><div class="dl-shortcode-copy"><code>[dlm_buy id="' . absint( $post_id ) . '"]</code><input type="text" value="[dlm_buy id=\'' . absint( $post_id ) . '\']" class="hidden"></div></div></button>';
|
69 |
+
break;
|
70 |
}
|
71 |
}
|
72 |
|
src/Shop/Admin/WritePanels.php
CHANGED
@@ -21,10 +21,46 @@ class WritePanels {
|
|
21 |
* Add the meta boxes
|
22 |
*/
|
23 |
public function add_meta_box() {
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
}
|
29 |
|
30 |
/**
|
@@ -149,5 +185,39 @@ class WritePanels {
|
|
149 |
);
|
150 |
}
|
151 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
|
153 |
}
|
21 |
* Add the meta boxes
|
22 |
*/
|
23 |
public function add_meta_box() {
|
24 |
+
|
25 |
+
// We remove the Publish metabox and add to our queue
|
26 |
+
remove_meta_box( 'submitdiv', 'dlm_download', 'side' );
|
27 |
+
|
28 |
+
$meta_boxes = apply_filters(
|
29 |
+
'dlm_product_metaboxes',
|
30 |
+
array(
|
31 |
+
array(
|
32 |
+
'id' => 'submitdiv',
|
33 |
+
'title' => esc_html__( 'Publish' ),
|
34 |
+
'callback' => 'post_submit_meta_box',
|
35 |
+
'screen' => PostType::KEY,
|
36 |
+
'context' => 'side',
|
37 |
+
'priority' => 1,
|
38 |
+
),
|
39 |
+
array(
|
40 |
+
'id' => 'download-monitor-product-information',
|
41 |
+
'title' => esc_html__( 'Product Information', 'download-monitor' ),
|
42 |
+
'callback' => array( $this, 'download_product_information' ),
|
43 |
+
'screen' => PostType::KEY,
|
44 |
+
'context' => 'side',
|
45 |
+
'priority' => 5,
|
46 |
+
),
|
47 |
+
array(
|
48 |
+
'id' => 'download-monitor-product-info',
|
49 |
+
'title' => esc_html__( 'Product Information', 'download-monitor' ),
|
50 |
+
'callback' => array( $this, 'display_product_information' ),
|
51 |
+
'screen' => PostType::KEY,
|
52 |
+
'context' => 'normal',
|
53 |
+
'priority' => 20,
|
54 |
+
),
|
55 |
+
)
|
56 |
+
);
|
57 |
+
|
58 |
+
uasort( $meta_boxes, array( 'DLM_Admin_Helper', 'sort_data_by_priority' ) );
|
59 |
+
|
60 |
+
foreach ( $meta_boxes as $metabox ) {
|
61 |
+
// Priority is left out as we prioritise based on our sorting function
|
62 |
+
add_meta_box( $metabox['id'], $metabox['title'], $metabox['callback'], $metabox['screen'], $metabox['context'], 'high' );
|
63 |
+
}
|
64 |
}
|
65 |
|
66 |
/**
|
185 |
);
|
186 |
}
|
187 |
|
188 |
+
/**
|
189 |
+
* download_product_information function.
|
190 |
+
*
|
191 |
+
* @access public
|
192 |
+
*
|
193 |
+
* @param WP_Post $post
|
194 |
+
*
|
195 |
+
* @return void
|
196 |
+
*/
|
197 |
+
public function download_product_information( $post ) {
|
198 |
+
|
199 |
+
echo '<div class="dlm_information_panel">';
|
200 |
+
|
201 |
+
if ( $post->ID ) {
|
202 |
+
do_action( 'dlm_product_information_start', $post->ID, $post );
|
203 |
+
?>
|
204 |
+
<div>
|
205 |
+
<p><?php echo esc_html__( 'ID', 'download-monitor' ); ?> </p>
|
206 |
+
<input type="text" id="dlm-info-id" value="<?php echo esc_attr( $post->ID ); ?>" readonly onfocus="this.select()"/>
|
207 |
+
<a href="#" title="<?php esc_attr_e( 'Copy ID', 'download-monitor' ); ?>" class="copy-dlm-button button button-primary dashicons dashicons-format-gallery" data-item="Id" style="width:40px;"></a><span></span>
|
208 |
+
</div>
|
209 |
+
<div>
|
210 |
+
<p><?php echo esc_html__( 'Shortcode', 'download-monitor' ); ?> </p>
|
211 |
+
<input type="text" id="dlm-info-id" value='[dlm_buy id="<?php echo esc_attr( $post->ID ); ?>"]' readonly onfocus="this.select()"/>
|
212 |
+
<a href="#" title="<?php esc_attr_e( 'Copy shortcode', 'download-monitor' ); ?>" class="copy-dlm-button button button-primary dashicons dashicons-format-gallery" data-item="Shortcode" style="width:40px;"></a><span></span>
|
213 |
+
</div>
|
214 |
+
<?php
|
215 |
+
do_action( 'dlm_product_information_end', $post->ID, $post );
|
216 |
+
} else {
|
217 |
+
echo '<p>' . esc_html__( 'No information for new products.', 'download-monitor' ) . '</p>';
|
218 |
+
}
|
219 |
+
|
220 |
+
echo '</div>';
|
221 |
+
}
|
222 |
|
223 |
}
|
src/Shop/Util/Assets.php
CHANGED
@@ -54,6 +54,25 @@ class Assets {
|
|
54 |
public function enqueue_admin_assets() {
|
55 |
global $pagenow;
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
if (
|
58 |
'edit.php' == $pagenow
|
59 |
&& isset( $_GET['post_type'] )
|
54 |
public function enqueue_admin_assets() {
|
55 |
global $pagenow;
|
56 |
|
57 |
+
if( 'edit.php' == $pagenow && isset( $_GET['post_type'] ) && PostType::KEY === $_GET['post_type'] ) {
|
58 |
+
wp_enqueue_script(
|
59 |
+
'product_script',
|
60 |
+
plugins_url( '/assets/js/shop/product-script' . ( ( ! SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', download_monitor()->get_plugin_file() ),
|
61 |
+
array( 'jquery' ),
|
62 |
+
DLM_VERSION
|
63 |
+
);
|
64 |
+
|
65 |
+
// Make JavaScript strings translatable
|
66 |
+
wp_localize_script(
|
67 |
+
'product_script',
|
68 |
+
'dlm_product_overview',
|
69 |
+
array(
|
70 |
+
'copy_shortcode' => esc_html__( 'Copy shortcode', 'download-monitor' ),
|
71 |
+
'shortcode_copied' => esc_html__( 'Shortcode copied', 'download-monitor' ),
|
72 |
+
)
|
73 |
+
);
|
74 |
+
}
|
75 |
+
|
76 |
if (
|
77 |
'edit.php' == $pagenow
|
78 |
&& isset( $_GET['post_type'] )
|
src/Version/Version.php
CHANGED
@@ -353,6 +353,17 @@ class DLM_Download_Version {
|
|
353 |
* @return void
|
354 |
*/
|
355 |
public function increase_download_count() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
// File download_count
|
357 |
$this->download_count = absint( get_post_meta( $this->id, '_download_count', true ) ) + 1;
|
358 |
update_post_meta( $this->id, '_download_count', $this->download_count );
|
@@ -360,6 +371,7 @@ class DLM_Download_Version {
|
|
360 |
// Parent download download_count
|
361 |
$parent_download_count = absint( get_post_meta( $this->download_id, '_download_count', true ) ) + 1;
|
362 |
update_post_meta( $this->download_id, '_download_count', $parent_download_count );
|
|
|
363 |
}
|
364 |
|
365 |
/**
|
353 |
* @return void
|
354 |
*/
|
355 |
public function increase_download_count() {
|
356 |
+
|
357 |
+
// Let's check if the user wants skip count if admin
|
358 |
+
if ( get_option( 'dlm_log_admin_download_count', false ) ) {
|
359 |
+
|
360 |
+
// If user really is admin we return
|
361 |
+
$user = wp_get_current_user();
|
362 |
+
if ( in_array( 'administrator', $user->roles, true ) ) {
|
363 |
+
return;
|
364 |
+
}
|
365 |
+
}
|
366 |
+
|
367 |
// File download_count
|
368 |
$this->download_count = absint( get_post_meta( $this->id, '_download_count', true ) ) + 1;
|
369 |
update_post_meta( $this->id, '_download_count', $this->download_count );
|
371 |
// Parent download download_count
|
372 |
$parent_download_count = absint( get_post_meta( $this->download_id, '_download_count', true ) ) + 1;
|
373 |
update_post_meta( $this->download_id, '_download_count', $parent_download_count );
|
374 |
+
|
375 |
}
|
376 |
|
377 |
/**
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -96,6 +96,7 @@ return array(
|
|
96 |
'DLM_Version_Manager' => $baseDir . '/src/Version/VersionManager.php',
|
97 |
'DLM_Version_Repository' => $baseDir . '/src/Version/VersionRepository.php',
|
98 |
'DLM_View_Manager' => $baseDir . '/src/Admin/ViewManager.php',
|
|
|
99 |
'DLM_Widget_Downloads' => $baseDir . '/src/Widgets/Downloads.php',
|
100 |
'DLM_Widget_Manager' => $baseDir . '/src/Widgets/Manager.php',
|
101 |
'DLM_WordPress_Download_Repository' => $baseDir . '/src/Download/WordPressDownloadRepository.php',
|
@@ -256,5 +257,6 @@ return array(
|
|
256 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\PimpleTest' => $baseDir . '/src/Dependencies/Pimple/Tests/PimpleTest.php',
|
257 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ContainerTest' => $baseDir . '/src/Dependencies/Pimple/Tests/Psr11/ContainerTest.php',
|
258 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ServiceLocatorTest' => $baseDir . '/src/Dependencies/Pimple/Tests/Psr11/ServiceLocatorTest.php',
|
|
|
259 |
'WP_DLM' => $baseDir . '/src/DLM.php',
|
260 |
);
|
96 |
'DLM_Version_Manager' => $baseDir . '/src/Version/VersionManager.php',
|
97 |
'DLM_Version_Repository' => $baseDir . '/src/Version/VersionRepository.php',
|
98 |
'DLM_View_Manager' => $baseDir . '/src/Admin/ViewManager.php',
|
99 |
+
'DLM_Welcome_Page' => $baseDir . '/includes/admin/class-dlm-welcome.php',
|
100 |
'DLM_Widget_Downloads' => $baseDir . '/src/Widgets/Downloads.php',
|
101 |
'DLM_Widget_Manager' => $baseDir . '/src/Widgets/Manager.php',
|
102 |
'DLM_WordPress_Download_Repository' => $baseDir . '/src/Download/WordPressDownloadRepository.php',
|
257 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\PimpleTest' => $baseDir . '/src/Dependencies/Pimple/Tests/PimpleTest.php',
|
258 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ContainerTest' => $baseDir . '/src/Dependencies/Pimple/Tests/Psr11/ContainerTest.php',
|
259 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ServiceLocatorTest' => $baseDir . '/src/Dependencies/Pimple/Tests/Psr11/ServiceLocatorTest.php',
|
260 |
+
'WPChill_Welcome' => $baseDir . '/includes/submodules/banner/class-wpchill-welcome.php',
|
261 |
'WP_DLM' => $baseDir . '/src/DLM.php',
|
262 |
);
|
vendor/composer/autoload_static.php
CHANGED
@@ -111,6 +111,7 @@ class ComposerStaticInit80ce4473100edd20fd6c17775a76ce9a
|
|
111 |
'DLM_Version_Manager' => __DIR__ . '/../..' . '/src/Version/VersionManager.php',
|
112 |
'DLM_Version_Repository' => __DIR__ . '/../..' . '/src/Version/VersionRepository.php',
|
113 |
'DLM_View_Manager' => __DIR__ . '/../..' . '/src/Admin/ViewManager.php',
|
|
|
114 |
'DLM_Widget_Downloads' => __DIR__ . '/../..' . '/src/Widgets/Downloads.php',
|
115 |
'DLM_Widget_Manager' => __DIR__ . '/../..' . '/src/Widgets/Manager.php',
|
116 |
'DLM_WordPress_Download_Repository' => __DIR__ . '/../..' . '/src/Download/WordPressDownloadRepository.php',
|
@@ -271,6 +272,7 @@ class ComposerStaticInit80ce4473100edd20fd6c17775a76ce9a
|
|
271 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\PimpleTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/PimpleTest.php',
|
272 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ContainerTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/Psr11/ContainerTest.php',
|
273 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ServiceLocatorTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/Psr11/ServiceLocatorTest.php',
|
|
|
274 |
'WP_DLM' => __DIR__ . '/../..' . '/src/DLM.php',
|
275 |
);
|
276 |
|
111 |
'DLM_Version_Manager' => __DIR__ . '/../..' . '/src/Version/VersionManager.php',
|
112 |
'DLM_Version_Repository' => __DIR__ . '/../..' . '/src/Version/VersionRepository.php',
|
113 |
'DLM_View_Manager' => __DIR__ . '/../..' . '/src/Admin/ViewManager.php',
|
114 |
+
'DLM_Welcome_Page' => __DIR__ . '/../..' . '/includes/admin/class-dlm-welcome.php',
|
115 |
'DLM_Widget_Downloads' => __DIR__ . '/../..' . '/src/Widgets/Downloads.php',
|
116 |
'DLM_Widget_Manager' => __DIR__ . '/../..' . '/src/Widgets/Manager.php',
|
117 |
'DLM_WordPress_Download_Repository' => __DIR__ . '/../..' . '/src/Download/WordPressDownloadRepository.php',
|
272 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\PimpleTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/PimpleTest.php',
|
273 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ContainerTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/Psr11/ContainerTest.php',
|
274 |
'WPChill\\DownloadMonitor\\Dependencies\\Pimple\\Tests\\Psr11\\ServiceLocatorTest' => __DIR__ . '/../..' . '/src/Dependencies/Pimple/Tests/Psr11/ServiceLocatorTest.php',
|
275 |
+
'WPChill_Welcome' => __DIR__ . '/../..' . '/includes/submodules/banner/class-wpchill-welcome.php',
|
276 |
'WP_DLM' => __DIR__ . '/../..' . '/src/DLM.php',
|
277 |
);
|
278 |
|