woocommerce / woocommerce-accommodation-bookings

An accommodations add-on for the WooCommerce Bookings extension.
91 stars 31 forks source link

Dates with check in/out not showing as partially booked. #76

Closed jessepearson closed 7 years ago

jessepearson commented 8 years ago

Issue reported in 469574-zd-woothemes. Days that have a booked check in or check out should show partially booked in some fashion. Additionally, you are not able to start a new booking on a date that currently has a check out booked.

I believe that if a day only has check in or check out available, the note should state this. It would help clarify what's going on. (that's the enhancement part)

Steps to reproduce the issue

Create a product with the min number of nights set to 1: screen shot on 2016-09-19 at 12-44-30

And number of available rooms set to 1: screen shot on 2016-09-19 at 12-46-04

Then create a booking, or two. I created two, one that is one night (9/21-9/22) and one that is two nights (9/28-9/30): screen shot on 2016-09-19 at 12-48-01

The 21st, 22nd, 28th and 30th should show partially booked, but do not. You can end a booking on the 21st and 28th, which is correct. You cannot start a booking on the 22nd or 30th, but should be able to.

screen capture on 2016-09-19 at 12-50-21


jessepearson commented 8 years ago

May be related: https://github.com/woothemes/woocommerce-bookings/issues/771

WillBrubaker commented 8 years ago

similar in ticket: 471707-zd-woothemes

kristinaplauche commented 8 years ago

Summarizing the problem(s).

phpmypython commented 8 years ago

So i have done some substantial digging into this and what I have found is that when you click a date in the date picker and it fires to admin_ajax it will eventually call to get_posted_data inside of the file class-wc-booking-form.php and inside of this method on line 471 you can see the conditional that checks for the night booking duration. However the call to strtotime() inside of here does not pull in the time that is set in the accommodations plugin it only selects midnight. It looks like this

else if ( 'night' === $this->product->get_duration_unit() ) {
            $data['_start_date'] = strtotime( "{$data['_year']}-{$data['_month']}-{$data['_day']}" );
            $data['_end_date']   = strtotime( "+{$total_duration} day", $data['_start_date'] );
            $data['_all_day']    = 0;
        }

if i instead do this

else if ( 'night' === $this->product->get_duration_unit() ) {
            $data['_start_date'] = strtotime( "{$data['_year']}-{$data['_month']}-{$data['_day']} 2:00PM" );
            $data['_end_date']   = strtotime( "+{$total_duration} day", $data['_start_date'] );
            $data['_all_day']    = 0;
        }

just as test since our check in time is 2PM then all of a sudden it starts working and we can book on check out days.

So my thinking is that the accommodation plugin needs to hook into a method fired in the ajax call and set the times for the data.

kristinaplauche commented 8 years ago

@roykho Bumping this. :) Any word? Does the above answer help? This issue is affecting the essential functioning of the plugin. Check-in Check-out dates cannot be booked and customers think they can because they appear as available. This contributes to customer confusion and lost sales for our users. Thank you for looking into it!!!

roykho commented 8 years ago

We're looking into this next week.

zz5zz commented 7 years ago

@roykho any news? Still an issue in our end.

dwainm commented 7 years ago

@jessepearson in the latest (bookings core) master: if you supply chekin and checkout times it will ensure that a users bookings can start on a day that another booking ends.

In example below. 2-7 is an existing booking but you can book 1-2. Also see 28-30 is booked, but you can start a boooking from 30 onwards or up to 28.

screen shot 2016-10-31 at 3 24 30 pm

The issue of the partial flag showing on accomodation booking is not something we need, because with accomodation we shouldn't see a day as partialy booked. If checkin/checkout is supplied and some booke untill the 30th, the 30th should be available for some one to sart booking from and not show partial booking.

dwainm commented 7 years ago

@jessepearson please test and confirm this in the latest masters and close the issue if it is fixed :)

zz5zz commented 7 years ago

Verified working in the latest master on some dates, but not all.

Example: If a booking starts on 18th February at 2 PM and ends 19th February at 11 AM, it does not have another color then the available ones. I can book from 17th to 18th, but not another from 19th to 20. The last one shows 0 available all the time.

dwainm commented 7 years ago

@larsmagnusherland you will also need the latest master of WooCommerce Bookings which is not publically available yet.

