Okay
  Public Ticket #2343436
Custom RSVP Form
Closed

Comments

  •  1
    Matthew Stone started the conversation

    Is there a way to make a custom rsvp form? Can you point us to any documentation to help us with this or provide instructions on how to do this?

  •  894
    Zhivko replied

    Hi,

    There's option to add extra fields to the existing form.

    Here's code example:

    /**
     * This code adds two custom fields (text input and select element) on the front-end modal window
     */
    add_action('wp_footer', function() {
        ?>
        <script type="text/javascript">
            (function ($) {             $(document).on('stecOnRsvpAfterFields', function (e, data) {
                    var customHtml = [
                        '<input type="text" name="attendee_country" placeholder="Country" />',
                        '<select name="attendee_tag"><option value="1">Tag</option></select>'
                    ];                 data.temp.customFields = customHtml;
                });         })(window.jQuery);
        </script>
        <?php
    }); /**
     * This code intercepts the custom fields when the form is submitted
     * \Stachethemes\Stec\Admin_Helper::post is same as $_POST[...] but returns default value (false) if !isset
     */
    add_filter('stec_rsvp_to_event_before_add', function(\Stachethemes\Stec\Event_Meta_Attendee $attendee) {
        
        $country = \Stachethemes\Stec\Admin_Helper::post('attendee_country', false);
        $tag     = \Stachethemes\Stec\Admin_Helper::post('attendee_tag', false);     if ($country && $tag) {
            $attendee->set_custom_data('country', $country);
            $attendee->set_custom_data('tag', $tag);
        }     return $attendee;
    }); /**
     * This code will display the customs fields in the admin area 
     * When clicking on attendee edit button
     */
    add_action('admin_footer', function() {
        ?>
        <script type="text/javascript">
            (function ($) {             $(document).on('stecOnAdminAddAttendee', function (e, data) {                 var attendeeIndex = data.$attendee.index('.stachethemes-admin-attendance-list-attendee');                 $.each(data.attendee.custom, function (key) {
                        var customHTML = [];
                        var inputKeyName = 'attendee[' + attendeeIndex + '][custom][' + key + ']';
                        customHTML.push('<p class="stachethemes-admin-info">' + key + '</p>');
                        customHTML.push('<input class="stachethemes-admin-input" type="text" name="' + inputKeyName + '" value="' + this + '" />');
                        $(customHTML.join('')).insertBefore(data.$attendee.find('.edit a[data-action="update-attendee"]'));
                    });
                });         })(window.jQuery);
        </script>
        <?php
    });



    Stachethemes Developer