/**
 * @param (int|array) $package Package ID (INT) or Complete Package Data (Array)
 * @param string $ext
 * @return string|void
 */
function wpdm_download_url($package, $ext = '')
{
    if (!is_array($package)) {
        $package = intval($package);
    }
    $id = is_int($package) ? $package : $package['ID'];
    return \WPDM\Package::getDownloadURL($id, $ext);
}
 /**
  * @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;
 }
 /**
  * @usage Generate direct link to download
  * @param $params
  * @param string $content
  * @return string
  */
 function directLink($params, $content = "")
 {
     extract($params);
     global $wpdb;
     if (\WPDM\Package::isLocked($params['id'])) {
         $linkURL = get_permalink($params['id']);
     } else {
         $linkURL = "index.php?wpdmdl=" . $params['id'];
     }
     $linkLabel = isset($params['label']) && !empty($params['label']) ? $params['label'] : get_post_meta($params['id'], '__wpdm_link_label', true);
     $linkLabel = empty($linkLabel) ? 'Download ' . get_the_title($params['id']) : $linkLabel;
     return "<a href='{$linkURL}'>{$linkLabel}</a>";
 }
/**
 * @usage Get download manager package data
 * @param $ID
 * @param $meta
 * @return mixed
 */
function get_package_data($ID, $key)
{
    return \WPDM\Package::Get($ID, $key);
}
 function rowActions($actions, $post)
 {
     if ($post->post_type == 'wpdmpro') {
         $actions['download_link'] = '<a title="' . __('Direct Download', 'wpdmpro') . '" href="' . \WPDM\Package::getMasterDownloadURL($post->ID) . '" class="view_stats"><i class="fa fa-download text-success"></i></a>';
     }
     return $actions;
 }
