D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
cwd
/
wp-content
/
plugins
/
header-footer-elementor
/
inc
/
widgets-manager
/
base
/
Filename :
hfe-helper.php
back
Copy
<?php /** * HFEHelper. * * @package header-footer-elementor */ namespace HFE\WidgetsManager\Base; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } use Elementor\Plugin; use Elementor\Utils; use Elementor\Widget_Base; use HFE\WidgetsManager\Base\Widgets_Config; /** * Class HFE_Helper. */ class HFE_Helper { /** * Widget Options * * @var widget_options */ private static $widget_options = null; /** * Widget List * * @var widget_list */ private static $widget_list = null; /** * Widget List * * @var widget_list */ private static $pro_widget_list = null; /** * Widget List * * @var widget_list */ private static $all_widgets_list = null; /** * Plugins List * * @var get_bsf_plugins_list */ private static $get_bsf_plugins_list = null; /** * Check if UAE Pro is active. * * @since 2.2.1 * @return bool */ public static function is_pro_active() { if ( is_plugin_active( 'ultimate-elementor/ultimate-elementor.php' ) && defined( 'UAEL_PRO' ) && UAEL_PRO ) { return true; } return false; } /** * Provide General settings array(). * * @since 2.2.1 * @return array() */ public static function premium_starter_templates_status() { $st_pro_status = Widgets_Config::get_plugin_status( 'astra-pro-sites/astra-pro-sites.php' ); return $st_pro_status; } /** * Provide General settings array(). * * @since 2.2.1 * @return array() */ public static function free_starter_templates_status() { $free_status = Widgets_Config::get_plugin_status( 'astra-sites/astra-sites.php' ); return $free_status; } /** * Provide General settings array(). * * @since 2.2.1 * @return array() */ public static function starter_templates_status() { $st_pro_status = self::premium_starter_templates_status(); $free_status = self::free_starter_templates_status(); if ( 'Activated' !== $free_status && ( 'Installed' === $st_pro_status || 'Activated' === $st_pro_status ) ) { return $st_pro_status; } return $free_status; } /** * Provide General settings array(). * * @since 2.2.1 * @return array() */ public static function starter_templates_link() { if ( is_plugin_active( 'astra-sites/astra-sites.php' ) || is_plugin_active( 'astra-pro-sites/astra-pro-sites.php' ) ) { return admin_url( 'themes.php?page=starter-templates' ); } return ''; } /** * Provide General settings array(). * * @since 0.0.1 * @return array() */ public static function get_widget_list() { if ( ! isset( self::$widget_list ) ) { self::$widget_list = Widgets_Config::get_widget_list(); } return apply_filters( 'hfe_widgets_list', self::$widget_list ); } /** * Provide General settings array(). * * @since 0.0.1 * @return array() */ public static function get_pro_widget_list() { if ( ! isset( self::$pro_widget_list ) ) { self::$pro_widget_list = Widgets_Config::get_pro_widget_list(); } return apply_filters( 'hfe_pro_widgets_list', self::$pro_widget_list ); } /** * Provide General settings array(). * * @since 0.0.1 * @return array() */ public static function get_all_widgets_list() { if ( ! isset( self::$all_widgets_list ) ) { self::$all_widgets_list = self::get_widget_options() + self::get_pro_widget_list(); } return apply_filters( 'hfe_all_widgets_list', self::$all_widgets_list ); } /** * Provide General settings array(). * * @since 2.2.1 * @return array() */ public static function get_bsf_plugins_list() { if ( ! isset( self::$get_bsf_plugins_list ) ) { self::$get_bsf_plugins_list = Widgets_Config::get_bsf_plugins(); } return apply_filters( 'uael_plugins_list', self::$get_bsf_plugins_list ); } /** * Provide Widget Name * * @param string $slug Module slug. * @return string * @since 0.0.1 */ public static function get_widget_slug( $slug = '' ) { if ( ! isset( self::$widget_list ) ) { self::$widget_list = self::get_widget_list(); } $widget_slug = ''; if ( isset( self::$widget_list[ $slug ] ) ) { $widget_slug = self::$widget_list[ $slug ]['slug']; } return apply_filters( 'hfe_widget_slug', $widget_slug ); } /** * Provide Widget Name * * @param string $slug Module slug. * @return string * @since 0.0.1 */ public static function get_widget_title( $slug = '' ) { if ( ! isset( self::$widget_list ) ) { self::$widget_list = self::get_widget_list(); } $widget_name = ''; if ( isset( self::$widget_list[ $slug ] ) ) { $widget_name = self::$widget_list[ $slug ]['title']; } return apply_filters( 'hfe_widget_name', $widget_name ); } /** * Provide Widget Name * * @param string $slug Module slug. * @return string * @since 0.0.1 */ public static function get_widget_icon( $slug = '' ) { if ( ! isset( self::$widget_list ) ) { self::$widget_list = self::get_widget_list(); } $widget_icon = ''; if ( isset( self::$widget_list[ $slug ] ) ) { $widget_icon = self::$widget_list[ $slug ]['icon']; } return apply_filters( 'hfe_widget_icon', $widget_icon ); } /** * Provide Widget Keywords * * @param string $slug Module slug. * @return string * @since 1.5.1 */ public static function get_widget_keywords( $slug = '' ) { if ( ! isset( self::$widget_list ) ) { self::$widget_list = self::get_widget_list(); } $widget_keywords = ''; if ( isset( self::$widget_list[ $slug ] ) && isset( self::$widget_list[ $slug ]['keywords'] ) ) { $widget_keywords = self::$widget_list[ $slug ]['keywords']; } return apply_filters( 'hfe_widget_keywords', $widget_keywords ); } /** * Provide Widget settings. * * @return array() * @since 0.0.1 */ public static function get_widget_options() { if ( null === self::$widget_options ) { if ( ! isset( self::$widget_list ) ) { $widgets = self::get_widget_list(); } else { $widgets = self::$widget_list; } $saved_widgets = self::get_admin_settings_option( '_hfe_widgets' ); if ( is_array( $widgets ) ) { foreach ( $widgets as $slug => $data ) { if ( isset( $saved_widgets[ $slug ] ) ) { if ( 'disabled' === $saved_widgets[ $slug ] ) { $widgets[ $slug ]['is_activate'] = false; } else { $widgets[ $slug ]['is_activate'] = true; } } else { $widgets[ $slug ]['is_activate'] = ( isset( $data['default'] ) ) ? $data['default'] : false; } } } self::$widget_options = $widgets; } return apply_filters( 'hfe_enabled_widgets', self::$widget_options ); } /** * Updates an option from the admin settings page. * * @param string $key The option key. * @param mixed $value The value to update. * @param bool $network Whether to allow the network admin setting to be overridden on subsites. * @return mixed */ public static function update_admin_settings_option( $key, $value, $network = false ) { // Update the site-wide option since we're in the network admin. if ( $network && is_multisite() ) { update_site_option( $key, $value ); } else { update_option( $key, $value ); } } /** * Returns an option from the database for * the admin settings page. * * @param string $key The option key. * @param mixed $default Option default value if option is not available. * @param boolean $network_override Whether to allow the network admin setting to be overridden on subsites. * @return string Return the option value */ public static function get_admin_settings_option( $key, $default = false, $network_override = false ) { // Get the site-wide option if we're in the network admin. if ( $network_override && is_multisite() ) { $value = get_site_option( $key, $default ); } else { $value = get_option( $key, $default ); } return $value; } /** * Widget Active. * * @param string $slug Module slug. * @return string * @since 0.0.1 */ public static function is_widget_active( $slug = '' ) { $widgets = self::get_widget_options(); $is_activate = false; if ( isset( $widgets[ $slug ] ) ) { $is_activate = $widgets[ $slug ]['is_activate']; } return $is_activate; } /** * Get Rollback versions. * * @since 1.23.0 * @return array * @access public */ public static function get_rollback_versions_options() { $rollback_versions = self::get_rollback_versions(); $rollback_versions_options = []; foreach ( $rollback_versions as $version ) { $version = [ 'label' => $version, 'value' => $version, ]; $rollback_versions_options[] = $version; } return $rollback_versions_options; } /** * Get Rollback versions. * * @since 2.2.1 * @return array * @access public */ public static function get_rollback_versions() { $rollback_versions = get_transient( 'hfe_rollback_versions_' . HFE_VER ); if ( empty( $rollback_versions ) ) { $max_versions = 10; require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; $plugin_information = plugins_api( 'plugin_information', [ 'slug' => 'header-footer-elementor', ] ); if ( empty( $plugin_information->versions ) || ! is_array( $plugin_information->versions ) ) { return []; } krsort( $plugin_information->versions ); $rollback_versions = []; foreach ( $plugin_information->versions as $version => $download_link ) { $lowercase_version = strtolower( $version ); $is_valid_rollback_version = ! preg_match( '/(trunk|beta|rc|dev)/i', $lowercase_version ); if ( ! $is_valid_rollback_version ) { continue; } if ( version_compare( $version, HFE_VER, '>=' ) ) { continue; } $rollback_versions[] = $version; } usort( $rollback_versions, function( $prev, $next ) { if ( version_compare( $prev, $next, '==' ) ) { return 0; } if ( version_compare( $prev, $next, '>' ) ) { return -1; } return 1; } ); $rollback_versions = array_slice( $rollback_versions, 0, $max_versions, true ); set_transient( 'hfe_rollback_versions_' . HFE_VER, $rollback_versions, WEEK_IN_SECONDS ); } return $rollback_versions; } }