/** * @usage Generate download link of a package * @param $package * @param int $embed * @param array $extras * @return string */ public static function downloadLink($ID, $embed = 0, $extras = array()) { global $wpdb, $current_user, $wpdm_download_icon, $wpdm_download_lock_icon, $btnclass; if (is_array($extras)) { extract($extras); } $data = ''; $package = self::Get($ID); $package['link_url'] = home_url('/?download=1&'); $package['link_label'] = !isset($package['link_label']) || $package['link_label'] == '' ? __("Download", "wpdmpro") : $package['link_label']; //Change link label using a button image $package['link_label'] = apply_filters('wpdm_button_image', $package['link_label'], $package); $package['download_url'] = wpdm_download_url($package); if (\WPDM\Package::userDownloadLimitExceeded($package['ID'])) { $package['download_url'] = '#'; $package['link_label'] = __('Download Limit Exceeded', 'wpdmpro'); } if (isset($package['expire_date']) && $package['expire_date'] != "" && strtotime($package['expire_date']) < time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download was expired on', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['expire_date'])); $package['download_link'] = "<a href='#'>{$package['link_label']}</a>"; $package = apply_filters('wpdm_after_prepare_package_data', $package); return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } if (isset($package['publish_date']) && $package['publish_date'] != '' && strtotime($package['publish_date']) > time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download will be available from ', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['publish_date'])); $package['download_link'] = "<a href='#'>{$package['link_label']}</a>"; $package = apply_filters('wpdm_after_prepare_package_data', $package); return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } $link_label = isset($package['link_label']) ? $package['link_label'] : __('Download', 'wpdmpro'); $package['access'] = wpdm_allowed_roles($package['ID']); if ($package['download_url'] != '#') { $package['download_link'] = "<a class='wpdm-download-link wpdm-download-locked {$btnclass}' rel='nofollow' href='#' onclick=\"location.href='{$package['download_url']}';return false;\"><i class='{$wpdm_download_icon}'></i>{$link_label}</a>"; } else { $package['download_link'] = "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$link_label}</div>"; } $caps = array_keys($current_user->caps); $role = array_shift($caps); $matched = is_array(@maybe_unserialize($package['access'])) && is_user_logged_in() ? array_intersect($current_user->roles, @maybe_unserialize($package['access'])) : array(); $skiplink = 0; if (is_user_logged_in() && count($matched) <= 0 && !@in_array('guest', @maybe_unserialize($package['access']))) { $package['download_url'] = "#"; $package['download_link'] = $package['download_link_extended'] = stripslashes(get_option('wpdm_permission_msg')); $package = apply_filters('wpdm_after_prepare_package_data', $package); if (get_option('_wpdm_hide_all', 0) == 1) { $package['download_link'] = $package['download_link_extended'] = 'blocked'; } return $package['download_link']; } if (!@in_array('guest', @maybe_unserialize($package['access'])) && !is_user_logged_in()) { $loginform = wpdm_login_form(array('redirect' => get_permalink($package['ID']))); if (get_option('_wpdm_hide_all', 0) == 1) { return 'loginform'; } $package['download_url'] = home_url('/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI'])); $package['download_link'] = stripcslashes(str_replace(array("[loginform]", "[this_url]"), array($loginform, get_permalink($package['ID'])), get_option('wpdm_login_msg'))); return get_option('__wpdm_login_form', 0) == 1 ? $loginform : $package['download_link']; } $package = apply_filters('wpdm_before_apply_locks', $package); $package = apply_filters('wpdm_after_prepare_package_data', $package); $unqid = uniqid(); if (!isset($package['quota']) || isset($package['quota']) && $package['quota'] > 0 && $package['quota'] > $package['download_count'] || $package['quota'] == 0) { $lock = 0; if ($package['password'] != '') { $lock = 'locked'; $data = \WPDM\PackageLocks::AskPassword($package); } $sociallock = ""; $extralocks = ''; $extralocks = apply_filters("wpdm_download_lock", $extralocks, $package); if (is_array($extralocks) && $extralocks['lock'] === 'locked') { if (isset($extralocks['type']) && $extralocks['type'] == 'social') { $sociallock .= $extralocks['html']; } else { $data .= $extralocks['html']; } $lock = 'locked'; } if ($sociallock != "") { $data .= "<div class='panel panel-default'><div class='panel-heading'>" . __("Like or Share to Download", "wpdmpro") . "</div><div class='panel-body wpdm-social-locks text-center'>{$sociallock}</div></div>"; } if ($lock === 'locked') { $popstyle = isset($popstyle) && in_array($popstyle, array('popup', 'pop-over')) ? $popstyle : 'pop-over'; if ($embed == 1) { $adata = "</strong><table class='table all-locks-table' style='border:0px'><tr><td style='padding:5px 0px;border:0px;'>" . $data . "</td></tr></table>"; } else { $dataattrs = $popstyle == 'pop-over' ? 'data-title="<button type=button id=\'close\' class=\'btn btn-link btn-xs pull-right po-close\' style=\'margin-top:-4px;margin-right:-10px\'><i class=\'fa fa-times text-danger\'></i></button> ' . __('Download', 'wpdmpro') . ' ' . $package['title'] . '"' : 'data-toggle="modal" data-target="#pkg_' . $package['ID'] . "_" . $unqid . '"'; $adata = '<a href="#pkg_' . $package['ID'] . "_" . $unqid . '" ' . $dataattrs . ' class="wpdm-download-link wpdm-download-locked ' . $popstyle . ' ' . $btnclass . '"><i class=\'' . $wpdm_download_lock_icon . '\'></i>' . $package['link_label'] . '</a>'; if ($popstyle == 'pop-over') { $adata .= '<div class="modal fade"><div class="row all-locks" id="pkg_' . $package['ID'] . "_" . $unqid . '">' . $data . '</div></div>'; } else { $adata .= '<div class="modal fade" role="modal" id="pkg_' . $package['ID'] . "_" . $unqid . '"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><strong style="margin:0px;font-size:12pt">' . __('Download') . '</strong></div><div class="modal-body">' . $data . '</div><div class="modal-footer text-right"><button type="button" class="btn btn-default btn-sm" data-dismiss="modal">Close</button></div></div></div></div>'; } } $data = $adata; } if ($lock !== 'locked') { $data = $package['download_link']; } } else { $data = __("Download limit exceeded!", 'wpdmpro'); } return $data; }
/** * Process Download Request * */ function wpdm_downloadnow() { global $wpdb, $current_user, $wp_query; get_currentuserinfo(); if (!isset($wp_query->query_vars['wpdmdl']) && !isset($_GET['wpdmdl'])) { return; } $id = isset($_GET['wpdmdl']) ? (int) $_GET['wpdmdl'] : (int) $wp_query->query_vars['wpdmdl']; if ($id <= 0) { return; } $key = array_key_exists('_wpdmkey', $_GET) ? $_GET['_wpdmkey'] : ''; $key = $key == '' && array_key_exists('_wpdmkey', $wp_query->query_vars) ? $wp_query->query_vars['_wpdmkey'] : $key; $key = preg_replace("/[^_a-z|A-Z|0-9]/i", "", $key); $key = "__wpdmkey_" . $key; $package = get_post($id, ARRAY_A); $package['ID'] = $package['ID']; $package = array_merge($package, wpdm_custom_data($package['ID'])); if (isset($package['files'])) { $package['files'] = maybe_unserialize($package['files']); } else { $package['files'] = array(); } //$package = wpdm_setup_package_data($package); $package['access'] = wpdm_allowed_roles($id); if (is_array($package)) { $role = @array_shift(@array_keys($current_user->caps)); $cpackage = apply_filters('before_download', $package); $lock = ''; $package = $cpackage ? $cpackage : $package; if (isset($package['email_lock']) && $package['email_lock'] == 1) { $lock = 'locked'; } if (isset($package['password_lock']) && $package['password_lock'] == 1) { $lock = 'locked'; } if (isset($package['gplusone_lock']) && $package['gplusone_lock'] == 1) { $lock = 'locked'; } if (isset($package['facebooklike_lock']) && $package['facebooklike_lock'] == 1) { $lock = 'locked'; } if (isset($package['tweet_lock']) && $package['tweet_lock'] == 1) { $lock = 'locked'; } if ($lock !== 'locked') { $lock = apply_filters('wpdm_check_lock', $id, $lock); } if (isset($_GET['masterkey']) && esc_attr($_GET['masterkey']) == $package['masterkey']) { $lock = 0; } $limit = $key ? (int) trim(get_post_meta($package['ID'], $key, true)) : 0; if ($limit <= 0 && $key != '') { delete_post_meta($package['ID'], $key); } else { if ($key != '') { update_post_meta($package['ID'], $key, $limit - 1); } } $matched = is_array(@maybe_unserialize($package['access'])) && is_user_logged_in() ? array_intersect($current_user->roles, @maybe_unserialize($package['access'])) : array(); if ($id != '' && is_user_logged_in() && count($matched) < 1 && !@in_array('guest', $package['access']) || !is_user_logged_in() && !@in_array('guest', $package['access']) && $id != '') { wpdm_download_data("permission-denied.txt", __("You don't have permission to download this file", 'wpdmpro')); die; } else { if ($lock === 'locked' && $limit <= 0) { if ($key != '') { wpdm_download_data("link-expired.txt", __("Download link is expired. Please get new download link.", 'wpdmpro')); } else { wpdm_download_data("invalid-link.txt", __("Download link is expired or not valid. Please get new download link.", 'wpdmpro')); } die; } else { if ($package['ID'] > 0) { include "wpdm-start-download.php"; } } } } else { wpdm_notice(__("Invalid download link.", 'wpdmpro')); } }
/** * @usage Callback function for [file_list_extended] tag * @param $file * @return string * @usage Generate file list with preview */ public static function Box($file) { global $current_user; $file['files'] = maybe_unserialize($file['files']); $fhtml = ''; $idvdl = \WPDM\Package::isSingleFileDownloadAllowed($file['ID']); //isset($file['individual_file_download']) ? $file['individual_file_download'] : 0; $pd = isset($file['publish_date']) && $file['publish_date'] != "" ? strtotime($file['publish_date']) : 0; $xd = isset($file['expire_date']) && $file['expire_date'] != "" ? strtotime($file['expire_date']) : 0; $cur = is_user_logged_in() ? $current_user->roles : array('guest'); $_SESSION['wpdmfilelistcd_' . $file['ID']] = 1; if ($xd > 0 && $xd < time() || $pd > 0 && $pd > time()) { $idvdl = 0; } $dir = isset($file['package_dir']) ? $file['package_dir'] : ''; $dfiles = array(); if ($dir != '') { $dfiles = wpdm_get_files($dir, false); } $file['access'] = wpdm_allowed_roles($file['ID']); if (count($file['files']) > 0 || count($dfiles) > 0) { $fileinfo = isset($file['fileinfo']) ? $file['fileinfo'] : array(); $pwdlock = isset($file['password_lock']) ? $file['password_lock'] : 0; //Check if any other lock option apllied for this package $olock = wpdm_is_locked($file['ID']) ? 1 : 0; $swl = 0; if (!isset($file['quota']) || $file['quota'] <= 0) { $file['quota'] = 9999999999999; } if (is_user_logged_in()) { $cur[] = 'guest'; } if (!isset($file['access']) || count($file['access']) == 0 || !wpdm_user_has_access($file['ID']) || wpdm_is_download_limit_exceed($file['ID']) || $file['quota'] <= $file['download_count']) { $olock = 1; } $pwdcol = $dlcol = ''; if ($pwdlock && $idvdl) { $pwdcol = "<th>" . __("Password", "wpdmpro") . "</th>"; } if ($idvdl && ($pwdlock || !$olock)) { $dlcol = "<th align=center>" . __("Download", "wpdmpro") . "</th>"; $swl = 1; } $allfiles = is_array($file['files']) ? $file['files'] : array(); //$allfiles = array_merge($allfiles, $dfiles); $fhtml = "<div class='row' id='xfilelist'>"; if (is_array($allfiles)) { foreach ($allfiles as $fileID => $sfile) { $fhtml .= "<div class='col-md-4 col-sm-6 col-xs-6'><div class='panel panel-default'>"; $ind = \WPDM_Crypt::Encrypt($sfile); if (!isset($fileinfo[$sfile]) || !@is_array($fileinfo[$sfile])) { $fileinfo[$sfile] = array(); } if (!@is_array($fileinfo[$fileID])) { $fileinfo[$fileID] = array(); } $filePass = isset($fileinfo[$sfile]['password']) ? $fileinfo[$sfile]['password'] : (isset($fileinfo[$fileID]['password']) ? $fileinfo[$fileID]['password'] : ''); $fileTitle = isset($fileinfo[$sfile]['title']) && $fileinfo[$sfile]['title'] != '' ? $fileinfo[$sfile]['title'] : (isset($fileinfo[$fileID]['title']) && $fileinfo[$fileID]['title'] != '' ? $fileinfo[$fileID]['title'] : preg_replace("/([0-9]+)_/", "", wpdm_basename($sfile))); if ($filePass == '' && $pwdlock) { $filePass = $file['password']; } $fhtml .= "<div class='panel-heading ttip' title='{$fileTitle}'>{$fileTitle}</div>"; $imgext = array('png', 'jpg', 'jpeg', 'gif'); $ext = explode(".", $sfile); $ext = end($ext); $ext = strtolower($ext); $filepath = file_exists($sfile) ? $sfile : UPLOAD_DIR . $sfile; $thumb = ""; if ($ext == '' || !file_exists(WPDM_BASE_DIR . 'assets/file-type-icons/' . $ext . '.png')) { $ext = '_blank'; } if (in_array($ext, $imgext)) { $thumb = wpdm_dynamic_thumb($filepath, array(88, 88)); } if ($thumb) { $fhtml .= "<div class='panel-body text-center'><img class='file-thumb' src='{$thumb}' alt='{$fileTitle}' /></div><div class='panel-footer footer-info'>" . wpdm_file_size($sfile) . "</div><div class='panel-footer'>"; } else { $fhtml .= "<div class='panel-body text-center'><img class='file-ico' src='" . WPDM_BASE_URL . 'assets/file-type-icons/' . $ext . '.png' . "' alt='{$fileTitle}' /></div><div class='panel-footer footer-info'>" . wpdm_file_size($sfile) . "</div><div class='panel-footer'>"; } if ($swl) { if ($filePass != '' && $pwdlock) { $fhtml .= "<div class='input-group'><input onkeypress='jQuery(this).removeClass(\"input-error\");' size=10 type='password' value='' id='pass_{$file['ID']}_{$ind}' placeholder='Password' name='pass' class='form-control input-sm inddlps' />"; } if ($filePass != '' && $pwdlock) { $fhtml .= "<span class='input-group-btn'><button class='inddl btn btn-primary btn-sm' file='{$sfile}' rel='" . wpdm_download_url($file) . "&ind=" . $ind . "' pass='******'ID']}_{$ind}'><i class='fa fa-download'></i></button></span></div>"; } else { $fhtml .= "<a class='btn btn-primary btn-sm btn-block' href='" . wpdm_download_url($file) . "&ind=" . $ind . "'><span class='pull-left'><i class='fa fa-download'></i></span> " . __("Download", "wpdmpro") . "</a>"; } } $fhtml .= "</div></div></div>"; } } if (is_array($dfiles)) { foreach ($dfiles as $ind => $sfile) { $ind = \WPDM_Crypt::Encrypt($sfile); $fhtml .= "<div class='col-md-4 col-sm-6 col-xs-6'><div class='panel panel-default'>"; if (!isset($fileinfo[$sfile]) || !@is_array($fileinfo[$sfile])) { $fileinfo[$sfile] = array(); } if (!isset($fileinfo[$sfile]['password'])) { $fileinfo[$sfile]['password'] = ""; } if ($fileinfo[$sfile]['password'] == '' && $pwdlock) { $fileinfo[$sfile]['password'] = $file['password']; } $ttl = isset($fileinfo[$sfile]['title']) && $fileinfo[$sfile]['title'] != "" ? $fileinfo[$sfile]['title'] : preg_replace("/([0-9]+)_/", "", wpdm_basename($sfile)); $cttl = is_dir($sfile) ? "<a href='#' class='wpdm-indir' data-dir='{$ttl}' data-pid='{$file['ID']}'>{$ttl}/</a>" : $ttl; $fhtml .= "<div class='panel-heading ttip' title='{$ttl}'>{$cttl}</div>"; $imgext = array('png', 'jpg', 'jpeg', 'gif'); $ext = explode(".", $sfile); $ext = end($ext); $ext = strtolower($ext); if (is_dir($sfile)) { $ext = 'folder'; } $filepath = file_exists($sfile) ? $sfile : UPLOAD_DIR . $sfile; $thumb = ""; $showt = 1; if (in_array($ext, $imgext) && apply_filters('file_list_extended_show_thumbs', $showt)) { $thumb = wpdm_dynamic_thumb($filepath, array(88, 88)); } $fticon = WPDM_BASE_URL . 'assets/file-type-icons/' . $ext . '.png'; if (!file_exists(WPDM_BASE_DIR . 'assets/file-type-icons/' . $ext . '.png')) { $fticon = WPDM_BASE_URL . 'assets/file-type-icons/ini.png'; } if ($thumb) { $fhtml .= "<div class='panel-body text-center'><img class='file-thumb' src='{$thumb}' alt='{$ttl}' /></div><div class='panel-footer footer-info'>" . wpdm_file_size($sfile) . "</div><div class='panel-footer'>"; } else { $fhtml .= "<div class='panel-body text-center'><img class='file-ico' src='" . $fticon . "' alt='{$ttl}' /></div><div class='panel-footer footer-info'>" . wpdm_file_size($sfile) . "</div><div class='panel-footer'>"; } if ($swl) { $fileinfo[$sfile]['password'] = $fileinfo[$sfile]['password'] == '' ? $file['password'] : $fileinfo[$sfile]['password']; if ($fileinfo[$sfile]['password'] != '' && $pwdlock && !is_dir($sfile)) { $fhtml .= "<div class='input-group'><input onkeypress='jQuery(this).removeClass(\"input-error\");' size=10 type='password' value='' id='pass_{$file['ID']}_{$ind}' placeholder='Password' name='pass' class='form-control input-sm inddlps' />"; } if ($fileinfo[$sfile]['password'] != '' && $pwdlock && !is_dir($sfile)) { $fhtml .= "<span class='input-group-btn'><button class='inddl btn btn-primary btn-sm' file='{$sfile}' rel='" . wpdm_download_url($file) . "&ind=" . $ind . "' pass='******'ID']}_{$ind}'><i class='fa fa-download'></i></button></span></div>"; } else { if (!is_dir($sfile)) { $fhtml .= "<a class='btn btn-primary btn-sm btn-block' href='" . wpdm_download_url($file) . "&ind=" . $ind . "'><span class='pull-left'><i class='fa fa-download'></i></span> " . __("Download", "wpdmpro") . "</a>"; } else { $fhtml .= "<a class='btn btn-primary btn-sm btn-block wpdm-indir' href='#' data-dir='{$ttl}' data-pid='{$file['ID']}'><span class='pull-left'><i class='fa fa-folder'></i></span> " . __("Browse", "wpdmpro") . "</a>"; } } } $fhtml .= "</div></div></div>"; } } $fhtml .= "</div>"; $siteurl = home_url('/'); $fhtml .= "<script type='text/javascript' language='JavaScript'> jQuery('.inddl').click(function(){ var tis = this; jQuery.post('{$siteurl}',{wpdmfileid:'{$file['ID']}',wpdmfile:jQuery(this).attr('file'),actioninddlpvr:1,filepass:jQuery(jQuery(this).attr('pass')).val()},function(res){ res = res.split('|'); var ret = res[1]; if(ret=='error') jQuery(jQuery(tis).attr('pass')).addClass('input-error'); if(ret=='ok') location.href=jQuery(tis).attr('rel')+'&_wpdmkey='+res[2];});}); </script> "; } return $fhtml; }
/** * @usage Generate download link of a package * @param $package * @param int $embed * @param array $extras * @return string */ function DownloadLink(&$package, $embed = 0, $extras = array()) { global $wpdb, $current_user, $wpdm_download_icon, $wpdm_download_lock_icon, $btnclass; if (is_array($extras)) { extract($extras); } $data = ''; get_currentuserinfo(); $package['link_url'] = home_url('/?download=1&'); $package['link_label'] = !isset($package['link_label']) || $package['link_label'] == '' ? __("Download", "wpdmpro") : $package['link_label']; //Change link label using a button image $package['link_label'] = apply_filters('wpdm_button_image', $package['link_label'], $package); $package['download_url'] = wpdm_download_url($package); if (wpdm_is_download_limit_exceed($package['ID'])) { $package['download_url'] = '#'; $package['link_label'] = __('Download Limit Exceeded', 'wpdmpro'); } if (isset($package['expire_date']) && $package['expire_date'] != "" && strtotime($package['expire_date']) < time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download was expired on', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['expire_date'])); $package['download_link'] = "<a href='#'>{$package['link_label']}</a>"; return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } if (isset($package['publish_date']) && $package['publish_date'] != '' && strtotime($package['publish_date']) > time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download will be available from ', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['publish_date'])); $package['download_link'] = "<a href='#'>{$package['link_label']}</a>"; return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } $link_label = isset($package['link_label']) ? $package['link_label'] : __('Download', 'wpdmpro'); $package['access'] = wpdm_allowed_roles($package['ID']); if ($package['download_url'] != '#') { $package['download_link'] = "<a class='wpdm-download-link wpdm-download-locked {$btnclass}' rel='nofollow' href='#' onclick=\"location.href='{$package['download_url']}';return false;\"><i class='{$wpdm_download_icon}'></i>{$link_label}</a>"; } else { $package['download_link'] = "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$link_label}</div>"; } $caps = array_keys($current_user->caps); $role = array_shift($caps); $matched = is_array(@maybe_unserialize($package['access'])) && is_user_logged_in() ? array_intersect($current_user->roles, @maybe_unserialize($package['access'])) : array(); $skiplink = 0; if (is_user_logged_in() && count($matched) <= 0 && !@in_array('guest', @maybe_unserialize($package['access']))) { $package['download_url'] = "#"; $package['download_link'] = $package['download_link_extended'] = stripslashes(get_option('wpdm_permission_msg')); $package = apply_filters('download_link', $package); if (get_option('_wpdm_hide_all', 0) == 1) { $package['download_link'] = $package['download_link_extended'] = 'blocked'; } return $package['download_link']; } if (!@in_array('guest', @maybe_unserialize($package['access'])) && !is_user_logged_in()) { $loginform = wpdm_login_form(array('redirect' => get_permalink($package['ID']))); if (get_option('_wpdm_hide_all', 0) == 1) { return 'loginform'; } $package['download_url'] = home_url('/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI'])); $package['download_link'] = stripcslashes(str_replace(array("[loginform]", "[this_url]"), array($loginform, get_permalink($package['ID'])), get_option('wpdm_login_msg'))); return get_option('__wpdm_login_form', 0) == 1 ? $loginform : $package['download_link']; } $package = apply_filters('download_link', $package); $unqid = uniqid(); if (!isset($package['quota']) || isset($package['quota']) && $package['quota'] > 0 && $package['quota'] > $package['download_count'] || $package['quota'] == 0) { $lock = 0; if (isset($package['password_lock']) && (int) $package['password_lock'] == 1 && $package['password'] != '') { $lock = 'locked'; $data = \WPDM\PackageLocks::AskPassword($package); } $sociallock = ""; if (isset($package['email_lock']) && (int) $package['email_lock'] == 1) { $data .= \WPDM\PackageLocks::AskEmail($package); $lock = 'locked'; } if (isset($package['linkedin_lock']) && (int) $package['linkedin_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::LinkedInShare($package); } if (isset($package['twitterfollow_lock']) && (int) $package['twitterfollow_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::TwitterFollow($package); } if (isset($package['gplusone_lock']) && (int) $package['gplusone_lock'] == 1) { $lock = 'locked'; $sociallock .= '<div id="wpdmslb-googleplus-' . $package['ID'] . '" class="wpdm-social-lock-box wpdmslb-googleplus">' . \WPDM\PackageLocks::GooglePlusOne($package, true) . '</div>'; } if (isset($package['tweet_lock']) && (int) $package['tweet_lock'] == 1) { $lock = 'locked'; $sociallock .= '<div id="wpdmslb-tweet-' . $package['ID'] . '" class="wpdm-social-lock-box wpdmslb-tweet">' . \WPDM\PackageLocks::Tweet($package, true) . '</div>'; } if (isset($package['facebooklike_lock']) && (int) $package['facebooklike_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::FacebookLike($package, true); } if (isset($package['captcha_lock']) && (int) $package['captcha_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::reCaptchaLock($package, true); } $extralocks = ''; $extralocks = apply_filters("wpdm_download_lock", $extralocks, $package); if (is_array($extralocks) && $extralocks['lock'] === 'locked') { if (isset($extralocks['type']) && $extralocks['type'] == 'social') { $sociallock .= $extralocks['html']; } else { $data .= $extralocks['html']; } $lock = 'locked'; } if ($sociallock != "") { $data .= "<div class='panel panel-default'><div class='panel-heading'>" . __("Download", "wpdmpro") . "</div><div class='panel-body wpdm-social-locks text-center'>{$sociallock}</div></div>"; } if ($lock === 'locked') { $popstyle = isset($popstyle) && in_array($popstyle, array('popup', 'pop-over')) ? $popstyle : 'pop-over'; if ($embed == 1) { $adata = "</strong><table class='table all-locks-table' style='border:0px'><tr><td style='padding:5px 0px;border:0px;'>" . $data . "</td></tr></table>"; } else { $dataattrs = $popstyle == 'pop-over' ? 'data-title="<button type=button id=\'close\' class=\'btn btn-link btn-xs pull-right po-close\' style=\'margin-top:-4px;margin-right:-10px\'><i class=\'fa fa-times text-danger\'></i></button> ' . __('Download', 'wpdmpro') . ' ' . $package['title'] . '"' : 'data-toggle="modal" data-target="#pkg_' . $package['ID'] . "_" . $unqid . '"'; $adata = '<a href="#pkg_' . $package['ID'] . "_" . $unqid . '" ' . $dataattrs . ' class="wpdm-download-link wpdm-download-locked ' . $popstyle . ' ' . $btnclass . '"><i class=\'' . $wpdm_download_lock_icon . '\'></i>' . $package['link_label'] . '</a>'; if ($popstyle == 'pop-over') { $adata .= '<div class="modal fade"><div class="row all-locks" id="pkg_' . $package['ID'] . "_" . $unqid . '">' . $data . '</div></div>'; } else { $adata .= '<div class="modal fade" role="modal" id="pkg_' . $package['ID'] . "_" . $unqid . '"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><strong style="margin:0px;font-size:12pt">' . __('Download') . '</strong></div><div class="modal-body">' . $data . '</div><div class="modal-footer text-right"><button type="button" class="btn btn-default btn-sm" data-dismiss="modal">Close</button></div></div></div></div>'; } } $data = $adata; } if ($lock !== 'locked') { $data = $package['download_link']; } } else { $data = __("Download limit exceeded!", 'wpdmpro'); } $nojspopup = "<script>\n\n\t\t\tjQuery(function(){\n\t\t\t\tvar url = location.href;\n\t\t\t\tvar ckid = url.split('ckid:');\n\t\t\t\tckid = ckid[1];\n\t\t\t\tconsole.log(jQuery.cookie('wpdm_getlink_data_'+ckid));\n\t\t\t\tif(url.indexOf('#nojs_popup') && jQuery.cookie('wpdm_getlink_data_'+ckid)!=null && jQuery.cookie('wpdm_getlink_data_'+ckid)!='') {\n\t\t\t\t\tvar jsn = jQuery.cookie('wpdm_getlink_data_'+ckid);\n\t\t\t\t\tjsn = jQuery.parseJSON(jsn);\n\t\t\t\t\tjQuery.cookie('wpdm_getlink_data_'+ckid,'');\n\t\t\t\t\tjQuery('body').prepend('<div style=\"display:none;color:#fff;position:fixed;z-index:99999999999;width:300px;right:20px;bottom:20px;border-radius:3px;background:rgba(231, 76, 60,0.9);padding:10px;text-align:center;\" class=\"wpdm-alert\">'+jsn.error.replace(/\\+/ig, ' ')+'</div>');\n\t\t\t\t\tjQuery('.wpdm-alert').slideDown();\n\t\t\t\t}\n\t\t\t});\n\t\t\t</script>"; //return str_replace(array("\r","\n"),"",$data); return $data; }
/** * @usage Check if current user has access to package or category * @param $id * @param string $type * * @return bool */ function wpdm_user_has_access($id, $type = 'package') { global $current_user; $roles = wpdm_allowed_roles($id); $matched = is_user_logged_in() ? array_intersect($current_user->roles, $roles) : array(); if (in_array('guest', $roles)) { return true; } if (count($matched) > 0) { return true; } return false; }
/** * @usage Generate download link of a package * @param $package * @param int $embed * @param array $extras * @return string */ public static function downloadLink($ID, $embed = 0, $extras = array()) { global $wpdb, $current_user, $wpdm_download_icon, $wpdm_download_lock_icon, $btnclass; if (is_array($extras)) { extract($extras); } $data = ''; $package = self::Get($ID); $package['link_url'] = home_url('/?download=1&'); $package['link_label'] = !isset($package['link_label']) || $package['link_label'] == '' ? __("Download", "wpdmpro") : $package['link_label']; //Change link label using a button image $package['link_label'] = apply_filters('wpdm_button_image', $package['link_label'], $package); $package['download_url'] = wpdm_download_url($package); if (\WPDM\Package::userDownloadLimitExceeded($package['ID'])) { $package['download_url'] = '#'; $package['link_label'] = __('Download Limit Exceeded', 'wpdmpro'); } if (isset($package['expire_date']) && $package['expire_date'] != "" && strtotime($package['expire_date']) < time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download was expired on', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['expire_date'])); $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = "<a href='#'>{$package['link_label']}</a>"; $package = apply_filters('wpdm_after_prepare_package_data', $package); return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } if (isset($package['publish_date']) && $package['publish_date'] != '' && strtotime($package['publish_date']) > time()) { $package['download_url'] = '#'; $package['link_label'] = __('Download will be available from ', 'wpdmpro') . " " . date_i18n(get_option('date_format') . " h:i A", strtotime($package['publish_date'])); $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = "<a href='#'>{$package['link_label']}</a>"; $package = apply_filters('wpdm_after_prepare_package_data', $package); return "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$package['link_label']}</div>"; } $link_label = isset($package['link_label']) ? $package['link_label'] : __('Download', 'wpdmpro'); $package['access'] = wpdm_allowed_roles($package['ID']); if ($package['download_url'] != '#') { $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = "<a class='wpdm-download-link wpdm-download-locked {$btnclass}' rel='nofollow' href='#' onclick=\"location.href='{$package['download_url']}';return false;\"><i class='{$wpdm_download_icon}'></i>{$link_label}</a>"; } else { $package['download_link'] = "<div class='alert alert-warning'><b>" . __('Download:', 'wpdmpro') . "</b><br/>{$link_label}</div>"; } $caps = array_keys($current_user->caps); $role = array_shift($caps); $matched = is_array(@maybe_unserialize($package['access'])) && is_user_logged_in() ? array_intersect($current_user->roles, @maybe_unserialize($package['access'])) : array(); $skiplink = 0; if (is_user_logged_in() && count($matched) <= 0 && !@in_array('guest', @maybe_unserialize($package['access']))) { $package['download_url'] = "#"; $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = stripslashes(get_option('wpdm_permission_msg')); $package = apply_filters('wpdm_after_prepare_package_data', $package); if (get_option('_wpdm_hide_all', 0) == 1) { $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = 'blocked'; } return $package['download_link']; } if (!@in_array('guest', @maybe_unserialize($package['access'])) && !is_user_logged_in()) { $loginform = wpdm_login_form(array('redirect' => get_permalink($package['ID']))); if (get_option('_wpdm_hide_all', 0) == 1) { return 'loginform'; } $package['download_url'] = home_url('/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI'])); $package['download_link'] = $vars['download_link_extended'] = $vars['download_link_popup'] = stripcslashes(str_replace(array("[loginform]", "[this_url]"), array($loginform, get_permalink($package['ID'])), get_option('wpdm_login_msg'))); return get_option('__wpdm_login_form', 0) == 1 ? $loginform : $package['download_link']; } $package = apply_filters('wpdm_before_apply_locks', $package); $package = apply_filters('wpdm_after_prepare_package_data', $package); $unqid = uniqid(); if (!isset($package['quota']) || isset($package['quota']) && $package['quota'] > 0 && $package['quota'] > $package['download_count'] || $package['quota'] == 0) { $lock = 0; /* if (isset($package['password_lock']) && (int)$package['password_lock'] == 1 && $package['password'] != '') { $lock = 'locked'; $data = \WPDM\PackageLocks::AskPassword($package); } $sociallock = ""; if (isset($package['email_lock']) && (int)$package['email_lock'] == 1) { $data .= \WPDM\PackageLocks::AskEmail($package); $lock = 'locked'; } if (isset($package['linkedin_lock']) && (int)$package['linkedin_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::LinkedInShare($package); } if (isset($package['twitterfollow_lock']) && (int)$package['twitterfollow_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::TwitterFollow($package); } if (isset($package['gplusone_lock']) && (int)$package['gplusone_lock'] == 1) { $lock = 'locked'; $sociallock .= '<div id="wpdmslb-googleplus-'.$package['ID'].'" class="wpdm-social-lock-box wpdmslb-googleplus">' . \WPDM\PackageLocks::GooglePlusOne($package, true) . '</div>'; } if (isset($package['tweet_lock']) && (int)$package['tweet_lock'] == 1) { $lock = 'locked'; $sociallock .= '<div id="wpdmslb-tweet-'.$package['ID'].'" class="wpdm-social-lock-box wpdmslb-tweet">' . \WPDM\PackageLocks::Tweet($package, true) . '</div>'; } if (isset($package['facebooklike_lock']) && (int)$package['facebooklike_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::FacebookLike($package , true); } if (isset($package['captcha_lock']) && (int)$package['captcha_lock'] == 1) { $lock = 'locked'; $sociallock .= \WPDM\PackageLocks::reCaptchaLock($package , true); } $extralocks = ''; $extralocks = apply_filters("wpdm_download_lock", $extralocks, $package); if (is_array($extralocks) && $extralocks['lock'] === 'locked') { if(isset($extralocks['type']) && $extralocks['type'] == 'social') $sociallock .= $extralocks['html']; else $data .= $extralocks['html']; $lock = 'locked'; } */ $extras['embed'] = $embed; $data = self::activeLocks($package, $extras); if ($data != "") { return $data; } $data = $package['download_link']; } else { $data = __("Download limit exceeded!", 'wpdmpro'); } return $data; }