Packages are how Ourzobia PHP - Social Peer to Peer Donation System allows users to make investments on the system. They are designed to make the investing process on the system simple and as flexible as possible. Packages are not static predefined groups of investment amounts as one might imagine. Yes, they are predefined by the Site Administrator (Admin), but are in no way static. They are very much flexible and negotiable by the user.
When defining packages, Admin would be required to define the investment amount of the package within a range and also define a default amount for it, then when a user wants to invest (Buy Package), they can enter an amount different from the default so long as it falls within the predefined range.
Users are allowed to invest (Buy) on any of the available packages as many times as defined by Admin and can upgrade at any time. Where a user has not upgraded after the defined number of investments for their current package, all packages below and including the current package will have their buy buttons removed, to force the user to upgrade to the next package.
Where a user has pending transactions, like confirming a payment, fulfilling a pledge or has been reported, the buy buttons would be removed and an appropriate notification will be shown to the user.