Чтобы знать о человеке многое, достаточно владеть немногим...

День рождения в WordPress

Создано: Март 16th, 2011 | Автор: | Рубрика: php | Теги: php, wordpress | 3 комментариев»

Какого было мое мое удивление, когда я не нашел ни одного плагина по этой теме! Я думал, что у же все написано, все придумано, что нужно просто придти и взять готовое — вот она лень современного человека во всей своей красе :) . Пришлось искать выход самому…
Задача стояла следующая:
- добавить в профиль пользователей графу для указания даты рождения;
- поздравлять пользователей в день рождения где-нибудь справа;
- предупреждать о грядущем дне рождения заранее.
Задача в общем-то простая, однако решения в нете не нашел, поэтому, опишу свой вариант, вдруг кому да пригодится!
Для начала мы поставим плагин Cimy User Extra Fields. С помощью него мы сможем добавить в профиль дополнительное поле. Установили, топаем в админку в раздел Параметры и заходим настраивать наш плагин. В самом низу есть форма для добавления полей, по моему примеру заполняем так:
Имя: BDATE
Значение: 1986/03/31
Тип: text
Метка: Дата рождения
Описание: Введите дату своего рождения
Ставим галочки Мин длина, Макс длина и Может быть пустым. В качестве ограничения ставим 10 символов (1986/03/31)
И все, жмем кнопку Добавить поле!
Теперь нам потребуется любой виджет который не жалко. В моем случае это Executable PHP widget . Этот виджет брат-близнец стандартного виджета для произвольного текста или html, только с поддержкой php. Вобщем-то он не нужен, можно и обычный ковырнуть, но раз уж я его поставил, то продолжил работу с ним.
Топаем в папку с этим виджетом, у меня это: wp-content/plugins/php-code-widget/. Там лежит execphp.php который мы и будем править!
Открываем, ищем там вот этот блок

Удаляем все из этого div’а и вставляем вот это:

$db = mysql_connect("127.0.0.2","username","password");
mysql_select_db("dbname",$db);
$result1 = mysql_query("SELECT USER_ID,VALUE FROM wp_cimy_uef_data",$db);
$myrow1 = mysql_fetch_array($result1);

do
{
$curdate = date("md");
$bdate = $myrow1["VALUE"];
$bdate = str_replace("/", "", $bdate);
$bdate = substr("$bdate", 4);
if (!empty($bdate))
{$soon = ($bdate - $curdate);}
$cimyid = $myrow1["USER_ID"];
if ($bdate == $curdate)
{
$result2 = mysql_query("SELECT user_nicename
FROM wp_users WHERE id like '%$cimyid%'",$db);
$myrow2 = mysql_fetch_array($result2);
$username = $myrow2["user_nicename"];
echo "Сегодня день рождения у $username!
";
}
if (($soon < 7 or ($soon < 77 and $soon > 69)) and !empty($bdate) and $curdate < $bdate)
{
$result2 = mysql_query("SELECT user_nicename
FROM wp_users WHERE id like '%$cimyid%'",$db);
$myrow2 = mysql_fetch_array($result2);
$username = $myrow2["user_nicename"];
echo "Скоро день рождения у $username";
}
}
while ($myrow1 = mysql_fetch_array($result1));

И все, остается только вытащить этот виджет в нужное место! :)

Рассказать друзьям:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • MySpace
  • Одноклассники
Просмотров: 1 072

3 комментариев к “День рождения в WordPress”

  1. 1  сказал в 22:18. Октябрь 10th, 2011:

    Здравствуйте, у меня не получаеться настроить виджет так как вы описали. Возможно ли с вами сязаться через icq или скайп, для уточнения некоторых моментов?
    Если возможно жду контактной информации на почту.

  2. 2 unknow сказал в 23:22. Октябрь 10th, 2011:

    Добрый вечер.
    Опишите проблему, что именно не получается?

  3. 3 Askim сказал в 11:30. Ноябрь 23rd, 2011:

    Здравствуйте) а можно как-то добавить не текстовое поле для даты рождения, а выпадающий список? т.е. выбор дня, месяца и года рождения?


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