示例#1
0
        $text = '';
        $left_text = '';
        $left_right = '';
        foreach ($values as $key => $data) {
            $new_line = $data;
            $new_line['left'] = isset($data['left']) ? $data['left'] : 0;
            $new_line['top'] = isset($data['top']) ? $data['top'] : 0;
            $new_line['label'] = isset($data['label']) ? $data['label'] : '';
            $new_line['color'] = isset($data['color']) ? $data['color'] : 'default';
            $new_line['color'] = isset($data['color']) ? $data['color'] : 'default';
            $new_line['content'] = isset($data['content']) ? $data['content'] : '';
            $active = $key == 0 ? ' active' : '';
            $text .= sprintf('<div class="image-tooltip-item %s" style="top: %s; left: %s;"><div class="image-tooltip-content" data-count="%s" title="%s"></div></div>', 'tooltip-' . $new_line['color'] . $active, $new_line['top'] . '%', $new_line['left'] . '%', $key, $new_line['label']);
            $tooltip = sprintf('<div class="image-tooltip-element %s" data-count="%s"><h4>%s</h4><div>%s</div></div>', $active, $key, $new_line['label'], $data['content']);
            if ($new_line['align'] == 'right') {
                $left_right .= $tooltip;
            } else {
                $left_text .= $tooltip;
            }
        }
        $output = sprintf('<div class="row"><div class="image-tooltip-left col-md-4">%s</div><div class="image-tooltip-center col-md-4">%s %s</div><div class="image-tooltip-right col-md-4">%s</div></div>', $left_text, '<div class="image-tooltip-image">' . $img['thumbnail'] . '</div>', '<div class="image-tooltip-text">' . $text . '</div>', $left_right);
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Image with Tooltip", 'cruxstore'), "base" => "image_tooltip", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array('type' => 'attach_image', 'heading' => esc_html__('Image', 'cruxstore'), 'param_name' => 'image', 'description' => esc_html__('Select image from media library.', 'js_composer')), array('type' => 'textfield', 'heading' => esc_html__('Image size', 'js_composer'), 'param_name' => 'img_size', 'value' => 'thumbnail', 'description' => esc_html__('Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'js_composer')), array('type' => 'param_group', 'heading' => __('Values', 'js_composer'), 'param_name' => 'values', 'description' => __('Enter values for tooltip - Position, title and color.', 'js_composer'), 'value' => urlencode(json_encode(array(array('label' => __('Tooltip content', 'js_composer'), 'top' => '10', 'left' => '10')))), 'params' => array(array('type' => 'textfield', 'heading' => __('Label', 'js_composer'), 'param_name' => 'label', 'description' => __('Enter text used as title of tooltip.', 'js_composer'), 'admin_label' => true), array('type' => 'cruxstore_number', "suffix" => esc_html__("Percent", 'cruxstore'), 'heading' => __('Position top', 'js_composer'), 'param_name' => 'top', 'description' => __('Enter top position of tooltip.', 'js_composer'), 'admin_label' => true), array('type' => 'cruxstore_number', "suffix" => esc_html__("Percent", 'cruxstore'), 'heading' => __('Position left', 'js_composer'), 'param_name' => 'left', 'description' => __('Enter left position of tooltip.', 'js_composer'), 'admin_label' => true), array('type' => 'textarea', 'holder' => 'div', 'heading' => esc_html__('Enter text used as content of tooltip.', 'js_composer'), 'param_name' => 'content'), array('type' => 'dropdown', 'heading' => __('Color', 'js_composer'), 'param_name' => 'color', 'value' => array(__('Default', 'js_composer') => '') + getVcShared('colors-dashed'), 'description' => __('Select single tooltip background color.', 'js_composer'), 'admin_label' => true, 'param_holder_class' => 'vc_colored-dropdown'), array('type' => 'dropdown', 'heading' => __('Align', 'js_composer'), 'param_name' => 'align', 'value' => array(__('Left', 'js_composer') => 'left', __('Right', 'js_composer') => 'right'), 'description' => __('Select align for item.', 'js_composer'), 'admin_label' => true))), array("type" => "cruxstore_preview", "heading" => esc_html__("Preview tooltip", "cruxstore"), "param_name" => "preview_tooltip", "description" => esc_html__("Please update it after you upload image and values.", "cruxstore")), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#2
0
            $styles[] = 'background-color: ' . $background_title_color . ';';
        }
        if (!empty($styles)) {
            $style_title .= 'style="' . esc_attr(implode(';', $styles)) . '"';
        }
        $img_id = preg_replace('/[^\\d]/', '', $image);
        $img = wpb_getImageBySize(array('attach_id' => $img_id, 'thumb_size' => $img_size, 'class' => 'img-responsive'));
        if ($img == null) {
            $img['thumbnail'] = '<img class="vc_img-placeholder img-responsive" src="' . vc_asset_url('vc/no_image.png') . '" />';
        }
        if ($link) {
            $link = vc_build_link($link);
            $a_href = $link['url'];
            $a_title = $link['title'];
            $a_target = $link['target'];
            $icon_box_link = array('href="' . esc_attr($a_href) . '"', 'title="' . esc_attr($a_title) . '"', 'target="' . esc_attr($a_target) . '"');
            $title = '<a class="box-link" ' . implode(' ', $icon_box_link) . '>' . $title . '</a>';
            $img['thumbnail'] = '<a class="box-link" ' . implode(' ', $icon_box_link) . '>' . $img['thumbnail'] . '</a>';
        }
        $box_title = $title ? '<' . $font_container_data['values']['tag'] . ' class="box-colored-title" ' . $style_title . '>' . $title . '</' . $font_container_data['values']['tag'] . '>' : '';
        $output = '<div class="box-colored-image">' . $img['thumbnail'] . '</div>' . $box_title;
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Box Colored", 'cruxstore'), "base" => "box_colored", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "description" => esc_html__("", 'cruxstore'), "params" => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', 'value' => esc_html__('Title', 'js_composer'), "admin_label" => true), array('type' => 'vc_link', 'heading' => esc_html__('Link Url', 'js_composer'), 'param_name' => 'link'), array('type' => 'attach_image', 'heading' => esc_html__('Image', 'cruxstore'), 'param_name' => 'image', 'description' => esc_html__('Select image from media library.', 'js_composer')), array('type' => 'textfield', 'heading' => esc_html__('Image size', 'js_composer'), 'param_name' => 'img_size', 'value' => 'thumbnail', 'description' => esc_html__('Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'js_composer')), array('type' => 'colorpicker', 'heading' => esc_html__('Background title Color', 'js_composer'), 'param_name' => 'background_title_color', 'description' => esc_html__('Select custom title background color.', 'js_composer'), 'std' => '#ebebeb'), array('type' => 'font_container', 'param_name' => 'font_container', 'value' => '', 'settings' => array('fields' => array('tag' => 'h4', 'font_size', 'line_height', 'color', 'tag_description' => esc_html__('Select element tag.', 'js_composer'), 'text_align_description' => esc_html__('Select text alignment.', 'js_composer'), 'font_size_description' => esc_html__('Enter font size.', 'js_composer'), 'line_height_description' => esc_html__('Enter line height.', 'js_composer'), 'color_description' => esc_html__('Select heading color.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'checkbox', 'heading' => esc_html__('Use theme default font family?', 'js_composer'), 'param_name' => 'use_theme_fonts', 'value' => array(esc_html__('Yes', 'js_composer') => 'yes'), 'description' => esc_html__('Use font family from the theme.', 'js_composer'), 'group' => esc_html__('Typography', 'js_composer'), 'std' => 'yes'), array('type' => 'google_fonts', 'param_name' => 'google_fonts', 'value' => '', 'settings' => array('fields' => array('font_family_description' => esc_html__('Select font family.', 'js_composer'), 'font_style_description' => esc_html__('Select font styling.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore'), 'dependency' => array('element' => 'use_theme_fonts', 'value_not_equal_to' => 'yes'), 'description' => esc_html__('', 'js_composer')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#3
0
            $img = wpb_getImageBySize(array('attach_id' => $img_id, 'thumb_size' => 'full', 'class' => 'img-responsive'));
            if ($img == null) {
                $img['thumbnail'] = '<img class="vc_img-placeholder img-responsive" src="' . vc_asset_url('vc/no_image.png') . '" />';
            }
            $pd_image = $img['thumbnail'];
            if (!empty($pd_link)) {
                $pd_link = vc_build_link($pd_link);
                if ($pd_title) {
                    $pd_title = '<a href="' . esc_attr($pd_link['url']) . '"' . ($pd_link['target'] ? ' target="' . esc_attr($pd_link['target']) . '"' : '') . ($pd_link['title'] ? ' title="' . esc_attr($pd_link['title']) . '"' : '') . '>' . $pd_title . '</a>';
                }
                $pd_image = '<a href="' . esc_attr($pd_link['url']) . '"' . ($pd_link['target'] ? ' target="' . esc_attr($pd_link['target']) . '"' : '') . ($pd_link['title'] ? ' title="' . esc_attr($pd_link['title']) . '"' : '') . '>' . $img['thumbnail'] . '</a>';
            }
            $pd_image = sprintf('<div class="product-price-image">%s</div>', $pd_image);
            if ($pd_title) {
                $pd_title = sprintf('<h5>%s</h5>', $pd_title);
            }
            $text .= sprintf('<div class="%s %s">%s</div>', 'col-md-' . $product_columns . ' col-sm-' . $product_land, 'product-price-item', $pd_image . $pd_title);
        }
        $output = '<div class="row multi-columns-row">' . $text . '</div>';
        $output .= sprintf('<div class="products-price-content visible-lg-block"><div class="products-price-circle"><span class="products-price-only">%s</span><span class="products-price-currency">%s</span><span class="products-price-text">%s</span></div><span class="products-price-cart">%s</span></div>', $badge, $currency, $price, '<i class="fa fa-shopping-basket" aria-hidden="true"></i>');
        $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'products-price ', $this->settings['base'], $atts), 'extra' => $this->getExtraClass($el_class), 'css_animation' => $this->getCSSAnimation($css_animation), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '));
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Products price", 'cruxstore'), "base" => "products_price", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array("type" => "textfield", 'heading' => esc_html__('Badge', 'cruxstore'), 'param_name' => 'badge', "admin_label" => true, 'value' => esc_html__('only', 'cruxstore')), array("type" => "textfield", 'heading' => esc_html__('Price', 'cruxstore'), 'param_name' => 'price', "admin_label" => true, 'value' => 245), array("type" => "textfield", 'heading' => esc_html__('Currency', 'cruxstore'), 'param_name' => 'currency', "admin_label" => true, 'value' => esc_html__('$', 'cruxstore')), array("type" => "cruxstore_heading", "heading" => esc_html__("Columns to Show?", 'cruxstore'), "edit_field_class" => "cruxstore_sub_heading vc_column"), array('type' => 'dropdown', 'heading' => esc_html__('on Desktop', 'cruxstore'), 'param_name' => 'desktop', 'value' => array(esc_html__('4 columns', 'js_composer') => '4', esc_html__('3 columns', 'js_composer') => '3'), 'std' => '3', 'description' => esc_html__('The columns attribute controls how many columns wide the products should be before wrapping.', 'cruxstore')), array('type' => 'param_group', 'heading' => __('Values', 'js_composer'), 'param_name' => 'values', 'description' => esc_html__('Enter values for product - Image, title and url.', 'js_composer'), 'value' => urlencode(json_encode(array(array('label' => esc_html__('Product title', 'js_composer'), 'image' => '')))), 'params' => array(array('type' => 'textfield', 'heading' => esc_html__('Product title', 'js_composer'), 'param_name' => 'label', 'description' => esc_html__('Enter text used as title of product.', 'js_composer'), 'admin_label' => true), array('type' => 'attach_image', 'heading' => esc_html__('Product Image', 'cruxstore'), 'param_name' => 'image', 'dependency' => array('element' => 'icon_type', 'value' => array('image')), 'description' => esc_html__('Select image from media library.', 'js_composer'), 'group' => esc_html__('Icon', 'cruxstore')), array('type' => 'vc_link', 'heading' => esc_html__('Product Url', 'js_composer'), 'param_name' => 'link'))), array("type" => "cruxstore_heading", "heading" => esc_html__("Extra setting", 'cruxstore'), "param_name" => "extra_settings"), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#4
0
    class WPBakeryShortCode_CruxStore_Contact_Form7 extends WPBakeryShortCode
    {
        protected function content($atts, $content = null)
        {
            $atts = shortcode_atts(array('layout' => '', 'id' => '', 'css_animation' => '', 'animation_delay' => '', 'el_class' => '', 'css' => ''), $atts);
            extract($atts);
            $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'cruxstore-contact-form7', $this->settings['base'], $atts), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '), 'extra' => $this->getExtraClass($el_class), 'css_animation' => cruxstore_getCSSAnimation($css_animation));
            if ($layout) {
                $elementClass[] = 'layout' . $layout;
            }
            $rand = rand();
            $output = do_shortcode('[contact-form-7 id="' . $id . '" ]');
            if ($animation_delay) {
                $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
            }
            $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
            return '<div id="cruxstore-contact-form7' . $rand . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
        }
    }
    $cf7 = get_posts('post_type="wpcf7_contact_form"&numberposts=-1');
    $contact_forms = array();
    if ($cf7) {
        foreach ($cf7 as $cform) {
            $contact_forms[$cform->post_title] = $cform->ID;
        }
    } else {
        $contact_forms[esc_html__('No contact forms found', 'js_composer')] = 0;
    }
    // Add your Visual Composer logic here
    vc_map(array("base" => "cruxstore_contact_form7", 'name' => esc_html__('KT: Contact Form 7', 'cruxstore'), 'icon' => 'icon-wpb-contactform7', 'category' => esc_html__('Content', 'js_composer'), 'description' => esc_html__('Place Contact Form7', 'js_composer'), 'params' => array(array('type' => 'dropdown', 'heading' => esc_html__('Contact Form7 Layout', 'cruxstore'), 'param_name' => 'layout', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Layout 1', 'cruxstore') => '1'), 'description' => esc_html__('Choose contact form7 layout.', 'js_composer'), "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Select contact form', 'js_composer'), 'param_name' => 'id', 'value' => $contact_forms, 'save_always' => true, 'description' => esc_html__('Choose previously created contact form from the drop down list.', 'js_composer'), "admin_label" => true), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
}
示例#5
0
// Exit if accessed directly
if (!defined('ABSPATH')) {
    exit;
}
class WPBakeryShortCode_CruxStore_Search extends WPBakeryShortCode
{
    protected function content($atts, $content = null)
    {
        $atts = shortcode_atts(array('layout' => 'default', 'css_animation' => '', 'type' => 'all', 'animation_delay' => '', 'el_class' => '', 'css' => ''), $atts);
        extract($atts);
        $output = '';
        $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'cruxstore-search', $this->settings['base'], $atts), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '), 'extra' => $this->getExtraClass($el_class), 'css_animation' => cruxstore_getCSSAnimation($css_animation), 'layout' => 'layout' . $layout);
        $rand = rand();
        $type = $type == 'products' && cruxstore_is_wc() ? 'WC_Widget_Product_Search' : 'WP_Widget_Search';
        $args = array();
        global $wp_widget_factory;
        // to avoid unwanted warnings let's check before using widget
        if (is_object($wp_widget_factory) && isset($wp_widget_factory->widgets, $wp_widget_factory->widgets[$type])) {
            ob_start();
            the_widget($type, $atts, $args);
            $output .= ob_get_clean();
        } else {
            $output .= $this->debugComment('Widget ' . esc_attr($type) . 'Not found in : vc_wp_search');
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div id="cruxstore-search' . $rand . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array('name' => 'KT: ' . __('Search', 'cruxstore'), 'base' => 'cruxstore_search', 'category' => __('WordPress Widgets', 'js_composer'), 'description' => __('A search form for your site', 'js_composer'), 'params' => array(array('type' => 'dropdown', 'heading' => esc_html__('Search Form Layout', 'cruxstore'), 'param_name' => 'layout', 'value' => array(esc_html__('Default', 'cruxstore') => 'default', esc_html__('Layout 1', 'cruxstore') => '1'), 'description' => esc_html__('Choose search form layout.', 'cruxstore'), "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Search Type', 'cruxstore'), 'param_name' => 'type', 'value' => array(esc_html__('All', 'cruxstore') => 'all', esc_html__('Only products', 'cruxstore') => 'products'), 'description' => esc_html__('Choose search form layout.', 'cruxstore'), "admin_label" => true), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#6
0
                $link = cruxstore_meta('_cruxstore_link_client');
                if ($animation_delay) {
                    $animation_delay_item = sprintf(' data-wow-delay="%sms"', $i * $animation_delay);
                } else {
                    $animation_delay_item = '';
                }
                if ($link) {
                    $post_thumbnail = '<a target="' . $target_link . '" href="' . $link . '">' . get_the_post_thumbnail(get_the_ID(), $img_size) . '</a>';
                } else {
                    $post_thumbnail = get_the_post_thumbnail(get_the_ID(), $img_size, '');
                }
                $client_carousel_html .= sprintf('<div class="%s" %s>%s</div>', 'clients-carousel-item' . $css_animation, $animation_delay_item, $post_thumbnail);
                $i++;
            }
            wp_reset_postdata();
        }
        $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'clients-carousel ', $this->settings['base'], $atts), 'extra' => $this->getExtraClass($el_class), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '));
        if ($image_overlay) {
            $elementClass['overlay'] = 'overlay-' . $image_overlay;
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        $output = '';
        $output .= '<div class="' . esc_attr($elementClass) . '">';
        $carousel_ouput = cruxstore_render_carousel(apply_filters('cruxstore_render_args', $atts));
        $output .= str_replace('%carousel_html%', $client_carousel_html, $carousel_ouput);
        $output .= '</div>';
        return $output;
    }
}
vc_map(array("name" => esc_html__("KT: Clients Carousel", 'cruxstore'), "base" => "clients_carousel", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "wrapper_class" => "clearfix", "params" => array_merge(array(array("type" => "cruxstore_image_sizes", "heading" => esc_html__("Select image sizes", 'cruxstore'), "param_name" => "img_size", 'description' => esc_html__('Select size of image', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Target Link', 'cruxstore'), 'param_name' => 'target_link', 'value' => array(esc_html__('Self', 'cruxstore') => '_self', esc_html__('Blank', 'cruxstore') => '_blank', esc_html__('Parent', 'cruxstore') => '_parent', esc_html__('Top', 'cruxstore') => '_top'), 'description' => esc_html__('Select target link.', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Image Overlay', 'cruxstore'), 'param_name' => 'image_overlay', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Grayscale', 'cruxstore') => 'grayscale', esc_html__('White', 'cruxstore') => 'white', esc_html__('White Boxed', 'cruxstore') => 'white-boxed'), 'description' => esc_html__('Select image overlay for image.', 'cruxstore')), array("type" => "dropdown", "heading" => esc_html__("Data source", 'cruxstore'), "param_name" => "source", "value" => array(esc_html__('All', 'cruxstore') => '', esc_html__('Specific Categories', 'cruxstore') => 'categories', esc_html__('Specific Client', 'cruxstore') => 'posts'), "admin_label" => true, 'std' => 'all', "description" => esc_html__("Select content type for your posts.", 'cruxstore'), 'group' => esc_html__('Data settings', 'js_composer')), array("type" => "cruxstore_taxonomy", 'taxonomy' => 'client-category', 'heading' => esc_html__('Categories', 'cruxstore'), 'param_name' => 'categories', 'placeholder' => esc_html__('Select your categories', 'cruxstore'), "dependency" => array("element" => "source", "value" => array('categories')), 'multiple' => true, 'group' => esc_html__('Data settings', 'js_composer')), array("type" => "cruxstore_posts", 'args' => array('post_type' => 'crux_client', 'posts_per_page' => -1), 'heading' => esc_html__('Specific Client', 'js_composer'), 'param_name' => 'posts', 'placeholder' => esc_html__('Select your posts', 'js_composer'), "dependency" => array("element" => "source", "value" => array('posts')), 'multiple' => true, 'group' => esc_html__('Data settings', 'js_composer')), array('type' => 'dropdown', 'heading' => esc_html__('Order by', 'js_composer'), 'param_name' => 'orderby', 'value' => array(esc_html__('Date', 'js_composer') => 'date', esc_html__('Order by post ID', 'js_composer') => 'ID', esc_html__('Author', 'js_composer') => 'author', esc_html__('Title', 'js_composer') => 'title', esc_html__('Last modified date', 'js_composer') => 'modified', esc_html__('Post/page parent ID', 'js_composer') => 'parent', esc_html__('Number of comments', 'js_composer') => 'comment_count', esc_html__('Menu order/Page Order', 'js_composer') => 'menu_order', esc_html__('Meta value', 'js_composer') => 'meta_value', esc_html__('Meta value number', 'js_composer') => 'meta_value_num', esc_html__('Random order', 'js_composer') => 'rand'), 'description' => esc_html__('Select order type. If "Meta value" or "Meta value Number" is chosen then meta key is required.', 'js_composer'), 'group' => esc_html__('Data settings', 'js_composer'), 'param_holder_class' => 'vc_grid-data-type-not-ids', "admin_label" => true), array('type' => 'textfield', 'heading' => esc_html__('Meta key', 'js_composer'), 'param_name' => 'meta_key', 'description' => esc_html__('Input meta key for grid ordering.', 'js_composer'), 'group' => esc_html__('Data settings', 'js_composer'), 'param_holder_class' => 'vc_grid-data-type-not-ids', 'dependency' => array('element' => 'orderby', 'value' => array('meta_value', 'meta_value_num')), "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Sorting', 'js_composer'), 'param_name' => 'order', 'group' => esc_html__('Data settings', 'js_composer'), 'value' => array(esc_html__('Descending', 'js_composer') => 'DESC', esc_html__('Ascending', 'js_composer') => 'ASC'), 'param_holder_class' => 'vc_grid-data-type-not-ids', 'description' => esc_html__('Select sorting order.', 'js_composer'), "admin_label" => true), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer"))), cruxstore_map_add_carousel_parrams(), array(array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer'))))));
示例#7
0
<?php

// Exit if accessed directly
if (!defined('ABSPATH')) {
    exit;
}
class WPBakeryShortCode_Blockquote extends WPBakeryShortCode
{
    var $excerpt_length;
    protected function content($atts, $content = null)
    {
        $atts = shortcode_atts(array('author' => '', 'reverse' => 'false', 'layout' => 1, 'css' => '', 'css_animation' => '', 'animation_delay' => '', 'el_class' => ''), $atts);
        extract($atts);
        $output = '';
        $reverse = apply_filters('sanitize_boolean', $reverse);
        $elementClass = array('extra' => $this->getExtraClass($el_class), 'css_animation' => cruxstore_getCSSAnimation($css_animation), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '), 'reverse' => $reverse ? 'blockquote-reverse' : '', 'layout' => 'layout-' . $layout);
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $output .= '<blockquote class="' . esc_attr($elementClass) . '"' . $animation_delay . '>';
        $output .= '<p>' . do_shortcode($content) . '</p>';
        if ($author) {
            $output .= '<footer>' . $author . '</footer>';
        }
        $output .= '</blockquote>';
        return $output;
    }
}
vc_map(array("name" => esc_html__("Blockquote", 'cruxstore'), "base" => "blockquote", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "wrapper_class" => "clearfix", "params" => array(array("type" => "textarea_html", "heading" => esc_html__("Content", 'cruxstore'), "param_name" => "content", 'holder' => 'div'), array("type" => "textfield", 'heading' => esc_html__('Author', 'js_composer'), 'param_name' => 'author', "admin_label" => true, "description" => esc_html__("Enter your author.", 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Layout', 'cruxstore'), 'param_name' => 'layout', 'value' => array(esc_html__('Layout 1', 'cruxstore') => '1', esc_html__('Layout 2', 'cruxstore') => '2', esc_html__('Layout 3', 'cruxstore') => '3', esc_html__('Layout 4', 'cruxstore') => '4', esc_html__('Layout 5', 'cruxstore') => '5', esc_html__('Layout 6', 'cruxstore') => '6'), 'description' => esc_html__('Select your layout.', 'cruxstore'), "admin_label" => true), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Reverse Blockquote', 'cruxstore'), 'param_name' => 'reverse', 'value' => 'false', "description" => esc_html__("Enable reverse", 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer')))));
示例#8
0
                $img_url = wp_get_attachment_image_src($img_id, 'full');
                if (array($img_url)) {
                    $icon = sprintf('<img src="%s" class="img-responsive" alt="" />', $img_url['0']);
                }
                $divider_content = sprintf('<span class="%s">%s</span>', 'icon-image', $icon);
            }
            $styles_divider = 'style="' . esc_attr(implode(';', $styles_divider)) . '"';
            $divider = '<div class="' . implode(' ', $divider_class) . '" ' . $styles_divider . '>' . $divider_content . '</div>';
        }
        if ($custom_css) {
            $custom_css = '<div class="cruxstore_custom_css" data-css="' . esc_attr($custom_css) . '"></div>';
        }
        if ($spacer_position == 'bottom') {
            $output .= $title . $content . $divider;
        } elseif ($spacer_position == 'top') {
            $output .= $divider . $title . $content;
        } else {
            $output .= $title . $divider . $content;
        }
        $output .= $custom_css;
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div id="' . $rand . '"  class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
/* Custom Heading element
----------------------------------------------------------- */
vc_map(array('name' => esc_html__('KT: Heading', 'cruxstore'), 'base' => 'cruxstore_heading', "category" => esc_html__('by Kite-Themes', 'cruxstore'), 'params' => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', 'value' => esc_html__('Title', 'js_composer'), "admin_label" => true), array('type' => 'cruxstore_switch', 'heading' => esc_html__('First word color', 'cruxstore'), 'param_name' => 'word', 'value' => 'false', "description" => esc_html__("Show first word in special color", 'cruxstore')), array("type" => "textarea_html", "heading" => esc_html__("Content", 'cruxstore'), "param_name" => "content", "value" => '', "holder" => "div"), array('type' => 'dropdown', 'heading' => esc_html__('Alignment', 'js_composer'), 'param_name' => 'align', 'value' => array(esc_html__('Center', 'js_composer') => 'center', esc_html__('Left', 'js_composer') => 'left', esc_html__('Right', 'js_composer') => "right"), 'description' => esc_html__('Select separator alignment.', 'js_composer')), array("type" => "cruxstore_heading", "heading" => esc_html__("Seperator settings", 'cruxstore'), "param_name" => "spacer_settings"), array("type" => "dropdown", "class" => "", "heading" => __("Seperator", "cruxstore"), "param_name" => "spacer", "value" => array(__("No Seperator", "cruxstore") => "", __("Line", "cruxstore") => "line", __("Icon", "cruxstore") => "icon", __("Image", "cruxstore") => "image"), "description" => __("Horizontal line, icon or image to divide sections", "cruxstore"), "admin_label" => true), array("type" => "dropdown", "class" => "", "heading" => __("Seperator Position", "ultimate_vc"), "param_name" => "spacer_position", "value" => array(__("Between Heading & Content", "cruxstore") => "middle", __("Top", "cruxstore") => "top", __("Bottom", "cruxstore") => "bottom"), "dependency" => array("element" => "spacer", "value" => array("line", "icon", "imag")), 'description' => esc_html__('Select seperator position.', 'js_composer'), "admin_label" => true), array('type' => 'attach_image', 'heading' => esc_html__('Image Thumbnail', 'cruxstore'), 'param_name' => 'image', "dependency" => array("element" => "spacer", "value" => array("image")), 'description' => esc_html__('Select image from media library.', 'js_composer')), array("type" => "cruxstore_icons", 'heading' => esc_html__('Choose your icon', 'js_composer'), 'param_name' => 'icon', "value" => '', 'description' => esc_html__('Use existing font icon or upload a custom image.', 'cruxstore'), 'dependency' => array("element" => "spacer", "value" => array('icon'))), array('type' => 'dropdown', 'heading' => esc_html__('Icon color', 'js_composer'), 'param_name' => 'color', 'value' => array_merge(array(esc_html__('Default', 'js_composer') => 'default'), array(esc_html__('Accent color', 'cruxstore') => 'accent'), getVcShared('colors'), array(esc_html__('Custom color', 'js_composer') => 'custom')), 'description' => esc_html__('Select icon color.', 'js_composer'), 'param_holder_class' => 'vc_colored-dropdown', 'dependency' => array("element" => "spacer", "value" => array('icon')), "admin_label" => true, 'std' => 'grey'), array('type' => 'colorpicker', 'heading' => esc_html__('Custom Icon Color', 'js_composer'), 'param_name' => 'custom_color', 'description' => esc_html__('Select custom icon color.', 'js_composer'), 'dependency' => array('element' => 'color', 'value' => 'custom')), array('type' => 'dropdown', 'heading' => esc_html__('Size', 'js_composer'), 'param_name' => 'size', 'value' => array_merge(getVcShared('sizes'), array('Extra Large' => 'xl')), 'std' => 'md', 'description' => esc_html__('Icon size.', 'js_composer'), "admin_label" => true, 'dependency' => array("element" => "spacer", "value" => array('icon'))), array('type' => 'dropdown', 'heading' => __('Line Style', 'js_composer'), "param_name" => "line_style", 'value' => getVcShared('separator styles'), 'std' => '', 'description' => __('Separator display style.', 'js_composer'), "dependency" => array("element" => "spacer", "value" => array("line"))), array("type" => "cruxstore_number", "class" => "", "heading" => __("Line Width (optional)", "cruxstore"), "param_name" => "line_width", "suffix" => "px", "dependency" => array("element" => "spacer", "value" => array("line"))), array('type' => 'dropdown', 'heading' => __('Border width', 'js_composer'), 'param_name' => 'border_width', 'value' => getVcShared('separator border widths'), 'description' => __('Select border width (pixels).', 'js_composer'), "dependency" => array("element" => "spacer", "value" => array("line"))), array("type" => "colorpicker", "class" => "", "heading" => __("Line Color", "cruxstore"), "param_name" => "line_color", "value" => "#333333", "dependency" => array("element" => "spacer", "value" => array("line"))), array("type" => "cruxstore_heading", "heading" => esc_html__("Others settings", 'cruxstore'), "param_name" => "others_settings"), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array('type' => 'textfield', 'heading' => esc_html__('Extra class name', 'js_composer'), 'param_name' => 'el_class', 'description' => esc_html__('Style particular content element differently - add a class name and refer to it in custom CSS.', 'js_composer')), array('type' => 'hidden', 'param_name' => 'link'), array("type" => "cruxstore_heading", "heading" => esc_html__("Typography heading", 'cruxstore'), "param_name" => "typography_heading", 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'cruxstore_responsive', 'param_name' => 'font_size', 'heading' => esc_html__('Font size', 'cruxstore'), 'group' => esc_html__('Typography', 'cruxstore'), 'unit' => esc_html__('px', 'cruxstore'), 'description' => esc_html__('Use font size for the title.', 'cruxstore')), array('type' => 'cruxstore_responsive', 'param_name' => 'line_height', 'heading' => esc_html__('Line Height', 'cruxstore'), 'group' => esc_html__('Typography', 'cruxstore'), 'unit' => esc_html__('px', 'cruxstore'), 'description' => esc_html__('Use line height for the title.', 'cruxstore')), array("type" => "cruxstore_number", "heading" => esc_html__("Letter spacing", 'cruxstore'), "param_name" => "letter_spacing", "min" => 0, "suffix" => "px", 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'font_container', 'param_name' => 'font_container', 'value' => '', 'settings' => array('fields' => array('tag' => 'h3', 'color', 'tag_description' => esc_html__('Select element tag.', 'js_composer'), 'text_align_description' => esc_html__('Select text alignment.', 'js_composer'), 'font_size_description' => esc_html__('Enter font size.', 'js_composer'), 'line_height_description' => esc_html__('Enter line height.', 'js_composer'), 'color_description' => esc_html__('Select heading color.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'checkbox', 'heading' => esc_html__('Use theme default font family?', 'js_composer'), 'param_name' => 'use_theme_fonts', 'value' => array(esc_html__('Yes', 'js_composer') => 'yes'), 'description' => esc_html__('Use font family from the theme.', 'js_composer'), 'group' => esc_html__('Typography', 'cruxstore'), 'std' => 'yes'), array('type' => 'checkbox', 'heading' => __('Font Option', 'cruxstore'), 'param_name' => 'font_option', 'value' => array(__('Uppercase', 'cruxstore') => 'uppercase', __('Underline', 'cruxstore') => 'underline', __('Italic', 'cruxstore') => 'italic'), 'group' => esc_html__('Typography', 'cruxstore'), 'description' => esc_html__('Select special option for font.', 'cruxstore')), array('type' => 'google_fonts', 'param_name' => 'google_fonts', 'value' => '', 'settings' => array('fields' => array('font_family_description' => esc_html__('Select font family.', 'js_composer'), 'font_style_description' => esc_html__('Select font styling.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore'), 'dependency' => array('element' => 'use_theme_fonts', 'value_not_equal_to' => 'yes')), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#9
0
    {
        extract(shortcode_atts(array('title' => esc_html__('Title', 'js_composer'), 'subcontent' => '', 'use_theme_fonts' => 'true', 'font_container' => '', 'google_fonts' => '', 'css_animation' => '', 'animation_delay' => '', 'el_class' => '', 'css' => ''), $atts));
        $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'flip-box ', $this->settings['base'], $atts), 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '), 'extra' => $this->getExtraClass($el_class), 'css_animation' => cruxstore_getCSSAnimation($css_animation));
        $style_title = '';
        extract($this->getAttributes($atts));
        unset($font_container_data['values']['text_align']);
        $styles = array();
        extract($this->getStyles($el_class, $css, $google_fonts_data, $font_container_data, $atts));
        $settings = get_option('wpb_js_google_fonts_subsets');
        $subsets = '';
        if (is_array($settings) && !empty($settings)) {
            $subsets = '&subset=' . implode(',', $settings);
        }
        if (!empty($google_fonts_data) && isset($google_fonts_data['values']['font_family'])) {
            wp_enqueue_style('vc_google_fonts_' . vc_build_safe_css_class($google_fonts_data['values']['font_family']), '//fonts.googleapis.com/css?family=' . $google_fonts_data['values']['font_family'] . $subsets);
        }
        if (!empty($styles)) {
            $style_title .= 'style="' . esc_attr(implode(';', $styles)) . '"';
        }
        $box_title = $title ? '<' . $font_container_data['values']['tag'] . ' class="flip-box-before" ' . $style_title . '>' . $title . '</' . $font_container_data['values']['tag'] . '>' : '';
        $output = $box_title . '<div class="flip-box-after">' . $subcontent . '</div>';
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Flip Box", 'cruxstore'), "base" => "flip_box", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "description" => esc_html__("", 'cruxstore'), "params" => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', 'value' => esc_html__('Title', 'js_composer'), "admin_label" => true), array("type" => "textfield", 'heading' => esc_html__('Content', 'js_composer'), 'param_name' => 'subcontent', 'value' => esc_html__('Content', 'js_composer'), "admin_label" => true, 'description' => esc_html__('Enter your content here.', 'js_composer')), array('type' => 'hidden', 'heading' => esc_html__('Link Url', 'js_composer'), 'param_name' => 'link'), array('type' => 'font_container', 'param_name' => 'font_container', 'value' => '', 'settings' => array('fields' => array('font_size', 'line_height', 'color', 'tag_description' => esc_html__('Select element tag.', 'js_composer'), 'text_align_description' => esc_html__('Select text alignment.', 'js_composer'), 'font_size_description' => esc_html__('Enter font size.', 'js_composer'), 'line_height_description' => esc_html__('Enter line height.', 'js_composer'), 'color_description' => esc_html__('Select heading color.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'checkbox', 'heading' => esc_html__('Use theme default font family?', 'js_composer'), 'param_name' => 'use_theme_fonts', 'value' => array(esc_html__('Yes', 'js_composer') => 'yes'), 'description' => esc_html__('Use font family from the theme.', 'js_composer'), 'group' => esc_html__('Typography', 'js_composer'), 'std' => 'yes'), array('type' => 'google_fonts', 'param_name' => 'google_fonts', 'value' => '', 'settings' => array('fields' => array('font_family_description' => esc_html__('Select font family.', 'js_composer'), 'font_style_description' => esc_html__('Select font styling.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore'), 'dependency' => array('element' => 'use_theme_fonts', 'value_not_equal_to' => 'yes'), 'description' => esc_html__('', 'js_composer')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#10
0
                $icon_style = sprintf('style="%s"', $icon_style);
            }
            if ($type == 'svg') {
                $svg = '<span class="svg-content">' . rawurldecode(base64_decode(strip_tags($svg))) . '</span>';
                $icon = 'icon-svg';
            } else {
                $svg = '';
            }
            $output = sprintf('<span class="%s %s" %s>%s</span>', $icon, implode(' ', $icon_class), $icon_style, $svg);
        }
        $url = vc_build_link($link);
        $rel = '';
        if (!empty($url['rel'])) {
            $rel = ' rel="' . esc_attr($url['rel']) . '"';
        }
        if (strlen($link) > 0 && strlen($url['url']) > 0) {
            $output = '<a class="iconbox-link" href="' . esc_attr($url['url']) . '" ' . $rel . ' title="' . esc_attr($url['title']) . '" target="' . (strlen($url['target']) > 0 ? esc_attr($url['target']) : '_self') . '">' . $output . '</a>';
        }
        if ($custom_css) {
            $custom_css = '<div class="cruxstore_custom_css" data-css="' . esc_attr($custom_css) . '"></div>';
        }
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div id="' . $uniqid . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . $custom_css . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Icon", 'cruxstore'), "base" => "cruxstore_icon", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "description" => esc_html__("", 'cruxstore'), "wrapper_class" => "clearfix", "params" => array_merge(array(array('type' => 'hidden', 'param_name' => 'hover_div'), array('type' => 'vc_link', 'heading' => esc_html__('Link Url', 'js_composer'), 'param_name' => 'link')), CruxStore_Icon_map(), array(array('type' => 'dropdown', 'heading' => esc_html__('Alignment', 'js_composer'), 'param_name' => 'align', 'value' => array(esc_html__('Center', 'js_composer') => 'center', esc_html__('Left', 'js_composer') => 'left', esc_html__('Right', 'js_composer') => "right"), 'description' => esc_html__('Select separator alignment.', 'js_composer')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer'))))));
示例#11
0
        if ($link) {
            $link = vc_build_link($link);
            $a_href = $link['url'];
            $a_title = $link['title'];
            $a_target = $link['target'];
            $icon_box_link = array('href="' . esc_attr($a_href) . '"', 'title="' . esc_attr($a_title) . '"', 'target="' . esc_attr($a_target) . '"');
            if ($title) {
                $style_link = '';
                if (isset($font_container_data['values']['color'])) {
                    $style_link .= ' style="color: ' . $font_container_data['values']['color'] . '"';
                }
                $title = '<a ' . implode(' ', $icon_box_link) . $style_link . '>' . $title . '</a>';
            }
            $icon_readmore = '<div class="feature-box-readmore"><a ' . implode(' ', $icon_box_link) . '>' . $readmore . '</a></div>';
        }
        $icon_box_title = $title ? '<' . $font_container_data['values']['tag'] . ' class="feature-box-title" ' . $style_title . '>' . $title . '</' . $font_container_data['values']['tag'] . '>' : '';
        $icon_box_content = $content ? '<div class="feature-box-content">' . $content . '</div>' : '';
        $output .= $icon_box_icon . $icon_box_title . $icon_box_content . $icon_readmore;
        if ($custom_css) {
            $custom_css = '<div class="cruxstore_custom_css" data-css="' . esc_attr($custom_css) . '"></div>';
        }
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div id="' . $uniqid . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '><div class="feature-box-inner">' . $output . $custom_css . '</div></div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Icon Box", 'cruxstore'), "base" => "icon_box", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "wrapper_class" => "clearfix", "params" => array_merge(array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', "admin_label" => true, 'value' => esc_html__('Title', 'js_composer')), array('type' => 'vc_link', 'heading' => esc_html__('Link Url', 'js_composer'), 'param_name' => 'link'), array("type" => "textfield", 'heading' => esc_html__('Link Text', 'js_composer'), 'param_name' => 'readmore'), array("type" => "textarea_html", "heading" => esc_html__("Content", 'cruxstore'), "param_name" => "content", "value" => '', "description" => '', "holder" => "div"), array('type' => 'dropdown', 'heading' => esc_html__('Layout icon box', 'cruxstore'), 'param_name' => 'icon_box_layout', 'value' => array(esc_html__('Icon on Top of Title', 'cruxstore') => '1', esc_html__('Icon on Top of Title - Center', 'cruxstore') => '2', esc_html__('Icon in left Content', 'cruxstore') => '5', esc_html__('Boxed - Icon on Top of Title - Center', 'cruxstore') => '3', esc_html__('Border Boxed - Icon on Top of Title - Center', 'cruxstore') => '4', esc_html__('Boxed - Icon in left Content', 'cruxstore') => '6'), 'description' => esc_html__('Select your layout.', 'cruxstore'), "admin_label" => true), array('type' => 'dropdown', 'heading' => __('Background color', 'js_composer'), 'param_name' => 'boxed_background_color', 'value' => array_merge(array(esc_html__('Accent', 'cruxstore') => 'accent'), getVcShared('colors')), 'std' => 'grey', 'description' => __('Select background color for boxed.', 'js_composer'), 'param_holder_class' => 'vc_colored-dropdown', 'dependency' => array('element' => 'icon_box_layout', 'value' => array('3', '4', '6'))), array('type' => 'dropdown', 'heading' => __('Border color', 'js_composer'), 'param_name' => 'boxed_border_color', 'value' => array_merge(array(esc_html__('Accent', 'cruxstore') => 'accent'), getVcShared('colors')), 'std' => 'grey', 'description' => __('Select border color for boxed.', 'js_composer'), 'param_holder_class' => 'vc_colored-dropdown', 'dependency' => array('element' => 'icon_box_layout', 'value' => array('4'))), array('type' => 'dropdown', 'heading' => esc_html__('Skin icon box', 'cruxstore'), 'param_name' => 'skin', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Light', 'cruxstore') => 'light'), 'description' => esc_html__('Select your skin.', 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer"))), CruxStore_Icon_map(true, 'icon_'), array(array("type" => "cruxstore_number", "heading" => esc_html__("Letter spacing", 'cruxstore'), "param_name" => "letter_spacing", "value" => 0, "min" => 0, "max" => 10, "suffix" => "px", "description" => "", 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'font_container', 'param_name' => 'font_container', 'value' => '', 'settings' => array('fields' => array('tag' => 'h4', 'font_size', 'line_height', 'color', 'tag_description' => esc_html__('Select element tag.', 'js_composer'), 'text_align_description' => esc_html__('Select text alignment.', 'js_composer'), 'font_size_description' => esc_html__('Enter font size.', 'js_composer'), 'line_height_description' => esc_html__('Enter line height.', 'js_composer'), 'color_description' => esc_html__('Select heading color.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'checkbox', 'heading' => esc_html__('Use theme default font family?', 'js_composer'), 'param_name' => 'use_theme_fonts', 'value' => array(esc_html__('Yes', 'js_composer') => 'yes'), 'description' => esc_html__('Use font family from the theme.', 'js_composer'), 'group' => esc_html__('Typography', 'js_composer'), 'std' => 'yes'), array('type' => 'google_fonts', 'param_name' => 'google_fonts', 'value' => '', 'settings' => array('fields' => array('font_family_description' => esc_html__('Select font family.', 'js_composer'), 'font_style_description' => esc_html__('Select font styling.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore'), 'dependency' => array('element' => 'use_theme_fonts', 'value_not_equal_to' => 'yes'), 'description' => esc_html__('', 'js_composer')), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer'))))));
            foreach ($product_categories as $key => $category) {
                if ($category->count == 0) {
                    unset($product_categories[$key]);
                }
            }
        }
        if ($atts['number']) {
            $product_categories = array_slice($product_categories, 0, $atts['number']);
        }
        ob_start();
        if ($product_categories) {
            echo '<div class="row multi-columns-row">';
            $bootstrapColumn = round(12 / $columns);
            foreach ($product_categories as $category) {
                echo '<div class="col-md-' . $bootstrapColumn . ' col-sm-' . $bootstrapColumn . '">';
                wc_get_template('content-product_cat_grid.php', array('category' => $category));
                echo '</div>';
            }
            echo '</div>';
        }
        wp_reset_postdata();
        $output = ob_get_clean();
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
vc_map(array("name" => esc_html__("KT: Product Categories Grid", 'cruxstore'), "base" => "categories_grid", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array("type" => "cruxstore_taxonomy", 'taxonomy' => 'product_cat', 'heading' => esc_html__('Categories', 'js_composer'), 'param_name' => 'ids', 'multiple' => true, 'admin_label' => true, 'select' => 'id', 'description' => esc_html__('List of product categories', 'cruxstore')), array('type' => 'textfield', 'heading' => esc_html__('Per Page', 'js_composer'), 'value' => '', 'param_name' => 'per_page', 'description' => esc_html__('The "per_page" shortcode determines how many categories to show on the page', 'js_composer'), "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Order by', 'js_composer'), 'param_name' => 'orderby', 'value' => array(esc_html__('Name', 'js_composer') => 'name', esc_html__('ID', 'js_composer') => 'id', esc_html__('Count', 'js_composer') => 'count', esc_html__('Slug', 'js_composer') => 'slug', esc_html__('None', 'js_composer') => 'none'), 'std' => 'name', "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Sorting', 'js_composer'), 'param_name' => 'order', 'value' => array(esc_html__('Ascending', 'js_composer') => 'ASC', esc_html__('Descending', 'js_composer') => 'DESC'), 'description' => esc_html__('Select sorting order.', 'js_composer'), "admin_label" => true), array('type' => 'textfield', 'heading' => esc_html__('Columns', 'js_composer'), 'value' => '4', 'param_name' => 'columns', 'description' => esc_html__('How much columns grid', 'js_composer')), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Hide empty', 'cruxstore'), 'param_name' => 'hide_empty', 'value' => 'true', "description" => esc_html__("Hide category if empty.", 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer')))));
示例#13
0
        }
        if ($content) {
            $content = sprintf('<div class="banner-inner">%s</div>', $content);
        }
        $icon = $style == 1 ? 'fa fa-caret-right' : 'fa fa-long-arrow-right';
        $more = $link_text ? sprintf('<div class="banner-more banner-more-%s"><span>%s <i class="%s" aria-hidden="true"></i></span></div>', $link_color, $link_text, $icon) : '';
        $output = $img['thumbnail'];
        $output .= sprintf('<div class="banner-content">%s</div>', $title . $content . $more);
        if ($link) {
            $link = vc_build_link($link);
            $a_href = $link['url'];
            $a_title = $link['title'];
            $a_target = $link['target'];
            $icon_box_link = array('href="' . esc_attr($a_href) . '"', 'title="' . esc_attr($a_title) . '"', 'target="' . esc_attr($a_target) . '"');
            $banner_link = '<a class="banner-link" ' . implode(' ', $icon_box_link) . '></a>';
        }
        $output .= $banner_link;
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        if ($custom_css) {
            $custom_css = '<div class="cruxstore_custom_css" data-css="' . esc_attr($custom_css) . '"></div>';
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        $elementClass = apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, $elementClass, $this->settings['base'], $atts);
        return '<div id="' . $rand . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . $custom_css . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Banner", 'cruxstore'), "base" => "banner", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "description" => esc_html__("", 'cruxstore'), "params" => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', "admin_label" => true), array("type" => "textarea_html", "heading" => esc_html__("Content", 'cruxstore'), "param_name" => "content", "description" => esc_html__("", 'cruxstore'), 'holder' => 'div'), array('type' => 'vc_link', 'heading' => esc_html__('Link Url', 'js_composer'), 'param_name' => 'link'), array("type" => "textfield", 'heading' => esc_html__('Text Link', 'js_composer'), 'param_name' => 'link_text', 'description' => esc_html__('Enter text for link button', 'cruxstore')), array('type' => 'dropdown', 'heading' => __('Text Link Color', 'js_composer'), 'param_name' => 'link_color', 'value' => array_merge(array(esc_html__('Default', 'js_composer') => 'default'), array(esc_html__('Accent color', 'cruxstore') => 'accent'), getVcShared('colors')), 'std' => 'default', 'param_holder_class' => 'vc_colored-dropdown', 'description' => esc_html__('Choose color for link button', 'cruxstore')), array('type' => 'attach_image', 'heading' => esc_html__('Image', 'cruxstore'), 'param_name' => 'image', 'description' => esc_html__('Select image from media library.', 'js_composer')), array('type' => 'textfield', 'heading' => esc_html__('Image size', 'js_composer'), 'param_name' => 'img_size', 'value' => 'full', 'description' => esc_html__('Enter image size (Example: "thumbnail", "medium", "large", "full" or other sizes defined by theme). Alternatively enter size in pixels (Example: 200x100 (Width x Height)).', 'js_composer')), array("type" => "cruxstore_heading", "heading" => esc_html__("Layout setting", 'cruxstore'), "param_name" => "layout_settings"), array('type' => 'dropdown', 'heading' => esc_html__('Image overlay', 'cruxstore'), 'param_name' => 'overlay', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Dark (0%)', 'cruxstore') => 'dark', esc_html__('Dark (20%)', 'cruxstore') => 'dark1', esc_html__('Dark (40%)', 'cruxstore') => 'dark2', esc_html__('Darker (60%)', 'cruxstore') => 'dark3'), 'description' => esc_html__('Select image overlay for banner.', 'js_composer')), array('type' => 'dropdown', 'heading' => esc_html__('Skin banner content', 'cruxstore'), 'param_name' => 'skin', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Light', 'cruxstore') => 'light'), 'description' => esc_html__('Select your skin for banner.', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Content Alignment', 'js_composer'), 'param_name' => 'align', 'value' => array(esc_html__('Center', 'js_composer') => 'center', esc_html__('Left', 'js_composer') => 'left', esc_html__('Right', 'js_composer') => "right"), 'std' => 'center', 'description' => esc_html__('Select content alignment within banner.', 'js_composer')), array('type' => 'dropdown', 'heading' => esc_html__('Content Position', 'js_composer'), 'param_name' => 'position', 'value' => array(esc_html__('Top', 'js_composer') => 'top', esc_html__('Middle', 'js_composer') => 'middle', esc_html__('Middle Half', 'js_composer') => 'middle_half', esc_html__('Bottom', 'js_composer') => "bottom"), 'std' => 'middle', 'description' => esc_html__('Select content position within banner.', 'js_composer'), "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Style', 'cruxstore'), 'param_name' => 'style', 'value' => array(esc_html__('Style 1', 'cruxstore') => '1', esc_html__('Style 2', 'cruxstore') => '2'), 'std' => 1, 'description' => esc_html__('Select your style.', 'cruxstore')), array("type" => "cruxstore_heading", "heading" => esc_html__("Extra setting", 'cruxstore'), "param_name" => "extra_settings"), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array("type" => "cruxstore_heading", "heading" => esc_html__("Typography heading", 'cruxstore'), "param_name" => "typography_heading", 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'font_container', 'param_name' => 'font_container', 'value' => '', 'settings' => array('fields' => array('tag' => 'h3', 'color', 'tag_description' => esc_html__('Select element tag.', 'js_composer'), 'text_align_description' => esc_html__('Select text alignment.', 'js_composer'), 'font_size_description' => esc_html__('Enter font size.', 'js_composer'), 'line_height_description' => esc_html__('Enter line height.', 'js_composer'), 'color_description' => esc_html__('Select heading color.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'cruxstore_responsive', 'param_name' => 'font_size', 'heading' => esc_html__('Font size', 'cruxstore'), 'group' => esc_html__('Typography', 'cruxstore'), 'unit' => esc_html__('px', 'cruxstore'), 'description' => esc_html__('Use font size for the title.', 'cruxstore')), array('type' => 'cruxstore_responsive', 'param_name' => 'line_height', 'heading' => esc_html__('Line Height', 'cruxstore'), 'group' => esc_html__('Typography', 'cruxstore'), 'unit' => esc_html__('px', 'cruxstore'), 'description' => esc_html__('Use line height for the title.', 'cruxstore')), array('type' => 'checkbox', 'heading' => __('Font Option', 'cruxstore'), 'param_name' => 'font_option', 'value' => array(__('Uppercase', 'cruxstore') => 'uppercase', __('Underline', 'cruxstore') => 'underline', __('Italic', 'cruxstore') => 'italic'), 'group' => esc_html__('Typography', 'cruxstore'), 'description' => esc_html__('Select special option for font.', 'cruxstore')), array('type' => 'checkbox', 'heading' => esc_html__('Use theme default font family?', 'js_composer'), 'param_name' => 'use_theme_fonts', 'value' => array(esc_html__('Yes', 'js_composer') => 'yes'), 'description' => esc_html__('Use font family from the theme.', 'js_composer'), 'group' => esc_html__('Typography', 'cruxstore'), 'std' => 'yes'), array('type' => 'google_fonts', 'param_name' => 'google_fonts', 'value' => '', 'settings' => array('fields' => array('font_family_description' => esc_html__('Select font family.', 'js_composer'), 'font_style_description' => esc_html__('Select font styling.', 'js_composer'))), 'group' => esc_html__('Typography', 'cruxstore'), 'dependency' => array('element' => 'use_theme_fonts', 'value_not_equal_to' => 'yes')), array("type" => "cruxstore_number", "heading" => esc_html__("Letter spacing", 'cruxstore'), "param_name" => "letter_spacing", "min" => 0, "suffix" => "px", 'group' => esc_html__('Typography', 'cruxstore')), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#14
0
                if ($animation_delay) {
                    $animation_delay_item = sprintf(' data-wow-delay="%sms"', $key * $animation_delay);
                } else {
                    $animation_delay_item = '';
                }
                echo '<div class="brand-banner' . $css_animation . '"' . $animation_delay_item . '><div class="brand-banner-content">';
                $thumbnail_id = absint(yith_wcbr_get_term_meta($term->term_id, 'thumbnail_id', true));
                $image_size = apply_filters('cruxstore_brand_logo', 'cruxstore_grid');
                if ($thumbnail_id) {
                    $image = wp_get_attachment_image_src($thumbnail_id, $image_size);
                    printf('<div class="brand-image"><img src="%s" width="%d" height="%d" alt="%s"/></div>', $image[0], $image[1], $image[2], $term->name);
                } else {
                    do_action('yith_wcbr_no_brand_logo', $term->term_id, $term, 'yith_wcbr_logo_size', false, false);
                    echo '<div class="brand-image">' . wc_placeholder_img() . '</div>';
                }
                printf('<h4 class="brand-count"><span>%s</span> %s</a></h4>', $term->count, esc_html__('Products', 'cruxstore'));
                printf('<a href="%s">%s</a>', get_term_link($term), $term->name);
                echo '</div></div>';
            }
        }
        wp_reset_postdata();
        $carousel_html .= ob_get_clean();
        if ($carousel_html) {
            $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
            $output = '<div class="' . esc_attr($elementClass) . '"><div class="products-brands-inner">' . str_replace('%carousel_html%', $carousel_html, $carousel_ouput) . '</div></div>';
        }
        return $output;
    }
}
vc_map(array("name" => esc_html__("KT: Brands Carousel", 'cruxstore'), "base" => "brands_carousel", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array("type" => "cruxstore_taxonomy", 'taxonomy' => 'yith_product_brand', 'heading' => esc_html__('Brands', 'js_composer'), 'param_name' => 'ids', 'multiple' => true, 'admin_label' => true, 'select' => 'id', 'description' => esc_html__('List of product brands', 'cruxstore')), array('type' => 'textfield', 'heading' => esc_html__('Per Page', 'js_composer'), 'value' => '', 'param_name' => 'per_page', 'description' => esc_html__('The "per_page" shortcode determines how many brands to show on the page', 'js_composer')), "admin_label" => true, array('type' => 'dropdown', 'heading' => esc_html__('Order by', 'js_composer'), 'param_name' => 'orderby', 'value' => array(esc_html__('Name', 'js_composer') => 'name', esc_html__('ID', 'js_composer') => 'id', esc_html__('Count', 'js_composer') => 'count', esc_html__('Slug', 'js_composer') => 'slug', esc_html__('None', 'js_composer') => 'none'), 'std' => 'name', 'param_holder_class' => 'vc_grid-data-type-not-ids', "admin_label" => true), array('type' => 'dropdown', 'heading' => esc_html__('Sorting', 'js_composer'), 'param_name' => 'order', 'value' => array(esc_html__('Ascending', 'js_composer') => 'ASC', esc_html__('Descending', 'js_composer') => 'DESC'), 'param_holder_class' => 'vc_grid-data-type-not-ids', 'description' => esc_html__('Select sorting order.', 'js_composer'), "admin_label" => true), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Hide empty', 'cruxstore'), 'param_name' => 'hide_empty', 'value' => 'true', "description" => esc_html__("Hide brand if empty.", 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Auto Height', 'cruxstore'), 'param_name' => 'autoheight', 'value' => 'true', "edit_field_class" => "vc_col-sm-4 cruxstore_margin_bottom", "description" => esc_html__("Enable auto height.", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Mouse Drag', 'cruxstore'), 'param_name' => 'mousedrag', 'value' => 'true', "description" => esc_html__("Mouse drag enabled.", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore'), "edit_field_class" => "vc_col-sm-4 cruxstore_margin_bottom"), array('type' => 'cruxstore_switch', 'heading' => esc_html__('AutoPlay', 'cruxstore'), 'param_name' => 'autoplay', 'value' => 'false', "description" => esc_html__("Enable auto play.", 'cruxstore'), "edit_field_class" => "vc_col-sm-4 cruxstore_margin_bottom", 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_number", "heading" => esc_html__("AutoPlay Speed", 'cruxstore'), "param_name" => "autoplayspeed", "value" => "5000", "suffix" => esc_html__("milliseconds", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore'), "dependency" => array("element" => "autoplay", "value" => array('true'))), array("type" => "cruxstore_number", "heading" => esc_html__("Slide Speed", 'cruxstore'), "param_name" => "slidespeed", "value" => "200", "suffix" => esc_html__("milliseconds", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Carousel skin', 'cruxstore'), 'param_name' => 'carousel_skin', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('White', 'cruxstore') => 'white'), 'std' => '', 'desc' => esc_html__('Select carousel skin', 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_heading", "heading" => esc_html__("Items to Show?", 'cruxstore'), "param_name" => "items_show", 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_number", "class" => "", "edit_field_class" => "vc_col-sm-6 cruxstore_margin_bottom", "heading" => esc_html__("On Desktop", 'cruxstore'), "param_name" => "desktop", "value" => 4, "min" => "1", "max" => "5", "step" => "1", 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'cruxstore_number', 'heading' => esc_html__('on Tablets Landscape', 'cruxstore'), 'param_name' => 'desktopsmall', "value" => 3, "min" => "1", "max" => "5", "step" => "1", "edit_field_class" => "vc_col-sm-6 cruxstore_margin_bottom", 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_number", "class" => "", "edit_field_class" => "vc_col-sm-6 cruxstore_margin_bottom", "heading" => esc_html__("On Tablet", 'cruxstore'), "param_name" => "tablet", "value" => 2, "min" => "1", "max" => "5", "step" => "1", 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_number", "class" => "", "edit_field_class" => "vc_col-sm-6 cruxstore_margin_bottom", "heading" => esc_html__("On Mobile", 'cruxstore'), "param_name" => "mobile", "value" => 1, "min" => "1", "max" => "5", "step" => "1", 'group' => esc_html__('Carousel', 'cruxstore')), array("type" => "cruxstore_heading", "heading" => esc_html__("Navigation settings", 'cruxstore'), "param_name" => "navigation_settings", 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Navigation', 'cruxstore'), 'param_name' => 'navigation', 'value' => 'true', "description" => esc_html__("Show navigation in carousel", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Navigation position', 'cruxstore'), 'param_name' => 'navigation_position', 'group' => esc_html__('Carousel', 'cruxstore'), 'value' => array(esc_html__('Center outside', 'cruxstore') => 'center-outside', esc_html__('Center inside', 'cruxstore') => 'center', esc_html__('Bottom', 'cruxstore') => 'bottom'), "dependency" => array("element" => "navigation", "value" => array('true'))), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Always Show Navigation', 'cruxstore'), 'param_name' => 'navigation_always_on', 'value' => 'false', "description" => esc_html__("Always show the navigation.", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore'), "dependency" => array("element" => "navigation_position", "value" => array('center', 'center-outside'))), array('type' => 'dropdown', 'heading' => esc_html__('Navigation style', 'js_composer'), 'param_name' => 'navigation_style', 'group' => esc_html__('Carousel', 'cruxstore'), 'value' => array(esc_html__('Normal', 'cruxstore') => 'normal', esc_html__('Circle Background', 'cruxstore') => 'circle-background', esc_html__('Square Background', 'cruxstore') => 'square-background', esc_html__('Round Background', 'cruxstore') => 'round-background', esc_html__('Circle Border', 'cruxstore') => 'circle-border', esc_html__('Square Border', 'cruxstore') => 'square-border', esc_html__('Round Border', 'cruxstore') => 'round-border'), 'std' => 'normal', "dependency" => array("element" => "navigation", "value" => array('true')), "description" => esc_html__("Select your navigation style.", 'cruxstore')), array("type" => "cruxstore_heading", "heading" => esc_html__("Pagination settings", 'cruxstore'), "param_name" => "pagination_settings", 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Pagination', 'cruxstore'), 'param_name' => 'pagination', 'value' => 'false', "description" => esc_html__("Show pagination in carousel", 'cruxstore'), 'group' => esc_html__('Carousel', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Pagination position', 'cruxstore'), 'param_name' => 'pagination_position', 'group' => esc_html__('Carousel', 'cruxstore'), 'value' => array(esc_html__('Center Top', 'cruxstore') => 'center-top', esc_html__('Center Bottom', 'cruxstore') => 'center-bottom', esc_html__('Bottom Left', 'cruxstore') => 'bottom-left'), 'std' => 'center_bottom', "dependency" => array("element" => "pagination", "value" => array('true'))), array('type' => 'dropdown', 'heading' => esc_html__('Pagination style', 'js_composer'), 'param_name' => 'pagination_style', 'group' => esc_html__('Carousel', 'cruxstore'), 'value' => array(esc_html__('Dot stroke', 'cruxstore') => 'dot-stroke', esc_html__('Fill pp', 'cruxstore') => 'fill-up', esc_html__('Circle grow', 'cruxstore') => 'circle-grow'), 'std' => 'dot_stroke', "dependency" => array("element" => "pagination", "value" => array('true'))), array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer')))));
示例#15
0
    exit;
}
class WPBakeryShortCode_CruxStore_Message extends WPBakeryShortCode
{
    protected function content($atts, $content = null)
    {
        extract(shortcode_atts(array('title' => '', "type" => 'normal', "close" => 'false', 'style' => 'classic', 'animation_delay' => '', 'css_animation' => '', 'el_class' => '', 'css' => ''), $atts));
        $elementClass = array('base' => apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'alert ', $this->settings['base'], $atts), 'extra' => $this->getExtraClass($el_class), 'type' => 'alert-' . $type, 'style' => 'alert-style-' . $style, 'shortcode_custom' => vc_shortcode_custom_css_class($css, ' '), 'css_animation' => cruxstore_getCSSAnimation($css_animation));
        if ($close == 'true') {
            $elementClass['dismissible'] = 'alert-dismissible fade in';
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $output = '';
        $output .= '<div class="' . esc_attr($elementClass) . '" role="alert"' . $animation_delay . '>';
        if ($close == 'true') {
            $output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true"><i class="fa fa-times"></i></span></button>';
        }
        if ($title) {
            $output .= '<h3 class="alert_title">' . $title . '</h3>';
        }
        $output .= $content;
        $output .= '</div><!-- .alert -->';
        return $output;
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Message Box", 'cruxstore'), "category" => esc_html__('by Kite-Themes', 'cruxstore'), "base" => "cruxstore_message", "wrapper_class" => "clearfix", "params" => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', "admin_label" => true), array('type' => 'textarea_html', 'holder' => 'div', 'heading' => esc_html__('Text', 'js_composer'), 'param_name' => 'content', 'value' => wp_kses(__('<p>I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.</p>', 'js_composer'), array('p' => array()))), array("type" => "dropdown", "heading" => esc_html__("Type", 'cruxstore'), "param_name" => "type", "value" => array(esc_html__('Normal', 'cruxstore') => 'normal', esc_html__('Success', 'cruxstore') => 'success', esc_html__('Info', 'cruxstore') => 'info', esc_html__('Warning', 'cruxstore') => 'warning', esc_html__('Danger', 'cruxstore') => 'danger'), "admin_label" => true), array("type" => "dropdown", "heading" => esc_html__("Style", 'cruxstore'), "param_name" => "style", "value" => array(esc_html__('Classic', 'cruxstore') => 'classic', esc_html__('Modern', 'cruxstore') => 'modern', esc_html__('Flat', 'cruxstore') => 'flat'), "admin_label" => true), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Close button', 'cruxstore'), 'param_name' => 'close', 'value' => 'false', "description" => esc_html__("Close button in alert", 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#16
0
                $custom_color = cruxstore_color2Hex($color);
            }
            $lightbox_style = 'style="color: ' . $custom_color . '"';
            $lightbox_icon = sprintf('<span class="%s %s" %s></span>', $iconbox_icon, implode(' ', $lightbox_class), $lightbox_style);
        }
        $link_attr = array('href' => '', 'class' => 'lightbox-link lightbox-' . $type);
        if ($type == 'inline') {
            $link_attr['href'] = '#lightbox-content' . $uniqid;
            $output .= sprintf('<div id="%s" class="%s">%s</div>', 'lightbox-content' . $uniqid, 'mfp-hide lightbox-popup-block mfp-with-anim', $content);
        } elseif ($type == 'iframe') {
            $link_attr['href'] = $link;
        } else {
            $img_lightbox_id = preg_replace('/[^\\d]/', '', $image);
            $img_lightbox = wp_get_attachment_image_src($img_lightbox_id, 'full');
            if (array($img_lightbox)) {
                $link_attr['href'] = $img_lightbox['0'];
            } else {
                $link_attr['href'] = vc_asset_url('vc/no_image.png');
            }
        }
        $output .= sprintf('<a href="%s" class="%s" data-type="%s" data-effect="%s" data-width="%s">%s</a>', $link_attr['href'], $link_attr['class'], $type, $effect, $max_width, $lightbox_icon);
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div id="lightbox-' . $uniqid . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . $custom_css . '</div>';
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Icon Lightbox", 'cruxstore'), "base" => "icon_lightbox", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array('type' => 'dropdown', 'heading' => esc_html__('Lightbox Type', 'cruxstore'), 'param_name' => 'type', 'value' => array(esc_html__('Image', 'cruxstore') => 'image', esc_html__('Iframe - Video', 'cruxstore') => 'iframe', esc_html__('Inline', 'cruxstore') => 'inline'), 'description' => esc_html__('Select type of lightbox.', 'cruxstore'), "admin_label" => true), array('type' => 'attach_image', 'heading' => esc_html__('Image', 'cruxstore'), 'param_name' => 'image', 'dependency' => array("element" => "type", "value" => array('image')), 'description' => esc_html__('Select image from media library.', 'js_composer')), array("type" => "textfield", 'heading' => esc_html__('Link', 'js_composer'), 'param_name' => 'link', "admin_label" => true, 'dependency' => array("element" => "type", "value" => array('iframe')), 'description' => esc_html__('Enter your link in here.', 'js_composer')), array("type" => "textarea_html", "heading" => esc_html__("Content", 'cruxstore'), "param_name" => "content", "value" => '', 'dependency' => array("element" => "type", "value" => array('inline'))), array('type' => 'dropdown', 'heading' => esc_html__('Lightbox Effect', 'cruxstore'), 'param_name' => 'effect', 'value' => array(esc_html__('Default', 'cruxstore') => '', esc_html__('Zoom In', 'cruxstore') => 'mfp-zoom-in', esc_html__('Newspaper', 'cruxstore') => 'mfp-newspaper', esc_html__('Move Horizontal', 'cruxstore') => 'mfp-move-horizontal', esc_html__('Move from top', 'cruxstore') => 'mfp-move-from-top', esc_html__('3d unfold', 'cruxstore') => 'mfp-3d-unfold', esc_html__('Zoom out', 'cruxstore') => 'mfp-zoom-out'), 'description' => esc_html__('Select effect of lightbox.', 'cruxstore'), "admin_label" => true), array("type" => "cruxstore_number", "heading" => esc_html__("Max width", 'cruxstore'), "param_name" => "max_width", "value" => 650, "suffix" => esc_html__("px", 'cruxstore'), 'description' => esc_html__('Select max-width for lightbox.', 'cruxstore'), 'dependency' => array("element" => "type", "value" => array('inline', 'iframe'))), array('type' => 'dropdown', 'heading' => esc_html__('Alignment', 'js_composer'), 'param_name' => 'align', 'value' => array(esc_html__('Center', 'js_composer') => 'center', esc_html__('Left', 'js_composer') => 'left', esc_html__('Right', 'js_composer') => "right"), "admin_label" => true, 'description' => esc_html__('Select separator alignment.', 'js_composer')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'dropdown', 'heading' => esc_html__('Icon to display', 'cruxstore'), 'param_name' => 'icon_type', 'value' => array(esc_html__('Font Icon', 'cruxstore') => 'icon', esc_html__('Image Icon', 'cruxstore') => 'image'), 'description' => esc_html__('Select your layout.', 'cruxstore'), 'group' => esc_html__('Icon', 'cruxstore')), array('type' => 'attach_image', 'heading' => esc_html__('Image Thumbnail', 'cruxstore'), 'param_name' => 'iconbox_image', 'dependency' => array('element' => 'icon_type', 'value' => array('image')), 'description' => esc_html__('Select image from media library.', 'js_composer'), 'group' => esc_html__('Icon', 'cruxstore')), array("type" => "cruxstore_icons", 'heading' => esc_html__('Choose your icon', 'js_composer'), 'param_name' => 'iconbox_icon', "value" => 'fa fa-adjust', 'description' => esc_html__('Use existing font icon or upload a custom image.', 'cruxstore'), 'dependency' => array("element" => "icon_type", "value" => array('icon')), 'group' => esc_html__('Icon', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Icon color', 'js_composer'), 'param_name' => 'color', 'value' => array_merge(array(esc_html__('Default', 'js_composer') => 'default'), getVcShared('colors'), array(esc_html__('Custom color', 'js_composer') => 'custom')), 'description' => esc_html__('Select icon color.', 'js_composer'), 'param_holder_class' => 'vc_colored-dropdown', 'group' => esc_html__('Icon', 'cruxstore'), 'dependency' => array("element" => "icon_type", "value" => array('icon'))), array('type' => 'colorpicker', 'heading' => esc_html__('Custom Icon Color', 'js_composer'), 'param_name' => 'custom_color', 'description' => esc_html__('Select custom icon color.', 'js_composer'), 'dependency' => array('element' => 'color', 'value' => 'custom'), 'group' => esc_html__('Icon', 'cruxstore')), array('type' => 'dropdown', 'heading' => esc_html__('Size', 'js_composer'), 'param_name' => 'size', 'value' => array_merge(getVcShared('sizes'), array('Extra Large' => 'xl')), 'std' => 'md', 'description' => esc_html__('Icon size.', 'js_composer'), 'group' => esc_html__('Icon', 'cruxstore')), array('type' => 'css_editor', 'heading' => esc_html__('CSS box', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design Options', 'js_composer')))));
示例#17
0
            }';
            $custom_css .= '#' . $rand . '.social-style-custom.social-background-outline a{
                color:' . $custom_color . '!important;
                border-color:' . $custom_color . '!important;
                background: none !important;
            }';
            $custom_css .= '#' . $rand . '.social-style-custom.social-background-empty a{
                color:' . $custom_color . '!important;
                background:none!important;
                border:!important;
            }';
        }
        if ($custom_css) {
            $custom_css = '<div class="cruxstore_custom_css" data-css="' . esc_attr($custom_css) . '"></div>';
        }
        if ($align) {
            $elementClass['align'] = 'social-icons-' . $align;
        }
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        $output .= '<div id="' . $rand . '" class="' . esc_attr($elementClass) . '"' . $animation_delay . '><ul style="margin-left: -' . $space_between_item . 'px;margin-right: -' . $space_between_item . 'px;" class="social-nav clearfix">';
        $output .= $social_icons;
        $output .= '</ul>' . $custom_css . '</div>';
        return $output;
    }
}
// Add your Visual Composer logic here
vc_map(array("name" => esc_html__("KT: Socials", 'cruxstore'), "base" => "socials", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array("type" => "cruxstore_socials", "class" => "", "heading" => esc_html__("Choose social", 'cruxstore'), "param_name" => "social", "value" => '', "description" => esc_html__("Empty for select all, Drop and sortable social", 'cruxstore'), "admin_label" => true), array("type" => "dropdown", "class" => "", "heading" => esc_html__("Style", 'cruxstore'), "param_name" => "style", "value" => array(esc_html__('Accent', 'cruxstore') => 'accent', esc_html__('Dark', 'cruxstore') => 'dark', esc_html__('Light', 'cruxstore') => 'light', esc_html__('Color', 'cruxstore') => 'color', esc_html__('Custom Color', 'cruxstore') => 'custom'), "description" => esc_html__("", 'cruxstore'), "admin_label" => true), array('type' => 'colorpicker', 'heading' => esc_html__('Custom Color', 'js_composer'), 'param_name' => 'custom_color', 'description' => esc_html__('Select color socials.', 'js_composer'), 'dependency' => array('element' => 'style', 'value' => 'custom')), array('type' => 'dropdown', 'heading' => esc_html__('Background shape', 'js_composer'), 'param_name' => 'background_style', 'value' => array(esc_html__('None', 'js_composer') => '', esc_html__('Circle', 'js_composer') => 'rounded', esc_html__('Square', 'js_composer') => 'boxed', esc_html__('Rounded', 'js_composer') => 'rounded-less', esc_html__('Diamond Square', 'js_composer') => 'diamond-square', esc_html__('Outline Circle', 'js_composer') => 'rounded-outline', esc_html__('Outline Square', 'js_composer') => 'boxed-outline', esc_html__('Outline Rounded', 'js_composer') => 'rounded-less-outline', esc_html__('Outline Diamond Square', 'js_composer') => 'diamond-square-outline'), 'description' => esc_html__('Select background shape and style for social.', 'cruxstore'), "admin_label" => true), array("type" => "dropdown", "class" => "", "heading" => esc_html__("Size", 'cruxstore'), "param_name" => "size", "value" => array(esc_html__('Standard', 'cruxstore') => 'standard', esc_html__('Small', 'cruxstore') => 'small'), "description" => esc_html__("", 'cruxstore'), "admin_label" => true), array("type" => "dropdown", "class" => "", "heading" => esc_html__("Tooltip", 'cruxstore'), "param_name" => "tooltip", "value" => array(esc_html__('None', 'cruxstore') => '', esc_html__('Top', 'cruxstore') => 'top', esc_html__('Right', 'cruxstore') => 'right', esc_html__('Bottom', 'cruxstore') => 'bottom', esc_html__('Left', 'cruxstore') => 'left'), 'std' => 'top', "description" => esc_html__("Select the tooltip position", 'cruxstore'), "admin_label" => true), array("type" => "dropdown", "class" => "", "heading" => esc_html__("Align", 'cruxstore'), "param_name" => "align", "value" => array(esc_html__('None', 'cruxstore') => '', esc_html__('Center', 'cruxstore') => 'center', esc_html__('Left', 'cruxstore') => 'left', esc_html__('Right', 'cruxstore') => 'right'), "description" => esc_html__("", 'cruxstore')), array("type" => "cruxstore_number", "heading" => esc_html__("Space Between item", 'cruxstore'), "param_name" => "space_between_item", "value" => 3, "min" => 0, "max" => 50, "suffix" => "px", "description" => ""), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer')))));
        $product_categories = get_terms('product_cat', $args);
        if ('' !== $atts['parent']) {
            $product_categories = wp_list_filter($product_categories, array('parent' => $atts['parent']));
        }
        if ($hide_empty) {
            foreach ($product_categories as $key => $category) {
                if ($category->count == 0) {
                    unset($product_categories[$key]);
                }
            }
        }
        if ($atts['number']) {
            $product_categories = array_slice($product_categories, 0, $atts['number']);
        }
        $output .= sprintf('<h4 class="%s">%s</h4>', 'products-categories-heading', $title);
        if ($product_categories) {
            $output .= '<ul>';
            foreach ($product_categories as $category) {
                $output .= sprintf('<li><a href="%s">%s</a></li>', get_term_link($category->slug, 'product_cat'), $category->name);
            }
            $output .= '</ul>';
        }
        if ($animation_delay) {
            $animation_delay = sprintf(' data-wow-delay="%sms"', $animation_delay);
        }
        $elementClass = preg_replace(array('/\\s+/', '/^\\s|\\s$/'), array(' ', ''), implode(' ', $elementClass));
        return '<div class="' . esc_attr($elementClass) . '"' . $animation_delay . '>' . $output . '</div>';
    }
}
vc_map(array("name" => esc_html__("KT: Product Categories List", 'cruxstore'), "base" => "categories_list", "category" => esc_html__('by Kite-Themes', 'cruxstore'), "params" => array(array("type" => "textfield", 'heading' => esc_html__('Title', 'js_composer'), 'param_name' => 'title', 'value' => esc_html__('Title', 'js_composer'), "admin_label" => true), array("type" => "cruxstore_taxonomy", 'taxonomy' => 'product_cat', 'heading' => esc_html__('Category', 'js_composer'), 'param_name' => 'ids', 'admin_label' => true, 'multiple' => true, 'select' => 'id', 'description' => esc_html__('List of product categories', 'cruxstore')), array('type' => 'textfield', 'heading' => esc_html__('Per Page', 'js_composer'), 'value' => '', 'param_name' => 'per_page', 'description' => esc_html__('The "per_page" shortcode determines how many categories to show on the page', 'js_composer')), array('type' => 'dropdown', 'heading' => esc_html__('Order by', 'js_composer'), 'param_name' => 'orderby', 'value' => array(esc_html__('Name', 'js_composer') => 'name', esc_html__('ID', 'js_composer') => 'id', esc_html__('Count', 'js_composer') => 'count', esc_html__('Slug', 'js_composer') => 'slug', esc_html__('None', 'js_composer') => 'none'), 'std' => 'name', 'param_holder_class' => 'vc_grid-data-type-not-ids', "admin_label" => true, 'description' => sprintf(__('Select how to sort retrieved products. More at %s.', 'js_composer'), '<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters" target="_blank">WordPress codex page</a>')), array('type' => 'dropdown', 'heading' => esc_html__('Sorting', 'js_composer'), 'param_name' => 'order', 'value' => array(esc_html__('Ascending', 'js_composer') => 'ASC', esc_html__('Descending', 'js_composer') => 'DESC'), 'param_holder_class' => 'vc_grid-data-type-not-ids', 'description' => sprintf(__('Designates the ascending or descending order. More at %s.', 'js_composer'), '<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters" target="_blank">WordPress codex page</a>'), "admin_label" => true), array('type' => 'cruxstore_switch', 'heading' => esc_html__('Hide empty', 'cruxstore'), 'param_name' => 'hide_empty', 'value' => 'true', "description" => esc_html__("Hide category if empty.", 'cruxstore')), cruxstore_map_add_css_animation(), cruxstore_map_add_css_animation_delay(), array("type" => "textfield", "heading" => esc_html__("Extra class name", "js_composer"), "param_name" => "el_class", "description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", "js_composer")), array('type' => 'css_editor', 'heading' => esc_html__('Css', 'js_composer'), 'param_name' => 'css', 'group' => esc_html__('Design options', 'js_composer')))));