Donations by Siropu

Donations by Siropu [Paid] 1.6.2

No permission to buy (€20.00)
Getting an error on this, suddenly it won't add the amount on the new 2026 goal. I tried a manual donation and got this error.

Code:
Server error log
GuzzleHttp\Exception\ClientException: Currency Exchange API: Client error: `GET https://v6.exchangerate-api.com/v6/pair/USD//50` resulted in a `404 Not Found` response: <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx</c (truncated...) Client error: `GET https://v6.exchangerate-api.com/v6/pair/USD//50` resulted in a `404 Not Found` response: <html> <head><title>404 Not Found</title></head> <body> <center><h1>404 Not Found</h1></center> <hr><center>nginx</c (truncated...) src/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
Generated by: anthony Jan 2, 2026 at 4:49 PM
Stack trace
#0 src/vendor/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response), NULL, Array, NULL)
#1 src/vendor/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response))
#2 src/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), NULL)
#3 src/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
#4 src/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run(true)
#5 src/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn()
#6 src/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending()
#7 src/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList()
#8 src/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending()
#9 src/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Promise\Promise->wait()
#10 src/vendor/guzzlehttp/guzzle/src/ClientTrait.php(44): GuzzleHttp\Client->request('GET', 'https://v6.exch...', Array)
#11 src/addons/Siropu/Donations/Service/CurrencyConversion.php(27): GuzzleHttp\Client->get('https://v6.exch...')
#12 src/addons/Siropu/Donations/Service/CurrencyConversion.php(19): Siropu\Donations\Service\CurrencyConversion->getApiResponse()
#13 src/XF/Container.php(275): Siropu\Donations\Service\CurrencyConversion->__construct(Object(XF\Admin\App), Array)
#14 src/XF/App.php(1967): XF\Container->createObject('Siropu\\Donation...', Array)
#15 src/XF/Container.php(233): XF\App->XF\{closure}('Siropu\\Donation...', Array, Object(XF\Container))
#16 src/XF/App.php(3548): XF\Container->create('service', 'Siropu\\Donation...', Array)
#17 src/XF.php(1203): XF\App->service('Siropu\\Donation...', Array)
#18 src/addons/Siropu/Donations/Entity/Donation.php(227): XF::service('Siropu\\Donation...', Array)
#19 src/XF/Mvc/Entity/Entity.php(1421): Siropu\Donations\Entity\Donation->_preSave()
#20 src/XF/Mvc/Entity/Entity.php(1272): XF\Mvc\Entity\Entity->preSave()
#21 src/addons/Siropu/Donations/Admin/Controller/Donation.php(111): XF\Mvc\Entity\Entity->save()
#22 src/XF/Mvc/Dispatcher.php(362): Siropu\Donations\Admin\Controller\Donation->actionSave(Object(XF\Mvc\ParameterBag))
#23 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('Siropu\\Donation...', 'Save', Object(XF\Mvc\RouteMatch), Object(Siropu\Donations\Admin\Controller\Donation), NULL)
#24 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(Siropu\Donations\Admin\Controller\Donation), NULL)
#25 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#26 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#27 src/XF.php(806): XF\App->run()
#28 admin.php(15): XF::runApp('XF\\Admin\\App')
#29 {main}
Request state
array(4) {
  ["url"] => string(37) "/admin.php?donations/donations/3/save"
  ["referrer"] => string(59) "https://www.myptsd.com/admin.php?donations/donations/3/edit"
  ["_GET"] => array(1) {
    ["donations/donations/3/save"] => string(0) ""
  }
  ["_POST"] => array(14) {
    ["_xfToken"] => string(8) "********"
    ["username"] => string(7) "anthony"
    ["donation_date"] => string(10) "2026-01-02"
    ["donation_goal_id"] => string(1) "1"
    ["donation_amount"] => string(5) "50.00"
    ["donation_currency"] => string(3) "USD"
    ["donation_method"] => string(6) "paypal"
    ["subscription"] => string(0) ""
    ["message"] => string(0) ""
    ["anonymous"] => string(1) "1"
    ["status"] => string(9) "completed"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(37) "/admin.php?donations/donations/3/edit"
  }
}
 
