Appointments : An Appointment in simple language is defined as an arrangement to meet someone at a particular time and place. The main objective of this plugin is to set a time for a task. Instructors can set the date and time of their availability so that students can find their favourite instructors according to their availability and book the instructors
B
Booking : A booking is the arrangement that you make when you book something. It allows students to book appointments for instructors's lessons directly from your website giving users/students a seamless booking experience.
Buffer Time : Buffer time is extra time added to a service duration. If a meeting is about to start and say you'll get notification about that meeting 60 minutes before. So that, 60 minutes is considered as Buffer Time
C
Cancel Schedule/Booking : In the addon, we have this feature also to cancel the appointment booking. If instructor is not available at that moment of time. He can cancel his booking. A notification will be sent to the user. Similarly, this feature is alos available for the user to cancel his appointment.
D
Directory : Directory or Appointments Directory will show all the instructors who are available for booking. Those instructors will not be visible here whose timeslots are already passed. Only the instructors with upcoming timeslots will be visible here.
Default Presentation : A setting we have added in the LMS > Settings > Appointments > General Settings. When a new meeting starts, BigBlueButton displays a default presentation. You can replace the contents of this file with your presentation. Whenever a meeting is created, BigBlueButton will automatically load, convert, and display this presentation for all users. The pdf uploaded here will act as a default presentation for bigbluebutton
I
Instructors : Instructors are generally the course administrators/authors. Students can book a appointments with instructors
M
Meeting : A meeting is when two or more people come together to discuss one or more topics. Similarly this feature is added in this plugin so a user can join a meeting to discuss about something with instructors
P
Promotional Video : It is nothing to do with any kind of promotions. This is actually a featured video which will be visible in the course directory calendar.So when an instructor uploads a video here or set a link in the promotional video setting. That video will be displayed in the appointments directory page
S
Schedule : A Schedule is defined as a sequence of events in chronological order. The process of creating a schedule and deciding how to order these tasks and how to commit resources between the variety of possible tasks, is called scheduling.
Slot : Slot is a defined time interval. Using appointments plugin you can book a schedule and you can break those schedules into smaller time intervals. For example, A schedule is booked for two days for 10 hours each. Then you can break those slots for 1 hour or 15 minutes.
T
Time Format : The format in which the time will be visible. We have given three types of format to choose from. The setting is added in LMS > Settings > Appointments
W
Walkthrough : A new feature is added which guides the whole process of creating schedules. It will show a step by step tour of how to add a schedule. A user can easily use this feature and can create a schedule. We have introcuced this feature because most of the users are confused about how to create a schedule from the beginning. In this, you need not to do anything. It will automatically create a schedule and trigger the button clicks also. To disable the walkthrough, simply click on skip button
Getting Error 404
Basically, it means that the client (your, or your visitor’s, web browser) was able to successfully connect to the host (your website’s server), but it was unable to find the actual resource that was requested (e.g. a specific URL or filename).
For example, if someone tries to access yoursite.com/post-name but you don’t have any content with the slug post-name. Please try the below steps to resolve this issue:
Resetting your permalinks from wp-admin > Settings > Permalinks > Save Changes
Restoring your .htaccess file
Disabling your themes and plugins
Not Getting Emails/Messages/Notifications
If you are not getting any emails/messages/notifications related to appointments then it might be the issue related to touchpoints. Go to wp-admin > LMS > Settings > TouchPoints and enable the touchpoints. Een after enabling touchpoints still, you are not getting any emails then first check the email templates present or not for those touchpoints. If Email Templates are not present then follow this article: Migrate Email Templates
Appointments Directory Button is throwing Error 404
The appointments directory is set. There are two buttons on that page, one is book button and other is view profile. If a user(either logged in or non logged in) click on one of these buttons to book instructor from the list or to check the profile. He lands on 404 error. Then this is not a case of permalinks. Actually, there is a condition if enable appointments checkbox is enabled for that instructor. Only then the profile will be visible. Otherwise, it will land on 404 error
Appointments Directory is not visible
In this case, check whether a pagge is connected as appointments directory page or not in LMS > Settings > Appointments > Appointments Directory Page. The second thing is to check the shortcode is added or not
How to change the position of the Book Tab on Single Course Page
Go to LMS > Settings > General > Course Menu and change the postion here then save settings
Not Able to select only one day schedule
Yes, this is not possible because we consider a one day as an event and more than one day as a schedule. If you still, want to select one day then first select two days and then remove one day
Action Hooks
wplms_course_action_point_permalink_settings :Executes to set the appointment slug
bp_profile_after_member_header_meta : Executes on user profile below member header
wplms_appointments_booking_form :@param: $type, $id The type parameter is used to check whether it is a type of course or profile
wplms_front_end_save_course_pricing : This action executes before saving the pricing of a course in front end
@param: $course_id, $settings $settings is used to check the type of setting whether it is a appointment_hidden_product or not
woocommerce_remove_cart_item :Execute at the time of removing cart item
@param: $cart_item_key, $cart These parameters are used to fetch the appointment_ids
woocommerce_check_cart_items :When we process the checkout, lets ensure cart items are rechecked to prevent checkout. So this hook executes at that time
woocommerce_add_order_item_meta :Executes when we want to add custom meta to the order items
@param: $item_id, $values Here $item_id is the id of the item and $values is used top fetch the valuies of the form
woocommerce_order_status_completed :Runs to check the order status is completed or not
@param: $order_id
wplms_appointment_booked : Executes at the time when activity related to appointment booking is saving in the activity meta table
@param: $appointment_id,$user_id,$course_id
wplms_appointments_update_appointment :Executes to update the appointment status
@param: $id,$type,$args
bp_after_messages_compose_content :Fires after the display of message compose content.
messages_message_sent :The WordPress Core messages message sent hook.
@param: $message
init :Fires after WordPress has finished loading but before any headers are sent.
wplms_appointments_meeting_ended :Executes when the meeting is going to end
@param: $schedule_id
rest_api_init :Fires when preparing to serve an API request.
wplms_set_schedule_meeting :Executes for setting meeting schedule
@param: $schedule_id,$meta_value
wplms_appointments_booking_rejected :Fires when appointments booking rejected
@param: $post['booker_id'],$post
wplms_appointments_appointment_cancelled :Fires when appointments cancelled
@param: $args,$metas,$order_details
wplms_appointments_appointment_updated :Fires when appointments are updated
@param: $schedule,$details
wplms_appointments_appointment_rescheduled :Fires when appointments booking rescheduled
@param: $post
wplms_insert_appointment : Executes while inserting the appointments in database with all the arguments
@param: $parent_appointment_id,$appointment_id
wplms_update_appointment :Executes while updating the appointments schedule in database with all the arguments
@param: $parent_appointment_id,$appointment['appointment_id']
wplms_appointment_schedule_id :Executes before setting the timestamp of next available schedule
@param: $schedule_id
wplms_set_schedule_meeting : This action is executed before setting bbb meeting when next schedule event for setting is setting. Using these parameters $schedule_id,$meta_value you can change the message of meeting set also
@param: $schedule_id,$slot_timings
wplms_meeting_schedule : Fires at the time when next schedule event is going to set for meeting schedule when the current time passed
@param: $schedule_id,$event_id,$slot_timings
wplms_update_availability :Executes to update the appointment meta with the meta value of scheduled queues
@param: $return,$args
wplms_instructor_meta :This hook will execute below the intructor meta on single course page
@param: $meta,$instructor_id
wplms_front_end_save_course_components :Runs before saving the component section of the course in the frontend
@param: $course_id,$settings
woocommerce_after_calculate_totals :The WordPress Core woocommerce after calculate totals hook.
Filters
request :Filters the array of parsed query variables.
@param: $vars
wplms_course_front_end_save_pricing :Executes at the time of saving price from front end
@param: $return,$setting
wplms_appointments_cart_timer :Execute to fetch the appointments cart timer(Maximum appointment booking time to complete purchase of slot/schedules)
@param: $timer
wplms_appointments_appointment_id_html_activity :
wplms_appointments_record_activity :Using this filter we can changes the arguments of recorded activity related to appointments(primary link, component)
wplms_appointment_instructor_settings : executes on instructor's appointment settings
wplms_appointments_course_book_args :
wplms_appointments_schedule_types :On this filter you can add the new types of appointments(currently types are: free, reserved)
wplms_appointments_booking_calendar_data :Executes on booking calendar data. If someone wants to change these data then execute a function on this filter
wplms_appotintments_date_format :Fires to change the date format
wplms_appotintments_time_format :Fires to change the time format
wplms_appointments_settings :Executes on wplms appointments settings(backend settings)
@param: $settings
wplms_appointments_instructor_product :Executes at the time of creating the appointments related products
wplms_lms_appointments_tabs :On this filter you can add another tab besides help tab of appointments plugin
bp_course_all_mails :works for email templates. A function is defned and the function handles the formatting of email templates
@param: @email
bp_course_format_notifications :Execute tob format the message notification
@param:
wplms_appointments_appointment_id_html :Fires where appointment id is showing wth start date and end date. To modify the HTML content of that you can modify the function on this filter
@param:
wplms_appointments_touch_points_array :Executes where touchpoints defined. This filter is executed on the touchpoints array
wplms_course_instructor_booking_link :To odify the link of the button present on single course page below instructor name
wplms_course_instructors :Executes to check whether a course has a single instructor or more than that
wplms_appointments_course_options :Executes to modify the conditional switch parameters. This setting "Enable Course Bookings by Students" can be changed on this filter
wplms_appointment_course_non_bookable :Check if someone already added the appointment in cart. If item is present in the cart then it is non bookable
wplms_course_nav_menu :Executes to set the book tab menu on single course page
@param: $menu
wplms_save_vibe_course_permalinks :Returns permalinks after saving the appointments slug
@param: $permalinks
wplms_course_creation_tabs :Executes at the of adding appointment pricng setting in wplms front end plugin
@param: $fields
woocommerce_add_cart_item :returns $cart_item_data after checking the cart items
@param: $cart_item_data,$cart_item_key
woocommerce_get_cart_item_from_session :Allow 3rd parties to validate this item before it’s added to cart and add their own notices. Here, executed to get the items of the cart from session and return $item
@param: $item,$values,$key
woocommerce_cart_item_name :This filter, works for each product in cart.
@param: $product_name,$cart_item
woocommerce_cart_item_quantity : works on cart item quantity
@param: $product_quantity, $cart_item_key, $cart_item
wplms_appointment_cancel_booking_woocommerce :If a user cancel his booking. At that time this filter executes for the woocommerce order
@param: $message,$order_details,$args
wplms_appointments_after_data :This is the main filter of instructor booking. It will check whether the item type is instructor_booking or not and return $args
@param: $args
Functions
All these functions are defined in functions.php
get_slots : Returns Slots
get_pending_slots($args) : Returns Pending Slots
wplms_appointment_get_profile_setting($user_id,$setting) : Returns the profile settings, if nothing is set then it will return 0 otherwise it will return settings
wplms_get_approval_time($instructor_id) : Returns the Payment processing Time for Slots if set otherwise return 86400 minutes
wplms_appointments_get_max_seats($args) : Returns the maximum number of seats for that particluar appointment
wplms_appointments_get_unread_count($user_id) : Return the unread count of the messages related to appointments
wplms_appointments_confirm_booking($user_id,$slot_id,$exras=0) : This will check the booker id is present or not. If present then it will return true that booking is confirmed for this user id
wplms_appointments_instructor_price_range($instructor_id,$minmax) : Returns the price range of the instructor
wplms_get_appointment_bookers($appointment_id) : Returns the array of booker ids of that particular appointment id
wplms_appointments_get_active_slots : Returns active slots
wplms_appointments_remove_active_slot($slot_id) : If someone removes the active slots from frontend then this function executes which deletes those keys of active slots from database
wplms_appointments_record_active_slot($slot) : This will update the database table with all the active slots
wplms_appointments_update_pending_slots($args) : Update Pending Slots for appointments
wplms_appointments_convert_utc_local($utc_date,$utc_time,$user_id) : Convert UTC timezone to local and return the date
wplms_getdate_appointment_timestamp($appointment) : Returns the start date
wplms_appointments_get_course_id_instatus : Returns the course id
Shortcode Available
wplms_appointment_booking : This shortcode will show appointment booking calendar wherever you will add. Add the shortcode like this: [wplms_appointment_booking schedule_ids=''] and pass the schedule id for which you want to show the calendar and appointments
wplms_appointments : Add the shortcode like this: [wplms_appointments type='',item_id='',instructor_id='',booker_id='',schedule_ids='',slot_ids='',start_date='',end_date='',duration=7]
wplms_appointments_directory : Add the shortcode like this: [wplms_appointments_directory type='instructor_booking',status='open',primary_id='',notify_users='',appointments_title='',appointments_subtitle='',welcome_message='',user_id='',class='']. You can pass these parameters in this shortcode