Support backdating start date of subscriptions + more flexible Recur Start Date options via hook (PR coming)
PR coming in a few days. I have the backdate feature working but need to add a new hook and also generalize the code a bit. Let me know when is a good time/which branch to merge into.
Currently the custom Start Date feature must be turned on or off for all contribution forms, and the list of Start Dates is only future dates. In our case we only want very specific forms to have this option, it's confusing in many cases and we don't want that, and we want to be able to backdate the start of subscriptions (for example, if someone is signing up late for a monthly class, we want to take their first payment immediately and take subsequent payments on an earlier date in the following months).
Two main steps to this:
- Add support for the backdate_start_date feature of Stripe subscriptions. If receive_date is in the past, send it as the backdate_start_date and calculate the next recur date to be the start date. And in this case, turn on prorations.
- Create a Hook to allow customizing the Start Dates list, without needing to switch on the global setting. This should allow easy customization per-form in an extension.