I run Civi 4.7.13, and trying to setup an online registration form for a CiviEvent. When no coupon is used, the event registration submit button is the "Pay Pal Checkout" button. But when the amount is 0 because a 100% discount coupon is used, there is no paypal button and the registration form cannot be submitted.
That looks like a bug, but I notice your CiviCRM is 4 versions behind the current one, so I'd update your CiviCRM first before doing anything else.
I have seen some similar issues in the past - when you have an on-site payment processor, there is some logic that hides the payment form when no payment is due. Perhaps in combination with an off-site processor like Paypal Standard, the hiding of the payment form turns into hiding the submit button.
I've also hit upon this issue -- an 100% discount coupon results in a zero $ cost for membership, and the Pay Now/Pay Later radio buttons don't appear, and when the prospective member clicks "Submit" to verify their membership request, they see the error :
0 - Call to a member function getPaymentFormFields() on null
I'm running civiCRM 4.7.27 and civiDiscount 3.3, with the Payment Processor set to PayPal - Website Payments Pro.
Any one have a workaround for this, so that we can offer these free memberships?