Important!!! Check actual Support Forum, if you need to ask a Questions.
I'm interested in using a booking calendar for tennis coaching.
30 minute slots for different instructors and users will prepay.
Is this possible and in what version?
Hello.
At the Booking Calendar Business Small and Business Medium versions are possible to make the bookings for the specific time slot.
Please read the Booking Calendar version overview here: https://wpbookingcalendar.com/help/versions-overview/
Please note, if you will use the fixed time slot list selection (and not the time entering using the text fields) in the booking form, the time slot list will be the same for the any date of week, in other words the fixed time slot list is not depend from the week of day. Also if some visitor will reserve the specific time slot at selected date at specific booking resource (calendar), this timeslot become unavailable for the other visitors at this selected date in this booking resource.
Please read more abut the configurations of the time shortcodes here: https://wpbookingcalendar.com/help/booking-form-fields/
Its seems that you are need to create the specific booking resource for the each of your instructors , and then insert the booking form for this instructor into the specific post or page.
If you are need possibility that each of your instructors have own booking admin panel, and can see only own bookings and do not see the bookings from the other instructors. So in this case you are need to check the Booking Calendar MultiUser version. At this version each registered WordPress user (instructor) of your site can have independent, individual, own booking admin panel. It’s mean that each regular registered WordPress user can see only OWN booking resources and bookings and can configure the own booking form fields and email templates, own payment form integration data and costs of booking resources as some other settings…
You can test Booking Calendar live demos at this page https://wpbookingcalendar.com/demo/ to be sure in functionality and do not have misunderstanding.
Hi,
I notice that when 'Send email notification to customer about this operation' is unticked within 'Add Booking', emails are still sent out.
Not sure if this is a bug or not - can you help?
Thanks,
Adam.
Hello,
sorry for that, for fixing this issue, please open this file ../booking/js/wpdev.bk.js
find this code:
var is_send_emeils= jQuery('#is_send_email_for_new_booking').attr('checked' );
if (is_send_emeils == undefined) {is_send_emeils =1 ;}
if (is_send_emeils) is_send_emeils = 1;
else is_send_emeils = 0;
and replace it to this code:
var is_send_emeils= jQuery('#is_send_email_for_new_booking')
if (is_send_emeils.length == 0 ) {
is_send_emeils = 1;
} else {
is_send_emeils = is_send_emeils.attr('checked' );
if (is_send_emeils == undefined) {is_send_emeils = 0 ;}
if (is_send_emeils) is_send_emeils = 1;
else is_send_emeils = 0;
}
This fix will be exist in the future updates.
Hello,
I plan to buy WP Booking Calendar (MULTIUSER). If in the future I will need to connect an additional payment system (eg https://www.payment-network.com/deb_com_en), it will be possible to implement it? It will be possible to ask you to do this, of course for a fee?
Hello,
unfortunately, that payment system is not supported yet in the actual version of the Booking Calendar. But I will add it to todo list for the future updates.
Also, right now we are do not make the personal customizations or starting new personal projects, because we are have a long todo list for the future updates and almost have no free time. thank you for understanding.
If you are still want to make the integrations of that payment system by yourself, you can look, how is integrated exist payment systems and make new integrations in the similar way. Please note, if you will modify the source code of the Booking Calendar, we will not guaranteed the correct work of plugin and do not support it.
When I try to insert the calender in my page there is no pop up window for cnfiguration. What to do?
I use wp 3.4.2 and a templet for my website.
Hello.
If you will have any problems with booking button at edit toolbar for inserting shortcode, probably you are in HTML content edit mode, please turn to the visual view mode your edit toolbar and recheck if the booking button will appear there.
If you are still will have an issue, please recheck your page for any Java script errors or some plugins, which are override the edit toolbar. Then try to fix or deactivate those plugins.
Try to deactivate one by one your active plugins for checking if it's fix issue or not, for searching the reason of that issue.
If its not help try to deactivate your actual theme and activate default one.
Then test it again.
I am running Version 9.Premium.Plus.SingleSite.3.0of your potentially excellent plugin. Our situation is that we are a small community centre with a single room and a playing field resource to book out as resources. What I have been unable to decipher is the best approach to giving access to members at a discounted rate. We tend to charge an hourly rate and give discounts to memmbers as well as an extra discount to bulk regular users. I have been unable to clarify in my mind the way to match this up with your explanations. I selected this version of the plugin because it appeared to give the option of doing that, but after 3 attempts to understand your explanations I am no clearer. Sorry - I'm just being a bit dense I think. Could you please give me a hint of how to approach this structure.
Normal ad hoc bookings are charged at £10 per hour. for both facilities
If the booker pays a simple £1 p.a. or a (£10 life membership) fee we give them access to a £9 per hour discounted rate.
For all bookings we ask for a £10 deposit and have sussed out how to add that to the Paypal payment system.
For our heaviest users the rate comes down to £4.50 per hour.
Our customers are not yet used to paying via Paypal and in reality most payments are entered via the backend of the plugin.
The website address is https://stanwixcommunitycentre.org.uk and there is a bookings item in the main navigation menu that accesses a page with a tab for the community centre and a tab for the playing field. and their separate calendars.
Any enlightenment would be appreciated.
Hello.
I can suggest next solutions for your cost calculation of the bookings.
Because you are have the different rates for the different types of the users, probably you are need to have the several booking forms (with claendar for the same resource) in the different posts or pages. So in this case, you can define the several different custom form fields customizations at the Booking > Settings > Fields page. You are need to have in the each of your field some hided selectbox or checkbox, like this: <div style="display:none;"> [select my_discount "option1"] </div>
and then at the Advanced cost management page (at the version 3.0 its at the Booking Settings Payment page, at the version 4.0 or newer at the Booking > Resources > Advanced cost page) set the "additional cost" as a discount for the while bookings, something like this:
option1 = 98%
So its will mean that the visitor will pay the 98% from the final regular cost of the booking (just need to calculate the correct percentages for the each type of users in different forms).
Hope its will help you.
Hello, I have a question about the time of reservations.
I have the Small Bussines Version and I have seen that I can choose hours in a day, but only allows me one reservation per day,
and need to know if is possible to make reservations of several different customers on the same day at different times.
For the service I offer I receive several clients in the same day in different hours.
Is possible to configure it?
Thank you!
🙂
Hello.
Yes, sure it's possible to make the bookings at the same date but for different time in that day in the Business Small/medium versions. Please check how to configure correctly the times shortcodes here: https://wpbookingcalendar.com/help/booking-form-fields/
Thank you, works great. 🙂
Just one last question:
fill the email box is always mandatory?
It is possible that the mailbox is not mandatory?
It does not work without it.
Thank you!
Hello.
Sorry, but the emails are always mandatory fields, because its often using for the internal actions of the system.
Hey!
First off I want to say this is by far the most impressive booking plugin out there for WordPress.
I'm current working for a company that wants takes care of field reservations for soccer players, and I have a few questions if there are features available in the plugin.
Depending on the team that is playing, there are different fields that are available to them (younger players have smaller fields while the older ones play on normal ones). Is there a way for the customer to first select the team they are part of and to then only show a certain number of fields based off of that?
Currently when a reservation is made, there are multiple tags associated with each item. Is it possible to remove a tag from being used?
Lastly, a small bug. When you click on the "Actual dates" drop down in the Advanced Filter under Actions, the drop down appears but there is no way to make it disappear.
Thank you for your time!
Hello.
1) Probably you are need to have the several reservations for the specific field at the selected date, until the number of players will complete the team. Its possible at the Booking Calendar Business Large version. At this version is possible to set the capacity of the booking resource, it’s mean that your visitors can make the several reservations per the same date, in other words, the date(s) in calendar will be available until lumber of reservations per these full dates is less than capacity of the booking resource. Please note, if you will use the timeslot selection for the booking resource with capacity higher than one, so then this timeslot will be simply record as a data into DB according this booking, but will not impact to the time availability.
Please read more info about the booking resources and how to configure them here https://wpbookingcalendar.com/help/booking-resource/
But please note you will need to create the booking resources with specific capacity for the each of your fields, so in this case your visitors will need to selct the page with specific booking resource (soccer field), and not the selection of the type of player. You can define somehow where is placed the booking forms for the one and other types of the players in your structure of the site, but not in the booking calendar. Sorry.
You can test Booking Calendar live demos at this page https://wpbookingcalendar.com/demo/ to be sure in functionality and do not have misunderstanding.
2) I am not sure what you are mean by tags, but if you are mean possibility to edit the text fields in the booking form, so then its possible at the Booking > Settings > Fields page.
3) Its dialog is closed, when you are press at the "Apply" or "Close" button. If the issues is still exist, after you are pressed at those buttons, probably you are have at the page some javascript errors, which can generated by some other plugin or actual theme. You are need to fix them.
Try to deactivate one by one your active plugins for checking if it's fix issue or not, for searching the reason of that issue.
If its not help try to deactivate your actual theme and activate default one.
Then test it again.
Hello
I use your latest version 4.01 large busines and have the following problem.
we rent bicycle's voor diferent days. the term can by 1 day or 2 days 3days and so on.
If we choose for range selection with 2 mouse clicks is it not posible to make 1 day reservation bec ause when we make first click on de day
it is oke but when we make the second mouse click on the same day i get a 3 day selection. can you tell me how i can make range selection and even 1 day selection , in the old version it was posible.
Hope to hear from you
already thanks
Rob Migchelsen
Hello,
please make this customizations.
Please open this file: ../booking/inc/js/biz_s.php find this function: function selectDayPro_rangeSelection(all_dates, bk_type){
and replace the content of that function to this code:
function selectDayPro_rangeSelection(all_dates, bk_type){
if(typeof( prepare_tooltip ) == 'function') {setTimeout("prepare_tooltip("+bk_type+");",1000);}
var inst = jQuery.datepick._getInst(document.getElementById('calendar_booking'+bk_type));
var td_class;
if ((is_select_range == 1) || (wpdev_bk_is_dynamic_range_selection == true) ) { // Start range selections checking
var internal_days_select_count = days_select_count;
if ( all_dates.indexOf(' - ') != -1 ){ // Dynamic selections
var start_end_date = all_dates.split(" - ");
var is_dynamic_startdayequal_to_last = true;
if (inst.dates.length>1){
if (is_select_range == 0) { // Dinamic
is_dynamic_startdayequal_to_last = false;
}
}
if ( ( start_end_date[0] == start_end_date[1] ) && (is_dynamic_startdayequal_to_last ===true) ) { // First click at day
if (range_start_day_dynamic != -1) { // Activated some specific week day start range selectiosn
var start_dynamic_date = start_end_date[0].split(".");
var real_start_dynamic_date=new Date();
real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date of click
if (real_start_dynamic_date.getDay() != range_start_day_dynamic) {
real_start_dynamic_date.setDate(real_start_dynamic_date.getDate() - ( real_start_dynamic_date.getDay() - range_start_day_dynamic ) );
all_dates = jQuery.datepick._formatDate(inst, real_start_dynamic_date );
all_dates += ' - ' + all_dates ;
jQuery('#date_booking' + bk_type).val(all_dates); // Fill the input box
// check this day for already booked
var selceted_first_day = new Date;
selceted_first_day.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() + 1) );
i=0;
while( ( i < days_select_count_dynamic ) ) {
i++;
td_class = (selceted_first_day.getMonth()+1) + '-' + selceted_first_day.getDate() + '-' + selceted_first_day.getFullYear();
if ( is_this_day_booked(bk_type, td_class, (i)) ) {
inst.dates=[];
jQuery.datepick._updateDatepick(inst);
return false; // check if day is booked
}
selceted_first_day.setFullYear(selceted_first_day.getFullYear(),(selceted_first_day.getMonth()), (selceted_first_day.getDate() + 1) );
}
// Selection of the day
inst.cursorDate.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() ) );
inst.dates=[inst.cursorDate];
jQuery.datepick._updateDatepick(inst);
}
} else { // Set correct date, if only single date is selected, and possible press send button then.
var start_dynamic_date = start_end_date[0].split(".");
var real_start_dynamic_date=new Date();
real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date of click
inst.cursorDate.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() ) );
inst.dates=[inst.cursorDate];
jQuery.datepick._updateDatepick(inst);
jQuery('#date_booking' + bk_type).val(start_end_date[0]);
}
submit_bk_color = jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color');
if (days_select_count_dynamic>1) {
jQuery('#booking_form_div'+bk_type+' input[type="button"]').attr('disabled', 'disabled'); // Disbale the submit button
jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color', '#aaa');
}
return false;
} else { // Last day click
jQuery('#booking_form_div'+bk_type+' input[type="button"]').removeAttr('disabled'); // Activate the submit button
jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color', submit_bk_color );
var start_dynamic_date = start_end_date[0].split(".");
var real_start_dynamic_date=new Date();
real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date
var end_dynamic_date = start_end_date[1].split(".");
var real_end_dynamic_date=new Date();
real_end_dynamic_date.setFullYear( end_dynamic_date[2], end_dynamic_date[1]-1, end_dynamic_date[0] ); // get date
internal_days_select_count = 1; // need to count how many days right now
var temp_date_for_count = new Date();
for( var j1=0; j1 < 365 ; j1++) {
temp_date_for_count = new Date();
temp_date_for_count.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() + j1) );
if ( (temp_date_for_count.getFullYear() == real_end_dynamic_date.getFullYear()) && (temp_date_for_count.getMonth() == real_end_dynamic_date.getMonth()) && (temp_date_for_count.getDate() == real_end_dynamic_date.getDate()) ) {
internal_days_select_count = j1;
j1=1000;
}
}
internal_days_select_count++;
all_dates = start_end_date[0];
if (internal_days_select_count < days_select_count_dynamic ) internal_days_select_count = days_select_count_dynamic;
var is_backward_direction = false;
if (bk_discreet_days_in_range_slections.length>0) { // check if we set some discreet dates
var is_discreet_ok = false;
while ( is_discreet_ok === false ) {
for (var di = 0; di < bk_discreet_days_in_range_slections.length; di++) { // check if current number of days inside of discreet one
if (
( ( internal_days_select_count % bk_discreet_days_in_range_slections[di] ) == 0 ) &&
(internal_days_select_count <= bk_max_days_in_range_slections) ) {
is_discreet_ok = true;
di = (bk_discreet_days_in_range_slections.length + 1);
}
}
if (is_backward_direction === false)
if ( is_discreet_ok === false )
internal_days_select_count++;
// BackWard directions, if we set more than maximum days
if (internal_days_select_count >= bk_max_days_in_range_slections) is_backward_direction = true;
if (is_backward_direction === true)
if ( is_discreet_ok === false )
internal_days_select_count--;
if (internal_days_select_count < days_select_count_dynamic ) is_discreet_ok = true;
}
} else {
if (internal_days_select_count > bk_max_days_in_range_slections) internal_days_select_count = bk_max_days_in_range_slections;
}
}
} // And Range selections checking
var temp_is_select_range = is_select_range;
is_select_range = 0;
var temp_wpdev_bk_is_dynamic_range_selection = wpdev_bk_is_dynamic_range_selection;
wpdev_bk_is_dynamic_range_selection = false;
inst.dates = []; // Emty dates in datepicker
var all_dates_array;
var date_array;
var date;
var date_to_ins;
// Get array of dates
if ( all_dates.indexOf(',') == -1 ) {all_dates_array = [all_dates];}
else {all_dates_array = all_dates.split(",");}
var original_array = [];
var isMakeSelection = false;
if (! temp_wpdev_bk_is_dynamic_range_selection ) {
// Gathering original (already selected dates) date array
for( var j=0; j < all_dates_array.length ; j++) { //loop array of dates
all_dates_array[j] = all_dates_array[j].replace(/(^\s+)|(\s+$)/g, ""); // trim white spaces in date string
date_array = all_dates_array[j].split("."); // get single date array
date=new Date();
date.setFullYear( date_array[2], date_array[1]-1, date_array[0] ); // get date
if ( (date.getFullYear() == inst.cursorDate.getFullYear()) && (date.getMonth() == inst.cursorDate.getMonth()) && (date.getDate() == inst.cursorDate.getDate()) ) {
isMakeSelection = true;
if (range_start_day != -1) {
if (inst.cursorDate.getDay() != range_start_day) {
inst.cursorDate.setDate(inst.cursorDate.getDate() - ( inst.cursorDate.getDay() - range_start_day ) );
}
}
}
//original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, date, null)) ); //add date
}
} else {
// dynamic range selection
isMakeSelection = true;
}
var isEmptySelection = false;
if (isMakeSelection) {
var date_start_range = inst.cursorDate;
if (! temp_wpdev_bk_is_dynamic_range_selection ) {
original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, inst.cursorDate , null)) ); //add date
} else {
original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, real_start_dynamic_date , null)) ); //set 1st date from dynamic range
date_start_range = real_start_dynamic_date;
}
var dates_array = [];
var range_array = [];
var td;
// Add dates to the range array
for( var i=1; i < internal_days_select_count ; i++) {
dates_array[i] = new Date();
// dates_array[i].setDate( (date_start_range.getDate() + i) );
dates_array[i].setFullYear(date_start_range.getFullYear(),(date_start_range.getMonth()), (date_start_range.getDate() + i) );
td_class = (dates_array[i].getMonth()+1) + '-' + dates_array[i].getDate() + '-' + dates_array[i].getFullYear();
td = '#calendar_booking'+bk_type+' .cal4date-' + td_class;
if (jQuery(td).hasClass('datepick-unselectable') ){ // If we find some unselect option so then make no selection at all in this range
isEmptySelection = true;
}
//Check if in selection range are reserved days, if so then do not make selection
if ( is_this_day_booked(bk_type, td_class, i) ) isEmptySelection = true;
/////////////////////////////////////////////////////////////////////////////////////
date_to_ins = jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, dates_array[i], null));
range_array.push( date_to_ins );
}
// check if some dates are the same in the arrays so the remove them from both
for( i=0; i < range_array.length ; i++) {
for( j=0; j < original_array.length ; j++) { //loop array of dates
if ( (original_array[j] != -1) && (range_array[i] != -1) )
if ( (range_array[i].getFullYear() == original_array[j].getFullYear()) && (range_array[i].getMonth() == original_array[j].getMonth()) && (range_array[i].getDate() == original_array[j].getDate()) ) {
range_array[i] = -1;
original_array[j] = -1;
}
}
}
// Add to the dates array
for( j=0; j < original_array.length ; j++) { //loop array of dates
if (original_array[j] != -1) inst.dates.push(original_array[j]);
}
for( i=0; i < range_array.length ; i++) {
if (range_array[i] != -1) inst.dates.push(range_array[i]);
}
}
if (! isEmptySelection) isEmptySelection = checkIfSomeDaysUnavailable(inst.dates, bk_type);
if (isEmptySelection) inst.dates=[];
//jQuery.datepick._setDate(inst, dates_array);
if (! temp_wpdev_bk_is_dynamic_range_selection ) {
jQuery.datepick._updateInput('#calendar_booking'+bk_type);
} else {
if (isEmptySelection) jQuery.datepick._updateInput('#calendar_booking'+bk_type);
else { // Dynamic range selections, transform days from jQuery.datepick
dateStr = (inst.dates.length == 0 ? '' : jQuery.datepick._formatDate(inst, inst.dates[0])); // Get first date
for ( i = 1; i < inst.dates.length; i++)
dateStr += jQuery.datepick._get(inst, 'multiSeparator') + jQuery.datepick._formatDate(inst, inst.dates[i]); // Gathering all dates
jQuery('#date_booking' + bk_type).val(dateStr); // Fill the input box
}
}
jQuery.datepick._notifyChange(inst);
jQuery.datepick._adjustInstDate(inst);
jQuery.datepick._showDate(inst);
//jQuery.datepick._updateDatepick(inst);
wpdev_bk_is_dynamic_range_selection = temp_wpdev_bk_is_dynamic_range_selection;
is_select_range =temp_is_select_range;
} else { // HERE WE WILL DISABLE ALL OPTIONS IN RANGE TIME INTERVALS FOR SINGLE DAYS SELECTIONS FOR THAT DAYS WHERE HOURS ALREADY BOOKED
//here is not range selections
if (multiple_day_selections == 0){ // Only single day selections here
//alert(all_dates); alert( bk_type);
var current_single_day_selections = all_dates.split('.');
td_class = (current_single_day_selections[1]*1) + '-' + (current_single_day_selections[0]*1) + '-' + (current_single_day_selections[2]*1);
var times_array = [];
jQuery('select[name="rangetime' + bk_type + '"] option:disabled').removeAttr('disabled'); // Make active all times
if ( jQuery('select[name="rangetime' + bk_type + '"]').length == 0 ) return; // WE DO NOT HAVE RANGE SELECTIONS AT THIS FORM SO JUST RETURN
var range_time_object = jQuery('select[name="rangetime' + bk_type + '"] option:first' ) ;
if (range_time_object == undefined) return; // WE DO NOT HAVE RANGE SELECTIONS AT THIS FORM SO JUST RETURN
// Get dates and time from aproved dates
if(typeof(date_approved[ bk_type ]) !== 'undefined')
if(typeof(date_approved[ bk_type ][ td_class ]) !== 'undefined') {
if( ( date_approved[ bk_type ][ td_class ][0][3] != 0) || ( date_approved[ bk_type ][ td_class ][0][4] != 0) ) {
for ( i=0; i< date_approved[ bk_type ][ td_class ].length; i++){
h = date_approved[ bk_type ][ td_class ][i][3];if (h < 10) h = '0' + h;if (h == 0) h = '00';
m = date_approved[ bk_type ][ td_class ][i][4];if (m < 10) m = '0' + m;if (m == 0) m = '00';
s = date_approved[ bk_type ][ td_class ][i][5];if (s == 2) s = '02';
times_array[ times_array.length ] = [h,m,s];
}
}
}
// Get dates and time from pending dates
if(typeof( date2approve[ bk_type ]) !== 'undefined')
if(typeof( date2approve[ bk_type ][ td_class ]) !== 'undefined')
if( ( date2approve[ bk_type ][ td_class ][0][3] != 0) || ( date2approve[ bk_type ][ td_class ][0][4] != 0) ) //check for time here
{for ( i=0; i< date2approve[ bk_type ][ td_class ].length; i++){
h = date2approve[ bk_type ][ td_class ][i][3];if (h < 10) h = '0' + h;if (h == 0) h = '00';
m = date2approve[ bk_type ][ td_class ][i][4];if (m < 10) m = '0' + m;if (m == 0) m = '00';
s = date2approve[ bk_type ][ td_class ][i][5];if (s == 2) s = '02';
times_array[ times_array.length ] = [h,m,s];
}
}
/**/
var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array );
var my_time_value = jQuery('select[name="rangetime' + bk_type + '"] option');
for ( j=0; j< my_time_value.length; j++){
if ( wpdev_in_array( removed_time_slots, j ) ) {
jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').attr('disabled', 'disabled'); // Make disable some options
if( jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').attr('selected') ){ // iF THIS ELEMENT IS SELECTED SO REMOVE IT FROM THIS TIME
jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').removeAttr('selected');
if (IEversion_4_bk == 7) { // Emulate disabling option in selectboxes for IE7 - its set selected option, which is not disabled
set_selected_first_not_disabled_option_IE7(document.getElementsByName("rangetime" + bk_type )[0] );
}
}
}
}
if (IEversion_4_bk == 7) { // Emulate disabling option in selectboxes for IE7 - its set grayed text options, which is disabled
emulate_disabled_options_to_gray_IE7( document.getElementsByName("rangetime" + bk_type )[0] );
}
}
}
}
Hello i am glad that the problem is solft.
But now i have a other question. I like to book different resourses in 1 booking but whit different count of users.
e.a. 2 X bike
4X mountainbike
3X moped
But it's not possible to have the different parameters for the different booking resources in that case (visitors selection). In this case you are need to use 2 separate booking forms.
Hi !
I purchased 9.Business.Medium.SingleSite.4.0.1 and I need to add a sample field in my booking form to ask the credit card number. It's just a sample field. But I don't know what I need to do ? Can you help me please.
Regards,
F²
Hello.
Unfortunately the booking calendar do not support the direct credit card payments or saving such info.
You can activate one of the exist payment systems
at the Settings Payment page and use payment through the
PayPal, Sage pay or iPay88.
In a future versions updates will be added new payment systems integrations.
Ok...but if I activate them, the customer will pay online and it isn't my goal..But It's possible to add a new field if I developed a little, no ? or it's very hard ?
Hello,
Its not possible, because its not secure way ( you are need to have the SSL certificates for the site and other items like "visa verified" and so on.
So the direct payment through the credit card or saving this info are not supported by Booking Calendar and we are really do not recommend todo in this way.
This integrations have to be done only through the payment systems.
Hi,
Quick question about redirecting to "thank you" page instead of showing "thank you" message. Here's what I would like to happen:
A person chooses the days they want to reserve on the calendar (and sees how much it's going to cost with the "Total Cost" field just below the calendar)
They fill in the form below the calendar and hit "Submit" button.
They are redirected to a "Thank You" page that says, basically, thanks for booking, we'll send you an email with payment instructions.
In other words, I want a person to be able to book my product and see how much it's going to cost without paying right away. Then I will send them an email with a link to the payment page. Is this possible? I have chosen "redirect visitor to a new 'thank you' page'" on the general Settings page, and I have created a "thank you" page in WP, but it doesn't work.
I'm using 9.Business.Medium.SingleSite.4.0.1 and the Esplanade theme on the most current version of WP.
Thanks for your help. I tried searching for this problem in the forum but couldn't find anyone with this exact question.
Best,
Jody
Hello.
Yes its possible.
You are need to disable at the Booking > Settings > Payment page all exist payment systems. Then at the General Booking Settings page set the redirection to the "Thank you" page and enter the correct URL of the "Thank you" page.
Later you can use the "Payment request" button at the right side near each booking at the Booking Listing admin page, for sending the payment request by email. You are need to configure and activate the "Payment request email" at the Booking > Settings > Emails page.
Also you are need to make correctly this configurations: https://wpbookingcalendar.com/faq/configure-editing-cancel-payment-bookings-for-visitors/
Awesome - that took care of it. Thanks a lot! Launching a small business soon and it looks like your booking calendar is exactly what we were looking for.
I'm interested in using a booking calendar for tennis coaching.
30 minute slots for different instructors and users will prepay.
Is this possible and in what version?
Hello.
At the Booking Calendar Business Small and Business Medium versions are possible to make the bookings for the specific time slot.
Please read the Booking Calendar version overview here: https://wpbookingcalendar.com/help/versions-overview/
Please note, if you will use the fixed time slot list selection (and not the time entering using the text fields) in the booking form, the time slot list will be the same for the any date of week, in other words the fixed time slot list is not depend from the week of day. Also if some visitor will reserve the specific time slot at selected date at specific booking resource (calendar), this timeslot become unavailable for the other visitors at this selected date in this booking resource.
Please read more abut the configurations of the time shortcodes here: https://wpbookingcalendar.com/help/booking-form-fields/
Its seems that you are need to create the specific booking resource for the each of your instructors , and then insert the booking form for this instructor into the specific post or page.
If you are need possibility that each of your instructors have own booking admin panel, and can see only own bookings and do not see the bookings from the other instructors. So in this case you are need to check the Booking Calendar MultiUser version. At this version each registered WordPress user (instructor) of your site can have independent, individual, own booking admin panel. It’s mean that each regular registered WordPress user can see only OWN booking resources and bookings and can configure the own booking form fields and email templates, own payment form integration data and costs of booking resources as some other settings…
You can test Booking Calendar live demos at this page https://wpbookingcalendar.com/demo/ to be sure in functionality and do not have misunderstanding.
Hi,
I notice that when 'Send email notification to customer about this operation' is unticked within 'Add Booking', emails are still sent out.
Not sure if this is a bug or not - can you help?
Thanks,
Adam.
Hello,
sorry for that, for fixing this issue, please open this file ../booking/js/wpdev.bk.js
find this code:
var is_send_emeils= jQuery('#is_send_email_for_new_booking').attr('checked' ); if (is_send_emeils == undefined) {is_send_emeils =1 ;} if (is_send_emeils) is_send_emeils = 1; else is_send_emeils = 0;
and replace it to this code:
var is_send_emeils= jQuery('#is_send_email_for_new_booking') if (is_send_emeils.length == 0 ) { is_send_emeils = 1; } else { is_send_emeils = is_send_emeils.attr('checked' ); if (is_send_emeils == undefined) {is_send_emeils = 0 ;} if (is_send_emeils) is_send_emeils = 1; else is_send_emeils = 0; }
This fix will be exist in the future updates.
Hello,
I plan to buy WP Booking Calendar (MULTIUSER). If in the future I will need to connect an additional payment system (eg https://www.payment-network.com/deb_com_en), it will be possible to implement it? It will be possible to ask you to do this, of course for a fee?
Hello,
unfortunately, that payment system is not supported yet in the actual version of the Booking Calendar. But I will add it to todo list for the future updates.
Also, right now we are do not make the personal customizations or starting new personal projects, because we are have a long todo list for the future updates and almost have no free time. thank you for understanding.
If you are still want to make the integrations of that payment system by yourself, you can look, how is integrated exist payment systems and make new integrations in the similar way. Please note, if you will modify the source code of the Booking Calendar, we will not guaranteed the correct work of plugin and do not support it.
When I try to insert the calender in my page there is no pop up window for cnfiguration. What to do?
I use wp 3.4.2 and a templet for my website.
Hello.
If you will have any problems with booking button at edit toolbar for inserting shortcode, probably you are in HTML content edit mode, please turn to the visual view mode your edit toolbar and recheck if the booking button will appear there.
If you are still will have an issue, please recheck your page for any Java script errors or some plugins, which are override the edit toolbar. Then try to fix or deactivate those plugins.
Try to deactivate one by one your active plugins for checking if it's fix issue or not, for searching the reason of that issue.
If its not help try to deactivate your actual theme and activate default one.
Then test it again.
I am running Version 9.Premium.Plus.SingleSite.3.0of your potentially excellent plugin. Our situation is that we are a small community centre with a single room and a playing field resource to book out as resources. What I have been unable to decipher is the best approach to giving access to members at a discounted rate. We tend to charge an hourly rate and give discounts to memmbers as well as an extra discount to bulk regular users. I have been unable to clarify in my mind the way to match this up with your explanations. I selected this version of the plugin because it appeared to give the option of doing that, but after 3 attempts to understand your explanations I am no clearer. Sorry - I'm just being a bit dense I think. Could you please give me a hint of how to approach this structure.
Normal ad hoc bookings are charged at £10 per hour. for both facilities
If the booker pays a simple £1 p.a. or a (£10 life membership) fee we give them access to a £9 per hour discounted rate.
For all bookings we ask for a £10 deposit and have sussed out how to add that to the Paypal payment system.
For our heaviest users the rate comes down to £4.50 per hour.
Our customers are not yet used to paying via Paypal and in reality most payments are entered via the backend of the plugin.
The website address is https://stanwixcommunitycentre.org.uk and there is a bookings item in the main navigation menu that accesses a page with a tab for the community centre and a tab for the playing field. and their separate calendars.
Any enlightenment would be appreciated.
Hello.
I can suggest next solutions for your cost calculation of the bookings.
Because you are have the different rates for the different types of the users, probably you are need to have the several booking forms (with claendar for the same resource) in the different posts or pages. So in this case, you can define the several different custom form fields customizations at the Booking > Settings > Fields page. You are need to have in the each of your field some hided selectbox or checkbox, like this:
<div style="display:none;"> [select my_discount "option1"] </div>
and then at the Advanced cost management page (at the version 3.0 its at the Booking Settings Payment page, at the version 4.0 or newer at the Booking > Resources > Advanced cost page) set the "additional cost" as a discount for the while bookings, something like this:
option1 = 98%
So its will mean that the visitor will pay the 98% from the final regular cost of the booking (just need to calculate the correct percentages for the each type of users in different forms).
Hope its will help you.
Hello, I have a question about the time of reservations.
I have the Small Bussines Version and I have seen that I can choose hours in a day, but only allows me one reservation per day,
and need to know if is possible to make reservations of several different customers on the same day at different times.
For the service I offer I receive several clients in the same day in different hours.
Is possible to configure it?
Thank you!
🙂
Hello.
Yes, sure it's possible to make the bookings at the same date but for different time in that day in the Business Small/medium versions. Please check how to configure correctly the times shortcodes here: https://wpbookingcalendar.com/help/booking-form-fields/
Thank you, works great. 🙂
Just one last question:
fill the email box is always mandatory?
It is possible that the mailbox is not mandatory?
It does not work without it.
Thank you!
Hello.
Sorry, but the emails are always mandatory fields, because its often using for the internal actions of the system.
Hey!
First off I want to say this is by far the most impressive booking plugin out there for WordPress.
I'm current working for a company that wants takes care of field reservations for soccer players, and I have a few questions if there are features available in the plugin.
Depending on the team that is playing, there are different fields that are available to them (younger players have smaller fields while the older ones play on normal ones). Is there a way for the customer to first select the team they are part of and to then only show a certain number of fields based off of that?
Currently when a reservation is made, there are multiple tags associated with each item. Is it possible to remove a tag from being used?
Lastly, a small bug. When you click on the "Actual dates" drop down in the Advanced Filter under Actions, the drop down appears but there is no way to make it disappear.
Thank you for your time!
Hello.
1) Probably you are need to have the several reservations for the specific field at the selected date, until the number of players will complete the team. Its possible at the Booking Calendar Business Large version. At this version is possible to set the capacity of the booking resource, it’s mean that your visitors can make the several reservations per the same date, in other words, the date(s) in calendar will be available until lumber of reservations per these full dates is less than capacity of the booking resource. Please note, if you will use the timeslot selection for the booking resource with capacity higher than one, so then this timeslot will be simply record as a data into DB according this booking, but will not impact to the time availability.
Please read more info about the booking resources and how to configure them here https://wpbookingcalendar.com/help/booking-resource/
But please note you will need to create the booking resources with specific capacity for the each of your fields, so in this case your visitors will need to selct the page with specific booking resource (soccer field), and not the selection of the type of player. You can define somehow where is placed the booking forms for the one and other types of the players in your structure of the site, but not in the booking calendar. Sorry.
You can test Booking Calendar live demos at this page https://wpbookingcalendar.com/demo/ to be sure in functionality and do not have misunderstanding.
2) I am not sure what you are mean by tags, but if you are mean possibility to edit the text fields in the booking form, so then its possible at the Booking > Settings > Fields page.
3) Its dialog is closed, when you are press at the "Apply" or "Close" button. If the issues is still exist, after you are pressed at those buttons, probably you are have at the page some javascript errors, which can generated by some other plugin or actual theme. You are need to fix them.
Try to deactivate one by one your active plugins for checking if it's fix issue or not, for searching the reason of that issue.
If its not help try to deactivate your actual theme and activate default one.
Then test it again.
Hello
I use your latest version 4.01 large busines and have the following problem.
we rent bicycle's voor diferent days. the term can by 1 day or 2 days 3days and so on.
If we choose for range selection with 2 mouse clicks is it not posible to make 1 day reservation bec ause when we make first click on de day
it is oke but when we make the second mouse click on the same day i get a 3 day selection. can you tell me how i can make range selection and even 1 day selection , in the old version it was posible.
Hope to hear from you
already thanks
Rob Migchelsen
Hello,
please make this customizations.
Please open this file: ../booking/inc/js/biz_s.php find this function:
function selectDayPro_rangeSelection(all_dates, bk_type){
and replace the content of that function to this code:
function selectDayPro_rangeSelection(all_dates, bk_type){ if(typeof( prepare_tooltip ) == 'function') {setTimeout("prepare_tooltip("+bk_type+");",1000);} var inst = jQuery.datepick._getInst(document.getElementById('calendar_booking'+bk_type)); var td_class; if ((is_select_range == 1) || (wpdev_bk_is_dynamic_range_selection == true) ) { // Start range selections checking var internal_days_select_count = days_select_count; if ( all_dates.indexOf(' - ') != -1 ){ // Dynamic selections var start_end_date = all_dates.split(" - "); var is_dynamic_startdayequal_to_last = true; if (inst.dates.length>1){ if (is_select_range == 0) { // Dinamic is_dynamic_startdayequal_to_last = false; } } if ( ( start_end_date[0] == start_end_date[1] ) && (is_dynamic_startdayequal_to_last ===true) ) { // First click at day if (range_start_day_dynamic != -1) { // Activated some specific week day start range selectiosn var start_dynamic_date = start_end_date[0].split("."); var real_start_dynamic_date=new Date(); real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date of click if (real_start_dynamic_date.getDay() != range_start_day_dynamic) { real_start_dynamic_date.setDate(real_start_dynamic_date.getDate() - ( real_start_dynamic_date.getDay() - range_start_day_dynamic ) ); all_dates = jQuery.datepick._formatDate(inst, real_start_dynamic_date ); all_dates += ' - ' + all_dates ; jQuery('#date_booking' + bk_type).val(all_dates); // Fill the input box // check this day for already booked var selceted_first_day = new Date; selceted_first_day.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() + 1) ); i=0; while( ( i < days_select_count_dynamic ) ) { i++; td_class = (selceted_first_day.getMonth()+1) + '-' + selceted_first_day.getDate() + '-' + selceted_first_day.getFullYear(); if ( is_this_day_booked(bk_type, td_class, (i)) ) { inst.dates=[]; jQuery.datepick._updateDatepick(inst); return false; // check if day is booked } selceted_first_day.setFullYear(selceted_first_day.getFullYear(),(selceted_first_day.getMonth()), (selceted_first_day.getDate() + 1) ); } // Selection of the day inst.cursorDate.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() ) ); inst.dates=[inst.cursorDate]; jQuery.datepick._updateDatepick(inst); } } else { // Set correct date, if only single date is selected, and possible press send button then. var start_dynamic_date = start_end_date[0].split("."); var real_start_dynamic_date=new Date(); real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date of click inst.cursorDate.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() ) ); inst.dates=[inst.cursorDate]; jQuery.datepick._updateDatepick(inst); jQuery('#date_booking' + bk_type).val(start_end_date[0]); } submit_bk_color = jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color'); if (days_select_count_dynamic>1) { jQuery('#booking_form_div'+bk_type+' input[type="button"]').attr('disabled', 'disabled'); // Disbale the submit button jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color', '#aaa'); } return false; } else { // Last day click jQuery('#booking_form_div'+bk_type+' input[type="button"]').removeAttr('disabled'); // Activate the submit button jQuery('#booking_form_div'+bk_type+' input[type="button"]').css('color', submit_bk_color ); var start_dynamic_date = start_end_date[0].split("."); var real_start_dynamic_date=new Date(); real_start_dynamic_date.setFullYear( start_dynamic_date[2], start_dynamic_date[1]-1, start_dynamic_date[0] ); // get date var end_dynamic_date = start_end_date[1].split("."); var real_end_dynamic_date=new Date(); real_end_dynamic_date.setFullYear( end_dynamic_date[2], end_dynamic_date[1]-1, end_dynamic_date[0] ); // get date internal_days_select_count = 1; // need to count how many days right now var temp_date_for_count = new Date(); for( var j1=0; j1 < 365 ; j1++) { temp_date_for_count = new Date(); temp_date_for_count.setFullYear(real_start_dynamic_date.getFullYear(),(real_start_dynamic_date.getMonth()), (real_start_dynamic_date.getDate() + j1) ); if ( (temp_date_for_count.getFullYear() == real_end_dynamic_date.getFullYear()) && (temp_date_for_count.getMonth() == real_end_dynamic_date.getMonth()) && (temp_date_for_count.getDate() == real_end_dynamic_date.getDate()) ) { internal_days_select_count = j1; j1=1000; } } internal_days_select_count++; all_dates = start_end_date[0]; if (internal_days_select_count < days_select_count_dynamic ) internal_days_select_count = days_select_count_dynamic; var is_backward_direction = false; if (bk_discreet_days_in_range_slections.length>0) { // check if we set some discreet dates var is_discreet_ok = false; while ( is_discreet_ok === false ) { for (var di = 0; di < bk_discreet_days_in_range_slections.length; di++) { // check if current number of days inside of discreet one if ( ( ( internal_days_select_count % bk_discreet_days_in_range_slections[di] ) == 0 ) && (internal_days_select_count <= bk_max_days_in_range_slections) ) { is_discreet_ok = true; di = (bk_discreet_days_in_range_slections.length + 1); } } if (is_backward_direction === false) if ( is_discreet_ok === false ) internal_days_select_count++; // BackWard directions, if we set more than maximum days if (internal_days_select_count >= bk_max_days_in_range_slections) is_backward_direction = true; if (is_backward_direction === true) if ( is_discreet_ok === false ) internal_days_select_count--; if (internal_days_select_count < days_select_count_dynamic ) is_discreet_ok = true; } } else { if (internal_days_select_count > bk_max_days_in_range_slections) internal_days_select_count = bk_max_days_in_range_slections; } } } // And Range selections checking var temp_is_select_range = is_select_range; is_select_range = 0; var temp_wpdev_bk_is_dynamic_range_selection = wpdev_bk_is_dynamic_range_selection; wpdev_bk_is_dynamic_range_selection = false; inst.dates = []; // Emty dates in datepicker var all_dates_array; var date_array; var date; var date_to_ins; // Get array of dates if ( all_dates.indexOf(',') == -1 ) {all_dates_array = [all_dates];} else {all_dates_array = all_dates.split(",");} var original_array = []; var isMakeSelection = false; if (! temp_wpdev_bk_is_dynamic_range_selection ) { // Gathering original (already selected dates) date array for( var j=0; j < all_dates_array.length ; j++) { //loop array of dates all_dates_array[j] = all_dates_array[j].replace(/(^\s+)|(\s+$)/g, ""); // trim white spaces in date string date_array = all_dates_array[j].split("."); // get single date array date=new Date(); date.setFullYear( date_array[2], date_array[1]-1, date_array[0] ); // get date if ( (date.getFullYear() == inst.cursorDate.getFullYear()) && (date.getMonth() == inst.cursorDate.getMonth()) && (date.getDate() == inst.cursorDate.getDate()) ) { isMakeSelection = true; if (range_start_day != -1) { if (inst.cursorDate.getDay() != range_start_day) { inst.cursorDate.setDate(inst.cursorDate.getDate() - ( inst.cursorDate.getDay() - range_start_day ) ); } } } //original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, date, null)) ); //add date } } else { // dynamic range selection isMakeSelection = true; } var isEmptySelection = false; if (isMakeSelection) { var date_start_range = inst.cursorDate; if (! temp_wpdev_bk_is_dynamic_range_selection ) { original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, inst.cursorDate , null)) ); //add date } else { original_array.push( jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, real_start_dynamic_date , null)) ); //set 1st date from dynamic range date_start_range = real_start_dynamic_date; } var dates_array = []; var range_array = []; var td; // Add dates to the range array for( var i=1; i < internal_days_select_count ; i++) { dates_array[i] = new Date(); // dates_array[i].setDate( (date_start_range.getDate() + i) ); dates_array[i].setFullYear(date_start_range.getFullYear(),(date_start_range.getMonth()), (date_start_range.getDate() + i) ); td_class = (dates_array[i].getMonth()+1) + '-' + dates_array[i].getDate() + '-' + dates_array[i].getFullYear(); td = '#calendar_booking'+bk_type+' .cal4date-' + td_class; if (jQuery(td).hasClass('datepick-unselectable') ){ // If we find some unselect option so then make no selection at all in this range isEmptySelection = true; } //Check if in selection range are reserved days, if so then do not make selection if ( is_this_day_booked(bk_type, td_class, i) ) isEmptySelection = true; ///////////////////////////////////////////////////////////////////////////////////// date_to_ins = jQuery.datepick._restrictMinMax(inst, jQuery.datepick._determineDate(inst, dates_array[i], null)); range_array.push( date_to_ins ); } // check if some dates are the same in the arrays so the remove them from both for( i=0; i < range_array.length ; i++) { for( j=0; j < original_array.length ; j++) { //loop array of dates if ( (original_array[j] != -1) && (range_array[i] != -1) ) if ( (range_array[i].getFullYear() == original_array[j].getFullYear()) && (range_array[i].getMonth() == original_array[j].getMonth()) && (range_array[i].getDate() == original_array[j].getDate()) ) { range_array[i] = -1; original_array[j] = -1; } } } // Add to the dates array for( j=0; j < original_array.length ; j++) { //loop array of dates if (original_array[j] != -1) inst.dates.push(original_array[j]); } for( i=0; i < range_array.length ; i++) { if (range_array[i] != -1) inst.dates.push(range_array[i]); } } if (! isEmptySelection) isEmptySelection = checkIfSomeDaysUnavailable(inst.dates, bk_type); if (isEmptySelection) inst.dates=[]; //jQuery.datepick._setDate(inst, dates_array); if (! temp_wpdev_bk_is_dynamic_range_selection ) { jQuery.datepick._updateInput('#calendar_booking'+bk_type); } else { if (isEmptySelection) jQuery.datepick._updateInput('#calendar_booking'+bk_type); else { // Dynamic range selections, transform days from jQuery.datepick dateStr = (inst.dates.length == 0 ? '' : jQuery.datepick._formatDate(inst, inst.dates[0])); // Get first date for ( i = 1; i < inst.dates.length; i++) dateStr += jQuery.datepick._get(inst, 'multiSeparator') + jQuery.datepick._formatDate(inst, inst.dates[i]); // Gathering all dates jQuery('#date_booking' + bk_type).val(dateStr); // Fill the input box } } jQuery.datepick._notifyChange(inst); jQuery.datepick._adjustInstDate(inst); jQuery.datepick._showDate(inst); //jQuery.datepick._updateDatepick(inst); wpdev_bk_is_dynamic_range_selection = temp_wpdev_bk_is_dynamic_range_selection; is_select_range =temp_is_select_range; } else { // HERE WE WILL DISABLE ALL OPTIONS IN RANGE TIME INTERVALS FOR SINGLE DAYS SELECTIONS FOR THAT DAYS WHERE HOURS ALREADY BOOKED //here is not range selections if (multiple_day_selections == 0){ // Only single day selections here //alert(all_dates); alert( bk_type); var current_single_day_selections = all_dates.split('.'); td_class = (current_single_day_selections[1]*1) + '-' + (current_single_day_selections[0]*1) + '-' + (current_single_day_selections[2]*1); var times_array = []; jQuery('select[name="rangetime' + bk_type + '"] option:disabled').removeAttr('disabled'); // Make active all times if ( jQuery('select[name="rangetime' + bk_type + '"]').length == 0 ) return; // WE DO NOT HAVE RANGE SELECTIONS AT THIS FORM SO JUST RETURN var range_time_object = jQuery('select[name="rangetime' + bk_type + '"] option:first' ) ; if (range_time_object == undefined) return; // WE DO NOT HAVE RANGE SELECTIONS AT THIS FORM SO JUST RETURN // Get dates and time from aproved dates if(typeof(date_approved[ bk_type ]) !== 'undefined') if(typeof(date_approved[ bk_type ][ td_class ]) !== 'undefined') { if( ( date_approved[ bk_type ][ td_class ][0][3] != 0) || ( date_approved[ bk_type ][ td_class ][0][4] != 0) ) { for ( i=0; i< date_approved[ bk_type ][ td_class ].length; i++){ h = date_approved[ bk_type ][ td_class ][i][3];if (h < 10) h = '0' + h;if (h == 0) h = '00'; m = date_approved[ bk_type ][ td_class ][i][4];if (m < 10) m = '0' + m;if (m == 0) m = '00'; s = date_approved[ bk_type ][ td_class ][i][5];if (s == 2) s = '02'; times_array[ times_array.length ] = [h,m,s]; } } } // Get dates and time from pending dates if(typeof( date2approve[ bk_type ]) !== 'undefined') if(typeof( date2approve[ bk_type ][ td_class ]) !== 'undefined') if( ( date2approve[ bk_type ][ td_class ][0][3] != 0) || ( date2approve[ bk_type ][ td_class ][0][4] != 0) ) //check for time here {for ( i=0; i< date2approve[ bk_type ][ td_class ].length; i++){ h = date2approve[ bk_type ][ td_class ][i][3];if (h < 10) h = '0' + h;if (h == 0) h = '00'; m = date2approve[ bk_type ][ td_class ][i][4];if (m < 10) m = '0' + m;if (m == 0) m = '00'; s = date2approve[ bk_type ][ td_class ][i][5];if (s == 2) s = '02'; times_array[ times_array.length ] = [h,m,s]; } } /**/ var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array ); var my_time_value = jQuery('select[name="rangetime' + bk_type + '"] option'); for ( j=0; j< my_time_value.length; j++){ if ( wpdev_in_array( removed_time_slots, j ) ) { jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').attr('disabled', 'disabled'); // Make disable some options if( jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').attr('selected') ){ // iF THIS ELEMENT IS SELECTED SO REMOVE IT FROM THIS TIME jQuery('select[name="rangetime' + bk_type + '"] option:eq('+j+')').removeAttr('selected'); if (IEversion_4_bk == 7) { // Emulate disabling option in selectboxes for IE7 - its set selected option, which is not disabled set_selected_first_not_disabled_option_IE7(document.getElementsByName("rangetime" + bk_type )[0] ); } } } } if (IEversion_4_bk == 7) { // Emulate disabling option in selectboxes for IE7 - its set grayed text options, which is disabled emulate_disabled_options_to_gray_IE7( document.getElementsByName("rangetime" + bk_type )[0] ); } } } }
Hello i am glad that the problem is solft.
But now i have a other question. I like to book different resourses in 1 booking but whit different count of users.
e.a. 2 X bike
4X mountainbike
3X moped
thanks already
Rob Migchelsen
Hello.
It's possible to make booking of several booking resources for the one booking process, relative to this instruction: https://wpbookingcalendar.com/faq/booking-many-different-items-via-one-booking-form/
But it's not possible to have the different parameters for the different booking resources in that case (visitors selection). In this case you are need to use 2 separate booking forms.
Hi !
I purchased 9.Business.Medium.SingleSite.4.0.1 and I need to add a sample field in my booking form to ask the credit card number. It's just a sample field. But I don't know what I need to do ? Can you help me please.
Regards,
F²
Hello.
Unfortunately the booking calendar do not support the direct credit card payments or saving such info.
You can activate one of the exist payment systems
at the Settings Payment page and use payment through the
PayPal, Sage pay or iPay88.
In a future versions updates will be added new payment systems integrations.
Ok...but if I activate them, the customer will pay online and it isn't my goal..But It's possible to add a new field if I developed a little, no ? or it's very hard ?
Hello,
Its not possible, because its not secure way ( you are need to have the SSL certificates for the site and other items like "visa verified" and so on.
So the direct payment through the credit card or saving this info are not supported by Booking Calendar and we are really do not recommend todo in this way.
This integrations have to be done only through the payment systems.
Hi,
Quick question about redirecting to "thank you" page instead of showing "thank you" message. Here's what I would like to happen:
A person chooses the days they want to reserve on the calendar (and sees how much it's going to cost with the "Total Cost" field just below the calendar)
They fill in the form below the calendar and hit "Submit" button.
They are redirected to a "Thank You" page that says, basically, thanks for booking, we'll send you an email with payment instructions.
In other words, I want a person to be able to book my product and see how much it's going to cost without paying right away. Then I will send them an email with a link to the payment page. Is this possible? I have chosen "redirect visitor to a new 'thank you' page'" on the general Settings page, and I have created a "thank you" page in WP, but it doesn't work.
I'm using 9.Business.Medium.SingleSite.4.0.1 and the Esplanade theme on the most current version of WP.
Thanks for your help. I tried searching for this problem in the forum but couldn't find anyone with this exact question.
Best,
Jody
Hello.
Yes its possible.
You are need to disable at the Booking > Settings > Payment page all exist payment systems. Then at the General Booking Settings page set the redirection to the "Thank you" page and enter the correct URL of the "Thank you" page.
Later you can use the "Payment request" button at the right side near each booking at the Booking Listing admin page, for sending the payment request by email. You are need to configure and activate the "Payment request email" at the Booking > Settings > Emails page.
Also you are need to make correctly this configurations: https://wpbookingcalendar.com/faq/configure-editing-cancel-payment-bookings-for-visitors/
Awesome - that took care of it. Thanks a lot! Launching a small business soon and it looks like your booking calendar is exactly what we were looking for.