micanio
  • 0
Новичок

Разрешить пользователю доступ к ссылке только один раз в год в зависимости от даты присоединения

  • 0

Я использую WordPress для запуска сайта членства, и одна из функций заключается в том, что участники могут загрузить значок. Однако им разрешено загружать значок только один раз в год, начиная с даты их присоединения, которую я сохранил в своей базе данных.

Они могут получить доступ к значку по ссылке на главной странице, когда они вошли в систему. перед загрузкой значка они должны заполнить некоторые личные данные, которые затем вводятся в значок.

Я хотел бы сделать следующее:

  1. Если участник не загрузил значок, то при переходе по ссылке он переходит на следующую страницу.
  2. Если они загрузили значок, они переходят на другую страницу с надписью «Вы уже загрузили этот файл».

Я подумал, что лучшим способом было бы подсчитать количество загрузок, используя новую таблицу в моей базе данных, а затем сравнить сегодняшнюю дату с датой их начала. К сожалению, меня немного беспокоит добавление случайных таблиц в БД.

Любые указатели были бы замечательными. Я просмотрел некоторые загружаемые плагины, но они, похоже, не работают…

заранее спасибо

Изменить, чтобы добавить:

Я пытался что-то построить, но, похоже, ничего не происходит, поэтому я должен что-то упустить. Код ниже:

<?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 }

}
    ?>

Любые идеи, почему это может не работать?

Спасибо еще раз.

Share
  1. У вас есть встроенная date( 'Y' ); функция, которая даст вам в этом случае текущий год. Объедините это с оператором if/else, wp_redirect( $location, $header ); и вы почти закончили. Это так же просто, как использовать пользовательские метаданные $current_user для проверки и так далее.

    Кстати: нет необходимости добавлять какие-либо дополнительные таблицы. Просто используйте функции add_user_meta(), update_user_meta() & get_user_meta() .

    Обновление: старайтесь использовать только одно метаполе для каждого пользователя и храните свои данные там в виде массива, чтобы не слишком сильно загрязнять таблицу.

    • 0

Оставить ответ

You must login to add an answer.