urlencode( implode( '|', $font_families ) ) ); $fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ); } return esc_url_raw( $fonts_url ); } public static function kses( $raw ) { $allowed_tags = array( 'a' => array( 'class' => array(), 'href' => array(), 'rel' => array(), 'title' => array(), 'target' => array(), ), 'abbr' => array( 'title' => array(), ), 'b' => array(), 'blockquote' => array( 'cite' => array(), ), 'cite' => array( 'title' => array(), ), 'code' => array(), 'pre' => array(), 'del' => array( 'datetime' => array(), 'title' => array(), ), 'dd' => array(), 'div' => array( 'class' => array(), 'title' => array(), 'style' => array(), ), 'dl' => array(), 'dt' => array(), 'em' => array(), 'strong' => array(), 'h1' => array( 'class' => array(), ), 'h2' => array( 'class' => array(), ), 'h3' => array( 'class' => array(), ), 'h4' => array( 'class' => array(), ), 'h5' => array( 'class' => array(), ), 'h6' => array( 'class' => array(), ), 'i' => array( 'class' => array(), ), 'img' => array( 'alt' => array(), 'class' => array(), 'height' => array(), 'src' => array(), 'width' => array(), ), 'li' => array( 'class' => array(), ), 'ol' => array( 'class' => array(), ), 'p' => array( 'class' => array(), ), 'q' => array( 'cite' => array(), 'title' => array(), ), 'span' => array( 'class' => array(), 'title' => array(), 'style' => array(), ), 'iframe' => array( 'width' => array(), 'height' => array(), 'scrolling' => array(), 'frameborder' => array(), 'allow' => array(), 'src' => array(), ), 'strike' => array(), 'br' => array(), 'table' => array(), 'thead' => array(), 'tbody' => array(), 'tfoot' => array(), 'tr' => array(), 'th' => array(), 'td' => array(), 'colgroup' => array(), 'col' => array(), 'strong' => array(), 'data-wow-duration' => array(), 'data-wow-delay' => array(), 'data-wallpaper-options' => array(), 'data-stellar-background-ratio' => array(), 'ul' => array( 'class' => array(), ), 'svg' => array( 'class' => true, 'aria-hidden' => true, 'aria-labelledby' => true, 'role' => true, 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true, // <= Must be lower case! ), 'g' => array( 'fill' => true ), 'title' => array( 'title' => true ), 'path' => array( 'd' => true, 'fill' => true, ), ); if ( function_exists( 'wp_kses' ) ) { // WP is here return wp_kses( $raw, $allowed_tags ); } else { return $raw; } } public static function kspan($text){ return str_replace(['{', '}'], ['', ''], self::kses($text)); } public static function ekit_get__forms($post_type) { $wpuf_form_list = get_posts(array( 'post_type' => $post_type, 'showposts' => 999, )); $options = array(); if (!empty($wpuf_form_list) && !is_wp_error($wpuf_form_list)) { $options[0] = esc_html__('Select Form', 'elementskit-lite'); foreach ($wpuf_form_list as $post) { $options[$post->ID] = $post->post_title; } } else { $options[0] = esc_html__('Create a form first', 'elementskit-lite'); } return $options; } public static function ekit_get_ninja_form() { $options = array(); if (class_exists('Ninja_Forms')) { $contact_forms = Ninja_Forms()->form()->get_forms(); if (!empty($contact_forms) && !is_wp_error($contact_forms)) { $options[0] = esc_html__('Select Ninja Form', 'elementskit-lite'); foreach ($contact_forms as $form) { $options[$form->get_id()] = $form->get_setting('title'); } } } else { $options[0] = esc_html__('Create a Form First', 'elementskit-lite'); } return $options; } public static function tablepress_table_list() { $table_options = array(); if (class_exists('TablePress')) { $table_ids = \TablePress::$model_table->load_all( false ); $table_options[0] = esc_html__( 'Select Table', 'elementskit-lite' ); foreach ( $table_ids as $table_id ) { // Load table, without table data, options, and visibility settings. $table = \TablePress::$model_table->load( $table_id, false, false ); if ( '' === trim( $table['name'] ) ) { $table['name'] = __( '(no name)', 'elementskit-lite' ); } $table_options[$table['id']] = $table['name']; } } else { $table_options[0] = esc_html__('Create a Table First', 'elementskit-lite'); } return $table_options; } public static function ekit_do_shortcode( $tag, array $atts = array(), $content = null ) { global $shortcode_tags; if ( ! isset( $shortcode_tags[ $tag ] ) ) { return false; } return call_user_func( $shortcode_tags[ $tag ], $atts, $content, $tag ); } public static function trim_words($text, $num_words){ return wp_trim_words( $text, $num_words, '' ); } public static function array_push_assoc($array, $key, $value){ $array[$key] = $value; return $array; } public static function render_elementor_content_css($content_id){ if ( class_exists( '\Elementor\Core\Files\CSS\Post' ) ) { $css_file = new \Elementor\Core\Files\CSS\Post( $content_id ); $css_file->enqueue(); } } public static function render_elementor_content($content_id){ $elementor_instance = \Elementor\Plugin::instance(); $has_css = false; /** * CSS Print Method Internal and Exteral option support for Header and Footer Builder. */ if (('internal' === get_option( 'elementor_css_print_method' )) || \Elementor\Plugin::$instance->preview->is_preview_mode()) { $has_css = true; } return $elementor_instance->frontend->get_builder_content_for_display( $content_id , $has_css ); } public static function render($content){ if (stripos($content, "elementskit-has-lisence") !== false) { return null; } return $content; } public static function render_tab_content($content, $id){ return str_replace('.elementor-'.$id.' ', '#elementor .elementor-'.$id.' ', $content); } public static function img_meta($id){ $attachment = get_post($id); if($attachment == null || $attachment->post_type != 'attachment'){ return null; } return [ 'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ), 'caption' => $attachment->post_excerpt, 'description' => $attachment->post_content, 'href' => get_permalink( $attachment->ID ), 'src' => $attachment->guid, 'title' => $attachment->post_title ]; } public static function esc_options($str, $options = [], $default = ''){ if(!in_array($str, $options)){ return $default; } return $str; } public static function get_attachment_image_html($settings, $image_key, $image_size_key = null, $image_attr = []){ if ( ! $image_key ) { $image_key = $image_size_key; } $image = $settings[ $image_key ]; $size = $image_size_key; $html = ''; if(!empty($image['id']) && $image['id'] != '-1'){ $html .= wp_get_attachment_image( $image['id'], $size, false, $image_attr ); } else { $html .= sprintf( '%s', esc_attr( $image['url'] ), \Elementor\Control_Media::get_image_title( $image ), \Elementor\Control_Media::get_image_alt( $image ) ); } $html = preg_replace(array('/max-width:[^"]*;/', '/width:[^"]*;/', '/height:[^"]*;/'), '', $html); return $html; } }