• Resolved wzshop

    (@wzshop)


    Hello,
    Thanks a lot for this great plugin. I was wondering though if it would be possible to add a checkbox for people to check / agree with the Terms and Conditions, when they want to make a reservation. Of course this checkbox needs to be checked in order to sent the reservation form.

    Any possibilities to accomplish the above?
    Thanks again, Robbert

    https://www.ads-software.com/extend/plugins/events-manager/

Viewing 15 replies - 1 through 15 (of 15 total)
  • Hi Robert,

    If you have the Pro version this can done with the Forms Editor. Otherwise, you’d need to copy and modify the booking-fields.php template at /plugins/events-manager/templates/forms/bookingform.

    See here for instructions on using templates:
    https://wp-events-plugin.com/documentation/using-template-files/

    One way of doing it would be to use something like jQuery to hide the fields in the booking form unless the user has selected a checkbox.

    Thread Starter wzshop

    (@wzshop)

    Thanks a lot. That will work!

    Thread Starter wzshop

    (@wzshop)

    Ok well, i managed to add a simple checkbox. Is there any way to validate if the checkbox is checked and display an error message when it is not checked?

    Do i need to customly add this validation in a js file?

    Any help would be greatly appreciated!

    Hiya!

    You could do that using jQuery… take a look at adding scripts at https://codex.www.ads-software.com/Function_Reference/wp_enqueue_script

    Cheers,
    Phil

    Thread Starter wzshop

    (@wzshop)

    Ok thanks,
    Here is what ive done.

    In functions.php i added the code to load a custom js file:

    <?php
    function my_scripts_method() {
    wp_enqueue_script(
    		'custom-script',
    		get_template_directory_uri() . '/js/custom_script.js',
    		array( 'jquery' )
    	);
    }
    
    add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
    ?>

    This works and actually loads the js file in my theme.
    Then in my theme folder i uploaded the custom_script.js file with the code:

    $(document).on('submit', '.em-booking-form', function(e){
    	if($("#booking_terms").prop('checked') == false){
        //do something
    	  alert("is not checked");
    });

    However the alert is not displayed when i try to submit the booking form and uncheck the checkbox. But when i add the above code (of my custom js file) in the file events-manager/includes/js/bookingsform.js the check/alert is working (so i guess the custom script is not called by the bookings form?). However i don’t want to edit that file because the custom coding will get overwritten when i do an update of the plugin.

    So why is the check only working when added in the bookingsform.js file? And is there a way to validate the checkbox through jquery, by a custom made js file? Maybe by using an action hook?

    Thanks again!

    I think the missing part is that you’re not wrapping your custom javascript in a document ready function. If you do that it should work.

    Thread Starter wzshop

    (@wzshop)

    Hmm, i try to duplicate the on.submit function. Im pretty new with jquery. Can you please tell me what i exactly need to change to make it work?

    Thanks.

    You need to enclose your code in something like this:

    ( document ).ready(function() {
    
    // your code goes here
    
    });

    This should add your code to the submit button after it’s loaded. At the moment, I think your code isn’t working because the submit button isn’t ready at the point you’re trying to add the code for it.

    This might help:
    https://learn.jquery.com/using-jquery-core/document-ready/

    Thread Starter wzshop

    (@wzshop)

    Hey,
    Thanks for your reply!

    I tried this:

    ( document ).ready(function() {
    
    // your code goes here
    $(document).on('submit', '.em-booking-form', function(e){
    	if($("#booking_terms").prop('checked') == false){
        //do something
    	  alert("is not checked");
    });
    });

    And/Or

    // your code goes here
    $(document).ready('submit', '.em-booking-form', function(e){
    	if($("#booking_terms").prop('checked') == false){
        //do something
    	  alert("is not checked");
    });

    But both did nothing… Am i doing something wrong?
    Thanks again!

    Sorry, the first character of my example got cut off. Here the correct version, with your code in it.

    I’ve also added an alert right at the start. If that doesn’t pop up when your page loads, you know the ready function is in the wrong place or isn’t being loaded for some reason.

    If the alert appears but your code doesn’t work, you know there’s a problem with your code.

    $( document ).ready(function() {
    alert("Ready function called");
    $(document).on('submit', '.em-booking-form', function(e){
    	if($("#booking_terms").prop('checked') == false){
        //do something
    	  alert("is not checked");
    });
    
    });
    Thread Starter wzshop

    (@wzshop)

    Ah, thanks a lot. This helps me to further debug this issue:).
    No alert is being shown, so i guess that the function is not being loaded, as i already suspected. However the custom js file is added in the source header, by the wp_enqueue_script.

    Any possibility for the form to load the custom js file?

    Any ideas?
    Thanks again!

    Plugin Support angelo_nwl

    (@angelo_nwl)

    Thread Starter wzshop

    (@wzshop)

    thanks, but the script is loaded. however the js is not called when the form is submitted…
    Any ideas?

    Thanks.

    Thread Starter wzshop

    (@wzshop)

    still not working..

    Thread Starter wzshop

    (@wzshop)

    fixed it.
    used the do_action(’em_gateway_js’); hook in classes/em-bookings.php file
    thanks all

Viewing 15 replies - 1 through 15 (of 15 total)
  • The topic ‘Add Terms and Conditions to reservation form?’ is closed to new replies.