From 26792de205d95ec131a206d34867bca50b32d241 Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Thu, 14 Sep 2023 01:08:48 +0300 Subject: [PATCH] - updated enqueue classes; - updated admin-navmenu class (removed support WordPress < 5.4); --- includes/admin/class-admin.php | 13 + includes/admin/class-enqueue.php | 748 +++++++++++++++++++ includes/admin/class-secure.php | 2 +- includes/admin/core/class-admin-enqueue.php | 753 -------------------- includes/admin/core/class-admin-navmenu.php | 45 +- includes/class-init.php | 26 +- includes/common/class-enqueue.php | 86 +-- includes/core/class-enqueue.php | 442 ------------ includes/frontend/class-enqueue.php | 427 +++++++++++ includes/frontend/class-init.php | 14 + 10 files changed, 1265 insertions(+), 1291 deletions(-) create mode 100644 includes/admin/class-enqueue.php delete mode 100644 includes/admin/core/class-admin-enqueue.php delete mode 100644 includes/core/class-enqueue.php create mode 100644 includes/frontend/class-enqueue.php diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index c2293a52..cdb76b36 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -86,6 +86,7 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { } public function includes() { + $this->enqueue(); $this->notices(); $this->secure(); } @@ -2041,6 +2042,18 @@ if ( ! class_exists( 'um\admin\Admin' ) ) { return $parent_file; } + /** + * @since 2.6.12 + * + * @return Enqueue + */ + public function enqueue() { + if ( empty( UM()->classes['um\admin\enqueue'] ) ) { + UM()->classes['um\admin\enqueue'] = new Enqueue(); + } + return UM()->classes['um\admin\enqueue']; + } + /** * @since 2.0 * diff --git a/includes/admin/class-enqueue.php b/includes/admin/class-enqueue.php new file mode 100644 index 00000000..e7ce6786 --- /dev/null +++ b/includes/admin/class-enqueue.php @@ -0,0 +1,748 @@ +js_url = UM_URL . 'includes/admin/assets/js/'; + $this->css_url = UM_URL . 'includes/admin/assets/css/'; + + $this->front_js_baseurl = UM_URL . 'assets/js/'; + $this->front_css_baseurl = UM_URL . 'assets/css/'; + + $this->um_cpt_form_screen = false; + + add_action( 'admin_head', array( &$this, 'admin_head' ), 9 ); + + add_action( 'admin_enqueue_scripts', array( &$this, 'admin_enqueue_scripts' ) ); + + add_filter( 'enter_title_here', array( &$this, 'enter_title_here' ) ); + + add_action( 'load-user-new.php', array( &$this, 'enqueue_role_wrapper' ) ); + add_action( 'load-user-edit.php', array( &$this, 'enqueue_role_wrapper' ) ); + + add_action( 'load-post-new.php', array( &$this, 'enqueue_cpt_scripts' ) ); + add_action( 'load-post.php', array( &$this, 'enqueue_cpt_scripts' ) ); + + global $wp_version; + if ( version_compare( $wp_version, '5.8', '>=' ) ) { + add_filter( 'block_categories_all', array( &$this, 'blocks_category' ), 10, 2 ); + } else { + add_filter( 'block_categories', array( &$this, 'blocks_category' ), 10, 2 ); + } + add_action( 'enqueue_block_assets', array( &$this, 'block_editor' ), 11 ); + } + + + /** + * Enqueue Gutenberg Block Editor assets + */ + public function block_editor() { + $this->register_jquery_ui(); + wp_register_style( 'um_members', UM_URL . 'assets/css/um-members.css', array( 'um_ui' ), UM_VERSION ); + if ( is_rtl() ) { + wp_register_style( 'um_members_rtl', UM_URL . 'assets/css/um-members-rtl.css', array( 'um_members' ), UM_VERSION ); + } + wp_register_style( 'um_styles', UM_URL . 'assets/css/um-styles.css', array(), UM_VERSION ); + wp_register_style( 'um_profile', UM_URL . 'assets/css/um-profile.css', array(), UM_VERSION ); + wp_register_style( 'um_crop', UM_URL . 'assets/css/um-crop.css', array(), UM_VERSION ); + wp_register_style( 'um_responsive', UM_URL . 'assets/css/um-responsive.css', array( 'um_profile', 'um_crop' ), UM_VERSION ); + wp_register_style( 'um_account', UM_URL . 'assets/css/um-account.css', array(), UM_VERSION ); + wp_register_style( 'um_default_css', UM_URL . 'assets/css/um-old-default.css', array(), UM_VERSION ); + wp_register_style( 'um_fonticons_fa', UM_URL . 'assets/css/um-fonticons-fa.css', array(), UM_VERSION ); + wp_register_style( 'select2', UM_URL . 'assets/css/select2/select2' . $this->suffix . '.css', array(), UM_VERSION ); + wp_register_style( 'um_fonticons_ii', UM_URL . 'assets/css/um-fonticons-ii.css', array(), UM_VERSION ); + + wp_register_script( 'um_admin_blocks_shortcodes', UM_URL . 'assets/js/um-blocks' . $this->suffix . '.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), UM_VERSION, true ); + wp_set_script_translations( 'um_admin_blocks_shortcodes', 'ultimate-member' ); + + if ( ! empty( UM()->account()->get_tab_fields( 'notifications', array() ) ) ) { + $notifications_enabled = 1; + } else { + $notifications_enabled = 0; + } + + $um_account_settings = array( + 'general' => array( + 'label' => __( 'General', 'ultimate-member' ), + 'enabled' => 1, + ), + 'password' => array( + 'label' => __( 'Password', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_password' ), + ), + 'privacy' => array( + 'label' => __( 'Privacy', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_privacy' ), + ), + 'notifications' => array( + 'label' => __( 'Notifications', 'ultimate-member' ), + 'enabled' => $notifications_enabled, + ), + 'delete' => array( + 'label' => __( 'Delete', 'ultimate-member' ), + 'enabled' => UM()->options()->get( 'account_tab_delete' ), + ), + ); + $um_account_settings = apply_filters( 'um_extend_account_settings', $um_account_settings ); + wp_localize_script( 'um_admin_blocks_shortcodes', 'um_account_settings', $um_account_settings ); + + wp_enqueue_script( 'um_admin_blocks_shortcodes' ); + + wp_register_script( 'select2', UM_URL . 'assets/js/select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), UM_VERSION, true ); + wp_register_script( 'um_datetime', UM_URL . 'assets/js/pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_date', UM_URL . 'assets/js/pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_time', UM_URL . 'assets/js/pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + wp_register_script( 'um_conditional', UM_URL . 'assets/js/um-conditional' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); + wp_register_script( 'um_scripts', UM_URL . 'assets/js/um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'select2' ), UM_VERSION, true ); + $max_upload_size = wp_max_upload_size(); + if ( ! $max_upload_size ) { + $max_upload_size = 0; + } + + $localize_data = apply_filters( + 'um_enqueue_localize_data', + array( + 'max_upload_size' => $max_upload_size, + 'nonce' => wp_create_nonce( 'um-frontend-nonce' ), + ) + ); + wp_localize_script( 'um_scripts', 'um_scripts', $localize_data ); + + wp_register_script( 'um_dropdown', UM_URL . 'assets/js/dropdown' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_members', UM_URL . 'assets/js/um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), UM_VERSION, true ); + + wp_register_script( 'um_account', UM_URL . 'assets/js/um-account' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); + wp_register_script( 'um_scrollbar', UM_URL . 'assets/js/simplebar' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_crop', UM_URL . 'assets/js/um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_functions', UM_URL . 'assets/js/um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), UM_VERSION, true ); + wp_register_script( 'um_responsive', UM_URL . 'assets/js/um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), UM_VERSION, true ); + + // render blocks + wp_enqueue_script( 'um_datetime' ); + wp_enqueue_script( 'um_datetime_date' ); + wp_enqueue_script( 'um_datetime_time' ); + wp_enqueue_script( 'um_conditional' ); + wp_enqueue_script( 'um_dropdown' ); + wp_enqueue_script( 'um_members' ); + wp_enqueue_script( 'um_account' ); + wp_enqueue_script( 'um_scrollbar' ); + wp_enqueue_script( 'um_crop' ); + wp_enqueue_script( 'um_functions' ); + wp_enqueue_script( 'um_responsive' ); + + wp_enqueue_style( 'um_fonticons_ii' ); + wp_enqueue_style( 'select2' ); + wp_enqueue_style( 'um_default_css' ); + wp_enqueue_style( 'um_fonticons_fa' ); + wp_enqueue_style( 'um_members' ); + wp_enqueue_style( 'um_styles' ); + wp_enqueue_style( 'um_profile' ); + wp_enqueue_style( 'um_crop' ); + wp_enqueue_style( 'um_responsive' ); + wp_enqueue_style( 'um_account' ); + + $custom_css = '.um{opacity: 1;}.um_request_name {display: none !important;}'; + + wp_add_inline_style( 'um_styles', $custom_css ); + } + + + public function enqueue_role_wrapper() { + add_action( 'admin_enqueue_scripts', array( &$this, 'load_role_wrapper' ) ); + } + + + /** + * + */ + public function enqueue_cpt_scripts() { + // phpcs:ignore WordPress.Security.NonceVerification + if ( ( isset( $_GET['post_type'] ) && 'um_form' === sanitize_key( $_GET['post_type'] ) ) || ( isset( $_GET['post'] ) && 'um_form' === get_post_type( absint( $_GET['post'] ) ) ) ) { + $this->um_cpt_form_screen = true; + add_action( 'admin_footer', array( $this, 'admin_footer_scripts' ), 20 ); + } + } + + + /** + * + */ + public function enqueue_frontend_preview_assets() { + //scripts for FRONTEND PREVIEW + if ( class_exists( 'WooCommerce' ) ) { + wp_dequeue_style( 'select2' ); + wp_deregister_style( 'select2' ); + + wp_dequeue_script( 'select2' ); + wp_deregister_script( 'select2' ); + } + + wp_register_script( 'select2', $this->front_js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), '4.0.13', true ); + wp_register_script( 'um_jquery_form', $this->front_js_baseurl . 'um-jquery-form' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_fileupload', $this->front_js_baseurl . 'um-fileupload.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_crop', $this->front_js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_tipsy', $this->front_js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_functions', $this->front_js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'um_tipsy', 'um_scrollbar' ), UM_VERSION, true ); + + wp_register_script( 'um_datetime', $this->front_js_baseurl . 'pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_date', $this->front_js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_time', $this->front_js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + //wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + // load a localized version for date/time + $locale = get_locale(); + if ( $locale ) { + if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { + wp_register_script( 'um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { + wp_register_script( 'um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + } + } + + wp_register_script( 'um_scripts', $this->front_js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'um_functions', 'um_crop', 'um_raty', 'select2', 'um_jquery_form', 'um_fileupload', 'um_datetime', 'um_datetime_date', 'um_datetime_time'/*, 'um_datetime_legacy'*/ ), UM_VERSION, true ); + wp_register_script( 'um_responsive', $this->front_js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'um_scripts' ), UM_VERSION, true ); + wp_register_script( 'um_modal', $this->front_js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'um_responsive' ), UM_VERSION, true ); + + wp_register_style( 'select2', $this->front_css_baseurl . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); + wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), UM_VERSION ); + wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), UM_VERSION ); + wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version ); + + wp_register_style( 'um_scrollbar', $this->front_css_baseurl . 'simplebar.css', array(), ultimatemember_version ); + wp_register_style( 'um_crop', $this->front_css_baseurl . 'um-crop.css', array(), ultimatemember_version ); + wp_register_style( 'um_tipsy', $this->front_css_baseurl . 'um-tipsy.css', array(), ultimatemember_version ); + wp_register_style( 'um_responsive', $this->front_css_baseurl . 'um-responsive.css', array(), ultimatemember_version ); + wp_register_style( 'um_modal', $this->front_css_baseurl . 'um-modal.css', array(), ultimatemember_version ); + wp_register_style( 'um_styles', $this->front_css_baseurl . 'um-styles.css', array(), ultimatemember_version ); + wp_register_style( 'um_members', $this->front_css_baseurl . 'um-members.css', array(), ultimatemember_version ); + wp_register_style( 'um_profile', $this->front_css_baseurl . 'um-profile.css', array(), ultimatemember_version ); + wp_register_style( 'um_account', $this->front_css_baseurl . 'um-account.css', array(), ultimatemember_version ); + wp_register_style( 'um_misc', $this->front_css_baseurl . 'um-misc.css', array(), ultimatemember_version ); + wp_register_style( 'um_default_css', $this->front_css_baseurl . 'um-old-default.css', array( 'um_crop', 'um_tipsy', 'um_raty', 'um_responsive', 'um_modal', 'um_styles', 'um_members', 'um_profile', 'um_account', 'um_misc', 'um_datetime_date', 'um_datetime_time', 'um_scrollbar', 'select2' ), ultimatemember_version ); + + wp_enqueue_script( 'um_modal' ); + wp_enqueue_style( 'um_default_css' ); + } + + + /** + * Load js for Add/Edit User form + */ + public function load_role_wrapper() { + wp_register_script( 'um_admin_role_wrapper', $this->js_url . 'um-admin-role-wrapper.js', array( 'jquery' ), ultimatemember_version, true ); + $localize_roles_data = get_option( 'um_roles', array() ); + wp_localize_script( 'um_admin_role_wrapper', 'um_roles', (array) $localize_roles_data ); + wp_enqueue_script( 'um_admin_role_wrapper' ); + } + + + /** + * Enter title placeholder + * + * @param $title + * + * @return string + */ + public function enter_title_here( $title ) { + $screen = get_current_screen(); + if ( 'um_directory' === $screen->post_type ) { + $title = __( 'e.g. Member Directory', 'ultimate-member' ); + } elseif ( 'um_form' === $screen->post_type ) { + $title = __( 'e.g. New Registration Form', 'ultimate-member' ); + } + return $title; + } + + + /** + * Runs on admin head + */ + public function admin_head() { + if ( UM()->admin()->is_plugin_post_type() ) { ?> + + css_url . 'um-admin-form.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_form' ); + + wp_register_script( 'um_admin_form', $this->js_url . 'um-admin-form.js', array( 'jquery' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_form' ); + } + + + /** + * Load Forms + */ + public function load_forms() { + if ( class_exists( 'WooCommerce' ) ) { + wp_dequeue_style( 'select2' ); + wp_deregister_style( 'select2' ); + + wp_dequeue_script( 'select2' ); + wp_deregister_script( 'select2' ); + } + + wp_register_script( 'select2', $this->front_js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), '4.0.13', true ); + wp_register_style( 'select2', $this->front_css_baseurl . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); + + wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker', 'um_ui', 'select2' ), UM_VERSION ); + wp_enqueue_style( 'um_admin_forms' ); + + wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery', 'wp-i18n', 'select2' ), UM_VERSION, true ); + + wp_localize_script( + 'um_admin_forms', + 'um_forms_data', + array( + 'successfully_redirect' => add_query_arg( + array( + 'page' => 'um_options', + 'tab' => 'misc', + 'msg' => 'updated', + ), + admin_url( 'admin.php' ) + ), + 'md_sorting_data_types' => UM()->member_directory()->sort_data_types, + ) + ); + + wp_enqueue_script( 'um_admin_forms' ); + } + + + /** + * Load dashboard + */ + public function load_dashboard() { + wp_register_style( 'um_admin_dashboard', $this->css_url . 'um-admin-dashboard.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_dashboard' ); + } + + + /** + * Load settings + */ + public function load_settings() { + wp_register_style( 'um_admin_settings', $this->css_url . 'um-admin-settings.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_settings' ); + + wp_register_script( 'um_admin_settings', $this->js_url . 'um-admin-settings.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_settings' ); + } + + + /** + * Load modal + */ + public function load_modal() { + wp_register_style( 'um_admin_modal', $this->css_url . 'um-admin-modal.css', array( 'wp-color-picker' ), ultimatemember_version ); + wp_enqueue_style( 'um_admin_modal' ); + + wp_register_script( 'um_admin_modal', $this->js_url . 'um-admin-modal.js', array( 'jquery', 'editor', 'wp-util', 'wp-color-picker', 'wp-tinymce', 'wp-i18n', 'jquery-ui-tooltip', 'um_admin_scripts' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_modal' ); + } + + + /** + * Field Processing + */ + public function load_field() { + wp_register_script( 'um_admin_field', $this->js_url . 'um-admin-field.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_field' ); + } + + + /** + * Load Builder + */ + public function load_builder() { + wp_register_script( 'um_admin_builder', $this->js_url . 'um-admin-builder.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_builder' ); + + //hide footer text on add/edit UM Forms + //layouts crashed because we load and hide metaboxes + //and WP calculate page height + $hide_footer = false; + global $pagenow, $post; + // phpcs:ignore WordPress.Security.NonceVerification + if ( ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) && ( ( isset( $_GET['post_type'] ) && 'um_form' === sanitize_key( $_GET['post_type'] ) ) || ( isset( $post->post_type ) && 'um_form' === $post->post_type ) ) ) { + $hide_footer = true; + } + + $localize_data = array( + 'hide_footer' => $hide_footer, + ); + wp_localize_script( 'um_admin_builder', 'um_admin_builder_data', $localize_data ); + + wp_register_script( 'um_admin_dragdrop', $this->js_url . 'um-admin-dragdrop.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_dragdrop' ); + + wp_register_style( 'um_admin_builder', $this->css_url . 'um-admin-builder.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_builder' ); + } + + + /** + * Load core WP styles/scripts + */ + public function load_core_wp() { + wp_enqueue_script( 'jquery-ui-draggable' ); + wp_enqueue_script( 'jquery-ui-sortable' ); + + wp_enqueue_script( 'jquery-ui-tooltip' ); + } + + + /** + * Load Admin Styles + */ + public function load_css() { + wp_register_style( 'um_admin_menu', $this->css_url . 'um-admin-menu.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_menu' ); + + wp_register_style( 'um_admin_columns', $this->css_url . 'um-admin-columns.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_columns' ); + + wp_register_style( 'um_admin_misc', $this->css_url . 'um-admin-misc.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_misc' ); + } + + + /** + * Load functions js + */ + public function load_functions() { + wp_register_script( 'um_scrollbar', UM_URL . 'assets/js/simplebar.js', array( 'jquery' ), ultimatemember_version, true ); + wp_register_script( 'um_functions', UM_URL . 'assets/js/um-functions.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_functions' ); + } + + + /** + * Load Fonticons + */ + public function load_fonticons() { + wp_register_style( 'um_fonticons_ii', UM_URL . 'assets/css/um-fonticons-ii.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_fonticons_ii' ); + + wp_register_style( 'um_fonticons_fa', UM_URL . 'assets/css/um-fonticons-fa.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_fonticons_fa' ); + } + + + /** + * Load global css + */ + public function load_global_scripts() { + wp_register_script( 'um_admin_global', $this->js_url . 'um-admin-global.js', array( 'jquery' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_global' ); + + wp_register_style( 'um_admin_global', $this->css_url . 'um-admin-global.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_global' ); + } + + + /** + * Load jQuery custom code + */ + public function load_custom_scripts() { + wp_register_script( 'um_datetime', $this->front_js_baseurl . 'pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true ); + wp_register_script( 'um_datetime_date', $this->front_js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); + wp_register_script( 'um_datetime_time', $this->front_js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); + //wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); + // load a localized version for date/time + $locale = get_locale(); + if ( $locale ) { + if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { + wp_register_script( 'um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); + } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { + wp_register_script( 'um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); + } + } + + wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version ); + wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), ultimatemember_version ); + wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version ); + + wp_enqueue_style( 'um_datetime_date' ); + wp_enqueue_style( 'um_datetime_time' ); + + wp_register_script( 'um_admin_scripts', $this->js_url . 'um-admin-scripts.js', array( 'jquery', 'wp-util', 'wp-color-picker', 'um_datetime', 'um_datetime_date', 'um_datetime_time'/*, 'um_datetime_legacy'*/ ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_scripts' ); + } + + + /** + * Load jQuery custom code + */ + public function load_nav_manus_scripts() { + wp_register_script( 'um_admin_nav_manus', $this->js_url . 'um-admin-nav-menu.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_nav_manus' ); + } + + + /** + * Load AJAX + */ + public function load_ajax_js() { + wp_register_script( 'um_admin_ajax', $this->js_url . 'um-admin-ajax.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); + wp_enqueue_script( 'um_admin_ajax' ); + } + + + /** + * Load Gutenberg scripts + */ + public function load_gutenberg_js() { + /** This filter is documented in includes/core/class-blocks.php */ + $disable_script = apply_filters( 'um_disable_blocks_script', false ); + if ( $disable_script ) { + return; + } + + $restricted_blocks = UM()->options()->get( 'restricted_blocks' ); + if ( empty( $restricted_blocks ) ) { + return; + } + + wp_register_script( 'um_block_js', $this->js_url . 'um-admin-blocks.js', array( 'wp-i18n', 'wp-blocks', 'wp-components', 'wp-hooks' ), ultimatemember_version, true ); + wp_set_script_translations( 'um_block_js', 'ultimate-member' ); + + $restrict_options = array(); + $roles = UM()->roles()->get_roles( false ); + if ( ! empty( $roles ) ) { + foreach ( $roles as $role_key => $title ) { + $restrict_options[] = array( + 'label' => $title, + 'value' => $role_key, + ); + } + } + wp_localize_script( 'um_block_js', 'um_restrict_roles', $restrict_options ); + + wp_enqueue_script( 'um_block_js' ); + + do_action( 'um_load_gutenberg_js' ); + } + + + /** + * Add Gutenberg category for UM shortcodes + * + * @param array $categories + * @param \WP_Block_Editor_Context $context + * + * @return array + */ + public function blocks_category( $categories, $context ) { + $enable_blocks = UM()->options()->get( 'enable_blocks' ); + if ( empty( $enable_blocks ) ) { + return $categories; + } + + return array_merge( + $categories, + array( + array( + 'slug' => 'um-blocks', + 'title' => __( 'Ultimate Member Blocks', 'ultimate-member' ), + ), + ) + ); + } + + /** + * Load localize scripts + */ + public function load_localize_scripts() { + + /** + * UM hook + * + * @type filter + * @title um_admin_enqueue_localize_data + * @description Extend localize data at wp-admin side + * @input_vars + * [{"var":"$localize_data","type":"array","desc":"Localize Data"}] + * @change_log + * ["Since: 2.0"] + * @usage add_filter( 'um_admin_enqueue_localize_data', 'function_name', 10, 1 ); + * @example + * + */ + $localize_data = apply_filters( 'um_admin_enqueue_localize_data', array( 'nonce' => wp_create_nonce( 'um-admin-nonce' ) ) ); + + wp_localize_script( 'um_admin_global', 'um_admin_scripts', $localize_data ); + } + + + /** + * Enqueue scripts and styles + */ + public function admin_enqueue_scripts() { + if ( UM()->admin()->is_um_screen() ) { + + /*if ( get_post_type() != 'shop_order' ) { + UM()->enqueue()->wp_enqueue_scripts(); + }*/ + + $modal_deps = array( 'um-admin-scripts' ); + if ( $this->um_cpt_form_screen ) { + $this->enqueue_frontend_preview_assets(); + $modal_deps[] = 'um-responsive'; + } + + $this->load_functions(); + $this->load_global_scripts(); + $this->load_form(); + $this->load_forms(); + $this->load_custom_scripts(); + $this->load_modal(); + $this->load_dashboard(); + $this->load_settings(); + $this->load_field(); + $this->load_builder(); + $this->load_css(); + $this->load_core_wp(); + $this->load_ajax_js(); + $this->load_fonticons(); + $this->load_localize_scripts(); + + //scripts for frontend preview + UM()->enqueue()->load_imagecrop(); + UM()->enqueue()->load_css(); + UM()->enqueue()->load_tipsy(); + UM()->enqueue()->load_modal(); + UM()->enqueue()->load_responsive(); + + wp_register_script( 'um_raty', UM_URL . 'assets/js/um-raty' . UM()->enqueue()->suffix . '.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true ); + wp_register_style( 'um_raty', UM_URL . 'assets/css/um-raty.css', array(), ultimatemember_version ); + + wp_register_style( 'um_default_css', UM_URL . 'assets/css/um-old-default.css', '', ultimatemember_version, 'all' ); + wp_enqueue_style( 'um_default_css' ); + + if ( is_rtl() ) { + wp_register_style( 'um_admin_rtl', $this->css_url . 'um-admin-rtl.css', array(), ultimatemember_version ); + wp_enqueue_style( 'um_admin_rtl' ); + } + } else { + + $this->load_global_scripts(); + $this->load_localize_scripts(); + + } + + global $wp_version, $current_screen; + + if ( version_compare( $wp_version, '5.0', '>=' ) ) { + if ( isset( $current_screen ) && $current_screen->is_block_editor() ) { + $this->load_gutenberg_js(); + } + } + } + + + /** + * Print editor scripts if they are not printed by default + */ + public function admin_footer_scripts() { + /** + * @var $class \_WP_Editors + */ + $class = '\_WP_Editors'; + + if ( did_action( 'print_default_editor_scripts' ) ) { + return; + } + if ( did_action( 'wp_tiny_mce_init' ) ) { + return; + } + if ( has_action( 'admin_print_footer_scripts', array( $class, 'editor_js' ) ) ) { + return; + } + + if ( ! class_exists( $class, false ) ) { + require_once( ABSPATH . WPINC . '/class-wp-editor.php' ); + } + + $class::force_uncompressed_tinymce(); + $class::enqueue_scripts(); + $class::editor_js(); + } + +} diff --git a/includes/admin/class-secure.php b/includes/admin/class-secure.php index 5c35cb43..bb792fc4 100644 --- a/includes/admin/class-secure.php +++ b/includes/admin/class-secure.php @@ -61,7 +61,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) { } // phpcs:enable WordPress.Security.NonceVerification - wp_register_script( 'um_admin_secure', UM()->admin_enqueue()->js_url . 'um-admin-secure.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_admin_secure', UM()->admin()->enqueue()->js_url . 'um-admin-secure.js', array( 'jquery' ), UM_VERSION, true ); wp_enqueue_script( 'um_admin_secure' ); } diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php deleted file mode 100644 index debc4cbe..00000000 --- a/includes/admin/core/class-admin-enqueue.php +++ /dev/null @@ -1,753 +0,0 @@ -js_url = UM_URL . 'includes/admin/assets/js/'; - $this->css_url = UM_URL . 'includes/admin/assets/css/'; - - $this->front_js_baseurl = UM_URL . 'assets/js/'; - $this->front_css_baseurl = UM_URL . 'assets/css/'; - - $this->suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined( 'UM_SCRIPT_DEBUG' ) ) ? '' : '.min'; - - $this->um_cpt_form_screen = false; - - add_action( 'admin_head', array( &$this, 'admin_head' ), 9 ); - - add_action( 'admin_enqueue_scripts', array( &$this, 'admin_enqueue_scripts' ) ); - - add_filter( 'enter_title_here', array( &$this, 'enter_title_here' ) ); - - add_action( 'load-user-new.php', array( &$this, 'enqueue_role_wrapper' ) ); - add_action( 'load-user-edit.php', array( &$this, 'enqueue_role_wrapper' ) ); - - add_action( 'load-post-new.php', array( &$this, 'enqueue_cpt_scripts' ) ); - add_action( 'load-post.php', array( &$this, 'enqueue_cpt_scripts' ) ); - - global $wp_version; - if ( version_compare( $wp_version, '5.8', '>=' ) ) { - add_filter( 'block_categories_all', array( &$this, 'blocks_category' ), 10, 2 ); - } else { - add_filter( 'block_categories', array( &$this, 'blocks_category' ), 10, 2 ); - } - add_action( 'enqueue_block_assets', array( &$this, 'block_editor' ), 11 ); - } - - - /** - * Enqueue Gutenberg Block Editor assets - */ - public function block_editor() { - wp_register_style( 'um_ui', UM_URL . 'assets/libs/jquery-ui/jquery-ui' . $this->suffix . '.css', array(), '1.12.1' ); - wp_register_style( 'um_members', UM_URL . 'assets/css/um-members.css', array( 'um_ui' ), UM_VERSION ); - if ( is_rtl() ) { - wp_register_style( 'um_members_rtl', UM_URL . 'assets/css/um-members-rtl.css', array( 'um_members' ), UM_VERSION ); - } - wp_register_style( 'um_styles', UM_URL . 'assets/css/um-styles.css', array(), UM_VERSION ); - wp_register_style( 'um_profile', UM_URL . 'assets/css/um-profile.css', array(), UM_VERSION ); - wp_register_style( 'um_crop', UM_URL . 'assets/css/um-crop.css', array(), UM_VERSION ); - wp_register_style( 'um_responsive', UM_URL . 'assets/css/um-responsive.css', array( 'um_profile', 'um_crop' ), UM_VERSION ); - wp_register_style( 'um_account', UM_URL . 'assets/css/um-account.css', array(), UM_VERSION ); - wp_register_style( 'um_default_css', UM_URL . 'assets/css/um-old-default.css', array(), UM_VERSION ); - wp_register_style( 'um_fonticons_fa', UM_URL . 'assets/css/um-fonticons-fa.css', array(), UM_VERSION ); - wp_register_style( 'select2', UM_URL . 'assets/css/select2/select2' . $this->suffix . '.css', array(), UM_VERSION ); - wp_register_style( 'um_fonticons_ii', UM_URL . 'assets/css/um-fonticons-ii.css', array(), UM_VERSION ); - - wp_register_script( 'um_admin_blocks_shortcodes', UM_URL . 'assets/js/um-blocks' . $this->suffix . '.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), UM_VERSION, true ); - wp_set_script_translations( 'um_admin_blocks_shortcodes', 'ultimate-member' ); - - if ( ! empty( UM()->account()->get_tab_fields( 'notifications', array() ) ) ) { - $notifications_enabled = 1; - } else { - $notifications_enabled = 0; - } - - $um_account_settings = array( - 'general' => array( - 'label' => __( 'General', 'ultimate-member' ), - 'enabled' => 1, - ), - 'password' => array( - 'label' => __( 'Password', 'ultimate-member' ), - 'enabled' => UM()->options()->get( 'account_tab_password' ), - ), - 'privacy' => array( - 'label' => __( 'Privacy', 'ultimate-member' ), - 'enabled' => UM()->options()->get( 'account_tab_privacy' ), - ), - 'notifications' => array( - 'label' => __( 'Notifications', 'ultimate-member' ), - 'enabled' => $notifications_enabled, - ), - 'delete' => array( - 'label' => __( 'Delete', 'ultimate-member' ), - 'enabled' => UM()->options()->get( 'account_tab_delete' ), - ), - ); - $um_account_settings = apply_filters( 'um_extend_account_settings', $um_account_settings ); - wp_localize_script( 'um_admin_blocks_shortcodes', 'um_account_settings', $um_account_settings ); - - wp_enqueue_script( 'um_admin_blocks_shortcodes' ); - - wp_register_script( 'select2', UM_URL . 'assets/js/select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), UM_VERSION, true ); - wp_register_script( 'um_datetime', UM_URL . 'assets/js/pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_date', UM_URL . 'assets/js/pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_time', UM_URL . 'assets/js/pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - wp_register_script( 'um_conditional', UM_URL . 'assets/js/um-conditional' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); - wp_register_script( 'um_scripts', UM_URL . 'assets/js/um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', 'select2' ), UM_VERSION, true ); - $max_upload_size = wp_max_upload_size(); - if ( ! $max_upload_size ) { - $max_upload_size = 0; - } - - $localize_data = apply_filters( - 'um_enqueue_localize_data', - array( - 'max_upload_size' => $max_upload_size, - 'nonce' => wp_create_nonce( 'um-frontend-nonce' ), - ) - ); - wp_localize_script( 'um_scripts', 'um_scripts', $localize_data ); - - wp_register_script( 'um_dropdown', UM_URL . 'assets/js/dropdown' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_members', UM_URL . 'assets/js/um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), UM_VERSION, true ); - - wp_register_script( 'um_account', UM_URL . 'assets/js/um-account' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); - wp_register_script( 'um_scrollbar', UM_URL . 'assets/js/simplebar' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_crop', UM_URL . 'assets/js/um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_functions', UM_URL . 'assets/js/um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), UM_VERSION, true ); - wp_register_script( 'um_responsive', UM_URL . 'assets/js/um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), UM_VERSION, true ); - - // render blocks - wp_enqueue_script( 'um_datetime' ); - wp_enqueue_script( 'um_datetime_date' ); - wp_enqueue_script( 'um_datetime_time' ); - wp_enqueue_script( 'um_conditional' ); - wp_enqueue_script( 'um_dropdown' ); - wp_enqueue_script( 'um_members' ); - wp_enqueue_script( 'um_account' ); - wp_enqueue_script( 'um_scrollbar' ); - wp_enqueue_script( 'um_crop' ); - wp_enqueue_script( 'um_functions' ); - wp_enqueue_script( 'um_responsive' ); - - wp_enqueue_style( 'um_fonticons_ii' ); - wp_enqueue_style( 'select2' ); - wp_enqueue_style( 'um_default_css' ); - wp_enqueue_style( 'um_fonticons_fa' ); - wp_enqueue_style( 'um_members' ); - wp_enqueue_style( 'um_styles' ); - wp_enqueue_style( 'um_profile' ); - wp_enqueue_style( 'um_crop' ); - wp_enqueue_style( 'um_responsive' ); - wp_enqueue_style( 'um_account' ); - - $custom_css = '.um{opacity: 1;}.um_request_name {display: none !important;}'; - - wp_add_inline_style( 'um_styles', $custom_css ); - } - - - public function enqueue_role_wrapper() { - add_action( 'admin_enqueue_scripts', array( &$this, 'load_role_wrapper' ) ); - } - - - /** - * - */ - public function enqueue_cpt_scripts() { - // phpcs:ignore WordPress.Security.NonceVerification - if ( ( isset( $_GET['post_type'] ) && 'um_form' === sanitize_key( $_GET['post_type'] ) ) || ( isset( $_GET['post'] ) && 'um_form' === get_post_type( absint( $_GET['post'] ) ) ) ) { - $this->um_cpt_form_screen = true; - add_action( 'admin_footer', array( $this, 'admin_footer_scripts' ), 20 ); - } - } - - - /** - * - */ - public function enqueue_frontend_preview_assets() { - //scripts for FRONTEND PREVIEW - if ( class_exists( 'WooCommerce' ) ) { - wp_dequeue_style( 'select2' ); - wp_deregister_style( 'select2' ); - - wp_dequeue_script( 'select2' ); - wp_deregister_script( 'select2' ); - } - - wp_register_script( 'select2', $this->front_js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), '4.0.13', true ); - wp_register_script( 'um_jquery_form', $this->front_js_baseurl . 'um-jquery-form' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_fileupload', $this->front_js_baseurl . 'um-fileupload.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_crop', $this->front_js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_tipsy', $this->front_js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_functions', $this->front_js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'um_tipsy', 'um_scrollbar' ), UM_VERSION, true ); - - wp_register_script( 'um_datetime', $this->front_js_baseurl . 'pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_date', $this->front_js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_time', $this->front_js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - //wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - // load a localized version for date/time - $locale = get_locale(); - if ( $locale ) { - if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { - wp_register_script( 'um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { - wp_register_script( 'um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - } - } - - wp_register_script( 'um_scripts', $this->front_js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'um_functions', 'um_crop', 'um_raty', 'select2', 'um_jquery_form', 'um_fileupload', 'um_datetime', 'um_datetime_date', 'um_datetime_time'/*, 'um_datetime_legacy'*/ ), UM_VERSION, true ); - wp_register_script( 'um_responsive', $this->front_js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'um_scripts' ), UM_VERSION, true ); - wp_register_script( 'um_modal', $this->front_js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'um_responsive' ), UM_VERSION, true ); - - wp_register_style( 'select2', $this->front_css_baseurl . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); - wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), UM_VERSION ); - wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), UM_VERSION ); - wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version ); - - wp_register_style( 'um_scrollbar', $this->front_css_baseurl . 'simplebar.css', array(), ultimatemember_version ); - wp_register_style( 'um_crop', $this->front_css_baseurl . 'um-crop.css', array(), ultimatemember_version ); - wp_register_style( 'um_tipsy', $this->front_css_baseurl . 'um-tipsy.css', array(), ultimatemember_version ); - wp_register_style( 'um_responsive', $this->front_css_baseurl . 'um-responsive.css', array(), ultimatemember_version ); - wp_register_style( 'um_modal', $this->front_css_baseurl . 'um-modal.css', array(), ultimatemember_version ); - wp_register_style( 'um_styles', $this->front_css_baseurl . 'um-styles.css', array(), ultimatemember_version ); - wp_register_style( 'um_members', $this->front_css_baseurl . 'um-members.css', array(), ultimatemember_version ); - wp_register_style( 'um_profile', $this->front_css_baseurl . 'um-profile.css', array(), ultimatemember_version ); - wp_register_style( 'um_account', $this->front_css_baseurl . 'um-account.css', array(), ultimatemember_version ); - wp_register_style( 'um_misc', $this->front_css_baseurl . 'um-misc.css', array(), ultimatemember_version ); - wp_register_style( 'um_default_css', $this->front_css_baseurl . 'um-old-default.css', array( 'um_crop', 'um_tipsy', 'um_raty', 'um_responsive', 'um_modal', 'um_styles', 'um_members', 'um_profile', 'um_account', 'um_misc', 'um_datetime_date', 'um_datetime_time', 'um_scrollbar', 'select2' ), ultimatemember_version ); - - wp_enqueue_script( 'um_modal' ); - wp_enqueue_style( 'um_default_css' ); - } - - - /** - * Load js for Add/Edit User form - */ - public function load_role_wrapper() { - wp_register_script( 'um_admin_role_wrapper', $this->js_url . 'um-admin-role-wrapper.js', array( 'jquery' ), ultimatemember_version, true ); - $localize_roles_data = get_option( 'um_roles', array() ); - wp_localize_script( 'um_admin_role_wrapper', 'um_roles', (array) $localize_roles_data ); - wp_enqueue_script( 'um_admin_role_wrapper' ); - } - - - /** - * Enter title placeholder - * - * @param $title - * - * @return string - */ - public function enter_title_here( $title ) { - $screen = get_current_screen(); - if ( 'um_directory' === $screen->post_type ) { - $title = __( 'e.g. Member Directory', 'ultimate-member' ); - } elseif ( 'um_form' === $screen->post_type ) { - $title = __( 'e.g. New Registration Form', 'ultimate-member' ); - } - return $title; - } - - - /** - * Runs on admin head - */ - public function admin_head() { - if ( UM()->admin()->is_plugin_post_type() ) { ?> - - css_url . 'um-admin-form.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_form' ); - - wp_register_script( 'um_admin_form', $this->js_url . 'um-admin-form.js', array( 'jquery' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_form' ); - } - - - /** - * Load Forms - */ - public function load_forms() { - if ( class_exists( 'WooCommerce' ) ) { - wp_dequeue_style( 'select2' ); - wp_deregister_style( 'select2' ); - - wp_dequeue_script( 'select2' ); - wp_deregister_script( 'select2' ); - } - - wp_register_script( 'select2', $this->front_js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), '4.0.13', true ); - wp_register_style( 'select2', $this->front_css_baseurl . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); - - wp_register_style( 'um_ui', UM_URL . 'assets/libs/jquery-ui/jquery-ui' . $this->suffix . '.css', array(), '1.12.1' ); - wp_register_style( 'um_admin_forms', $this->css_url . 'um-admin-forms.css', array( 'wp-color-picker', 'um_ui', 'select2' ), UM_VERSION ); - wp_enqueue_style( 'um_admin_forms' ); - - wp_register_script( 'um_admin_forms', $this->js_url . 'um-admin-forms.js', array( 'jquery', 'wp-i18n', 'select2' ), UM_VERSION, true ); - - wp_localize_script( - 'um_admin_forms', - 'um_forms_data', - array( - 'successfully_redirect' => add_query_arg( - array( - 'page' => 'um_options', - 'tab' => 'misc', - 'msg' => 'updated', - ), - admin_url( 'admin.php' ) - ), - 'md_sorting_data_types' => UM()->member_directory()->sort_data_types, - ) - ); - - wp_enqueue_script( 'um_admin_forms' ); - } - - - /** - * Load dashboard - */ - public function load_dashboard() { - wp_register_style( 'um_admin_dashboard', $this->css_url . 'um-admin-dashboard.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_dashboard' ); - } - - - /** - * Load settings - */ - public function load_settings() { - wp_register_style( 'um_admin_settings', $this->css_url . 'um-admin-settings.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_settings' ); - - wp_register_script( 'um_admin_settings', $this->js_url . 'um-admin-settings.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_settings' ); - } - - - /** - * Load modal - */ - public function load_modal() { - wp_register_style( 'um_admin_modal', $this->css_url . 'um-admin-modal.css', array( 'wp-color-picker' ), ultimatemember_version ); - wp_enqueue_style( 'um_admin_modal' ); - - wp_register_script( 'um_admin_modal', $this->js_url . 'um-admin-modal.js', array( 'jquery', 'editor', 'wp-util', 'wp-color-picker', 'wp-tinymce', 'wp-i18n', 'jquery-ui-tooltip', 'um_admin_scripts' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_modal' ); - } - - - /** - * Field Processing - */ - public function load_field() { - wp_register_script( 'um_admin_field', $this->js_url . 'um-admin-field.js', array( 'jquery', 'wp-util', 'wp-i18n' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_field' ); - } - - - /** - * Load Builder - */ - public function load_builder() { - wp_register_script( 'um_admin_builder', $this->js_url . 'um-admin-builder.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_builder' ); - - //hide footer text on add/edit UM Forms - //layouts crashed because we load and hide metaboxes - //and WP calculate page height - $hide_footer = false; - global $pagenow, $post; - // phpcs:ignore WordPress.Security.NonceVerification - if ( ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) && ( ( isset( $_GET['post_type'] ) && 'um_form' === sanitize_key( $_GET['post_type'] ) ) || ( isset( $post->post_type ) && 'um_form' === $post->post_type ) ) ) { - $hide_footer = true; - } - - $localize_data = array( - 'hide_footer' => $hide_footer, - ); - wp_localize_script( 'um_admin_builder', 'um_admin_builder_data', $localize_data ); - - wp_register_script( 'um_admin_dragdrop', $this->js_url . 'um-admin-dragdrop.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_dragdrop' ); - - wp_register_style( 'um_admin_builder', $this->css_url . 'um-admin-builder.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_builder' ); - } - - - /** - * Load core WP styles/scripts - */ - public function load_core_wp() { - wp_enqueue_script( 'jquery-ui-draggable' ); - wp_enqueue_script( 'jquery-ui-sortable' ); - - wp_enqueue_script( 'jquery-ui-tooltip' ); - } - - - /** - * Load Admin Styles - */ - public function load_css() { - wp_register_style( 'um_admin_menu', $this->css_url . 'um-admin-menu.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_menu' ); - - wp_register_style( 'um_admin_columns', $this->css_url . 'um-admin-columns.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_columns' ); - - wp_register_style( 'um_admin_misc', $this->css_url . 'um-admin-misc.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_misc' ); - } - - - /** - * Load functions js - */ - public function load_functions() { - wp_register_script( 'um_scrollbar', UM_URL . 'assets/js/simplebar.js', array( 'jquery' ), ultimatemember_version, true ); - wp_register_script( 'um_functions', UM_URL . 'assets/js/um-functions.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_functions' ); - } - - - /** - * Load Fonticons - */ - public function load_fonticons() { - wp_register_style( 'um_fonticons_ii', UM_URL . 'assets/css/um-fonticons-ii.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_fonticons_ii' ); - - wp_register_style( 'um_fonticons_fa', UM_URL . 'assets/css/um-fonticons-fa.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_fonticons_fa' ); - } - - - /** - * Load global css - */ - public function load_global_scripts() { - wp_register_script( 'um_admin_global', $this->js_url . 'um-admin-global.js', array( 'jquery' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_global' ); - - wp_register_style( 'um_admin_global', $this->css_url . 'um-admin-global.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_global' ); - } - - - /** - * Load jQuery custom code - */ - public function load_custom_scripts() { - wp_register_script( 'um_datetime', $this->front_js_baseurl . 'pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true ); - wp_register_script( 'um_datetime_date', $this->front_js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); - wp_register_script( 'um_datetime_time', $this->front_js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); - //wp_register_script( 'um_datetime_legacy', $this->front_js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); - // load a localized version for date/time - $locale = get_locale(); - if ( $locale ) { - if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { - wp_register_script( 'um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); - } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { - wp_register_script( 'um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); - } - } - - wp_register_style( 'um_datetime', $this->front_css_baseurl . 'pickadate/default.css', array(), ultimatemember_version ); - wp_register_style( 'um_datetime_date', $this->front_css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), ultimatemember_version ); - wp_register_style( 'um_datetime_time', $this->front_css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version ); - - wp_enqueue_style( 'um_datetime_date' ); - wp_enqueue_style( 'um_datetime_time' ); - - wp_register_script( 'um_admin_scripts', $this->js_url . 'um-admin-scripts.js', array( 'jquery', 'wp-util', 'wp-color-picker', 'um_datetime', 'um_datetime_date', 'um_datetime_time'/*, 'um_datetime_legacy'*/ ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_scripts' ); - } - - - /** - * Load jQuery custom code - */ - public function load_nav_manus_scripts() { - wp_register_script( 'um_admin_nav_manus', $this->js_url . 'um-admin-nav-menu.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_nav_manus' ); - } - - - /** - * Load AJAX - */ - public function load_ajax_js() { - wp_register_script( 'um_admin_ajax', $this->js_url . 'um-admin-ajax.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true ); - wp_enqueue_script( 'um_admin_ajax' ); - } - - - /** - * Load Gutenberg scripts - */ - public function load_gutenberg_js() { - /** This filter is documented in includes/core/class-blocks.php */ - $disable_script = apply_filters( 'um_disable_blocks_script', false ); - if ( $disable_script ) { - return; - } - - $restricted_blocks = UM()->options()->get( 'restricted_blocks' ); - if ( empty( $restricted_blocks ) ) { - return; - } - - wp_register_script( 'um_block_js', $this->js_url . 'um-admin-blocks.js', array( 'wp-i18n', 'wp-blocks', 'wp-components', 'wp-hooks' ), ultimatemember_version, true ); - wp_set_script_translations( 'um_block_js', 'ultimate-member' ); - - $restrict_options = array(); - $roles = UM()->roles()->get_roles( false ); - if ( ! empty( $roles ) ) { - foreach ( $roles as $role_key => $title ) { - $restrict_options[] = array( - 'label' => $title, - 'value' => $role_key, - ); - } - } - wp_localize_script( 'um_block_js', 'um_restrict_roles', $restrict_options ); - - wp_enqueue_script( 'um_block_js' ); - - do_action( 'um_load_gutenberg_js' ); - } - - - /** - * Add Gutenberg category for UM shortcodes - * - * @param array $categories - * @param \WP_Block_Editor_Context $context - * - * @return array - */ - public function blocks_category( $categories, $context ) { - $enable_blocks = UM()->options()->get( 'enable_blocks' ); - if ( empty( $enable_blocks ) ) { - return $categories; - } - - return array_merge( - $categories, - array( - array( - 'slug' => 'um-blocks', - 'title' => __( 'Ultimate Member Blocks', 'ultimate-member' ), - ), - ) - ); - } - - /** - * Load localize scripts - */ - public function load_localize_scripts() { - - /** - * UM hook - * - * @type filter - * @title um_admin_enqueue_localize_data - * @description Extend localize data at wp-admin side - * @input_vars - * [{"var":"$localize_data","type":"array","desc":"Localize Data"}] - * @change_log - * ["Since: 2.0"] - * @usage add_filter( 'um_admin_enqueue_localize_data', 'function_name', 10, 1 ); - * @example - * - */ - $localize_data = apply_filters( 'um_admin_enqueue_localize_data', array( 'nonce' => wp_create_nonce( 'um-admin-nonce' ) ) ); - - wp_localize_script( 'um_admin_global', 'um_admin_scripts', $localize_data ); - } - - - /** - * Enqueue scripts and styles - */ - public function admin_enqueue_scripts() { - if ( UM()->admin()->is_um_screen() ) { - - /*if ( get_post_type() != 'shop_order' ) { - UM()->enqueue()->wp_enqueue_scripts(); - }*/ - - $modal_deps = array( 'um-admin-scripts' ); - if ( $this->um_cpt_form_screen ) { - $this->enqueue_frontend_preview_assets(); - $modal_deps[] = 'um-responsive'; - } - - $this->load_functions(); - $this->load_global_scripts(); - $this->load_form(); - $this->load_forms(); - $this->load_custom_scripts(); - $this->load_modal(); - $this->load_dashboard(); - $this->load_settings(); - $this->load_field(); - $this->load_builder(); - $this->load_css(); - $this->load_core_wp(); - $this->load_ajax_js(); - $this->load_fonticons(); - $this->load_localize_scripts(); - - //scripts for frontend preview - UM()->enqueue()->load_imagecrop(); - UM()->enqueue()->load_css(); - UM()->enqueue()->load_tipsy(); - UM()->enqueue()->load_modal(); - UM()->enqueue()->load_responsive(); - - wp_register_script( 'um_raty', UM_URL . 'assets/js/um-raty' . UM()->enqueue()->suffix . '.js', array( 'jquery', 'wp-i18n' ), ultimatemember_version, true ); - wp_register_style( 'um_raty', UM_URL . 'assets/css/um-raty.css', array(), ultimatemember_version ); - - wp_register_style( 'um_default_css', UM_URL . 'assets/css/um-old-default.css', '', ultimatemember_version, 'all' ); - wp_enqueue_style( 'um_default_css' ); - - if ( is_rtl() ) { - wp_register_style( 'um_admin_rtl', $this->css_url . 'um-admin-rtl.css', array(), ultimatemember_version ); - wp_enqueue_style( 'um_admin_rtl' ); - } - } else { - - $this->load_global_scripts(); - $this->load_localize_scripts(); - - } - - global $wp_version, $current_screen; - - if ( version_compare( $wp_version, '5.0', '>=' ) ) { - if ( isset( $current_screen ) && $current_screen->is_block_editor() ) { - $this->load_gutenberg_js(); - } - } - } - - - /** - * Print editor scripts if they are not printed by default - */ - public function admin_footer_scripts() { - /** - * @var $class \_WP_Editors - */ - $class = '\_WP_Editors'; - - if ( did_action( 'print_default_editor_scripts' ) ) { - return; - } - if ( did_action( 'wp_tiny_mce_init' ) ) { - return; - } - if ( has_action( 'admin_print_footer_scripts', array( $class, 'editor_js' ) ) ) { - return; - } - - if ( ! class_exists( $class, false ) ) { - require_once( ABSPATH . WPINC . '/class-wp-editor.php' ); - } - - $class::force_uncompressed_tinymce(); - $class::enqueue_scripts(); - $class::editor_js(); - } - - } -} diff --git a/includes/admin/core/class-admin-navmenu.php b/includes/admin/core/class-admin-navmenu.php index d2eba992..e4204e0e 100644 --- a/includes/admin/core/class-admin-navmenu.php +++ b/includes/admin/core/class-admin-navmenu.php @@ -1,17 +1,18 @@ __( 'Display Mode', 'ultimate-member' ), - 'um_nav_roles' => __( 'By Role', 'ultimate-member' ) + 'um_nav_roles' => __( 'By Role', 'ultimate-member' ), ); - if ( $wp_version < '5.4' ) { - add_action( 'admin_footer-nav-menus.php', array( &$this, '_wp_template' ) ); - add_action( 'load-nav-menus.php', array( &$this, 'enqueue_nav_menus_scripts' ) ); - } else { - add_action( 'load-customize.php', array( &$this, 'enqueue_nav_menus_scripts' ) ); - } + add_action( 'customize_controls_print_footer_scripts', array( &$this, '_wp_template' ) ); + add_action( 'load-customize.php', array( &$this, 'enqueue_nav_menus_scripts' ) ); add_action( 'wp_update_nav_menu_item', array( &$this, '_save' ), 10, 3 ); add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 20, 5 ); - //add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( $this, 'wp_nav_menu_item_custom_fields_customize_template' ), 20 ); //waiting wp.org answer } @@ -112,29 +106,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Navmenu' ) ) { } - /** - * - */ - function wp_nav_menu_item_custom_fields_customize_template() { - ?> -
-
-