jessepearson commented 7 years ago

@larsmagnusherland If you create a ticket under the account you purchased Bookings through, then add the ticket number here, I will get you the latest master of Bookings to test with.

dwainm commented 7 years ago

@jessepearson could you take a look and confirm this? We'd like to get 1.9.13 along with the next accommodation bookings released.

jessepearson commented 7 years ago

@dwainm Looks like the issue still exists.

I created this booking: screen shot on 2016-11-07 at 11 3a24 3a22

This is the calendar afterwards: screen capture on 2016-11-07 at 11-26-45

The 21st and 23rd should have the triangles to show they are partially booked. For some reason the 21st is the same color as the days in the next month.

jessepearson commented 7 years ago

@dwainm Check out dates are still not showing partially booked:

screen shot 2016-11-08 at 08 46 24

On top of that, I noticed that if two bookings are made next to each other and share the first's check out date with the next's check in date, the block is not shown as fully booked.

screen capture on 2016-11-08 at 08-55-23

In the above example I am using the same product created in the initial report at the top.

dwainm commented 7 years ago

@jessepearson what if you purchase those items?

jessepearson commented 7 years ago

After order is placed, with order status Pending and booking status Unpaid, the calendar shows no change (meaning, it does not show partially nor fully booked for those days). After order is Complete/Processing and booking status changed to Paid, the calendar shows partially booked the same as shown above.

zz5zz commented 7 years ago

I have the same issue, but in my case it shows as fully available (green) and not partial.

selection_685 selection_684

This is a booked date already, so should be unavailable.

zz5zz commented 7 years ago

Issue still exists in 1.0.7 Example: Booking done 3rd of march from 14:00 to 4th of march 11:00 and then 4th of march from 14:00 to 5th of march 11:00 then it shows all green (available) from 3rd to 5th.

And I should be able to book from 2nd to 3rd, which I'm not. So there is something strange going on since no partial booking is shown at all and full days are sometimes showing as available and sometimes fully booked.

image image

Have tried to empty transitions and sessions in WooCommerce, but doesn't affect anything.

This is the settings on the product image

jessepearson commented 7 years ago

@larsmagnusherland We are currently working on the next release of Bookings. It is currently in the beta testing phase. Once it is ready for release, we will get Accommodations compatible with it and push a new release, as well.

zz5zz commented 7 years ago

When will this be available? And do you need help in testing? Currently we have a semi broken page due to this not fully working and we are having many complains due to this. Has been like this for a longer period.

If this takes to long to fix, I need to go for another plugin.

mobotter commented 7 years ago

Hi, I'm also waiting for a fix or update for this bug. Hope it will be released soon...

jessepearson commented 7 years ago

The new version of Bookings is scheduled to be released in the next few weeks, there is not an exact date as of yet. A new version of Accommodations should follow along with it.

linkhousemedia commented 7 years ago

The new version of WooCommerce Bookings is out. Do NOT update WooCommerce or Bookings or everything will break if you're using Accommodation Bookings.

Any idea of ETA for this so I can inform my clients?

bor0 commented 7 years ago

I'm wondering why should this be the case, when we have number of available rooms set to 1?

should show partially booked

In my testings with latest master of Accommodation Bookings and Bookings 1.10.0, it shows as fully booked, which I believe is correct? screen shot 2017-04-06 at 10 29 31 am

jessepearson commented 7 years ago

@bor0 This is not correct. Since Accomm bookings are overnight, days should only show fully booked if both connecting nights are booked.

If there is a booking from 26 to 27, both should show partially booked. If the booking is 26 to 28, then 26 and 28 should be partial and 27 should be full. This is the case if the quantity is 1.

I cannot currently test due to #102

linkhousemedia commented 7 years ago

Any update here, folks? This is critical to those using this to make money. Booking is their bread and butter.

jessepearson commented 7 years ago

@linkhousemedia Can you confirm what issue you are currently running into. This issue was opened before the latest updates to WooCommerce, Bookings and Accommodations. As far as I can tell, the main issue at this point is just a discrepancy in how the days should be displayed on the calendar.

The latest releases of Bookings and Accommodations are working with WooCommerce 3.0, and if you create a ticket, then add it here, I can get you dev copies of Bookings and Accomm in order to test the most recent changes.

linkhousemedia commented 7 years ago

@jessepearson The exact issue is that the checkout date should show partially available, even if it's booked later that day. So if the 21st is already booked in the evening, it should at least allow someone to select it as a checkout date. Right now it shows fully booked.

I have a woocommerce ticket already - is that what you mean?

linkhousemedia commented 7 years ago

@jessepearson my woocommerce ticket is #561586... please advise ASAP. Right now since I've updated woocommerce, the booking accommodation plugin breaks the website.

jessepearson commented 7 years ago

@linkhousemedia Just replied. WC 3.0, Bookings 1.10.0 (or the dev copy I sent), and Accomm 1.0.8 should all work together without any critical issues. Feel free to reply to the ticket with anything else.

jessepearson commented 7 years ago

@bor0 Here is a great example passed over by @linkhousemedia in his ticket 561586-zd-woothemes

Image Link: http://cld.wthms.co/7qaJ

I have added two bookings to my cart:

I should be able to select a booking that has a check in of May 10 and a check out of May 12, but I cannot due to May 12 showing fully booked.

Since May 8 and 12 cannot be selected, this is two days that a store owner could be losing business on just in this situation.

My above example is a new product, the only settings that were changed were to display calendar by default and a cost of 10 per night.

madeincosmos commented 7 years ago

One more user reporting the same problem 561628-zd-woothemes

woodsdog commented 7 years ago

HI, I'm having the same problem now, was working last week, WC updated and now every hour around a booking I cannot get another booking Unless I take it manually over the phone. This is a serious issue and I think it should be a priority fix? My Ticket Number in their system is #564301 - unanswered in over 2 days, i have had zero responses from WC. I'm guessing I'm not the only one. Is there a way to go back to the previous version of WC and see if it works again?

jessepearson commented 7 years ago

@woodsdog Responses have been taking longer due to the WooCommerce 3.0 release, so we apologize about that. I just assigned your ticket to myself, once I finish up some testing for the next releases of Bookings and Accommodations, I will start working on it.

woodsdog commented 7 years ago

Thanks for the heads up, that's a good reason, but you should get that placed on the front end or something maybe so people are aware? New update worked and installed via FTP for me. Back to Business and I can start advertising again :)

linkhousemedia commented 7 years ago

This fix definitely solved the issue for me! Thanks, everyone.

bor0 commented 7 years ago

The fix for this will be adjusted in #109 to handle resources (if used) properly.

fabrikgrafik commented 7 years ago

This issue still excists when for example you select range of days (not bookable) in the "availability" tab because disabling these dates in the backend will do this based on days and not based on check-in or check-out times.

For example I want to limit bookings in november, in the availability tab I choose "range of days not bookable from 3 to 15 november". My client wants to book my accommodation from 1 November until 3 November but he can only select 1 and 2 November. 3 November is disabled the whole day. Since the checkout time for all bookings is 10:30AM, it should actually be available partially.

Any fix for this? Thanks!

botea14 commented 6 years ago

Hi guys,

I use WooCommerce Bookings and WooCommerce Accommodation Bookings plugins.

If i set my product as Bookable product, it displays calendar and featured image and i can select period and book hotel room.

If i select my product as Accommodation product, it only displays the price and the room title.

Accommodation prodcut accomodation Bookable product bookable

In page code source i can only see this text:

<div class="summary entry-summary">
--
  | <h1 class="product_title entry-title">Family Room Breakfast Included</h1><p class="price">From <span class="woocommerce-Price-amount amount">190,00&nbsp;<span class="woocommerce-Price-currencySymbol">lei</span></span> per night</p>
  |  
  | <noscript>Your browser must support JavaScript in order to make a booking.</noscript>
  |  
  | <form class="cart" method="post" enctype='multipart/form-data'>
  |  
  | <div id="wc-bookings-booking-form" class="wc-bookings-booking-form" style="display:none">

Can anyone tell me how can i fix this ? PLEASEEE!

Thanks.

madeincosmos commented 6 years ago

@botea14 sounds like a JavaScript error triggered somewhere. Please submit a ticket for WooCommerce Bookings at https://woocommerce.com/my-account/create-a-ticket/ so we can check this in details.