> Link title, URL, and icon values. */ function wpbc_appointment_services_get_provider_admin_links( $resource_id = 0, $include_service_assignments = true ) { $resource_id = absint( $resource_id ); $links = array(); if ( wpbc_appointment_services_can_manage_availability() ) { $working_hours_url = function_exists( 'wpbc_get_general_availability_url' ) ? wpbc_get_general_availability_url() : admin_url( 'admin.php?page=wpbc-availability&tab=general_availability' ); $days_off_url = function_exists( 'wpbc_get_availability_url' ) ? wpbc_get_availability_url() : admin_url( 'admin.php?page=wpbc-availability' ); $working_hours_url = add_query_arg( 'wpbc_ag_open', 'working_time', $working_hours_url ); if ( $resource_id ) { $working_hours_url = add_query_arg( 'resource_id', $resource_id, $working_hours_url ); $days_off_url = add_query_arg( 'resource_id', $resource_id, $days_off_url ); } $links[] = array( 'title' => __( 'Working Hours', 'booking' ), 'url' => $working_hours_url, 'icon' => 'wpbc-bi-clock', ); $links[] = array( 'title' => __( 'Days Off', 'booking' ), 'url' => $days_off_url, 'icon' => 'wpbc-bi-calendar-x', ); } if ( $include_service_assignments && current_user_can( wpbc_appointment_services_get_manage_capability() ) ) { $service_assignments_url = admin_url( 'admin.php?page=wpbc-services' ); $services_link_title = __( 'Manage Services', 'booking' ); if ( $resource_id ) { $service_assignments_url = add_query_arg( 'provider_id', $resource_id, $service_assignments_url ); $services_link_title = __( 'Assigned Services', 'booking' ); } $links[] = array( 'title' => $services_link_title, 'url' => $service_assignments_url, 'icon' => 'wpbc-bi-grid', ); } return (array) apply_filters( 'wpbc_appointment_provider_admin_links', $links, $resource_id, $include_service_assignments ); } /** * Render semantic Provider administration links using standard WP buttons. * * @param int $resource_id Optional Provider booking resource ID. * @param string $css_class Optional additional wrapper class. * @param bool $include_service_assignments Whether to include the Services-catalog shortcut. * * @return void */ function wpbc_appointment_services_render_provider_admin_links( $resource_id = 0, $css_class = '', $include_service_assignments = true ) { $links = wpbc_appointment_services_get_provider_admin_links( $resource_id, $include_service_assignments ); if ( empty( $links ) ) { return; } ?> ( 'rental' === $selected_mode_id ) ? __( 'Weekdays Availability', 'booking' ) : __( 'General Availability', 'booking' ), 'url' => $weekdays_availability_url, 'icon' => 'wpbc-bi-calendar-week', ); $guide_links[] = array( 'title' => __( 'Days Availability', 'booking' ), 'url' => $days_availability_url, 'icon' => 'wpbc-bi-calendar-check', ); } } if ( function_exists( 'wpbc_is_dismissed_panel_visible' ) && ! wpbc_is_dismissed_panel_visible( $guide_html_id ) ) { return; } ?>
'' . esc_html__( 'Dismiss', 'booking' ) . '', 'hint' => __( 'Dismiss', 'booking' ), 'class' => 'wpbc_appointment_provider_tools__dismiss', 'is_apply_in_demo' => true, ) ); } ?>
$args Optional min, step, placeholder, help, and slider values. * * @return void */ function wpbc_appointment_services_render_field( $field_id, $label, $type = 'text', $args = array() ) { $args = wp_parse_args( $args, array( 'min' => '', 'step' => '', 'placeholder' => '', 'help' => '', 'slider' => false, 'slider_min' => 0, 'slider_max' => 100, 'slider_step' => 1, ) ); $slider_aria_label = ''; if ( $args['slider'] ) { /* translators: %s: Service numeric field label. */ $slider_aria_label = sprintf( __( 'Adjust %s', 'booking' ), $label ); } ?>
placeholder="" disabled />

__( 'Example: Initial Consultation', 'booking' ) ) ); wpbc_appointment_services_render_field( 'description', __( 'Description', 'booking' ), 'textarea' ); wpbc_appointment_services_render_picture_field(); wpbc_appointment_services_render_field( 'status', __( 'Status', 'booking' ), 'status' ); } /** * Render duration and buffer fields for the inspector. * * @return void */ function wpbc_appointment_services_render_scheduling_fields() { wpbc_appointment_services_render_field( 'duration_minutes', __( 'Duration (minutes)', 'booking' ), 'number', array( 'min' => 1, 'step' => 1, 'slider' => true, 'slider_min' => 1, 'slider_max' => 480, 'slider_step' => 5, ) ); wpbc_appointment_services_render_field( 'buffer_before_minutes', __( 'Buffer before (minutes)', 'booking' ), 'number', array( 'min' => 0, 'step' => 1, 'slider' => true, 'slider_min' => 0, 'slider_max' => 180, 'slider_step' => 5, ) ); wpbc_appointment_services_render_field( 'buffer_after_minutes', __( 'Buffer after (minutes)', 'booking' ), 'number', array( 'min' => 0, 'step' => 1, 'slider' => true, 'slider_min' => 0, 'slider_max' => 180, 'slider_step' => 5, ) ); } /** * Render Service pricing fields for the inspector. * * @return void */ function wpbc_appointment_services_render_pricing_fields() { if ( ! wpbc_appointment_services_is_pricing_available() ) { ?>
BS+

0, 'step' => 1, 'slider' => true, 'slider_min' => 0, 'slider_max' => 1000, 'slider_step' => 1, ) ); } /** * Render the existing booking-resource choices as assigned Providers. * * @return void */ function wpbc_appointment_services_render_provider_fields() { ?>

'wpbc_service_general', 'group' => 'service-general', 'title' => __( 'General', 'booking' ), 'open' => true, ), 'wpbc_appointment_services_render_general_fields' ); WPBC_UI_Sidebar_Panels::render_collapsible_group( array( 'id' => 'wpbc_service_scheduling', 'group' => 'service-scheduling', 'title' => __( 'Scheduling', 'booking' ), 'open' => true, ), 'wpbc_appointment_services_render_scheduling_fields' ); WPBC_UI_Sidebar_Panels::render_collapsible_group( array( 'id' => 'wpbc_service_pricing', 'group' => 'service-pricing', 'title' => __( 'Pricing', 'booking' ), ), 'wpbc_appointment_services_render_pricing_fields' ); WPBC_UI_Sidebar_Panels::render_collapsible_group( array( 'id' => 'wpbc_service_providers', 'group' => 'service-providers', 'title' => __( 'Providers', 'booking' ), ), 'wpbc_appointment_services_render_provider_fields' ); WPBC_UI_Sidebar_Panels::render_collapsible_group( array( 'id' => 'wpbc_service_form', 'group' => 'service-form', 'title' => __( 'Booking Form', 'booking' ), ), 'wpbc_appointment_services_render_form_fields' ); WPBC_UI_Sidebar_Panels::render_collapsible_group( array( 'id' => 'wpbc_service_advanced', 'group' => 'service-advanced', 'title' => __( 'Advanced', 'booking' ), ), 'wpbc_appointment_services_render_advanced_fields' ); ?>

[booking_appointment]

[booking_appointment service_id="12" provider_id="5"]

[booking_appointment progress_item_1_title="" progress_item_1_number="01/03" progress_item_2_title="Specialist" progress_item_3_title="Schedule & Details"]