- - <# console.log( data ); #> - -
-
- admin_enqueue()->load_nav_manus_scripts(); + UM()->admin()->enqueue()->load_nav_manus_scripts(); $menu_restriction_data = array(); diff --git a/includes/class-init.php b/includes/class-init.php index 4a22e0e7..c7959316 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -574,7 +574,6 @@ if ( ! class_exists( 'UM' ) ) { $this->admin_upgrade(); $this->admin_settings(); $this->columns(); - $this->admin_enqueue(); $this->metabox(); $this->users(); $this->dragdrop(); @@ -584,7 +583,6 @@ if ( ! class_exists( 'UM' ) ) { $this->theme_updater(); } elseif ( $this->is_request( 'frontend' ) ) { $this->frontend()->includes(); - $this->enqueue(); $this->account(); $this->password(); $this->login(); @@ -922,14 +920,13 @@ if ( ! class_exists( 'UM' ) ) { /** * @since 2.0 + * @depecated 2.6.12 * - * @return um\admin\core\Admin_Enqueue() + * @return um\admin\Enqueue */ - function admin_enqueue() { - if ( empty( $this->classes['admin_enqueue'] ) ) { - $this->classes['admin_enqueue'] = new um\admin\core\Admin_Enqueue(); - } - return $this->classes['admin_enqueue']; + public function admin_enqueue() { + _deprecated_function( __METHOD__, '2.6.12', 'UM()->admin()->enqueue()' ); + return $this->admin()->enqueue(); } @@ -1147,21 +1144,16 @@ if ( ! class_exists( 'UM' ) ) { return $this->classes['register']; } - /** * @since 2.0 + * @todo Make it deprecated and review extensions. * - * @return um\core\Enqueue + * @return um\frontend\Enqueue */ - function enqueue() { - if ( empty( $this->classes['enqueue'] ) ) { - $this->classes['enqueue'] = new um\core\Enqueue(); - } - - return $this->classes['enqueue']; + public function enqueue() { + return $this->frontend()->enqueue(); } - /** * @since 2.0 * diff --git a/includes/common/class-enqueue.php b/includes/common/class-enqueue.php index a0ae4cd9..32180349 100644 --- a/includes/common/class-enqueue.php +++ b/includes/common/class-enqueue.php @@ -43,59 +43,63 @@ class Enqueue { * @since 2.7.0 */ public function init_variables() { - $this->suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; + $this->suffix = ( ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || ( defined( 'UM_SCRIPT_DEBUG' ) && UM_SCRIPT_DEBUG ) ) ? '' : '.min'; $this->urls['js'] = UM_URL . 'assets/js/'; $this->urls['css'] = UM_URL . 'assets/css/'; $this->urls['libs'] = UM_URL . 'assets/libs/'; } + protected function register_jquery_ui() { + wp_register_style( 'um_ui', $this->urls['libs'] . 'jquery-ui/jquery-ui' . $this->suffix . '.css', array(), '1.12.1' ); + } + /** * Register common JS/CSS libraries. * * @since 2.7.0 */ public function common_libs() { - wp_register_style( 'um-jquery-ui', $this->urls['libs'] . 'jquery-ui/jquery-ui' . $this->suffix . '.css', array(), '1.12.1' ); + $this->register_jquery_ui(); - wp_register_script( 'um-tipsy', $this->urls['libs'] . 'tipsy/um-tipsy' . $this->suffix . '.js', array( 'jquery' ), '1.0.0a', true ); - wp_register_style( 'um-tipsy', $this->urls['libs'] . 'tipsy/um-tipsy' . $this->suffix . '.css', array(), '1.0.0a' ); - - wp_register_script( 'um-helptip', $this->urls['libs'] . 'helptip/helptip' . $this->suffix . '.js', array( 'jquery', 'jquery-ui-tooltip' ), '1.0.0', true ); - wp_register_style( 'um-helptip', $this->urls['libs'] . 'helptip/helptip' . $this->suffix . '.css', array( 'dashicons', 'um-jquery-ui' ), '1.0.0' ); - - // Legacy Fonticons - wp_register_style( 'um-fonticons-ii', $this->urls['libs'] . 'fonticons/um-fonticons-ii' . $this->suffix . '.css', array(), UM_VERSION ); - wp_register_style( 'um-fonticons-fa', $this->urls['libs'] . 'fonticons/um-fonticons-fa' . $this->suffix . '.css', array(), UM_VERSION ); - - // Select2 - $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); - if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { - wp_dequeue_style( 'select2' ); - wp_deregister_style( 'select2' ); - - wp_dequeue_script( 'select2' ); - wp_deregister_script( 'select2' ); - } - wp_register_script( 'select2', $this->urls['libs'] . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery' ), '4.0.13', true ); - wp_register_style( 'select2', $this->urls['libs'] . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); - - // Raty JS for rating field-type - wp_register_script( 'um-raty', $this->urls['libs'] . 'raty/um-raty' . $this->suffix . '.js', array( 'jquery', 'wp-i18n' ), '2.6.0', true ); - wp_register_style( 'um-raty', $this->urls['libs'] . 'raty/um-raty' . $this->suffix . '.css', array(), '2.6.0' ); - - // Modal - wp_register_script( 'um-modal', $this->urls['libs'] . 'modal/um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-i18n', 'wp-hooks' ), UM_VERSION, true ); - wp_register_style( 'um-modal', $this->urls['libs'] . 'modal/um-modal' . $this->suffix . '.css', array(), UM_VERSION ); - - // Common JS scripts for wp-admin and frontend both - wp_register_script( 'um-common', $this->urls['js'] . 'common' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - - $um_common_variables = array( - 'locale' => get_locale(), - ); - $um_common_variables = apply_filters( 'um_common_js_variables', $um_common_variables ); - wp_localize_script( 'um-common', 'um_common_variables', $um_common_variables ); - wp_enqueue_script( 'um-common' ); +// wp_register_script( 'um-tipsy', $this->urls['libs'] . 'tipsy/um-tipsy' . $this->suffix . '.js', array( 'jquery' ), '1.0.0a', true ); +// wp_register_style( 'um-tipsy', $this->urls['libs'] . 'tipsy/um-tipsy' . $this->suffix . '.css', array(), '1.0.0a' ); +// +// wp_register_script( 'um-helptip', $this->urls['libs'] . 'helptip/helptip' . $this->suffix . '.js', array( 'jquery', 'jquery-ui-tooltip' ), '1.0.0', true ); +// wp_register_style( 'um-helptip', $this->urls['libs'] . 'helptip/helptip' . $this->suffix . '.css', array( 'dashicons', 'um_ui' ), '1.0.0' ); +// +// // Legacy Fonticons +// wp_register_style( 'um-fonticons-ii', $this->urls['libs'] . 'fonticons/um-fonticons-ii' . $this->suffix . '.css', array(), UM_VERSION ); +// wp_register_style( 'um-fonticons-fa', $this->urls['libs'] . 'fonticons/um-fonticons-fa' . $this->suffix . '.css', array(), UM_VERSION ); +// +// // Select2 +// $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); +// if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { +// wp_dequeue_style( 'select2' ); +// wp_deregister_style( 'select2' ); +// +// wp_dequeue_script( 'select2' ); +// wp_deregister_script( 'select2' ); +// } +// wp_register_script( 'select2', $this->urls['libs'] . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery' ), '4.0.13', true ); +// wp_register_style( 'select2', $this->urls['libs'] . 'select2/select2' . $this->suffix . '.css', array(), '4.0.13' ); +// +// // Raty JS for rating field-type +// wp_register_script( 'um-raty', $this->urls['libs'] . 'raty/um-raty' . $this->suffix . '.js', array( 'jquery', 'wp-i18n' ), '2.6.0', true ); +// wp_register_style( 'um-raty', $this->urls['libs'] . 'raty/um-raty' . $this->suffix . '.css', array(), '2.6.0' ); +// +// // Modal +// wp_register_script( 'um-modal', $this->urls['libs'] . 'modal/um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-i18n', 'wp-hooks' ), UM_VERSION, true ); +// wp_register_style( 'um-modal', $this->urls['libs'] . 'modal/um-modal' . $this->suffix . '.css', array(), UM_VERSION ); +// +// // Common JS scripts for wp-admin and frontend both +// wp_register_script( 'um-common', $this->urls['js'] . 'common' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); +// +// $um_common_variables = array( +// 'locale' => get_locale(), +// ); +// $um_common_variables = apply_filters( 'um_common_js_variables', $um_common_variables ); +// wp_localize_script( 'um-common', 'um_common_variables', $um_common_variables ); +// wp_enqueue_script( 'um-common' ); } } diff --git a/includes/core/class-enqueue.php b/includes/core/class-enqueue.php deleted file mode 100644 index 649e876e..00000000 --- a/includes/core/class-enqueue.php +++ /dev/null @@ -1,442 +0,0 @@ -suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined( 'UM_SCRIPT_DEBUG' ) ) ? '' : '.min'; - - $this->js_baseurl = UM_URL . 'assets/js/'; - $this->css_baseurl = UM_URL . 'assets/css/'; - - add_action( 'init', array( &$this, 'scripts_enqueue_priority' ) ); - } - - - /** - * - */ - function scripts_enqueue_priority() { - add_action( 'wp_enqueue_scripts', array( &$this, 'wp_enqueue_scripts' ), $this->get_priority() ); - } - - - /** - * @return int - */ - function get_priority() { - /** - * UM hook - * - * @type filter - * @title um_core_enqueue_priority - * @description Change Enqueue scripts priority - * @input_vars - * [{"var":"$priority","type":"int","desc":"Priority"}] - * @change_log - * ["Since: 2.0"] - * @usage add_filter( 'um_core_enqueue_priority', 'function_name', 10, 1 ); - * @example - * - */ - return apply_filters( 'um_core_enqueue_priority', 100 ); - } - - - /** - * - */ - function register_scripts() { - $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); - if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { - wp_dequeue_style( 'select2' ); - wp_deregister_style( 'select2' ); - - wp_dequeue_script( 'select2'); - wp_deregister_script('select2'); - } - wp_register_script( 'select2', $this->js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery' ), '4.0.13', true ); - - wp_register_script( 'um_scrollbar', $this->js_baseurl . 'simplebar' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - - wp_register_script( 'um_jquery_form', $this->js_baseurl . 'um-jquery-form' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_fileupload', $this->js_baseurl . 'um-fileupload.js', array( 'jquery', 'um_jquery_form' ), UM_VERSION, true ); - - - wp_register_script( 'um_datetime', $this->js_baseurl . 'pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_date', $this->js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - wp_register_script( 'um_datetime_time', $this->js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); -// wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - // load a localized version for date/time - $locale = get_locale(); - if ( $locale ) { - if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { - wp_register_script('um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { - wp_register_script('um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); - } - } - - wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery', 'wp-i18n' ), UM_VERSION, true ); - wp_register_script( 'um_crop', $this->js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - - wp_register_script( 'um_modal', $this->js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_crop' ), UM_VERSION, true ); - - wp_register_script('um_functions', $this->js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), UM_VERSION, true ); - wp_register_script( 'um_responsive', $this->js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), UM_VERSION, true ); - - wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, false ); - wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); - wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', /*'um_datetime_legacy',*/ 'select2' ), UM_VERSION, true ); - /** - * UM hook - * - * @type filter - * @title um_enqueue_localize_data - * @description Extend UM localized data - * @input_vars - * [{"var":"$data","type":"array","desc":"Localize Array"}] - * @change_log - * ["Since: 2.0"] - * @usage add_filter( 'um_enqueue_localize_data', 'function_name', 10, 1 ); - * @example - * - */ - - - $max_upload_size = wp_max_upload_size(); - if ( ! $max_upload_size ) { - $max_upload_size = 0; - } - - $localize_data = apply_filters( 'um_enqueue_localize_data', array( - 'max_upload_size' => $max_upload_size, - 'nonce' => wp_create_nonce( "um-frontend-nonce" ), - ) ); - wp_localize_script( 'um_scripts', 'um_scripts', $localize_data ); - - wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); - - wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), UM_VERSION, true ); - wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), UM_VERSION, true ); - - $account_deps = apply_filters( 'um_account_scripts_dependencies', array( 'jquery', 'wp-hooks' ) ); - wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', $account_deps, UM_VERSION, true ); - - wp_register_script( 'um_gchart', 'https://www.google.com/jsapi', array(), UM_VERSION, true ); - } - - - /** - * Register styles - */ - function register_styles() { - - //FontAwesome and FontIcons styles - wp_register_style( 'um_fonticons_ii', $this->css_baseurl . 'um-fonticons-ii.css', array(), UM_VERSION ); - wp_register_style( 'um_fonticons_fa', $this->css_baseurl . 'um-fonticons-fa.css', array(), UM_VERSION ); - wp_register_style( 'um_crop', $this->css_baseurl . 'um-crop.css', array(), UM_VERSION ); - wp_register_style( 'um_tipsy', $this->css_baseurl . 'um-tipsy.css', array(), UM_VERSION ); - wp_register_style( 'um_raty', $this->css_baseurl . 'um-raty.css', array(), UM_VERSION ); - wp_register_style( 'select2', $this->css_baseurl . 'select2/select2.min.css', array(), '4.0.13' ); - wp_register_style( 'um_fileupload', $this->css_baseurl . 'um-fileupload.css', array(), UM_VERSION ); - wp_register_style( 'um_datetime', $this->css_baseurl . 'pickadate/default.css', array(), UM_VERSION ); - wp_register_style( 'um_datetime_date', $this->css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), UM_VERSION ); - wp_register_style( 'um_datetime_time', $this->css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), UM_VERSION ); - wp_register_style( 'um_scrollbar', $this->css_baseurl . 'simplebar.css', array(), UM_VERSION ); - - wp_register_style( 'um_rtl', $this->css_baseurl . 'um.rtl.css', array(), UM_VERSION ); - wp_register_style( 'um_default_css', $this->css_baseurl . 'um-old-default.css', array(), UM_VERSION ); - wp_register_style( 'um_modal', $this->css_baseurl . 'um-modal.css', array( 'um_crop' ), UM_VERSION ); - wp_register_style( 'um_responsive', $this->css_baseurl . 'um-responsive.css', array( 'um_profile', 'um_crop' ), UM_VERSION ); - - wp_register_style( 'um_styles', $this->css_baseurl . 'um-styles.css', array(), UM_VERSION ); - - wp_register_style( 'um_ui', UM_URL . 'assets/libs/jquery-ui/jquery-ui' . $this->suffix . '.css', array(), '1.12.1' ); - - wp_register_style( 'um_members', $this->css_baseurl . 'um-members.css', array( 'um_ui' ), UM_VERSION ); - if ( is_rtl() ) { - wp_register_style( 'um_members_rtl', $this->css_baseurl . 'um-members-rtl.css', array( 'um_members' ), UM_VERSION ); - } - - wp_register_style( 'um_profile', $this->css_baseurl . 'um-profile.css', array(), UM_VERSION ); - wp_register_style( 'um_account', $this->css_baseurl . 'um-account.css', array(), UM_VERSION ); - wp_register_style( 'um_misc', $this->css_baseurl . 'um-misc.css', array(), UM_VERSION ); - - } - - - /** - * Enqueue scripts and styles - */ - function wp_enqueue_scripts() { - - $this->register_scripts(); - $this->register_styles(); - - $this->load_original(); - - // rtl style - if ( is_rtl() ) { - wp_enqueue_style( 'um_rtl' ); - } - - global $post; - if ( is_object( $post ) && has_shortcode( $post->post_content,'ultimatemember' ) ) { - wp_dequeue_script( 'jquery-form' ); - } - - //old settings before UM 2.0 CSS - wp_enqueue_style( 'um_default_css' ); - - $this->old_css_settings(); - } - - - /** - * - */ - function old_css_settings() { - $uploads = wp_upload_dir(); - $upload_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR; - if ( file_exists( $upload_dir . 'um_old_settings.css' ) ) { - wp_register_style( 'um_old_css', UM_URL . '../../uploads/ultimatemember/um_old_settings.css' ); - wp_enqueue_style( 'um_old_css' ); - } - } - - - /** - * This will load original files (not minified) - */ - function load_original() { - - //maybe deprecated - //$this->load_google_charts(); - - $this->load_fonticons(); - - $this->load_selectjs(); - - $this->load_modal(); - - $this->load_css(); - - $this->load_fileupload(); - - $this->load_datetimepicker(); - - $this->load_raty(); - - //$this->load_scrollto(); - - $this->load_scrollbar(); - - $this->load_imagecrop(); - - $this->load_tipsy(); - - $this->load_functions(); - - $this->load_responsive(); - - $this->load_customjs(); - - } - - - /** - * Include Google charts - */ - function load_google_charts() { - wp_enqueue_script( 'um_gchart' ); - } - - - /** - * Load plugin css - */ - function load_css() { - wp_enqueue_style( 'um_styles' ); - /*if ( is_rtl() ) { - wp_enqueue_style( 'um_members_rtl' ); - } else { - wp_enqueue_style( 'um_members' ); - }*/ - - wp_enqueue_style( 'um_profile' ); - wp_enqueue_style( 'um_account' ); - wp_enqueue_style( 'um_misc' ); - } - - - /** - * Load select-dropdowns JS - */ - function load_selectjs() { - wp_enqueue_script( 'select2' ); - wp_enqueue_style( 'select2' ); - } - - - /** - * Load Fonticons - */ - function load_fonticons() { - wp_enqueue_style( 'um_fonticons_ii' ); - wp_enqueue_style( 'um_fonticons_fa' ); - } - - - /** - * Load fileupload JS - */ - function load_fileupload() { - wp_enqueue_script( 'um_fileupload' ); - wp_enqueue_style( 'um_fileupload' ); - } - - - /** - * Load JS functions - */ - function load_functions() { - wp_enqueue_script('um_functions' ); - wp_enqueue_script( 'um-gdpr' ); - } - - - /** - * Load custom JS - */ - function load_customjs() { - wp_enqueue_script('um_conditional'); - wp_enqueue_script('um_scripts'); - //wp_enqueue_script('um_members'); - wp_enqueue_script('um_profile'); - wp_enqueue_script('um_account'); - } - - - /** - * Load date & time picker - */ - function load_datetimepicker() { - wp_enqueue_script( 'um_datetime' ); - wp_enqueue_script( 'um_datetime_date' ); - wp_enqueue_script( 'um_datetime_time' ); - //wp_enqueue_script( 'um_datetime_legacy' ); - - // load a localized version for date/time - $locale = get_locale(); - if ( $locale && ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) || file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) ) { - wp_enqueue_script('um_datetime_locale' ); - } - - wp_enqueue_style( 'um_datetime' ); - wp_enqueue_style( 'um_datetime_date' ); - wp_enqueue_style( 'um_datetime_time' ); - } - - - /** - * Load scrollbar - */ - function load_scrollbar(){ - wp_enqueue_style('um_scrollbar'); - } - - - /** - * Load rating - */ - function load_raty() { - wp_enqueue_script('um_raty'); - wp_enqueue_style('um_raty'); - } - - - /** - * Load crop script - */ - function load_imagecrop() { - wp_enqueue_script( 'um_crop' ); - wp_enqueue_style( 'um_crop' ); - } - - - /** - * Load tipsy - */ - function load_tipsy() { - wp_enqueue_script( 'um_tipsy' ); - wp_enqueue_style( 'um_tipsy' ); - } - - - /** - * Load modal - */ - function load_modal() { - wp_enqueue_script( 'um_modal' ); - wp_enqueue_style( 'um_modal' ); - } - - - /** - * Load responsive styles - */ - function load_responsive() { - wp_enqueue_script( 'um_responsive' ); - wp_enqueue_style( 'um_responsive' ); - } - - } -} diff --git a/includes/frontend/class-enqueue.php b/includes/frontend/class-enqueue.php new file mode 100644 index 00000000..b8196d0b --- /dev/null +++ b/includes/frontend/class-enqueue.php @@ -0,0 +1,427 @@ +js_baseurl = UM_URL . 'assets/js/'; + $this->css_baseurl = UM_URL . 'assets/css/'; + + add_action( 'init', array( &$this, 'scripts_enqueue_priority' ) ); + } + + + /** + * + */ + function scripts_enqueue_priority() { + add_action( 'wp_enqueue_scripts', array( &$this, 'wp_enqueue_scripts' ), $this->get_priority() ); + } + + + /** + * @return int + */ + function get_priority() { + /** + * UM hook + * + * @type filter + * @title um_core_enqueue_priority + * @description Change Enqueue scripts priority + * @input_vars + * [{"var":"$priority","type":"int","desc":"Priority"}] + * @change_log + * ["Since: 2.0"] + * @usage add_filter( 'um_core_enqueue_priority', 'function_name', 10, 1 ); + * @example + * + */ + return apply_filters( 'um_core_enqueue_priority', 100 ); + } + + + /** + * + */ + function register_scripts() { + $dequeue_select2 = apply_filters( 'um_dequeue_select2_scripts', false ); + if ( class_exists( 'WooCommerce' ) || $dequeue_select2 ) { + wp_dequeue_style( 'select2' ); + wp_deregister_style( 'select2' ); + + wp_dequeue_script( 'select2'); + wp_deregister_script('select2'); + } + wp_register_script( 'select2', $this->js_baseurl . 'select2/select2.full' . $this->suffix . '.js', array( 'jquery' ), '4.0.13', true ); + + wp_register_script( 'um_scrollbar', $this->js_baseurl . 'simplebar' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + + wp_register_script( 'um_jquery_form', $this->js_baseurl . 'um-jquery-form' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_fileupload', $this->js_baseurl . 'um-fileupload.js', array( 'jquery', 'um_jquery_form' ), UM_VERSION, true ); + + wp_register_script( 'um_datetime', $this->js_baseurl . 'pickadate/picker.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_date', $this->js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + wp_register_script( 'um_datetime_time', $this->js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); +// wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + // load a localized version for date/time + $locale = get_locale(); + if ( $locale ) { + if ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) ) { + wp_register_script('um_datetime_locale', content_url() . '/languages/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + } elseif ( file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) { + wp_register_script('um_datetime_locale', UM_URL . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), UM_VERSION, true ); + } + } + + wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery', 'wp-i18n' ), UM_VERSION, true ); + wp_register_script( 'um_crop', $this->js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + + wp_register_script( 'um_modal', $this->js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_crop' ), UM_VERSION, true ); + + wp_register_script('um_functions', $this->js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), UM_VERSION, true ); + wp_register_script( 'um_responsive', $this->js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), UM_VERSION, true ); + + wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, false ); + wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery', 'wp-hooks' ), UM_VERSION, true ); + wp_register_script('um_scripts', $this->js_baseurl . 'um-scripts' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_conditional', 'um_datetime', 'um_datetime_date', 'um_datetime_time', /*'um_datetime_legacy',*/ 'select2' ), UM_VERSION, true ); + /** + * UM hook + * + * @type filter + * @title um_enqueue_localize_data + * @description Extend UM localized data + * @input_vars + * [{"var":"$data","type":"array","desc":"Localize Array"}] + * @change_log + * ["Since: 2.0"] + * @usage add_filter( 'um_enqueue_localize_data', 'function_name', 10, 1 ); + * @example + * + */ + + + $max_upload_size = wp_max_upload_size(); + if ( ! $max_upload_size ) { + $max_upload_size = 0; + } + + $localize_data = apply_filters( 'um_enqueue_localize_data', array( + 'max_upload_size' => $max_upload_size, + 'nonce' => wp_create_nonce( "um-frontend-nonce" ), + ) ); + wp_localize_script( 'um_scripts', 'um_scripts', $localize_data ); + + wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), UM_VERSION, true ); + + wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks', 'jquery-masonry', 'um_scripts' ), UM_VERSION, true ); + wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'wp-i18n' ), UM_VERSION, true ); + + $account_deps = apply_filters( 'um_account_scripts_dependencies', array( 'jquery', 'wp-hooks' ) ); + wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', $account_deps, UM_VERSION, true ); + + wp_register_script( 'um_gchart', 'https://www.google.com/jsapi', array(), UM_VERSION, true ); + } + + + /** + * Register styles + */ + function register_styles() { + + //FontAwesome and FontIcons styles + wp_register_style( 'um_fonticons_ii', $this->css_baseurl . 'um-fonticons-ii.css', array(), UM_VERSION ); + wp_register_style( 'um_fonticons_fa', $this->css_baseurl . 'um-fonticons-fa.css', array(), UM_VERSION ); + wp_register_style( 'um_crop', $this->css_baseurl . 'um-crop.css', array(), UM_VERSION ); + wp_register_style( 'um_tipsy', $this->css_baseurl . 'um-tipsy.css', array(), UM_VERSION ); + wp_register_style( 'um_raty', $this->css_baseurl . 'um-raty.css', array(), UM_VERSION ); + wp_register_style( 'select2', $this->css_baseurl . 'select2/select2.min.css', array(), '4.0.13' ); + wp_register_style( 'um_fileupload', $this->css_baseurl . 'um-fileupload.css', array(), UM_VERSION ); + wp_register_style( 'um_datetime', $this->css_baseurl . 'pickadate/default.css', array(), UM_VERSION ); + wp_register_style( 'um_datetime_date', $this->css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), UM_VERSION ); + wp_register_style( 'um_datetime_time', $this->css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), UM_VERSION ); + wp_register_style( 'um_scrollbar', $this->css_baseurl . 'simplebar.css', array(), UM_VERSION ); + + wp_register_style( 'um_rtl', $this->css_baseurl . 'um.rtl.css', array(), UM_VERSION ); + wp_register_style( 'um_default_css', $this->css_baseurl . 'um-old-default.css', array(), UM_VERSION ); + wp_register_style( 'um_modal', $this->css_baseurl . 'um-modal.css', array( 'um_crop' ), UM_VERSION ); + wp_register_style( 'um_responsive', $this->css_baseurl . 'um-responsive.css', array( 'um_profile', 'um_crop' ), UM_VERSION ); + + wp_register_style( 'um_styles', $this->css_baseurl . 'um-styles.css', array(), UM_VERSION ); + + wp_register_style( 'um_members', $this->css_baseurl . 'um-members.css', array( 'um_ui' ), UM_VERSION ); + if ( is_rtl() ) { + wp_register_style( 'um_members_rtl', $this->css_baseurl . 'um-members-rtl.css', array( 'um_members' ), UM_VERSION ); + } + + wp_register_style( 'um_profile', $this->css_baseurl . 'um-profile.css', array(), UM_VERSION ); + wp_register_style( 'um_account', $this->css_baseurl . 'um-account.css', array(), UM_VERSION ); + wp_register_style( 'um_misc', $this->css_baseurl . 'um-misc.css', array(), UM_VERSION ); + + } + + + /** + * Enqueue scripts and styles + */ + function wp_enqueue_scripts() { + + $this->register_scripts(); + $this->register_styles(); + + $this->load_original(); + + // rtl style + if ( is_rtl() ) { + wp_enqueue_style( 'um_rtl' ); + } + + global $post; + if ( is_object( $post ) && has_shortcode( $post->post_content,'ultimatemember' ) ) { + wp_dequeue_script( 'jquery-form' ); + } + + //old settings before UM 2.0 CSS + wp_enqueue_style( 'um_default_css' ); + + $this->old_css_settings(); + } + + + /** + * + */ + function old_css_settings() { + $uploads = wp_upload_dir(); + $upload_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR; + if ( file_exists( $upload_dir . 'um_old_settings.css' ) ) { + wp_register_style( 'um_old_css', UM_URL . '../../uploads/ultimatemember/um_old_settings.css' ); + wp_enqueue_style( 'um_old_css' ); + } + } + + + /** + * This will load original files (not minified) + */ + function load_original() { + + //maybe deprecated + //$this->load_google_charts(); + + $this->load_fonticons(); + + $this->load_selectjs(); + + $this->load_modal(); + + $this->load_css(); + + $this->load_fileupload(); + + $this->load_datetimepicker(); + + $this->load_raty(); + + //$this->load_scrollto(); + + $this->load_scrollbar(); + + $this->load_imagecrop(); + + $this->load_tipsy(); + + $this->load_functions(); + + $this->load_responsive(); + + $this->load_customjs(); + + } + + + /** + * Include Google charts + */ + function load_google_charts() { + wp_enqueue_script( 'um_gchart' ); + } + + + /** + * Load plugin css + */ + function load_css() { + wp_enqueue_style( 'um_styles' ); + /*if ( is_rtl() ) { + wp_enqueue_style( 'um_members_rtl' ); + } else { + wp_enqueue_style( 'um_members' ); + }*/ + + wp_enqueue_style( 'um_profile' ); + wp_enqueue_style( 'um_account' ); + wp_enqueue_style( 'um_misc' ); + } + + + /** + * Load select-dropdowns JS + */ + function load_selectjs() { + wp_enqueue_script( 'select2' ); + wp_enqueue_style( 'select2' ); + } + + + /** + * Load Fonticons + */ + function load_fonticons() { + wp_enqueue_style( 'um_fonticons_ii' ); + wp_enqueue_style( 'um_fonticons_fa' ); + } + + + /** + * Load fileupload JS + */ + function load_fileupload() { + wp_enqueue_script( 'um_fileupload' ); + wp_enqueue_style( 'um_fileupload' ); + } + + + /** + * Load JS functions + */ + function load_functions() { + wp_enqueue_script('um_functions' ); + wp_enqueue_script( 'um-gdpr' ); + } + + + /** + * Load custom JS + */ + function load_customjs() { + wp_enqueue_script('um_conditional'); + wp_enqueue_script('um_scripts'); + //wp_enqueue_script('um_members'); + wp_enqueue_script('um_profile'); + wp_enqueue_script('um_account'); + } + + + /** + * Load date & time picker + */ + function load_datetimepicker() { + wp_enqueue_script( 'um_datetime' ); + wp_enqueue_script( 'um_datetime_date' ); + wp_enqueue_script( 'um_datetime_time' ); + //wp_enqueue_script( 'um_datetime_legacy' ); + + // load a localized version for date/time + $locale = get_locale(); + if ( $locale && ( file_exists( WP_LANG_DIR . '/plugins/ultimate-member/assets/js/pickadate/' . $locale . '.js' ) || file_exists( UM_PATH . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) ) { + wp_enqueue_script('um_datetime_locale' ); + } + + wp_enqueue_style( 'um_datetime' ); + wp_enqueue_style( 'um_datetime_date' ); + wp_enqueue_style( 'um_datetime_time' ); + } + + + /** + * Load scrollbar + */ + function load_scrollbar(){ + wp_enqueue_style('um_scrollbar'); + } + + + /** + * Load rating + */ + function load_raty() { + wp_enqueue_script('um_raty'); + wp_enqueue_style('um_raty'); + } + + + /** + * Load crop script + */ + function load_imagecrop() { + wp_enqueue_script( 'um_crop' ); + wp_enqueue_style( 'um_crop' ); + } + + + /** + * Load tipsy + */ + function load_tipsy() { + wp_enqueue_script( 'um_tipsy' ); + wp_enqueue_style( 'um_tipsy' ); + } + + + /** + * Load modal + */ + function load_modal() { + wp_enqueue_script( 'um_modal' ); + wp_enqueue_style( 'um_modal' ); + } + + + /** + * Load responsive styles + */ + function load_responsive() { + wp_enqueue_script( 'um_responsive' ); + wp_enqueue_style( 'um_responsive' ); + } +} diff --git a/includes/frontend/class-init.php b/includes/frontend/class-init.php index 21eff21a..d3de783e 100644 --- a/includes/frontend/class-init.php +++ b/includes/frontend/class-init.php @@ -20,9 +20,23 @@ if ( ! class_exists( 'um\frontend\Init' ) ) { * @used-by \UM::includes() */ public function includes() { + $this->enqueue(); $this->secure(); } + /** + * @since 2.6.12 + * + * @return Enqueue + */ + public function enqueue() { + if ( empty( UM()->classes['um\frontend\enqueue'] ) ) { + UM()->classes['um\frontend\enqueue'] = new Enqueue(); + } + + return UM()->classes['um\frontend\enqueue']; + } + /** * @since 2.6.8 *