Multiple Appointment locations

I have a client with the exact scenario described here: https://premium.wpmudev.org/forums/topic/appointments-different-appointment-locations#post-815772

On Mon, Tues she is in City A offering services 1-7, Wed-Sat she is in City B offering services 1-7. I have locations turned on in the plugin.

To date I have created a second (dummy) service provider assigned to the City B, offering services 1-7 on the assigned days.

In terms of the front-end, it means the customer must select the location first, as that restricts the available days for the booking.

The shortcode provided ([app_required_service_locations autorefresh="1"]) does not work.

Ideally, the solution will work with the Ajax [app_combo] wrapper, as this provides the cleanest interface and best control over the booking process: Choose location (automatically selects service provider A or Dummy B), choose a service, select a date from the available two-month calendar (now restricted by location, and therefor available booking days), select a booking time, make payment.)

If it made a difference, we would be willing to create 14 services (City A/CityB) and one service provider if that works better in terms of flow... but it seemed the second (dummy) service provider for CityB, had the best chance of working the way we expect.

Thanks in advance!

  • will_brooke8

    Also, looking at https://premium.wpmudev.org/forums/topic/remove-duplicated-location-in-drop-down-of-location-providers

    This describes my proposed configuration, but the supplied shortcodes
    [app_provider_locations ... select="Please select a location:"]
    or
    [app_required_provider_locations ... select="Please select a location:"]

    Do not seem to work as expected... it selects the location, but then forces you to select the (now only singular) service provider. which is confusing for the user as they are only booking with one person... so why should they need to select the provider?

    Selecting the location should allow the user to move on to selecting a time... how do we achieve this?

  • will_brooke8

    Anyone? Anyone? Bueller?

    Look, I know you guys are busy, but lets face it, there have been a lot of requests/issues regarding multiple locations for services/providers. I think its safe to say this feature is implemented in a substandard way. It works for a VERY narrow use-case, and many of the implementations do not fit that use-case. It is also clear that the required functionality is very close to working, given a generous admin and some judicious dummy-provider configuration...

    so. lets make that work shall we, hmm?

    Then this "feature" can be touted as a truly valuable aspect of A+... until then, A+ is really only useful for users in a single location. (imagine for a moment that location referred to a particular room number, or seat in a salon.... A+ doesnt work for that scenario unless the provider/room combination are ALWAYS the same, and thus do not need to be identified. The different offices/cities use-case is identical to these, whether its one provider or multiple.... and A+ just does not work well for those situations. Particularly the single provider scenario.)

  • will_brooke8

    ok, so here is a workaround that will NOT work for me, but might work for SOME users...

    Turn A+ locations add-on ON
    create a dummy User2
    set the NICKNAME field for User1 and User2 (in the wp-user screen) to be the LOCATION NAME,
    (so now user1 nickname = LocationA, User2 nickname = LocationB)
    in A+ general settings, scroll to bottom, set the Provider name to be NICKNAME
    (in A+ provider settings, click more Info and set locations also)

    now on appointment booking PAGE, use something like following (please see the shortcode help page in the A+ plugin for more info)

    [app_service_providers select="Please select a location:"]
    [app_services]
    [app_monthly_schedule long=1]
    [app_pagination step=1 month=1]
    [app_confirmation]

    WHY THIS IS A BAD WORKAROUND:
    1.) Nickname may be used elsewhere for other purposes
    2.) ONLY WORKS with ONE provider with a FIXED schedule for locations because:
    3.) the booking info does NOT record a location (on mine, it doesnt even record the service provider! it just says "no preferred provider") which then means that:
    4.) the confirmation emails are less than useful, as they lack information like address or maps or names....

    overall this is a non-workable solution, but it does demonstrate the desired functionality. Which says to me this plugin CAN do this.... but this is NOT the way... so. A little help on a PROPER solution would be most welcome. Thanks.

  • Tyler Postle

    Hey WIll,

    Hope you're doing well today and thanks for your patience on this and the detailed explanation - very helpful :slight_smile:

    The below setup is the desired setup right? If the app locations required shortcode was working on your install. That shortcode is working on mine, so I'm sure we can get it working on yours too. Possibly just a theme or plugin conflict happening somewhere there.

    [app_required_service_locations autorefresh="1"]
    [app_monthly_schedule long=1]
    [app_pagination step=1 month=1]
    [app_confirmation]

    This will allow you to select the location, then select the service and then choose the appointment time. We don't need the provider since both the providers(your main one and dummy one) are both you :slight_smile:

    If that setup works for you then do you mind temporarily swapping to the default 2015 theme and see if the locations required shortcode works properly? Just want to narrow down what the conflict is.

    If it's still not working, then would you be able to send your FTP and WP login in? Then I can further debug the issue and we'll get it sorted for you :slight_smile:

    Send in:

    Subject: "Attn: Tyler Postle"
    -WordPress admin username
    -WordPress admin password
    -login url
    -FTP credentials (host/username/password)
    -link back to this thread for reference
    -any other relevant urls

    Select "I have a different question" for your topic - this and the subject line ensure that it gets assigned to me :slight_smile:

    https://premium.wpmudev.org/contact/

    Actually, even if it is a theme conflict, you can still send the above in as it will give me access to your theme so I can grab it and test it on my own install to figure out the issue.

    Look forward to hearing back Will and thanks again for your patience! Talk to you soon :slight_smile:

    Cheers,
    Tyler

    PS. If the above setup is still not what you're after, my apologies, let me know what changes would need to be made and I'll work on that for you.

  • will_brooke8

    Nope. does not work.
    I have created a new test site on my MU setup; it has 2015 and A+ ONLY.
    A+ is up to date (as is everything else)

    With the add-on "service Locations" off, the shortcode doesnt render at all (the includes/addons/lib/app_service_locations_shortcode.php file isn't being called) and stays presented as plaintext on the page.

    With the the add-on "service locations" ON, the shortcode tries to render but only produces : <p>
    </p>, and no javascript is injected on to the page.

    and, while i appreciate the offer of assistance, wpmu has a built in support function, we can arrange to use that if necessary, I am not comfortable sending even temporarily created admin credentials to an anonymous support process. I do not run ftp on this server.

    You may contact me directly at the email listed in my profile, we can arrange a time to gtalk or skype as necessary.

  • will_brooke8

    i just again created a new test site from scratch and exactly replicated my above issues.

    - the "Worker locations" ON and "Locations" ON does NOT allow the render the
    [app_required_service_locations autorefresh="1"]

    because the shortcode is looking for service location binding. which we are not doing. as described we are bidning locations to the service PROVIDERS, the workers. NOT the services.

    Turning "Service Locations" on causes the shortcode to render NOTHING on the page. Presumable because my services do not have locations, my service PROVIDERS do...

    SO.
    I duplicated the services.
    services 1-7 City A,
    Services 1-7 (8-14) City B. t

    hen assigned them appropriately to my service providers.

    NOW the shortcode renders properly and works...
    But this is NOT the resolutions originally desired or discussed, and NOWHERE in any of the "help" provided has anyone at WPMU suggested that this needs to operate in this manner. it is also counter intuitive and creates a lot more entries. fine. it will work, but its pretty frustrating when I asked INITIALLY whether we have to create just this scenario, and nobody said "yes"...

    "If it made a difference, we would be willing to create 14 services (City A/CityB) and one service provider if that works better in terms of flow... but it seemed the second (dummy) service provider for CityB, had the best chance of working the way we expect. "

    What was DESIRED:
    service provider A -> city A, Services (1-7)
    service provider B (dummy) -> city B, Services (1-7)

    Apparently, even though this is NOT clear from the help files, settings descriptions, or any of the "support" provided to date, the solution is to create:

    Service provider A -> services A (1-N) -> City A,
    Service provider B (dummy) -> Services B (1-N) -> City B...

    This code should be FIXED and WPMU should create a shortcode like:
    [app_required_worker_location refresh=1]

    that allows for a workflow of:
    select LOCATION (automatically selects worker)
    Select SERVICE (as assigned to auto-selected worker)
    Select date/time (as limited by workers schedule)
    Confirm
    Pay

    this would decrease the a of mount of admin data to be managed.

    but for now, this works.

  • will_brooke8

    FOR FUTURE REFERENCE - A (mostly) WORKING SOLUTION:

    Heres what I did:
    (Clean site, Appointments+ is the only plugin, 2015 is the theme)

    My admin user is Worker1
    Add Worker2 user in the main WP user area (can use worker1email+cityB@gmail.com) type code to get a distinct email that will still send to you in a pinch... skip verification. The +cityB gets add as an x-header, but doesnt impact mail delivery. or you can add some periods in the "worker1email" part, gmail ignores periods.)

    A+ Addons: turn ON "Locations", "Service Locations" and "Worker locations"
    A+ main settings page, configure Dummy worker emails to go to Worker1
    Create locations CityA, CityB

    the key part:
    Create Services 1-N, ASSIGN EACH to CITYA <-- "City A Services Set"
    Create Services N+1-X, ASSIGN EACH to CITYB <-- "City B Services Set"

    Create Worker1, Set location to CityA, set services to "City A Services Set"
    Set worker2 to be a DUMMY user, set location to CityB, set services to "City B Services Set"

    Assign workign hours appropriately (in my case Worker 1 = Mon, Tues (CityA), Worker2 = Wed-Fri (CityB)
    NOW....
    create/modify your booking page.

    [app_required_service_locations autorefresh="1"]
    [app_monthly_schedule long=1]
    [app_pagination step=1 month=1]
    [app_confirmation]

    That seems to work.

    Sadly, the AJAX [app_combo] wrapper does NOT work, because there is no AJAX code for [app_required_service_locations] shortcode...
    It'd be really nice if WPMU team could create an [app_required_worker_location refresh=1] type shortcode that worked as expected, and further, if all of this could work with the AJAX mode...

    Hopefully this helps someone else in the future.

  • Tyler Postle

    Hey there Will,

    My apologies for the delay. I think maybe I didn't explain my solution well enough in my above post :slight_frown: that is the same setup I posted further up: https://premium.wpmudev.org/forums/topic/multiple-appointment-locations#post-818502

    Sorry about that, I should have explained better that I was using the services locations and that you would need to create double the services so they would each be unique to the provider.

    Thanks for explaining that above though :slight_smile: I'll pass some points your way for the contribution, much appreciated.

    Sadly, the AJAX [app_combo] wrapper does NOT work, because there is no AJAX code for [app_required_service_locations] shortcode...

    Yes, the ajax code is still currently in beta, but we do have that on the to-do list, thanks for mentioning your interest in it. The more members that show interest in it the more we will be able to put further development time into it :slight_smile:

    It'd be really nice if WPMU team could create an [app_required_worker_location refresh=1] type shortcode that worked as expected

    This code should be FIXED and WPMU should create a shortcode like:
    [app_required_worker_location refresh=1]

    We do have a shortcode like that, this one here:

    [app_required_provider_locations ... autorefresh="1"]

    However, I don't think it will work the way you're wanting, because you want to hide the other options until selected. You will still need to show the services option here. They will select the location, which will automatically select the provider since you only have 1 per location, then you can select the service - but the service isn't hidden during the location selection, which I believe is what you're wanting. So, you're solution above will work better in this case :slight_smile:

    For that code above to work you will have to attach the locations to the providers instead of the services.

    I think having that all in the ajax combo would be really cool too. As mentioned before, it's on our to do list and I'll add your support to the ticket.

    and, while i appreciate the offer of assistance, wpmu has a built in support function, we can arrange to use that if necessary, I am not comfortable sending even temporarily created admin credentials to an anonymous support process. I do not run ftp on this server.

    The reason I was asking for the FTP was so I could do a plugin/theme check + debug to see why your shortcode wasn't working; however, you ended up figuring that out on our own with the providers vs services locations.

    That was a wrong assumption on my part, I assumed if it wasn't working we would need to check for conflicts, when normal support access would of been enough. Sorry about that Will.

    Anyways, thanks again for your contribution here :slight_smile: Glad you have a working solution. If you have any further questions just let me know.

    Enjoy the rest of your day!

    Cheers,
    Tyler

    PS. Just to illustrate how the app required provider locations would work, you can see on my sandbox here: http://suppmedia.com/make-an-appointment/ - again, I don't think it is what you're looking for, as you have indicated earlier on.

  • will_brooke8

    Thanks Tyler.

    The sample site configured the way you expect is a useful tool. I would suggest providing that earlier in the support process so both parties can talk apples-apples. The single function that doesnt work in our case is having to select the worker after selecting the location as, there is only one worker... and from an end-user flow perspective, it is confusing.

    Thanks for the points. I'm marking as resolved.

  • Tyler Postle

    Hey Will,

    Thanks for the tip there :slight_smile: I agree, adding that sample in with my first post could have made things more clear. I'll definitely use that more often.

    Glad this is sorted now.

    The single function that doesnt work in our case is having to select the worker after selecting the location as, there is only one worker... and from an end-user flow perspective, it is confusing.

    Yeah with only one user the user is already selected when the location is. So I can see how that step could be confusing since they might think they need to make a selection again. Appreciate the feedback.

    If you have any further questions just let us know :slight_smile:

    Hope you have a great end of your week/weekend.

    All the best,
    Tyler

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.