Our donations were the object of a stupid Denial Of Service attack which created a large number of unconfirmed entries in donations in the admin area. I would like to delete all of those from that list since it has added a few hundred entries.

We just upgraded to XF2.3.7 and I was happy to see the goal autorenewal feature. I am looking forward to not having to do that on February 1st. The message currently displayed on our progress bar includes the goal month name. Is there a handy way to use a variable in that widget for the month name?
 
I would like to delete all of those from that list since it has added a few hundred entries.
I will add the option to delete unconfirmed donations in the next release.

Is there a handy way to use a variable in that widget for the month name?
Will be added in the next release.

Yer, I removed this and purchased the Dragonbyte one. They fix issues quickly.
The issue you encountered seem to be due to not setting a primary currency.
 
Siropu updated Donations by Siropu with a new update entry:

Improvements

Skip donation method selection when only one method is available.
Added minimum donation amount based on currency.
Added user group settings to goals.
Added {month} placeholder in the goal description to display the current month.
Added option to delete unconfirmed donations.

Important: If you are using minimum donation amount, you have to set it again based on currency either in the Goal settings or in admin options.

Read the rest of this update entry...
 
Greetings! I've newly added your addon. Has a healthy feature set. One item to note.....I am using Stripe and I see that if different users share the same email address, when I review the donations within Stripe, I cannot discern between which accounts made the donations and the names on the cards (PII). Is that something you can pass into the request? I see Xenforo passes the Xenforo username and userid with the request.
1780086029792.webp

Also, do you keep the subscription ID so that the user can cancel from their donations page? Or, how would a donor know how to cancel their Stripe subscription?

Thank you!!
 
The site has been down for a long time for me, is there a current place to get it? I did buy it a while back.
 
I went to DragonByte.
You already mentioned that. The feature set is slightly different between the two developers - I've had both installed. For our forum, the Siropu product checks more boxes than Dragonbyte. Everyone is entitled to their opinion. And competition actually makes for a better product - or at least it is supposed to. So, I'm all for that diversity.

The site has been down for a long time for me, is there a current place to get it? I did buy it a while back.
I've been able to access https://siropu.com/ without issue. I have not had an opportunity to ask the developer for questions other than the one I posted here. Hopefully, they will resurface soon to help answer some of the outstanding questions.
 
You already mentioned that. The feature set is slightly different between the two developers - I've had both installed. For our forum, the Siropu product checks more boxes than Dragonbyte. Everyone is entitled to their opinion. And competition actually makes for a better product - or at least it is supposed to. So, I'm all for that diversity.


I've been able to access https://siropu.com/ without issue. I have not had an opportunity to ask the developer for questions other than the one I posted here. Hopefully, they will resurface soon to help answer some of the outstanding questions.

Must have me blocked somehow:

Forbidden​

You don't have permission to access this resource.
 
I am looking to see if functionality has been added that allows the system to automatically move a user into a specific usergroup after a donation/upgrade, track the duration (e.g., $5 for 1 month of ad-free access), and then automatically revert them back to their original usergroup status once that time expires.

Are these automated group switching and expiration features currently supported or built into the latest version of the add-on?
 
I am looking to see if functionality has been added that allows the system to automatically move a user into a specific usergroup after a donation/upgrade, track the duration (e.g., $5 for 1 month of ad-free access), and then automatically revert them back to their original usergroup status once that time expires.

Are these automated group switching and expiration features currently supported or built into the latest version of the add-on?

Sounds like you essentially just want a user upgrade system and that's built into Xenforo. https://docs.xenforo.com/manual/users/user-upgrades
 
Sounds like you essentially just want a user upgrade system and that's built into Xenforo. https://docs.xenforo.com/manual/users/user-upgrades
pretty easy for a guy like him , I own lots of his mods over the years and he has a button for everything else on most. Maybe one day. User upgrade system works fine but this is a double whammy move to reward those who help with the bills by dropping them in the ad free category so maybe they will want to be there more
 
Back
Top Bottom