Allow payment processors to indicate whether they require an email address
Overview
Payment processors in webforms are assumed to require an email address, but that is not necessarily true, for example in the case of the Cash/Check payment processor. Currently there is no way for the payment processor to indicate that it does not require an address.
Proposed changes
Create CRM_Core_Payment::requiresEmailAddress() to return TRUE, but can be overridden by processors - https://github.com/civicrm/civicrm-core/pull/16503
Adjust wf_crm_webform_postprocess.inc to check requiresEmailAddress() (if method is defined) - https://github.com/colemanw/webform_civicrm/pull/292
Override requiresEmailAddress() in Cash processor - https://lab.civicrm.org/extensions/cashpp/blob/master/CRM/Core/Payment/Manual/Cash.php#L8-10
[Updated as per Eileen's comment]
Create CRM_Core_Payment::supportsNoEmailProvided() to return FALSE, but can be overridden by processors - https://github.com/civicrm/civicrm-core/pull/16503
Adjust wf_crm_webform_postprocess.inc to check $processor->supports('NoEmailProvided')- https://github.com/colemanw/webform_civicrm/pull/292
Override supportsNoEmailProvided() in Manual processor to return TRUE