Type: New Feature
Affects Version/s: None
Fix Version/s: 1.6
Users want to configure Online Contribution pages which allow free membership signups OR allow contributors to enter in-kind / non-monetary donations such as furniture, equipment, etc.
1. Add is_monetary boolean column / property to civicrm_contribution_page. Default is 1 (true).
2. Add sql to upgrade scripts to set this value to true for all existing contribution pages.
3. Add corresponding form field (checkbox) to ContributionPage_Amount form. Field label: "Execute real-time monetary transactions." (default when creating a new page is CHECKED)
4.1 If is_monetary TRUE, no change to existing page rendering and processing flow.
4.2 If is_monetary FALSE:
- Ignore global Payment Processor configuration...
- PayPal Express button is not shown even if process is PayPal_Express
- Billing Address and Credit Card blocks are NOT included in Main.php form.
- Allow any of these cases:
- Amount block + membership block enabled
- Amount block only is enabled
- Membership block only is enabled
- Neither amount nor membership block are enabled (this case should still throw an error if is_monetary = TRUE)
- Bypass call to payment processor
- Confirm postProcess should still insert a contribution record (and conditionally a membership record). The total_amount should be set to 0 if no amount field has been submitted AND no membership fee. However, if an amount_block value and/or membership fee is configured for the page and filled in by the user, that amount is stored to the contrib record.
- postProcess should NOT insert a civicrm_financial_trxn record.