Спасибо за наводку по поводу хука.
Поразмыслив, пришел к выводу, что можно сделать еще проще:
если назначить каждому "товару" цену в один рубль, то после ввода на странице пожертвований суммы в рублях,
можно подсчитать кол-во ""отгружаемого" "товара"

И, развивая мысль далее, можно завести на складе кол-во "товара" = целевой сумме, благодаря чему
можно легко узнать "остаток" (т.е. сколько еще осталось собрать пожертвований для выбранной цели).
Т.е. собираем пожертвования для Х в размере К руб:
создаем "товар" с названием Х, назначаем цену = 1 руб
добавляем на "склад" "товара" Х в кол-ве К шт
жертвователь на форме ввода пожертвования вводит сумму С
при обработке формы ввода суммы пожертвования создаем "заказ" на товар Х в кол-ве С шт, автоматом списывается со "склада"
уменьшение "товара" на "складе" до нуля и ниже можно использовать:
- для авто-завершения сбора для Х
- перевода минусовых остатков (то что превысило сумму для Х и привело к отрицательному кол-ву на "складе" ) на "склад" другого "товара"