Как определить, стоит ли таблице cms_users в столбце unsubscribe число 1 или нет?

ЕСТЬ РЕШЕНИЕ
#1 25 ноября 2021 в 13:24

Расскажу немного для чего это нужно. Есть отличный компонент, Достижения (звании, награды) Но есть там один момент, который не устраивает. Нет уведомления на email, о том, что пользователю присвоено звание. Собственно этот момент и решил доработать. Уведомления решил рассылать через функцию sendNoticeEmail. Но некоторые пользователи отказались от рассылок, в столбце unsubscribe это обозначается числом «1». Вот не знаю как к этому столбцу подобраться. А там, думаю, уже можно будет реализовать через if else, выводить  sendNoticeEmail или нет.

#2 25 ноября 2021 в 13:37
  1. if ($unsubscribe == 1) {
  2. // здесь 1
  3. }
#3 25 ноября 2021 в 13:44
  1. if ($unsubscribe == 1) {
  2. // здесь 1
  3. }
Нифигаccе о-го-гошеньки

Ну да, это уже второй шаг, а меня первый интересует, как переменой $unsubscribe присвоить значение из cms_users столбца unsubscribe ? 

#4 25 ноября 2021 в 13:55

Если этот столбец там точно есть и вы знаете id юзера. Ну а вообще было бы лучше, если бы вы сразу рассказали, что это, какие данные имеются и т.д.

  1. $user = cmsCore::getModel('users')->getItemById('users', $user_id);
  2. $unsubscribe = $user['unsubscribe'];
#5 25 ноября 2021 в 19:23

Если этот столбец там точно есть и вы знаете id юзера. Ну а вообще было бы лучше, если бы вы сразу рассказали, что это, какие данные имеются и т.д.

  1. $user = cmsCore::getModel('users')->getItemById('users', $user_id);
  2. $unsubscribe = $user['unsubscribe'];
Нифигаccе о-го-гошеньки

Супер! Спасибо! 

Только за место $user_id написал $user['id'], ну и переменную $user переименовал в $user_unsub, там конфликты были, получилось так

$user_unsub = cmsCore::getModel('users')->getItemById('users', $user['id']);
$unsubscribe = $user_unsub['unsubscribe'];

Ну а если целиком доработка, то так:

$user_unsub = cmsCore::getModel('users')->getItemById('users', $user['id']);
$unsubscribe = $user_unsub['unsubscribe'];
if ($unsubscribe != 1) {
           $messenger->sendNoticeEmail('skills_awards', array(
                                        'href_site'  => $url = cmsConfig::getInstance()->host,                                        
                                        'href'  => href_to('skills', $skill['id'])
            ));        
};    

#6 25 ноября 2021 в 19:53

Только за место $user_id написал $user['id']

Vladimir

Вот я и говорю, задавайте вопрос правильно. Теперь у вас лишний запрос. А если бы было известно, что у вас уже получен юзер, то всё свелось бы к этому:

  1. $unsubscribe = $user['unsubscribe'];

Или нет, даже это не нужно. Просто условие было бы другим:

  1. if ($user['unsubscribe'] != 1) {
  2. $messenger->sendNoticeEmail('skills_awards', array(
  3. 'href_site' => $url = cmsConfig::getInstance()->host,
  4. 'href' => href_to('skills', $skill['id'])
  5. ));
  6. };

А всё остальное лишнее.

#7 25 ноября 2021 в 20:30

Только за место $user_id написал $user['id']

Vladimir

Вот я и говорю, задавайте вопрос правильно. Теперь у вас лишний запрос. А если бы было известно, что у вас уже получен юзер, то всё свелось бы к этому:

  1. $unsubscribe = $user['unsubscribe'];

Или нет, даже это не нужно. Просто условие было бы другим:

  1. if ($user['unsubscribe'] != 1) {
  2. $messenger->sendNoticeEmail('skills_awards', array(
  3. 'href_site' => $url = cmsConfig::getInstance()->host,
  4. 'href' => href_to('skills', $skill['id'])
  5. ));
  6. };

А всё остальное лишнее.

Нифигаccе о-го-гошеньки

Да, я тоже так сначала подумал и попробовал, но почему-то ошибка возникает.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.