if ($fileCount == 0) {
    if (isset($package['sourceurl']) && $package['sourceurl'] != '') {
        if (!isset($package['url_protect']) || $package['url_protect'] == 0 && strpos($package['sourceurl'], '://')) {
            header('location: ' . $package['sourceurl']);
            die;
        }
        $r_filename = basename($package['sourceurl']);
        $r_filename = explode("?", $r_filename);
        $r_filename = $r_filename[0];
        wpdm_download_file($package['sourceurl'], $r_filename, $speed, 1, $package);
        die;
    }
    wpdm_download_data('download-not-available.txt', __('Sorry! Download is not available yet.', "wpdmpro"));
    die;
}
$idvdl = \WPDM\Package::isSingleFileDownloadAllowed($package['ID']) && isset($_GET['ind']);
//isset($package['individual_file_download']) && isset($_GET['ind']) ? 1 : 0;
if ($fileCount > 1 && !$idvdl) {
    $zipped = get_post_meta($package['ID'], "__wpdm_zipped_file", true);
    $cache_zip = get_option('__wpdm_cache_zip', 0);
    $cache_zip_po = get_post_meta($package['ID'], "__wpdm_cache_zip", true);
    //dd($cache_zip_po);
    $cache_zip = $cache_zip_po == -1 || !$cache_zip_po ? $cache_zip : $cache_zip_po;
    if ($zipped == '' || !file_exists($zipped) || $cache_zip == 0) {
        if (class_exists('ZipArchive')) {
            $zip = new ZipArchive();
        } else {
            wp_die(__('Please activate "zlib" in your server', 'wpdmpro'));
        }
        $zipped = UPLOAD_DIR . sanitize_file_name($package['post_title']) . '-' . $package['ID'] . '.zip';
        if ($zip->open($zipped, ZIPARCHIVE::CREATE) !== TRUE) {
 /**
  * @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>&nbsp;" . __("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>&nbsp;" . __("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> &nbsp;" . __("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;
 }
 /** @see WP_Widget::widget */
 function widget($args, $instance)
 {
     if (!is_single() || get_post_type() != 'wpdmpro') {
         return;
     }
     global $post;
     extract($args);
     $title = apply_filters('widget_title', $instance['title']);
     $package_info = $instance['pinfo'];
     $package_info_labels = array('download_count' => __('Total Downloads', 'wpdmpro'), 'view_count' => __('Total Views', 'wpdmpro'), 'create_date' => __('Publish Date', 'wpdmpro'), 'update_date' => __('Last Updated', 'wpdmpro'), 'package_size' => __('Size', 'wpdmpro'));
     $package_info_icons = array('download_count' => 'download', 'view_count' => 'eye', 'package_size' => 'server');
     $download_link = "";
     if (isset($package_info['download_link'])) {
         unset($package_info['download_link']);
         $download_link = "<tr><td colspan='2' class='text-center'>" . \WPDM\Package::downloadLink(get_the_ID()) . "</td>";
     }
     ?>
     <?php 
     echo $before_widget;
     ?>
     <?php 
     if ($title) {
         echo $before_title . $title . $after_title;
     }
     if (isset($instance['table']) && $instance['table'] == 1) {
         echo "<div class='w3eden'><table class='table table-striped table-bordered' style='font-size: 9pt'>";
         if (is_array($package_info)) {
             foreach ($package_info as $index => $v) {
                 if ($index == 'create_date') {
                     echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_the_date() . "</td></tr>";
                 } else {
                     if ($index == 'update_date') {
                         echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_the_modified_date() . "</td></tr>";
                     } else {
                         echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_post_meta(get_the_ID(), '__wpdm_' . $index, true) . "</td></tr>";
                     }
                 }
             }
         }
         echo "{$download_link}</table></div>";
     } else {
         echo "<div class='w3eden'><div class='list-group package-info-list'>";
         if (is_array($package_info)) {
             foreach ($package_info as $index => $v) {
                 if ($index == 'create_date') {
                     echo "<div class='list-group-item'><div class='media'><div class='pull-left'><i class='fa fa-calendar'></i></div><div class='media-body'><strong>{$package_info_labels[$index]}</strong><br/>" . get_the_date() . "</div></div></div>";
                 } else {
                     if ($index == 'update_date') {
                         echo "<div class='list-group-item'><div class='media'><div class='pull-left'><i class='fa fa-calendar'></i></div><div class='media-body'><strong>{$package_info_labels[$index]}</strong><br/>" . get_the_modified_date() . "</div></div></div>";
                     } else {
                         echo "<div class='list-group-item'><div class='media'><div class='pull-left'><i class='fa fa-{$package_info_icons[$index]}'></i></div><div class='media-body'><strong>{$package_info_labels[$index]}</strong><br/>" . get_post_meta(get_the_ID(), '__wpdm_' . $index, true) . "</div></div></div>";
                     }
                 }
             }
         }
         echo "<div class='list-group-item'>{$download_link}</div></div>";
     }
     echo $after_widget;
     wp_reset_query();
 }
$order_fields = array('__wpdm_download_count', '__wpdm_view_count', '__wpdm_package_size_b');
if (!in_array("__wpdm_" . $order_field, $order_fields)) {
    $query_params['orderby'] = $order_field;
    $query_params['order'] = $order;
} else {
    $query_params['orderby'] = 'meta_value_num';
    $query_params['meta_key'] = "__wpdm_" . $order_field;
    $query_params['order'] = $order;
}
$q = new WP_Query($query_params);
$total_files = $q->found_posts;
while ($q->have_posts()) {
    $q->the_post();
    $ext = "_blank";
    $data = wpdm_custom_data(get_the_ID());
    $data['files'] = \WPDM\Package::getFiles(get_the_ID());
    if (isset($data['files']) && count($data['files']) > 0) {
        $tfiles = $data['files'];
        $tfile = array_shift($tfiles);
        $tmpvar = explode(".", $tfile);
        $ext = count($tmpvar) > 1 ? end($tmpvar) : $ext;
    } else {
        $data['files'] = array();
    }
    $ext = isset($data['icon']) && $data['icon'] != '' ? $data['icon'] : $ext . ".png";
    $cats = wp_get_post_terms(get_the_ID(), 'wpdmcategory');
    $fcats = array();
    foreach ($cats as $cat) {
        $fcats[] = "<a class='sbyc' href='{$cfurl}{$cat->slug}'>{$cat->name}</a>";
    }
    $cats = @implode(", ", $fcats);
 /** @see WP_Widget::widget */
 function widget($args, $instance)
 {
     if (!is_single() || get_post_type() != 'wpdmpro') {
         return;
     }
     global $post;
     extract($args);
     $title = apply_filters('widget_title', $instance['title']);
     $package_info = $instance['pinfo'];
     $package_info_labels = array('download_count' => 'Total Downloads', 'view_count' => 'Total Views', 'create_date' => 'Publish Date', 'update_date' => 'Last Updated', 'package_size' => 'Size');
     if (isset($package_info['download_link'])) {
         unset($package_info['download_link']);
         $download_link = "<tr><td colspan='2' class='text-center'>" . \WPDM\Package::downloadLink(get_the_ID()) . "</td>";
     }
     ?>
     <?php 
     echo $before_widget;
     ?>
     <?php 
     if ($title) {
         echo $before_title . $title . $after_title;
     }
     echo "<div class='w3eden'><table class='table table-striped' style='font-size: 9pt'>";
     foreach ($package_info as $index => $v) {
         if ($index == 'create_date') {
             echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_the_date() . "</td></tr>";
         }
         if ($index == 'update_date') {
             echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_the_modified_date() . "</td></tr>";
         } else {
             echo "<tr><td>{$package_info_labels[$index]}</td><td>" . get_post_meta(get_the_ID(), '__wpdm_' . $index, true) . "</td></tr>";
         }
     }
     echo "{$download_link}</table></div>";
     echo $after_widget;
     wp_reset_query();
 }
function wpdm_quick_pack()
{
    $id = \WPDM\Package::Create($_POST['file']);
    echo "[wpdm_package id='{$id}']";
    die;
}
 function oEmbed($content)
 {
     if (function_exists('wpdmpp_effective_price') && wpdmpp_effective_price(get_the_ID()) > 0) {
         $template = '[excerpt_200]<br/><span class="oefooter">' . __('Price', 'wpdmpro') . ': ' . wpdmpp_currency_sign() . wpdmpp_effective_price(get_the_ID()) . '</span><span class="oefooter">[download_count] Downloads</span><span class="oefooter"><a href="[page_url]" target="_parent">&#x1f4b3; Buy Now</a></span><style>.oefooter{ border: 1px solid #dddddd;padding: 5px 15px;font-size: 8pt;display: inline-block;margin-top: 3px;background: #f5f5f5; margin-right: 5px; } .oefooter a{ color: #3B88C3; font-weight: bold; } </style>';
     } else {
         $template = '[excerpt_200]<br/><span class="oefooter">[create_date]</span><span class="oefooter">[download_count] Downloads</span><span class="oefooter">&#x2b07; [download_link]</span><style>.oefooter{ border: 1px solid #dddddd;padding: 5px 15px;font-size: 8pt;display: inline-block;margin-top: 3px;background: #f5f5f5; margin-right: 5px; } .oefooter a{ color: #3B88C3; font-weight: bold; } </style>';
     }
     return \WPDM\Package::fetchTemplate($template, get_the_ID());
 }
 function showLockOptions()
 {
     if (!isset($_REQUEST['id'])) {
         die('ID Missing!');
     }
     echo \WPDM\Package::downloadLink((int) $_REQUEST['id'], 1);
     die;
 }
 function rowActions($actions, $post)
 {
     if ($post->post_type == 'wpdmpro') {
         $actions['view_stats'] = '<a title="' . __('Stats', 'wpdmpro') . '" href="edit.php?post_type=wpdmpro&page=wpdm-stats&pid=' . $post->ID . '" class="view_stats"><i class="fa fa-area-chart text-warning"></i></a>';
     }
     $actions['download_link'] = '<a title="' . __('Direct Download', 'wpdmpro') . '" href="' . \WPDM\Package::getMasterDownloadURL($post->ID) . '" class="view_stats"><i class="fa fa-download text-success"></i></a>';
     return $actions;
 }
Beispiel #15
0
    <div class="panel-heading"><?php 
_e('Recommended Downloads', 'wpdmpro');
?>
</div>
    <div class="panel-body">
        <div class="panel-row">
            <?php 
$rc = 0;
$qparams = array('post_type' => 'wpdmpro', 'posts_per_page' => 20, 'orderby' => 'rand');
if (isset($params['recommended']) && term_exists($params['recommended'], 'wpdmcategory')) {
    $qparams['tax_query'] = array(array('taxonomy' => 'wpdmcategory', 'field' => 'slug', 'terms' => $params['recommended']));
}
$q = new WP_Query($qparams);
while ($q->have_posts()) {
    $q->the_post();
    if (\WPDM\Package::userCanAccess(get_the_ID())) {
        ?>
                    <div class="col-md-4">
                        <div class="card">


                            <?php 
        wpdm_post_thumb(array(400, 300));
        ?>
                            <a href="<?php 
        the_permalink();
        ?>
" class="card-footer">
                                <?php 
        the_title();
        ?>
 /**
  * @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;
 }