Disable a submit button after the first click

$('form.checkout').on('submit', function () {
    // a disabled control is not submitted, so the button's own name and
    // value have to be put back as a hidden field.
    $(this).find(':submit')
        .prop('disabled', true)
        .after('<input type="hidden" name="place_order" value="1">');
});