' . base64_encode( 'user:'. $api_key ) ] ]; $response = wp_remote_get( $url, $args ); foreach (json_decode($response['body'])->interests as $key => $value ) { // var_dump($group_name, $group_id); // var_dump($group_name, $group_id, $value->id, $value->name); $groups_array[$value->id] = $value->name; } } } return $groups_array; } /** ** WPR Animation Timings */ public static function wpr_animation_timings() { $timing_functions = [ 'ease-default' => 'Default', 'linear' => 'Linear', 'ease-in' => 'Ease In', 'ease-out' => 'Ease Out', 'pro-eio' => 'EI Out (Pro)', 'pro-eiqd' => 'EI Quad (Pro)', 'pro-eicb' => 'EI Cubic (Pro)', 'pro-eiqrt' => 'EI Quart (Pro)', 'pro-eiqnt' => 'EI Quint (Pro)', 'pro-eisn' => 'EI Sine (Pro)', 'pro-eiex' => 'EI Expo (Pro)', 'pro-eicr' => 'EI Circ (Pro)', 'pro-eibk' => 'EI Back (Pro)', 'pro-eoqd' => 'EO Quad (Pro)', 'pro-eocb' => 'EO Cubic (Pro)', 'pro-eoqrt' => 'EO Quart (Pro)', 'pro-eoqnt' => 'EO Quint (Pro)', 'pro-eosn' => 'EO Sine (Pro)', 'pro-eoex' => 'EO Expo (Pro)', 'pro-eocr' => 'EO Circ (Pro)', 'pro-eobk' => 'EO Back (Pro)', 'pro-eioqd' => 'EIO Quad (Pro)', 'pro-eiocb' => 'EIO Cubic (Pro)', 'pro-eioqrt' => 'EIO Quart (Pro)', 'pro-eioqnt' => 'EIO Quint (Pro)', 'pro-eiosn' => 'EIO Sine (Pro)', 'pro-eioex' => 'EIO Expo (Pro)', 'pro-eiocr' => 'EIO Circ (Pro)', 'pro-eiobk' => 'EIO Back (Pro)', ]; if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) { $timing_functions = \WprAddonsPro\Includes\Controls\WPR_Control_Animations_Pro::wpr_animation_timings(); } return $timing_functions; } public static function wpr_animation_timing_pro_conditions() { return ['pro-eio','pro-eiqd','pro-eicb','pro-eiqrt','pro-eiqnt','pro-eisn','pro-eiex','pro-eicr','pro-eibk','pro-eoqd','pro-eocb','pro-eoqrt','pro-eoqnt','pro-eosn','pro-eoex','pro-eocr','pro-eobk','pro-eioqd','pro-eiocb','pro-eioqrt','pro-eioqnt','pro-eiosn','pro-eioex','pro-eiocr','pro-eiobk']; } /** ** WPR Library Button */ public static function wpr_library_buttons( $module, $controls_manager, $tutorial_url = '' ) { if ( empty(get_option('wpr_wl_plugin_links')) ) { if ( '' !== $tutorial_url ) { $tutorial_link = ''. esc_html__( 'Watch Video Tutorial ', 'wpr-addons' ) .''; } else { $tutorial_link = ''; } $module->add_control( 'wpr_library_buttons', [ 'raw' => '
'. esc_html__( 'Widget Preview', 'wpr-addons' ) .' '. esc_html__( 'Predefined Styles', 'wpr-addons' ) .'
'. $tutorial_link, 'type' => $controls_manager, ] ); } } /** ** Upgrade to Pro Notice */ public static function upgrade_pro_notice( $module, $controls_manager, $widget, $option, $condition = [] ) { if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) { return; } $url = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-'. $widget .'-upgrade-pro#purchasepro'; $module->add_control( $option .'_pro_notice', [ 'raw' => 'This option is available
in the Pro version and above.', // 'raw' => 'This option is available
in the Pro version', 'type' => $controls_manager, 'content_classes' => 'wpr-pro-notice', 'condition' => [ $option => $condition, ] ] ); } public static function upgrade_expert_notice( $module, $controls_manager, $widget, $option, $condition = [] ) { if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) { return; } $url = 'https://royal-elementor-addons.com/?ref=rea-plugin-panel-'. $widget .'-upgrade-expert#purchasepro'; $module->add_control( $option .'_expert_notice', [ 'raw' => 'This option is available
in the Expert version', // 'raw' => 'This option is available
in the Pro version', 'type' => $controls_manager, 'content_classes' => 'wpr-pro-notice', 'condition' => [ $option => $condition, ] ] ); } /** ** Request Feature Section */ public static function wpr_add_section_request_feature( $module, $raw_html, $tab ) { $module->start_controls_section( 'section_request_new_feature', [ 'label' => __( 'Request Feature', 'wpr-addons' ), 'tab' => $tab, ] ); $module->add_control( 'request_new_feature', [ 'type' => $raw_html, 'raw' => __( 'Missing an Option, have a New Widget or any kind of Feature Idea? Please share it with us and lets discuss. Request New Feature ', 'wpr-addons' ), ] ); $module->end_controls_section(); // End Controls Section } /** ** Pro Features List Section */ public static function pro_features_list_section( $module, $section, $type, $widget, $features ) { if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) { return; } if ( '' === $section ) { $module->start_controls_section( 'pro_features_section', [ 'label' => 'Pro Features ', ] ); } else { $module->start_controls_section( 'pro_features_section', [ 'label' => 'Pro Features ', 'tab' => $section, ] ); } $list_html = ''; for ($i=0; $i < count($features); $i++) { $list_html .= '
  • '. $features[$i] .'
  • '; } $module->add_control( 'pro_features_list', [ 'type' => $type, 'raw' => ' Get Pro version', 'content_classes' => 'wpr-pro-features-list', ] ); $module->end_controls_section(); } // Add two new functions for handling cookies public function get_wishlist_from_cookie() { if (isset($_COOKIE['wpr_wishlist'])) { return json_decode(stripslashes($_COOKIE['wpr_wishlist']), true); } else if ( isset($_COOKIE['wpr_wishlist_'. get_current_blog_id() .'']) ) { return json_decode(stripslashes($_COOKIE['wpr_wishlist_'. get_current_blog_id() .'']), true); } return array(); } // Client IP for form submission public static function get_client_ip() { $server_ip_keys = [ 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR', ]; foreach ( $server_ip_keys as $key ) { $value = self::_unstable_get_super_global_value( $_SERVER, $key ); if ( $value && filter_var( $value, FILTER_VALIDATE_IP ) ) { return $value; } } // Fallback local ip. return '127.0.0.1'; } // For get_client_ip public static function _unstable_get_super_global_value( $super_global, $key ) { if ( ! isset( $super_global[ $key ] ) ) { return null; } if ( $_FILES === $super_global ) { $super_global[ $key ]['name'] = sanitize_file_name( $super_global[ $key ]['name'] ); return $super_global[ $key ]; } return wp_kses_post_deep( wp_unslash( $super_global[ $key ] ) ); } /** ** Check for New Free Users */ public static function is_new_free_user() { return (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) && (intval(get_option('royal_elementor_addons_activation_time')) > 1649247746); } // public static function is_new_free_user2() { // return (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) && (intval(get_option('royal_elementor_addons_activation_time')) > 1670317149); // } // public static function is_old_pro_user_or_expert() { // return wpr_fs()->is_plan( 'expert' ) || (wpr_fs()->is_plan( 'pro' ) && (intval(get_option('royal_elementor_addons_pro_activation_time')) < 1680264265)); // } // public static function is_new_pro_user() { // return wpr_fs()->is_plan( 'pro' ) && (intval(get_option('royal_elementor_addons_pro_activation_time')) > 1680264265); // } /** ** HTML Tags Whitelist */ public static function validate_html_tags_wl( $setting, $default, $tags_whitelist ) { $value = $setting; if ( ! in_array(strtolower($value), $tags_whitelist) ) { $value = $default; } return $value; } public static function get_all_breakpoints( $type = 'assoc' ) { $devices = array( 'desktop' => __( 'Desktop', 'elementor' ), ); if ( class_exists( '\Elementor\Plugin' ) && isset( \Elementor\Plugin::$instance->breakpoints ) && method_exists( \Elementor\Plugin::$instance->breakpoints, 'get_active_breakpoints' ) ) { $active_breakpoints = \Elementor\Plugin::$instance->breakpoints->get_active_breakpoints(); if ( is_array( $active_breakpoints ) ) { foreach ( $active_breakpoints as $key => $breakpoint ) { if ( 'desktop' === $key ) { continue; } $label = ''; if ( is_object( $breakpoint ) && method_exists( $breakpoint, 'get_label' ) ) { $label = $breakpoint->get_label(); } if ( '' === $label ) { $label = ucwords( str_replace( '_', ' ', $key ) ); } $devices[ $key ] = $label; } } } if ( ! isset( $devices['tablet'] ) ) { $devices['tablet'] = __( 'Tablet', 'elementor' ); } if ( ! isset( $devices['mobile'] ) ) { $devices['mobile'] = __( 'Mobile', 'elementor' ); } $order = array( 'widescreen', 'desktop', 'laptop', 'tablet_extra', 'tablet', 'mobile_extra', 'mobile', ); $ordered_devices = array(); foreach ( $order as $breakpoint_key ) { if ( isset( $devices[ $breakpoint_key ] ) ) { $ordered_devices[ $breakpoint_key ] = $devices[ $breakpoint_key ]; } } foreach ( $devices as $breakpoint_key => $label ) { if ( ! isset( $ordered_devices[ $breakpoint_key ] ) ) { $ordered_devices[ $breakpoint_key ] = $label; } } return ( 'keys' === $type ) ? array_keys( $ordered_devices ) : $ordered_devices; } }