Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
mphb-elementor
:
plugin.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if ( ! defined( 'ABSPATH' ) ) { exit( 'Press Enter to proceed...' ); } class MPHBElementor { const SLUG = 'mphb-elementor'; const WIDGET_CATEGORY_NAME = 'motopress-hotel-booking'; private static $instance = null; private function __construct() { add_action( 'plugins_loaded', array( $this, 'loadTextdomain' ) ); // Check if the MotoPress Hotel Booking is active if ( ! class_exists( 'HotelBookingPlugin' ) ) { return; } // Check if the Elementor is active if ( ! did_action( 'elementor/loaded' ) ) { return; } // Check required version if ( ! version_compare( ELEMENTOR_VERSION, '3.5.0', '>=' ) ) { return; } add_filter( 'elementor/elements/categories_registered', array( $this, 'registerCategories' ), 10, 1 ); add_filter( 'elementor/widgets/register', array( $this, 'registerWidgets' ), 10, 1 ); add_action( 'elementor/init', array( $this, 'addAvailableRoomsData' ) ); add_action( 'elementor/preview/enqueue_styles', array( $this, 'enqueuePreviewStyles' ) ); } public function loadTextdomain() { global $wp_version; $isWp47 = version_compare( $wp_version, '4.7', '>=' ); $locale = $isWp47 ? get_user_locale() : get_locale(); $locale = apply_filters( 'plugin_locale', $locale, self::SLUG ); // wp-content/languages/mphb-elementor/mphb-elementor-{lang}_{locale}.mo $moFile = sprintf( '%1$s/%2$s/%2$s-%3$s.mo', WP_LANG_DIR, self::SLUG, $locale ); load_textdomain( self::SLUG, $moFile ); load_plugin_textdomain( self::SLUG, false, self::SLUG . '/languages' ); } /** * Note that the categories are displayed in the widgets panel, only if they * have widgets assigned to them. * @param \Elementor\Elements_Manager */ public function registerCategories( $elementsManager ) { $elementsManager->add_category( self::WIDGET_CATEGORY_NAME, array( 'title' => __( 'MotoPress Hotel Booking', 'mphb-elementor' ), 'icon' => 'fa fa-plug', ) ); } protected function widgets() { require __DIR__ . '/widgets/abstract-widget.php'; require __DIR__ . '/widgets/abstract-gallery-widget.php'; require __DIR__ . '/widgets/abstract-calendar-widget.php'; require __DIR__ . '/widgets/search-form-widget.php'; require __DIR__ . '/widgets/search-results-widget.php'; require __DIR__ . '/widgets/rooms-widget.php'; require __DIR__ . '/widgets/room-widget.php'; require __DIR__ . '/widgets/services-widget.php'; require __DIR__ . '/widgets/rates-widget.php'; require __DIR__ . '/widgets/availability-widget.php'; require __DIR__ . '/widgets/booking-confirmation-widget.php'; require __DIR__ . '/widgets/checkout-widget.php'; require __DIR__ . '/widgets/availability-calendar-widget.php'; require __DIR__ . '/widgets/accommodation/abstract-accommodation-widget.php'; require __DIR__ . '/widgets/accommodation/featured-image-widget.php'; require __DIR__ . '/widgets/accommodation/attribute-widget.php'; require __DIR__ . '/widgets/accommodation/attributes-widget.php'; require __DIR__ . '/widgets/accommodation/content-widget.php'; require __DIR__ . '/widgets/accommodation/gallery-widget.php'; require __DIR__ . '/widgets/accommodation/price-widget.php'; require __DIR__ . '/widgets/accommodation/title-widget.php'; return array( new \mphbe\widgets\SearchFormWidget(), new \mphbe\widgets\SearchResultsWidget(), new \mphbe\widgets\RoomsWidget(), new \mphbe\widgets\RoomWidget(), new \mphbe\widgets\ServicesWidget(), new \mphbe\widgets\RatesWidget(), new \mphbe\widgets\AvailabilityWidget(), new \mphbe\widgets\BookingConfirmationWidget(), new \mphbe\widgets\CheckoutWidget(), new \mphbe\widgets\AvailabilityCalendarWidget(), new \mphbe\widgets\AccommodationFeaturedImageWidget(), new \mphbe\widgets\AccommodationAttributeWidget(), new \mphbe\widgets\AccommodationAttributesWidget(), new \mphbe\widgets\AccommodationContentWidget(), new \mphbe\widgets\AccommodationGalleryWidget(), new \mphbe\widgets\AccommodationPriceWidget(), new \mphbe\widgets\AccommodationTitleWidget(), ); } /** * @param \Elementor\Widgets_Manager */ public function registerWidgets( $widgetsManager ) { foreach ( $this->widgets() as $widget ) { $widgetsManager->register( $widget ); } } public function enqueuePreviewStyles() { wp_enqueue_style( 'mphb-flexslider-css' ); } public function addAvailableRoomsData() { $readableStatuses = array( 'publish' ); if ( current_user_can( 'read_private_posts' ) ) { $readableStatuses[] = 'private'; } $roomTypes = MPHB()->getRoomTypePersistence()->getPosts( array( 'post_status' => $readableStatuses, ) ); array_walk( $roomTypes, array( MPHB()->getPublicScriptManager(), 'addRoomTypeData' ) ); } public static function create() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } } }