PATH:
home
/
ediuae
/
petalwellnessspa.com
/
wp-content
/
plugins
/
simply-schedule-appointments
/
includes
<?php /** * Simply Schedule Appointments embed Booking Api. * * @package Simply_Schedule_Appointments */ /** * Simply Schedule Appointments embed Booking Api. * */ class SSA_Embed_Booking_App_Api extends WP_REST_Controller { /** * Parent plugin class * * @var class * @since 1.0.0 */ protected $plugin = null; /** * Constructor * * @since 1.0.0 * @param object $plugin Main plugin object. * @return void */ public function __construct($plugin) { $this->plugin = $plugin; $this->hooks(); } /** * Initiate our hooks * * @since 1.0.0 * @return void */ public function hooks() { $this->register_routes(); } /** * Register the routes for the objects of the controller. */ public function register_routes() { $version = '1'; $namespace = 'ssa/v' . $version; $base = 'embed_booking_app'; register_rest_route($namespace, '/' . $base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array($this, 'get_embed_code'), 'permission_callback' => '__return_true', 'args' => array( ), ), )); } /** * Get embed code * * @param WP_REST_Request $request Full data about the request. * @return WP_REST_Response */ public function get_embed_code($request) { $att = ssa()->shortcodes->get_ssa_booking_arg_defaults(); $iframe = ssa()->shortcodes->ssa_booking($att); // Define the iframe source and the required scripts // get site domain $domain = home_url(); $scripts = [ $domain . "/wp-content/plugins/simply-schedule-appointments/assets/js/iframe-outer.js?ver=6.7.27", $domain . "/wp-content/plugins/simply-schedule-appointments/assets/js/ssa-tracking.js?ver=6.7.27" ]; // Generate the embed code as a JavaScript script $embed_code = "(function(w, d) { var currentScript = d.currentScript; var iframe = new DOMParser().parseFromString('$iframe', 'text/html').body.firstChild; iframe.style.display = 'flex'; currentScript.parentNode.insertBefore(iframe, currentScript); function loadScript(src, callback) { var script = d.createElement('script'); script.type = 'text/javascript'; script.src = src; script.onload = callback; d.head.appendChild(script); } var scripts = " . json_encode($scripts) . "; scripts.forEach(src => { loadScript(src); }); })(window, document);"; $response = new WP_REST_Response($embed_code, 200); $response->header('Content-Type', 'application/javascript'); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET'); $response->header('Access-Control-Allow-Headers', 'Content-Type'); return $response; } }
[-] class-settings.php
[edit]
[-] class-hooks.php
[edit]
[-] class-availability-query.php
[edit]
[-] class-appointment-model.php
[edit]
[-] class-beaver-builder.php
[edit]
[-] class-web-meetings.php
[edit]
[-] class-availability-model.php
[edit]
[-] class-recipient-admin.php
[edit]
[-] class-recipient-customer.php
[edit]
[-] class-constants.php
[edit]
[-] class-async-action-model.php
[edit]
[-] class-support.php
[edit]
[-] class-google-calendar-client.php
[edit]
[+]
..
[-] class-capabilities.php
[edit]
[-] class-encryption.php
[edit]
[-] class-availability-cache-invalidation.php
[edit]
[-] class-calendar-events-settings.php
[edit]
[-] class-settings-global.php
[edit]
[-] class-translation.php
[edit]
[-] class-cli.php
[edit]
[-] class-missing.php
[edit]
[-] class-action-scheduler.php
[edit]
[-] class-templates-api.php
[edit]
[-] class-blackout-dates.php
[edit]
[-] class-calendar-events-object.php
[edit]
[-] class-divi.php
[edit]
[-] class-templates.php
[edit]
[-] class-wp-admin.php
[edit]
[-] class-appointment-factory.php
[edit]
[-] class-scheduling-max-per-day.php
[edit]
[-] class-notifications-api.php
[edit]
[-] class-shortcodes.php
[edit]
[-] class-validation.php
[edit]
[-] class-resource-group-object-factory.php
[edit]
[-] class-payment-object.php
[edit]
[-] class-locale.php
[edit]
[-] class-ics-exporter.php
[edit]
[-] class-filesystem.php
[edit]
[-] class-recipient-shared.php
[edit]
[-] class-availability-schedule.php
[edit]
[-] class-block-upcoming-appointments.php
[edit]
[-] class-elementor.php
[edit]
[-] class-appointment-meta-model.php
[edit]
[-] class-revision-meta-model.php
[edit]
[+]
divi
[-] class-notifications.php
[edit]
[-] class-upgrade.php
[edit]
[-] class-utils.php
[edit]
[-] class-availability-functions.php
[edit]
[-] class-external-calendar-api.php
[edit]
[-] class-csv-exporter.php
[edit]
[-] class-external-google-calendar-api.php
[edit]
[-] class-twig-extension.php
[edit]
[-] class-bootstrap.php
[edit]
[-] class-notices.php
[edit]
[-] class-availability-schedule-factory.php
[edit]
[-] class-blackout-dates-settings.php
[edit]
[-] class-support-status.php
[edit]
[-] class-block-booking.php
[edit]
[-] class-advanced-scheduling-availability.php
[edit]
[-] class-exception.php
[edit]
[-] class-styles-settings.php
[edit]
[-] class-forms.php
[edit]
[-] class-recipient-staff.php
[edit]
[+]
beaver-builder
[-] class-users.php
[edit]
[-] class-sequence-factory.php
[edit]
[+]
third-party
[-] class-locales.php
[edit]
[-] class-db-model.php
[edit]
[-] class-db.php
[edit]
[-] class-availability-default.php
[edit]
[-] class-staff-settings.php
[edit]
[-] class-notification-model.php
[edit]
[-] class-settings-installed.php
[edit]
[-] class-appointment-object.php
[edit]
[-] class-notices-api.php
[edit]
[-] class-translation-settings.php
[edit]
[-] class-support-status-api.php
[edit]
[-] class-notices-data.php
[edit]
[-] class-appointment-type-object.php
[edit]
[-] class-appointment-type-object-factory.php
[edit]
[-] class-availability-block-factory.php
[edit]
[-] class-recipient.php
[edit]
[-] class-revision-model.php
[edit]
[-] class-customers.php
[edit]
[-] class-settings-api.php
[edit]
[-] class-cache.php
[edit]
[-] class-availability-detective-case.php
[edit]
[-] class-styles.php
[edit]
[-] class-capacity-settings.php
[edit]
[-] class-gcal-exporter.php
[edit]
[-] class-advanced-scheduling-settings.php
[edit]
[-] class-appointment-type-model.php
[edit]
[-] class-notifications-settings.php
[edit]
[-] class-period.php
[edit]
[-] class-external-api.php
[edit]
[-] class-error-notices.php
[edit]
[-] class-availability-cache.php
[edit]
[-] class-developer-settings.php
[edit]
[-] class-dashboard-upcoming-appointments-widget.php
[edit]
[-] class-availability-external-model.php
[edit]
[-] class-availability-block.php
[edit]
[-] class-customer-information.php
[edit]
[+]
elementor
[-] class-appointment-type-label-model.php
[edit]
[-] class-embed-booking-app-api.php
[edit]
[+]
lib
[-] class-sequence.php
[edit]
[-] class-debug.php
[edit]
[-] class-appointment-types-db.php
[edit]