[OzzModz] Badges

[OzzModz] Badges 2.3.5 Patch Level 2

No permission to download
I don't believe this is possible, but I ended up doing different icons because members on the site I use badges on are insane and wanted to collect more.

So any criteria you select for an award reason, it will want ALL those checked to be met - rather than just awarding the badge if any of the selected criteria are met? Just to be sure I understand....

Time to make some expert shopper badges lol

Is there any way to add in dragonbyte credits - 'purchase credits' as an award criteria option in a future release??
 
Hi! I love your badges and love how some are automatically awarded (it saves so much manual labor) Is there a possibility that in the future that an age requirement section can be added, like: "user has listed age, user has not listed age" Because I just had a badge drop for those 18+ because they listed their age on their profile, as it's now apart of the terms and rules- named 'responsible adult' lol. It's this section I'm talking about:
Screenshot 2024-02-27 144901.webp
I know there's another creator who has added on to this addon, to which the user onboarding came from. Would I ask them instead? I hope to hear back from you soon!
 
I love your badges and love how some are automatically awarded (it saves so much manual labor) Is there a possibility that in the future that an age requirement section can be added, like: "user has listed age, user has not listed age" Because I just had a badge drop for those 18+ because they listed their age on their profile, as it's now apart of the terms and rules- named 'responsible adult' lol. It's this section I'm talking about:
I think this can be achieved using this addon...


usercriteria.webp
 
@Ozzy47 @Painbaker

I set this up on our dev server, where we have email enabled in the config but all accounts (aside from a couple) set to Account state: Email invalid (bounced).

