У меня есть многосайтовая установка WordPress с более чем 100 пользователями с блогами. Некоторые пользователи имеют более одного блога.
Пользователи могут платить за свои блоги (считайте это сценарием пожертвований) или они могут выбрать бесплатный блог. Если у них есть бесплатный блог, то в wp_Blog-ID_options есть переменная с именем is_free_site
, и для нее установлено значение 1. (Blog-ID относится к блогу пользователя)
Если пользователь платит за свой сайт, is_free_site
либо будет установлено значение 0, либо переменная вообще не будет существовать в базе данных. Смотрите скриншот:
http://www.awesomescreenshot.com/image/1657353/0238f2bf2d49f0b165170be6c64ba3a3
Я пытаюсь написать функцию с именем does_user_pay
, которая будет проверять, платит ли текущий пользователь, вошедший в систему, за какой-либо из своих сайтов, и если он это делает, она возвращает true. Это сделано для того, чтобы я мог скармливать премиум-контент тем, кто решит платить.
Так, например, у пользователя А может быть 2 сайта, один из которых он платит, а другой нет, поэтому does_user_pay()
должно быть правдой.
У пользователя Б может быть 1 сайт, за который он не платит, so does_user_pay()
будет ложным.
у пользователя C может быть 1 сайт, за который он платит, поэтому does_user_pay()
будет правдой.
Я кодирую это в пользовательский плагин, вот что у меня есть до сих пор:
function does_user_pay() {
global $current_user;
$user_id = get_current_user_id();
$user_blogs = get_blogs_of_user($user_id);
// Need to write a function here that checks if any of the user blogs are paid for
if(is_user_logged_in() && USER_HAS_PAID_SITE) {
return true;
} else {
return false;
}
}
Любая помощь могла бы быть полезна