Files
ultimatemember/includes/core/class-enqueue.php
T

406 lines
13 KiB
PHP
Raw Normal View History

<?php
namespace um\core;
2018-11-01 16:02:08 +02:00
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) exit;
2018-11-01 16:02:08 +02:00
2018-03-26 01:27:46 +03:00
if ( ! class_exists( 'um\core\Enqueue' ) ) {
2017-08-06 19:50:31 +03:00
2018-03-02 09:55:49 +02:00
/**
* Class Enqueue
* @package um\core
*/
class Enqueue {
2018-10-16 10:11:44 +03:00
2018-03-02 09:55:49 +02:00
/**
* @var string
*/
var $suffix = '';
2018-10-16 10:11:44 +03:00
/**
* @var string
*/
var $js_baseurl = '';
/**
* @var string
*/
var $css_baseurl = '';
2018-03-02 09:55:49 +02:00
/**
* Enqueue constructor.
*/
function __construct() {
2018-10-15 21:36:34 +03:00
$this->suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined( 'UM_SCRIPT_DEBUG' ) ) ? '' : '.min';
2018-03-02 09:55:49 +02:00
2018-10-16 10:11:44 +03:00
$this->js_baseurl = um_url . 'assets/js/';
$this->css_baseurl = um_url . 'assets/css/';
2018-03-02 09:55:49 +02:00
/**
* 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
* <?php
* add_filter( 'um_core_enqueue_priority', 'my_core_enqueue_priority', 10, 1 );
* function my_core_enqueue_priority( $priority ) {
* // your code here
* return $priority;
* }
* ?>
*/
$priority = apply_filters( 'um_core_enqueue_priority', 100 );
2018-03-20 13:24:38 +02:00
add_action( 'wp_enqueue_scripts', array( &$this, 'wp_enqueue_scripts' ), $priority );
}
2018-03-02 09:55:49 +02:00
/**
2018-11-01 16:02:08 +02:00
*
2018-03-02 09:55:49 +02:00
*/
2018-11-01 16:02:08 +02:00
function register_scripts() {
2018-10-23 00:36:27 +03:00
$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.min.js', array( 'jquery', 'jquery-masonry' ), ultimatemember_version, true );
wp_register_script( 'um_scrollbar', $this->js_baseurl . 'simplebar' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
2018-10-16 10:11:44 +03:00
wp_register_script( 'um_jquery_form', $this->js_baseurl . 'um-jquery-form' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_fileupload', $this->js_baseurl . 'um-fileupload' . $this->suffix . '.js', array( 'jquery', 'um_jquery_form' ), ultimatemember_version, true );
2018-10-16 10:11:44 +03:00
2018-10-26 10:18:25 +03:00
2018-11-14 11:08:05 +02:00
wp_register_script( 'um_datetime', $this->js_baseurl . 'pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_date', $this->js_baseurl . 'pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_time', $this->js_baseurl . 'pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
wp_register_script( 'um_datetime_legacy', $this->js_baseurl . 'pickadate/legacy.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
2018-10-26 10:18:25 +03:00
// load a localized version for date/time
$locale = get_locale();
2019-09-17 12:36:11 +03:00
if ( $locale && 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 ( $locale && file_exists( um_path . 'assets/js/pickadate/translations/' . $locale . '.js' ) ) {
2018-11-14 11:08:05 +02:00
wp_register_script('um_datetime_locale', um_url . 'assets/js/pickadate/translations/' . $locale . '.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true );
2018-10-26 10:18:25 +03:00
}
2018-10-16 10:11:44 +03:00
wp_register_script( 'um_tipsy', $this->js_baseurl . 'um-tipsy' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_raty', $this->js_baseurl . 'um-raty' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_crop', $this->js_baseurl . 'um-crop' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
2018-11-01 16:02:08 +02:00
wp_register_script( 'um_modal', $this->js_baseurl . 'um-modal' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'um_crop' ), ultimatemember_version, true );
2018-10-16 10:11:44 +03:00
2018-11-01 16:02:08 +02:00
wp_register_script('um_functions', $this->js_baseurl . 'um-functions' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry', 'wp-util', 'um_scrollbar' ), ultimatemember_version, true );
2019-04-17 15:17:50 +03:00
wp_register_script( 'um_responsive', $this->js_baseurl . 'um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), ultimatemember_version, true );
2018-11-01 16:02:08 +02:00
wp_register_script( 'um-gdpr', $this->js_baseurl . 'um-gdpr' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, false );
wp_register_script('um_conditional', $this->js_baseurl . 'um-conditional' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
2019-07-09 18:34:20 +03:00
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' ), ultimatemember_version, true );
2018-11-01 16:02:08 +02:00
/**
* 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
* <?php
* add_filter( 'um_enqueue_localize_data', 'my_enqueue_localize_data', 10, 1 );
* function my_enqueue_localize_data( $data ) {
* // your code here
* return $data;
* }
* ?>
*/
2018-11-21 14:01:18 +02:00
$localize_data = apply_filters( 'um_enqueue_localize_data', array(
'nonce' => wp_create_nonce( "um-frontend-nonce" ),
) );
2018-11-01 16:02:08 +02:00
wp_localize_script( 'um_scripts', 'um_scripts', $localize_data );
2019-09-23 13:34:25 +03:00
wp_register_script('um_dropdown', $this->js_baseurl . 'dropdown' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
2019-09-30 01:27:01 +03:00
wp_register_script('um_members', $this->js_baseurl . 'um-members' . $this->suffix . '.js', array( 'jquery', 'wp-util', 'jquery-ui-slider', 'um_dropdown', 'wp-hooks' ), ultimatemember_version, true );
2018-11-01 16:02:08 +02:00
wp_register_script('um_profile', $this->js_baseurl . 'um-profile' . $this->suffix . '.js', array( 'jquery', 'wp-util' ), ultimatemember_version, true );
wp_register_script('um_account', $this->js_baseurl . 'um-account' . $this->suffix . '.js', array( 'jquery' ), ultimatemember_version, true );
wp_register_script( 'um_gchart', 'https://www.google.com/jsapi', array(), ultimatemember_version, true );
}
/**
2019-08-30 20:21:53 +08:00
* Register styles
2018-11-01 16:02:08 +02:00
*/
function register_styles() {
2019-08-30 20:21:53 +08:00
2018-10-16 10:11:44 +03:00
//FontAwesome and FontIcons styles
wp_register_style( 'um_fonticons_ii', $this->css_baseurl . 'um-fonticons-ii.css', array(), ultimatemember_version );
wp_register_style( 'um_fonticons_fa', $this->css_baseurl . 'um-fonticons-fa.css', array(), ultimatemember_version );
wp_register_style( 'um_crop', $this->css_baseurl . 'um-crop.css', array(), ultimatemember_version );
wp_register_style( 'um_tipsy', $this->css_baseurl . 'um-tipsy.css', array(), ultimatemember_version );
wp_register_style( 'um_raty', $this->css_baseurl . 'um-raty.css', array(), ultimatemember_version );
wp_register_style( 'select2', $this->css_baseurl . 'select2/select2.min.css', array(), ultimatemember_version );
wp_register_style( 'um_fileupload', $this->css_baseurl . 'um-fileupload.css', array(), ultimatemember_version );
wp_register_style( 'um_datetime', $this->css_baseurl . 'pickadate/default.css', array(), ultimatemember_version );
2018-11-09 16:21:34 +02:00
wp_register_style( 'um_datetime_date', $this->css_baseurl . 'pickadate/default.date.css', array( 'um_datetime' ), ultimatemember_version );
wp_register_style( 'um_datetime_time', $this->css_baseurl . 'pickadate/default.time.css', array( 'um_datetime' ), ultimatemember_version );
wp_register_style( 'um_scrollbar', $this->css_baseurl . 'simplebar.css', array(), ultimatemember_version );
2018-10-16 10:11:44 +03:00
2018-11-01 16:02:08 +02:00
wp_register_style( 'um_rtl', $this->css_baseurl . 'um.rtl.css', array(), ultimatemember_version );
wp_register_style( 'um_default_css', $this->css_baseurl . 'um-old-default.css', array(), ultimatemember_version );
wp_register_style( 'um_modal', $this->css_baseurl . 'um-modal.css', array( 'um_crop' ), ultimatemember_version );
wp_register_style( 'um_responsive', $this->css_baseurl . 'um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version );
2018-10-16 10:11:44 +03:00
2018-11-01 16:02:08 +02:00
wp_register_style( 'um_styles', $this->css_baseurl . 'um-styles.css', array(), ultimatemember_version );
2019-08-14 10:54:16 +03:00
wp_register_style( 'um_ui', $this->css_baseurl . 'jquery-ui.css', array(), ultimatemember_version );
wp_register_style( 'um_members', $this->css_baseurl . 'um-members.css', array( 'um_ui' ), ultimatemember_version );
2018-11-01 16:02:08 +02:00
wp_register_style( 'um_profile', $this->css_baseurl . 'um-profile.css', array(), ultimatemember_version );
wp_register_style( 'um_account', $this->css_baseurl . 'um-account.css', array(), ultimatemember_version );
wp_register_style( 'um_misc', $this->css_baseurl . 'um-misc.css', array(), ultimatemember_version );
2019-08-30 20:21:53 +08:00
2018-11-01 16:02:08 +02:00
}
2018-03-02 09:55:49 +02:00
2018-11-01 16:02:08 +02:00
/**
* Enqueue scripts and styles
*/
function wp_enqueue_scripts() {
$this->register_scripts();
$this->register_styles();
2018-03-02 09:55:49 +02:00
$this->load_original();
2018-03-02 09:55:49 +02:00
// rtl style
if ( is_rtl() ) {
2018-11-01 16:02:08 +02:00
wp_enqueue_style( 'um_rtl' );
2018-03-02 09:55:49 +02:00
}
2018-11-01 16:02:08 +02:00
global $post;
if ( is_object( $post ) && has_shortcode( $post->post_content,'ultimatemember' ) ) {
wp_dequeue_script( 'jquery-form' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
//old settings before UM 2.0 CSS
2018-11-01 16:02:08 +02:00
wp_enqueue_style( 'um_default_css' );
2018-10-26 10:18:25 +03:00
$this->old_css_settings();
}
/**
*
*/
function old_css_settings() {
2018-03-02 09:55:49 +02:00
$uploads = wp_upload_dir();
$upload_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'ultimatemember' . DIRECTORY_SEPARATOR;
if ( file_exists( $upload_dir . 'um_old_settings.css' ) ) {
2018-11-01 16:02:08 +02:00
wp_register_style( 'um_old_css', um_url . '../../uploads/ultimatemember/um_old_settings.css' );
wp_enqueue_style( 'um_old_css' );
2018-03-02 09:55:49 +02:00
}
}
2018-03-02 09:55:49 +02:00
/**
* This will load original files (not minified)
*/
function load_original() {
2018-03-02 09:55:49 +02:00
//maybe deprecated
//$this->load_google_charts();
2018-03-02 09:55:49 +02:00
$this->load_fonticons();
2018-03-02 09:55:49 +02:00
$this->load_selectjs();
2018-03-02 09:55:49 +02:00
$this->load_modal();
2018-03-02 09:55:49 +02:00
$this->load_css();
2018-03-02 09:55:49 +02:00
$this->load_fileupload();
2018-03-02 09:55:49 +02:00
$this->load_datetimepicker();
2018-03-02 09:55:49 +02:00
$this->load_raty();
//$this->load_scrollto();
2018-03-02 09:55:49 +02:00
$this->load_scrollbar();
2018-03-02 09:55:49 +02:00
$this->load_imagecrop();
2018-03-02 09:55:49 +02:00
$this->load_tipsy();
2018-03-02 09:55:49 +02:00
$this->load_functions();
2018-03-02 09:55:49 +02:00
$this->load_responsive();
2018-03-02 09:55:49 +02:00
$this->load_customjs();
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Include Google charts
*/
function load_google_charts() {
2018-11-01 16:02:08 +02:00
wp_enqueue_script( 'um_gchart' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Load plugin css
*/
function load_css() {
2018-11-01 16:02:08 +02:00
wp_enqueue_style( 'um_styles' );
wp_enqueue_style( 'um_members' );
wp_enqueue_style( 'um_profile' );
wp_enqueue_style( 'um_account' );
wp_enqueue_style( 'um_misc' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Load select-dropdowns JS
*/
function load_selectjs() {
2018-11-01 16:02:08 +02:00
wp_enqueue_script( 'select2' );
wp_enqueue_style( 'select2' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Load Fonticons
*/
2018-11-01 16:02:08 +02:00
function load_fonticons() {
wp_enqueue_style( 'um_fonticons_ii' );
wp_enqueue_style( 'um_fonticons_fa' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Load fileupload JS
*/
function load_fileupload() {
2018-11-01 16:02:08 +02:00
wp_enqueue_script( 'um_fileupload' );
wp_enqueue_style( 'um_fileupload' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* Load JS functions
*/
function load_functions() {
2018-11-01 16:02:08 +02:00
wp_enqueue_script('um_functions' );
wp_enqueue_script( 'um-gdpr' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
/**
* 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');
}
2018-03-02 09:55:49 +02:00
/**
* 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');
2018-11-14 11:08:05 +02:00
// load a localized version for date/time
$locale = get_locale();
2019-09-17 12:36:11 +03:00
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' ) ) ) {
2018-11-14 11:08:05 +02:00
wp_enqueue_script('um_datetime_locale' );
}
2018-03-02 09:55:49 +02:00
wp_enqueue_style('um_datetime');
wp_enqueue_style('um_datetime_date');
wp_enqueue_style('um_datetime_time');
}
2018-03-02 09:55:49 +02:00
/**
* Load scrollbar
*/
function load_scrollbar(){
wp_enqueue_style('um_scrollbar');
}
2018-03-02 09:55:49 +02:00
/**
* Load rating
*/
2018-10-15 10:46:50 +03:00
function load_raty() {
2018-03-02 09:55:49 +02:00
wp_enqueue_script('um_raty');
wp_enqueue_style('um_raty');
}
/**
* Load crop script
*/
2018-11-01 16:02:08 +02:00
function load_imagecrop() {
wp_enqueue_script( 'um_crop' );
wp_enqueue_style( 'um_crop' );
2018-03-02 09:55:49 +02:00
}
/**
* Load tipsy
*/
2018-11-01 16:02:08 +02:00
function load_tipsy() {
wp_enqueue_script( 'um_tipsy' );
wp_enqueue_style( 'um_tipsy' );
2018-03-02 09:55:49 +02:00
}
/**
* Load modal
*/
2018-11-01 16:02:08 +02:00
function load_modal() {
wp_enqueue_script( 'um_modal' );
wp_enqueue_style( 'um_modal' );
2018-03-02 09:55:49 +02:00
}
/**
* Load responsive styles
*/
2018-11-01 16:02:08 +02:00
function load_responsive() {
wp_enqueue_script( 'um_responsive' );
wp_enqueue_style( 'um_responsive' );
2018-03-02 09:55:49 +02:00
}
2018-03-02 09:55:49 +02:00
}
2019-03-13 10:57:05 +02:00
}