After adding an automatic badge for 10 posts (which applies to nearly all accounts), the new badge email was sent to 500+ emails (despite the accounts being set to Account state: Email invalid (bounced). Most of the emails bounced, and now our Amazon SES account is under review.

It even tried to send emails to accounts without email addresses (something I've never seen an addon do before), which generated these errors in the error log:

Code:
Server error log

    Exception: Email to [unknown] failed setup: Trying to send email to user without email (ID: 557) src/XF/Mail/Mail.php:97

    Generated by: Unknown account Feb 28, 2024 at 4:48 PM

Stack trace

#0 src/addons/OzzModz/Badges/Service/Award.php(200): XF\Mail\Mail->setToUser(Object(SV\DailyStatistics\XF\Entity\User))
#1 src/addons/OzzModz/Badges/Service/Award.php(170): OzzModz\Badges\Service\Award->sendEmail()
#2 src/XF/Service/ValidateAndSavableTrait.php(42): OzzModz\Badges\Service\Award->_save()
#3 src/addons/OzzModz/Badges/Repository/UserBadge.php(343): OzzModz\Badges\Service\Award->save()
#4 src/addons/OzzModz/Badges/Job/UserBadgeUpdate.php(65): OzzModz\Badges\Repository\UserBadge->updateBadgeForUser(Object(SV\DailyStatistics\XF\Entity\User), Object(OzzModz\Badges\Entity\Badge), Object(XF\Mvc\Entity\ArrayCollection))
#5 src/XF/Job/Atomic.php(40): OzzModz\Badges\Job\UserBadgeUpdate->run(2.25265)
#6 src/XF/Job/Manager.php(260): XF\Job\Atomic->run(8)
#7 src/addons/SV/SlowQueryLogger/XF/Job/Manager.php(34): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(202): SV\SlowQueryLogger\XF\Job\Manager->runJobInternal(Array, 8)
#9 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#10 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#11 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 cmd.php(15): XF\Cli\Runner->run()
#17 {main}

Request state

array(1) {
  ["cli"] => string(80) "/home/dev/public/cmd.php --quiet xf:run-jobs"
}

Any chance we can get this fixed ASAP so it doesn't happen again?
 
@Ozzy47 @Painbaker

I set this up on our dev server, where we have email enabled in the config but all accounts (aside from a couple) set to Account state: Email invalid (bounced).

After adding an automatic badge for 10 posts (which applies to nearly all accounts), the new badge email was sent to 500+ emails (despite the accounts being set to Account state: Email invalid (bounced). Most of the emails bounced, and now our Amazon SES account is under review.

It even tried to send emails to accounts without email addresses (something I've never seen an addon do before), which generated these errors in the error log:

Code:
Server error log

    Exception: Email to [unknown] failed setup: Trying to send email to user without email (ID: 557) src/XF/Mail/Mail.php:97

    Generated by: Unknown account Feb 28, 2024 at 4:48 PM

Stack trace

#0 src/addons/OzzModz/Badges/Service/Award.php(200): XF\Mail\Mail->setToUser(Object(SV\DailyStatistics\XF\Entity\User))
#1 src/addons/OzzModz/Badges/Service/Award.php(170): OzzModz\Badges\Service\Award->sendEmail()
#2 src/XF/Service/ValidateAndSavableTrait.php(42): OzzModz\Badges\Service\Award->_save()
#3 src/addons/OzzModz/Badges/Repository/UserBadge.php(343): OzzModz\Badges\Service\Award->save()
#4 src/addons/OzzModz/Badges/Job/UserBadgeUpdate.php(65): OzzModz\Badges\Repository\UserBadge->updateBadgeForUser(Object(SV\DailyStatistics\XF\Entity\User), Object(OzzModz\Badges\Entity\Badge), Object(XF\Mvc\Entity\ArrayCollection))
#5 src/XF/Job/Atomic.php(40): OzzModz\Badges\Job\UserBadgeUpdate->run(2.25265)
#6 src/XF/Job/Manager.php(260): XF\Job\Atomic->run(8)
#7 src/addons/SV/SlowQueryLogger/XF/Job/Manager.php(34): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(202): SV\SlowQueryLogger\XF\Job\Manager->runJobInternal(Array, 8)
#9 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#10 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#11 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 cmd.php(15): XF\Cli\Runner->run()
#17 {main}

Request state

array(1) {
  ["cli"] => string(80) "/home/dev/public/cmd.php --quiet xf:run-jobs"
}

Any chance we can get this fixed ASAP so it doesn't happen again?

We’ll check it out as soon as possible.
 
@Ozzy47 @Painbaker

I set this up on our dev server, where we have email enabled in the config but all accounts (aside from a couple) set to Account state: Email invalid (bounced).

After adding an automatic badge for 10 posts (which applies to nearly all accounts), the new badge email was sent to 500+ emails (despite the accounts being set to Account state: Email invalid (bounced). Most of the emails bounced, and now our Amazon SES account is under review.

It even tried to send emails to accounts without email addresses (something I've never seen an addon do before), which generated these errors in the error log:

Code:
Server error log

    Exception: Email to [unknown] failed setup: Trying to send email to user without email (ID: 557) src/XF/Mail/Mail.php:97

    Generated by: Unknown account Feb 28, 2024 at 4:48 PM

Stack trace

#0 src/addons/OzzModz/Badges/Service/Award.php(200): XF\Mail\Mail->setToUser(Object(SV\DailyStatistics\XF\Entity\User))
#1 src/addons/OzzModz/Badges/Service/Award.php(170): OzzModz\Badges\Service\Award->sendEmail()
#2 src/XF/Service/ValidateAndSavableTrait.php(42): OzzModz\Badges\Service\Award->_save()
#3 src/addons/OzzModz/Badges/Repository/UserBadge.php(343): OzzModz\Badges\Service\Award->save()
#4 src/addons/OzzModz/Badges/Job/UserBadgeUpdate.php(65): OzzModz\Badges\Repository\UserBadge->updateBadgeForUser(Object(SV\DailyStatistics\XF\Entity\User), Object(OzzModz\Badges\Entity\Badge), Object(XF\Mvc\Entity\ArrayCollection))
#5 src/XF/Job/Atomic.php(40): OzzModz\Badges\Job\UserBadgeUpdate->run(2.25265)
#6 src/XF/Job/Manager.php(260): XF\Job\Atomic->run(8)
#7 src/addons/SV/SlowQueryLogger/XF/Job/Manager.php(34): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(202): SV\SlowQueryLogger\XF\Job\Manager->runJobInternal(Array, 8)
#9 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#10 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#11 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 cmd.php(15): XF\Cli\Runner->run()
#17 {main}

Request state

array(1) {
  ["cli"] => string(80) "/home/dev/public/cmd.php --quiet xf:run-jobs"
}

Any chance we can get this fixed ASAP so it doesn't happen again?

Should be fixed in the latest version.
 
Hi! I love your badges and love how some are automatically awarded (it saves so much manual labor) Is there a possibility that in the future that an age requirement section can be added, like: "user has listed age, user has not listed age" Because I just had a badge drop for those 18+ because they listed their age on their profile, as it's now apart of the terms and rules- named 'responsible adult' lol. It's this section I'm talking about:
View attachment 298965
I know there's another creator who has added on to this addon, to which the user onboarding came from. Would I ask them instead? I hope to hear back from you soon!

This can be done without updating the add on.
  • Create a User group "18+" (or "Age verification" for instance)
  • Make a User group promotion to add members to the aforementioned User group when they have User field criteria of "18+" set to however you configured that Custom user field(s)
  • Automatically award badge if User groups are "User is a member of any of the selected user groups:" -- the 18+ group you just created.
 
Not sure if this is something that you'd have to do, or another addon. But is there a possibility to have a criteria for "message of X words" so I can have a badge for people who make at least X posts with longer bits of content in it vs shorter?
 
Top Bottom