根据用户的加入日期,每年仅允许用户访问一次链接

时间:2011-03-17 作者:Micanio

我正在使用Wordpress运行一个会员网站,其中一个功能是会员可以下载徽章。然而,从他们加入的日期开始,他们每年只能下载一次徽章,我已经将其存储在我的数据库中。

登录后,他们可以通过主页上的链接访问徽章。在下载徽章之前,他们必须填写一些个人详细信息,然后输入到徽章中。

我想做以下工作:

如果会员尚未下载徽章,则当他们单击链接时,会转到下一页

  • 如果他们下载了徽章,那么他们会被带到另一个页面,说“你已经下载了这个文件”
  • 我想最好的方法是使用数据库中的新表计算下载次数,然后将今天的日期与开始日期进行比较。不幸的是,我有点担心在DB中添加随机表

    任何指针都会很好。我看过一些下载插件,但它们似乎做不到这一点。。。

    提前感谢

    编辑以添加:

    我曾尝试过建造一些东西,但似乎什么都没有发生,所以我肯定错过了一些东西。代码如下:

    <?php
    
    if (is_user_logged_in()) {
    
        global $user_ID;
        $paypal_user = get_user_meta($user_ID, \'paypal_user\', true);
        $download = get_user_meta($user_ID, \'badge_dl\', true);
        $exp_date = $paypal_user->expire_date;
        $currentDate = date(\'Y-m-d\');
    
        if (($currentDate <= $exp_date) and ($download == \'yes\')) { ?>
    
        <li><a href="downloaded.php">Member Downloads</a></li>
    
        <?php } 
    
        else { ?>
    
        <li><a href="member_badge_lp.php" onClick="<?php update_user_meta($user_ID, \'badge_dl\', \'yes\'); ?>">Member Downloads</a></li>   
    
        <?php }
    
    }
        ?>
    
    你知道为什么它不起作用吗?

    再次感谢。

    1 个回复
    SO网友:kaiser

    你找到本地人了date( \'Y\' ); 在这种情况下,函数将为您提供当前年份。结合一些if/else语句wp_redirect( $location, $header );你就快完成了。它就像使用用户元数据一样简单$current_user 检查等等。

    顺便说一句:不需要添加任何额外的表。仅使用add_user_meta(), update_user_meta() &;get_user_meta() 功能。

    Update: 尝试每个用户只使用一个元字段,并将数据作为数组存储在其中,以避免对表造成太多污染。

    结束