<?php

/**
 * PMPro custom template output for a download via the [download] shortcode
 */
if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
global $current_user;
if (function_exists('pmpro_hasMembershipLevel')) {
    if (!pmpro_has_membership_access($dlm_download->id)) {
        $download_membership_levels = pmprodlm_getDownloadLevels($dlm_download);
        if ($dlm_download->exists()) {
            ?>
			<a class="download-link" href="
			<?php 
            if (count($download_membership_levels[0]) > 1) {
                echo pmpro_url('levels');
            } else {
                echo pmpro_url("checkout", "?level=" . $download_membership_levels[0][0], "https");
            }
            ?>
"><?php 
            echo $dlm_download->get_the_title();
            ?>
</a>
			<?php 
            _e('Membership Required', 'pmprodlm');
            ?>
: <?php 
function pmprodlm_shortcode_download_content($content, $download_id, $atts)
{
    global $current_user;
    if (empty($atts['template']) && function_exists('pmpro_hasMembershipLevel')) {
        if (!pmpro_has_membership_access($download_id)) {
            $dlm_download = new DLM_Download($download_id);
            if ($dlm_download->exists()) {
                $download_membership_levels = pmprodlm_getDownloadLevels($dlm_download);
                $content .= '<a href="';
                if (count($download_membership_levels[0]) > 1) {
                    $content .= pmpro_url('levels');
                } else {
                    $content .= pmpro_url("checkout", "?level=" . $download_membership_levels[0][0], "https");
                }
                $content .= '">' . $dlm_download->get_the_title() . '</a>';
                $content .= ' (' . __('Membership Required', 'pmprodlm') . ': ' . $download_membership_levels[1] . ')';
                $content = apply_filters("pmprodlm_shortcode_download_content_filter", $content);
            } else {
                $content = '[' . __('Download not found', 'download-monitor') . ']';
            }
        }
    }
    return $content;
}