File "helper-function.php"
Full Path: /home/leadltht/fastlinkinternet.com/admin/wp-content/wp-content/wp-content/wp-content/plugins/bdevs-element/includes/helper-function.php
File size: 16.91 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* functions mentod
*
* @package Bdevs_Addons
*/
defined('ABSPATH') || die();
function bdevs_element_dashboard_url($suffix = '#home')
{
return add_query_arg(['page' => 'bdevs-addons' . $suffix], admin_url('admin.php'));
}
function bdevs_element_get_b64_icon()
{
return '';
}
/**
* List of bdevs icons
*
* @return array
*/
function bdevs_element_get_bdevs_element_icons()
{
return [
'fal fa-check' => 'pro check',
'hm hm-degree' => 'degree',
'hm hm-accordion-horizontal' => 'accordion-horizontal',
'hm hm-accordion-vertical' => 'accordion-vertical',
];
}
function bdevs_element_render_icon($settings = [], $old_icon_id = 'icon', $new_icon_id = 'selected_icon', $attributes = [])
{
// Check if its already migrated
$migrated = isset($settings['__fa4_migrated'][$new_icon_id]);
// Check if its a new widget without previously selected icon using the old Icon control
$is_new = empty($settings[$old_icon_id]);
$attributes['aria-hidden'] = 'true';
\Elementor\Icons_Manager::render_icon($settings[$new_icon_id], $attributes);
}
function bdevs_element_get_current_user_display_name()
{
$user = wp_get_current_user();
$name = 'user';
if ($user->exists() && $user->display_name) {
$name = $user->display_name;
}
return $name;
}
function bdevs_element_has_pro()
{
return '';
}
/**
* Get elementor instance
*
* @return \Elementor\Plugin
*/
function bdevs_element_elementor()
{
return \Elementor\Plugin::instance();
}
function bdevs_element_is_bdevs_element_mode_enabled()
{
return apply_filters('bdevs_element_is_bdevs_element_mode_enabled', true);
}
function bdevs_element_is_elementor_version($operator = '<', $version = '2.6.0')
{
return defined('ELEMENTOR_VERSION') && version_compare(ELEMENTOR_VERSION, $version, $operator);
}
function bdevs_element_get_allowed_html_desc($level = 'basic')
{
if (!in_array($level, ['basic', 'intermediate'])) {
$level = 'basic';
}
$tags_str = '<' . implode('>,<', array_keys(bdevs_element_get_allowed_html_tags($level))) . '>';
return sprintf(__('This input field has support for the following HTML tags: %1$s', 'bdevselement'), '<code>' . esc_html($tags_str) . '</code>');
}
function bdevs_element_get_allowed_html_tags($level = 'basic')
{
$allowed_html = [
'img' => [
'src' => [],
'class' => []
],
'b' => [],
'i' => [],
'u' => [],
'em' => [],
'br' => [],
'abbr' => [
'title' => [],
],
'span' => [
'class' => [],
],
'strong' => [],
'p' => [
'class' => [],
'data-wow-delay' => [],
],
];
if ($level === 'intermediate') {
$allowed_html['a'] = [
'href' => [],
'title' => [],
'class' => [],
'id' => [],
];
$allowed_html['div'] = [
'class' => [],
'id' => [],
];
$allowed_html['img'] = [
'src' => [],
'class' => [],
'alt' => [],
];
}
return $allowed_html;
}
/**
* Strip all the tags except allowed html tags
*
* The name is based on inline editing toolbar name
*
* @param string $string
* @return string
*/
function bdevs_element_kses_intermediate($string = '')
{
return wp_kses($string, bdevs_element_get_allowed_html_tags('intermediate'));
}
/** Form activated **/
function bdevs_element_is_cf7_activated()
{
return class_exists('WPCF7');
}
function bdevs_element_kses_basic($string = '')
{
return wp_kses($string, bdevs_element_get_allowed_html_tags('basic'));
}
function bdevs_element_is_script_debug_enabled()
{
return (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG);
}
function bdevs_element_get_dashboard_link($suffix = '#home')
{
return add_query_arg(['page' => 'bdevs-addons' . $suffix], admin_url('admin.php'));
}
/**
* Check if WPForms is activated
*
* @return bool
*/
function bdevs_element_is_wpforms_activated()
{
return class_exists('\WPForms\WPForms');
}
/**
* Check if Ninja Form is activated
*
* @return bool
*/
function bdevs_element_is_ninjaforms_activated()
{
return class_exists('Ninja_Forms');
}
/**
* Check if Caldera Form is activated
*
* @return bool
*/
function bdevs_element_is_calderaforms_activated()
{
return class_exists('Caldera_Forms');
}
/**
* Check if We Form is activated
*
* @return bool
*/
function bdevs_element_is_weforms_activated()
{
return class_exists('WeForms');
}
/**
* Check if Gravity Forms is activated
*
* @return bool
*/
function bdevs_element_is_gravityforms_activated()
{
return class_exists('GFForms');
}
/**
* Get a list of all CF7 forms
*
* @return array
*/
function bdevs_element_get_cf7_forms()
{
$forms = [];
if (bdevs_element_is_cf7_activated()) {
$_forms = get_posts([
'post_type' => 'wpcf7_contact_form',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
]);
if (!empty($_forms)) {
$forms = wp_list_pluck($_forms, 'post_title', 'ID');
}
}
return $forms;
}
/**
* Get a list of all WPForms
*
* @return array
*/
function bdevs_element_get_wpforms()
{
$forms = [];
if (bdevs_element_is_wpforms_activated()) {
$_forms = get_posts([
'post_type' => 'wpforms',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
]);
if (!empty($_forms)) {
$forms = wp_list_pluck($_forms, 'post_title', 'ID');
}
}
return $forms;
}
/**
* Get a list of all Ninja Form
*
* @return array
*/
function bdevs_element_get_ninjaform()
{
$forms = [];
if (bdevs_element_is_ninjaforms_activated()) {
$_forms = \Ninja_Forms()->form()->get_forms();
if (!empty($_forms) && !is_wp_error($_forms)) {
foreach ($_forms as $form) {
$forms[$form->get_id()] = $form->get_setting('title');
}
}
}
return $forms;
}
/**
* Get a list of all Caldera Form
*
* @return array
*/
function bdevs_element_get_caldera_form()
{
$forms = [];
if (bdevs_element_is_calderaforms_activated()) {
$_forms = \Caldera_Forms_Forms::get_forms(true, true);
if (!empty($_forms) && !is_wp_error($_forms)) {
foreach ($_forms as $form) {
$forms[$form['ID']] = $form['name'];
}
}
}
return $forms;
}
/**
* Get a list of all WeForm
*
* @return array
*/
function bdevs_element_get_we_forms()
{
$forms = [];
if (bdevs_element_is_weforms_activated()) {
$_forms = get_posts([
'post_type' => 'wpuf_contact_form',
'post_status' => 'publish',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
]);
if (!empty($_forms)) {
$forms = wp_list_pluck($_forms, 'post_title', 'ID');
}
}
return $forms;
}
/**
* Get a list of all GravityForms
*
* @return array
*/
function bdevs_element_get_gravity_forms()
{
$forms = [];
if (bdevs_element_is_gravityforms_activated()) {
$gravity_forms = \RGFormsModel::get_forms(null, 'title');
if (!empty($gravity_forms) && !is_wp_error($gravity_forms)) {
foreach ($gravity_forms as $gravity_form) {
$forms[$gravity_form->id] = $gravity_form->title;
}
}
}
return $forms;
}
/**
* Get All Post Types
* @param array $args
* @param array $diff_key
* @return array|string[]|WP_Post_Type[]
*/
function bdevs_element_get_post_types($args = array(), $diff_key = array())
{
$default = [
'public' => true,
'show_in_nav_menus' => true
];
$args = array_merge($default, $args);
$post_types = get_post_types($args, 'objects');
$post_types = wp_list_pluck($post_types, 'label', 'name');
if (!empty($diff_key)) {
$post_types = array_diff_key($post_types, $diff_key);
}
return $post_types;
}
/**
* Get All Taxonomies
* @param array $args
* @param string $output
* @param bool $list
* @param array $diff_key
* @return array|string[]|WP_Taxonomy[]
*/
function bdevs_element_get_taxonomies($args = array(), $output = 'object', $list = true, $diff_key = array())
{
$taxonomies = get_taxonomies($args, $output);
if ('object' === $output && $list) {
$taxonomies = wp_list_pluck($taxonomies, 'label', 'name');
}
if (!empty($diff_key)) {
$taxonomies = array_diff_key($taxonomies, $diff_key);
}
return $taxonomies;
}
/**
* Post Tab Ajax call
*/
function bdevs_element_post_tab()
{
$security = check_ajax_referer('bdevs_addons_nonce', 'security');
if (true == $security) :
$settings = $_POST['post_tab_query'];
$post_type = $settings['post_type'];
$taxonomy = $settings['taxonomy'];
$item_limit = $settings['item_limit'];
$excerpt = $settings['excerpt'];
$term_id = $_POST['term_id'];
$args = [
'post_status' => 'publish',
'post_type' => $post_type,
'posts_per_page' => $item_limit,
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'term_id',
'terms' => $term_id,
),
),
];
$posts = get_posts($args);
if (count($posts) !== 0):
?>
<div class="bdevs-post-tab-item-wrapper active" data-term="<?php echo esc_attr($term_id); ?>">
<?php foreach ($posts as $post): ?>
<div class="bdevs-post-tab-item">
<div class="bdevs-post-tab-item-inner">
<?php if (has_post_thumbnail($post->ID)): ?>
<a href="<?php echo esc_url(get_the_permalink($post->ID)); ?>"
class="bdevs-post-tab-thumb">
<?php echo get_the_post_thumbnail($post->ID, 'full'); ?>
</a>
<?php endif; ?>
<h2 class="bdevs-post-tab-title">
<a href="<?php echo esc_url(get_the_permalink($post->ID)); ?>"> <?php echo esc_html($post->post_title); ?></a>
</h2>
<div class="bdevs-post-tab-meta">
<span class="bdevs-post-tab-meta-author">
<i class="fa fa-user-o"></i>
<a href="<?php echo esc_url(get_author_posts_url($post->post_author)); ?>"><?php echo esc_html(get_the_author_meta('display_name', $post->post_author)); ?></a>
</span>
<?php
$archive_year = get_the_time('Y', $post->ID);
$archive_month = get_the_time('m', $post->ID);
$archive_day = get_the_time('d', $post->ID);
?>
<span class="bdevs-post-tab-meta-date">
<i class="fa fa-calendar-o"></i>
<a href="<?php echo esc_url(get_day_link($archive_year, $archive_month, $archive_day)); ?>"><?php echo get_the_date("M d, Y", $post->ID); ?></a>
</span>
</div>
<?php if ('yes' === $excerpt && !empty($post->post_excerpt)): ?>
<div class="bdevs-post-tab-excerpt">
<p><?php echo esc_html($post->post_excerpt); ?></p>
</div>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
</div>
<?php
endif;
endif;
wp_die();
}
//add_action( 'wp_ajax_bdevs_element_post_tab_action', 'bdevs_element_post_tab' );
//add_action( 'wp_ajax_nopriv_bdevs_element_post_tab_action', 'bdevs_element_post_tab' );
// BDT Position
function element_pack_position()
{
$position_options = [
'' => esc_html__('Default', 'bdevselement'),
'top-left' => esc_html__('Top Left', 'bdevselement'),
'top-center' => esc_html__('Top Center', 'bdevselement'),
'top-right' => esc_html__('Top Right', 'bdevselement'),
'center' => esc_html__('Center', 'bdevselement'),
'center-left' => esc_html__('Center Left', 'bdevselement'),
'center-right' => esc_html__('Center Right', 'bdevselement'),
'bottom-left' => esc_html__('Bottom Left', 'bdevselement'),
'bottom-center' => esc_html__('Bottom Center', 'bdevselement'),
'bottom-right' => esc_html__('Bottom Right', 'bdevselement'),
];
return $position_options;
}
/**
* Call a shortcode function by tag name.
*
* @param string $tag The shortcode whose function to call.
* @param array $atts The attributes to pass to the shortcode function. Optional.
* @param array $content The shortcode's content. Default is null (none).
*
* @return string|bool False on failure, the result of the shortcode on success.
* @since 1.0.0
*
*/
function bdevs_element_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);
}
/**
* Sanitize html class string
*
* @param $class
* @return string
*/
function bdevs_element_sanitize_html_class_param($class)
{
$classes = !empty($class) ? explode(' ', $class) : [];
$sanitized = [];
if (!empty($classes)) {
$sanitized = array_map(function ($cls) {
return sanitize_html_class($cls);
}, $classes);
}
return implode(' ', $sanitized);
}
/**
* Get all elementor page templates
*
* @param null $type
*
* @return array
*/
function get_elementor_templates($type = null)
{
$options = [];
if ($type) {
$args = [
'post_type' => 'elementor_library',
'posts_per_page' => -1,
];
$args['tax_query'] = [
[
'taxonomy' => 'elementor_library_type',
'field' => 'slug',
'terms' => $type,
],
];
$page_templates = get_posts($args);
if (!empty($page_templates) && !is_wp_error($page_templates)) {
foreach ($page_templates as $post) {
$options[$post->ID] = $post->post_title;
}
}
} else {
$options = get_query_post_list('elementor_library');
}
return $options;
}
/**
* Get all types of post.
*
* @param string $post_type
*
* @return array
*/
function get_post_list($post_type = 'any')
{
return get_query_post_list($post_type);
}
/**
* @param string $post_type
* @param int $limit
* @param string $search
* @return array
*/
function get_query_post_list($post_type = 'any', $limit = -1, $search = '')
{
global $wpdb;
$where = '';
$data = [];
if (-1 == $limit) {
$limit = '';
} elseif (0 == $limit) {
$limit = "limit 0,1";
} else {
$limit = $wpdb->prepare(" limit 0,%d", esc_sql($limit));
}
if ('any' === $post_type) {
$in_search_post_types = get_post_types(['exclude_from_search' => false]);
if (empty($in_search_post_types)) {
$where .= ' AND 1=0 ';
} else {
$where .= " AND {$wpdb->posts}.post_type IN ('" . join("', '",
array_map('esc_sql', $in_search_post_types)) . "')";
}
} elseif (!empty($post_type)) {
$where .= $wpdb->prepare(" AND {$wpdb->posts}.post_type = %s", esc_sql($post_type));
}
if (!empty($search)) {
$where .= $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s", '%' . esc_sql($search) . '%');
}
$query = "select post_title,ID from $wpdb->posts where post_status = 'publish' $where $limit";
$results = $wpdb->get_results($query);
if (!empty($results)) {
foreach ($results as $row) {
$data[$row->ID] = $row->post_title;
}
}
return $data;
}