';
ob_start();
get_search_form(true);
if ( mfn_opts_get('header-search-live') ) get_template_part('includes/header', 'live-search');
$output .= ob_get_clean();
$output .= '
';
if( empty($image) && empty($icon) ) $icon_html = '';
ob_start();
get_search_form( $args );
if ( mfn_opts_get('header-search-live') ) get_template_part('includes/header', 'live-search');
$output .= ob_get_clean();
$output .= '
';
return $output;
}
}
/**
* Top Bar
*/
if (! function_exists('sc_header_promo_bar')) {
function sc_header_promo_bar($attr){
extract(shortcode_atts(array(
'tabs' => '',
'slider_speed' => 3
), $attr));
// content builder
if ($tabs) {
$mfn_tabs_array = $tabs;
}
$output = '';
if ( is_array( $mfn_tabs_array ) ) {
foreach ( $mfn_tabs_array as $t=>$tab ) {
$output .= $t == 0 ? '
' : '
';
$output .= do_shortcode($tab['title'] ?? '');
$output .= '
';
}
$mfn_tabs_array = false;
}
$output .= '
';
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* WPML currency Switcher
*/
if (! function_exists('sc_header_currency_switcher')) {
function sc_header_currency_switcher($attr) {
extract(shortcode_atts(array(
'flags' => '',
'dropdown_icon' => '',
'style' => '',
), $attr));
if ( !defined( 'WCML_VERSION' ) ) {
$output = sc_alert(array('style' => 'warning'), 'WCML plugin is required!');
return $output;
}
$class = array('mfn-currency-switcher-wrapper');
$data_tags = 'data-icon="icon" data-path="icon-down-open"';
if( empty($style) ) {
$class[] = 'mfn-currency-switcher-dropdown';
if( !empty($dropdown_icon) && $dropdown_icon == '1' ) $class[] = 'mfn-currency-switcher-dropdown-icon';
if( !empty($attr['dropdown_icon_html']) ) {
$data_tags = 'data-icon="icon" data-path="'.$attr['dropdown_icon_html'].'"';
}
}else{
$class[] = 'mfn-currency-switcher-default';
}
if( !empty($flags) ) {
$class[] = 'mfn-currency-switcher-flags';
$data_tags .= ' data-themepath="'.get_theme_file_uri('images/flags').'"';
}
$output = '
';
ob_start();
//do_action('wcml_currency_switcher', array('format' => '
%code%'));
echo do_shortcode( '[currency_switcher]' );
$output .= ob_get_clean();
$output .= '
';
return $output;
}
}
/**
* WPML Language Switcher
*/
if (! function_exists('sc_header_language_switcher')) {
function sc_header_language_switcher($attr){
extract(shortcode_atts(array(
'flags' => '',
'dropdown_icon' => '',
'style' => '',
), $attr));
if ( !defined( 'ICL_SITEPRESS_VERSION' ) ) {
$output = sc_alert(array('style' => 'warning'), 'WPML plugin is required!');
return $output;
}
$class = array('mfn-language-switcher');
$data_tags = 'data-icon="icon" data-path="icon-down-open"';
if( !empty($style) ) {
$class[] = 'mfn-language-switcher-'.$style;
if( !empty($dropdown_icon) && $dropdown_icon == '1' ) $class[] = 'mfn-language-switcher-dropdown-icon';
if( !empty($attr['dropdown_icon_image']) ){
$data_tags = 'data-icon="image" data-path="'.$attr['dropdown_icon_image'].'"';
}else if( !empty($attr['dropdown_icon_html']) ){
$data_tags = 'data-icon="icon" data-path="'.$attr['dropdown_icon_html'].'"';
}
}
$args = array(
'type' => 'custom',
'flags' => $flags
);
$output = '
';
ob_start();
echo do_action( 'wpml_language_switcher', $args );
$output .= ob_get_clean();
$output .= '
';
return $output;
}
}
/**
* Product Upsells
*/
if (! function_exists('sc_product_upsells')) {
function sc_product_upsells($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
remove_standard_woo_actions_archive();
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$args = array(
'posts_per_page' => $attr['products'],
'columns' => $attr['columns'],
'order' => 'desc',
'orderby' => 'rand',
);
if(empty($attr['button'])) {
$attr['button'] = 0;
}
if(empty($attr['description'])) {
$attr['description'] = 0;
}
$classes = array( 'grid', 'col-'.$attr['columns']);
// background
if( ! empty( mfn_opts_get('background-archives-product') ) ){
$classes[] = 'has-background-color';
}
$ul_classes = 'columns-'.$attr['columns'];
$orderby = apply_filters( 'woocommerce_upsells_orderby', isset( $args['orderby'] ) ? $args['orderby'] : $orderby );
$order = apply_filters( 'woocommerce_upsells_order', isset( $args['order'] ) ? $args['order'] : $order );
$limit = apply_filters( 'woocommerce_upsells_total', isset( $args['posts_per_page'] ) ? $args['posts_per_page'] : $limit );
$items = wc_products_array_orderby( array_filter( array_map( 'wc_get_product', $product->get_upsell_ids() ), 'wc_products_array_filter_visible' ), $orderby, $order );
$items = $attr['products'] > 0 ? array_slice( $items, 0, $attr['products'] ) : $items;
$output = '
';
$title_tag = !empty($attr['heading_tag']) ? $attr['heading_tag'] : 'h3';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title heading">'.__( 'You may also like…', 'woocommerce' ).''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '';
if(isset($items) && count($items) > 0){
foreach ( $items as $product ) :
setup_postdata($product->get_id());
$output .= Mfn_Builder_Woo_Helper::productslist($product, $attr, $classes);
wp_reset_postdata();
endforeach;
}
$output .= ' ';
$output .= ' ';
return $output;
}
}
/**
* Product Related
*/
if (! function_exists('sc_product_related')) {
function sc_product_related($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
remove_standard_woo_actions_archive();
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$args = array(
'posts_per_page' => $attr['products'],
'columns' => $attr['columns'],
'order' => 'desc',
'orderby' => 'rand',
);
if(empty($attr['button'])) {
$attr['button'] = 0;
}
if(empty($attr['description'])) {
$attr['description'] = 0;
}
$classes = array( 'grid', 'col-'.$attr['columns'] );
// background
if( ! empty( mfn_opts_get('background-archives-product') ) ){
$classes[] = 'has-background-color';
}
$ul_classes = 'columns-'.$attr['columns'];
$related = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
$related = wc_products_array_orderby( $related, $args['orderby'], $args['order'] );
$output = '
';
return $output;
}
}
/**
* Product Meta
*/
if (! function_exists('sc_product_meta')) {
function sc_product_meta($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
setup_postdata($product->get_id());
//setup_postdata($product->get_id());
ob_start();
do_action( 'woocommerce_product_meta_start' );
$sku = ( $sku = $product->get_sku() ) ? $sku : esc_html__( 'N/A', 'woocommerce' );
if(isset($attr['layout']) && $attr['layout'] == 'table'){
do_action( 'woocommerce_product_meta_start' );
echo '
';
do_action( 'woocommerce_product_meta_end' );
}elseif(isset($attr['layout']) && $attr['layout'] == 'stacked'){
do_action( 'woocommerce_product_meta_start' );
echo '
';
do_action( 'woocommerce_product_meta_end' );
}else{
do_action( 'woocommerce_product_meta_start' );
echo '
';
// tags
if(count( $product->get_tag_ids() ) > 0):
echo ''._n( 'Tag:', 'Tags:', count( $product->get_tag_ids() ), 'woocommerce' ).' '.wc_get_product_tag_list($product->get_id(), '').' ';
endif;
// categories
echo ''._n( 'Category:', 'Categories:', count( $product->get_category_ids() ), 'woocommerce' ).' '.wc_get_product_category_list($product->get_id()).' ';
// sku
if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) :
echo ''.__( 'SKU:', 'woocommerce' ).' '.$sku.' ';
endif;
echo '
';
//wc_get_template( 'single-product/meta.php' );
do_action( 'woocommerce_product_meta_end' );
}
$output = ob_get_clean();
wp_reset_postdata();
return $output;
}
}
/**
* Product Additional Information
*/
if (! function_exists('sc_product_additional_information')) {
function sc_product_additional_information($attr, $product = false)
{
if( ! function_exists('is_woocommerce') ){
return;
}
if( ! $product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( ! $product ){
return;
}
setup_postdata( $product->get_id() );
add_action( 'woocommerce_product_additional_information', 'wc_display_product_attributes', 10 );
ob_start();
if( ! empty( $attr['title'] ) ){
$title_tag = !empty($attr['title_tag']) ? $attr['title_tag'] : 'h3';
echo '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. __( 'Additional information', 'woocommerce' ) .''. mfn_allowed_title_tag($title_tag) .'>';
}
woocommerce_product_additional_information_tab();
$output = ob_get_clean();
wp_reset_postdata();
return $output;
}
}
/**
* Product Reviews
*/
if (! function_exists('sc_product_reviews')) {
function sc_product_reviews($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
$output = '';
if( !$product ){
$output = '
';
}else{
if( !$product ) return;
setup_postdata($product->get_id());
if ( comments_open( $product->get_id() ) ) {
ob_start();
comments_template( 'single-product-reviews' );
$output = ob_get_clean();
}
wp_reset_postdata();
}
return $output;
}
}
/**
* Product Breadcrumbs
*/
if (! function_exists('sc_product_breadcrumbs')) {
function sc_product_breadcrumbs($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
$output = '';
$sample = false;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$args = array(
'delimiter' => $attr['breadcrumb_delimiter'] ? '
'.$attr['breadcrumb_delimiter'].' ' : '
/ ',
'wrap_before' => '
',
'wrap_after' => ' ',
);
if(isset( $attr['breadcrumb_home'] ) && $attr['breadcrumb_home'] == '0'){
$args['home'] = false;
}
if( $sample ){
// for builder only
$output = '
';
if( $attr['breadcrumb_home'] ) $output .= 'Home' . $args['delimiter'] . ' ';
$output .= ''.__('Product Category', 'woocommerce').' ' . $args['delimiter'] .' '. get_the_title($product->get_id()) .' ';
}else{
ob_start();
woocommerce_breadcrumb($args);
$output = ob_get_clean();
}
return $output;
}
}
/**
* Product Rating
*/
if (! function_exists('sc_product_rating')) {
function sc_product_rating($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
setup_postdata($product->get_id());
if ( ! wc_review_ratings_enabled() ) {
return;
}
ob_start();
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average = $product->get_average_rating();
if ( $rating_count > 0 ) : ?>
get_id());
ob_start();
if( $is_sample ) add_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
woocommerce_show_product_images();
$output = ob_get_clean();
wp_reset_postdata();
return $output;
}
}
/**
* Product Cart Button
*/
if (! function_exists('sc_product_cart_button')) {
function sc_product_cart_button($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( mfn_opts_get('shop-catalogue') ) return;
$is_sample = false;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
$is_sample = true;
}
if( !$product ) return;
$classes = '';
if( !empty($attr['variations-label']) ) $classes = 'mfn-vr-label-top';
if(!empty( $attr['style:.single_variation_wrap:text-align'] )){
$classes .= ' mfn_product_cart_'.$attr['style:.single_variation_wrap:text-align'];
}
setup_postdata($product->get_id());
ob_start();
if( $is_sample ) add_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
echo '
';
if( $is_sample ){
$funname = 'woocommerce_'.$product->get_type().'_add_to_cart';
if( function_exists($funname) ){
$funname();
}
}
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40);
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50);
if( empty($attr['vb']) ) do_action('woocommerce_single_product_summary');
echo '
';
$output = ob_get_clean();
wp_reset_postdata();
return $output;
}
}
/**
* Product Stock
*/
if (! function_exists('sc_product_stock')) {
function sc_product_stock($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
return wc_get_stock_html($product);
}
}
/**
* Product Content
*/
if (! function_exists('sc_product_content')) {
function sc_product_content($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
$is_sample = false;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
$is_sample = true;
}
if( !$product ) return;
$mfn_builder = new Mfn_Builder_Front( $product->get_id() );
ob_start();
echo '
';
$mfn_builder->show(false, true); // hide product content edit in template
echo '
';
$output = ob_get_clean();
return $output;
}
}
/**
* Product Tabs
*/
if (! function_exists('sc_product_tabs')) {
function sc_product_tabs($attr) {
if( !function_exists('is_woocommerce') ) return;
$is_sample = false;
global $product;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
$is_sample = true;
}
if( !$product ) return;
$classes = array('mfn-woocommerce-tabs');
$classes[] = !empty($attr['nav']) ? 'mfn-woocommerce-tabs-nav-'.$attr['nav'] : 'mfn-woocommerce-tabs-nav-top';
$product_tabs = apply_filters( 'woocommerce_product_tabs', array() );
$x = 0; $y = 0;
ob_start();
if ( ! empty( $product_tabs ) ) :
echo '
';
foreach ( $product_tabs as $key => $product_tab ) :
echo '
';
if( $key != 'description' ) echo '
';
if ( isset( $product_tab['callback'] ) ) call_user_func( $product_tab['callback'], $key, $product_tab );
if( $key != 'description' ) echo '
';
echo '
';
endforeach;
do_action( 'woocommerce_product_after_tabs' );
echo '
';
endif;
$output = ob_get_clean();
return $output;
}
}
/**
* Product Short Desc
*/
if (! function_exists('sc_product_short_description')) {
function sc_product_short_description($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( ! $product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$output = '
';
$output .= apply_filters( 'the_excerpt', get_the_excerpt( $product->get_id() ) );
$output .= '
';
return $output;
}
}
/**
* Product Title
*/
if (! function_exists('sc_product_title')) {
function sc_product_title($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$output = '<'. mfn_allowed_title_tag($attr['title_tag']) .' class="woocommerce-products-header__title title page-title">';
$output .= get_the_title( $product->get_id() );
$output .= ''. mfn_allowed_title_tag($attr['title_tag']) .'>';
return $output;
}
}
/**
* Product Price
*/
if (! function_exists('sc_product_price')) {
function sc_product_price($attr, $product = false)
{
if( !function_exists('is_woocommerce') ) return;
if( !$product ){
$sample = Mfn_Builder_Woo_Helper::sample_item('product');
$product = wc_get_product($sample);
}
if( !$product ) return;
$output = '
'.$product->get_price_html().'
';
return $output;
}
}
/**
* Shop Products
*/
if (! function_exists('sc_shop_products')) {
function sc_shop_products($attr, $sample = false){
if( !function_exists('is_woocommerce') ) return;
remove_standard_woo_actions_archive();
$output = '';
$classes = array();
$columns = array(
'grid' => 3,
'grid col-4' => 4,
'masonry' => 3,
'list' => 1,
);
//$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$layout = isset($attr['layout']) ? $attr['layout'] : 'grid';
if( ! empty( $_GET['layout'] ) ){
$layout = str_replace('grid4', 'grid col-4', esc_attr($_GET['layout']));
}
$classes[] = 'columns-'. $columns[$layout];
$classes[] = $layout;
// background
if( ! empty( mfn_opts_get('background-archives-product') ) ){
$classes[] = 'has-background-color';
}
// isotope
if( 'masonry' == $layout ){
$classes[] = 'isotope';
}
global $mfn_global;
ob_start();
if( !empty( get_post_meta( $mfn_global['shop_archive'], 'mfn_woo_cat_desc', true ) ) ) do_action( 'woocommerce_archive_description' );
do_action('woocommerce_before_shop_loop');
$output .= ob_get_clean();
$output .= '
';
$catalog_orderby_options = apply_filters( 'woocommerce_catalog_orderby', array(
'menu_order' => __( 'Default sorting', 'woocommerce' ),
'popularity' => __( 'Sort by popularity', 'woocommerce' ),
'rating' => __( 'Sort by average rating', 'woocommerce' ),
'date' => __( 'Sort by newness', 'woocommerce' ),
'price' => __( 'Sort by price: low to high', 'woocommerce' ),
'price-desc' => __( 'Sort by price: high to low', 'woocommerce' ),
) );
/*if ( ! $show_default_orderby ) {
unset( $catalog_orderby_options['menu_order'] );
}*/
if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
unset( $catalog_orderby_options['rating'] );
}
if( !empty(mfn_opts_get('shop-infinite-load')) ){
//$classes[] = 'lm_wrapper';
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
if( !empty($attr['equal_heights']) && $attr['equal_heights'] != '0' ) {
$classes[] = 'mfn-equal-heights';
}
if( !empty($attr['equal_heights_last_el_class']) ) {
$classes[] = 'mfn-equal-height-el-'.$attr['equal_heights_last_el_class'];
}
if(function_exists('is_woocommerce') && empty($attr['vb']) && empty( $_GET['visual']) && have_posts()):
$output .= '
';
while ( have_posts() ) {
the_post();
global $product;
if($layout == 'masonry') $classes = array( 'isotope-item' );
if ( empty( $product ) || ! $product->is_visible() ) continue; // visibility
do_action( 'woocommerce_shop_loop' );
$output .= Mfn_Builder_Woo_Helper::productslist($product, $attr, $classes);
}
$output .= ' '; // end loop
ob_start();
if( !empty(mfn_opts_get('shop-infinite-load')) || !empty($attr['load_more']) ){
echo '
';
echo mfn_pagination(false, true);
echo '
';
}else{
if( is_product_category() ){
echo mfn_pagination();
}else{
woocommerce_pagination();
}
}
$output .= ob_get_clean();
elseif( !empty($attr['vb']) || !empty( $_GET['visual']) ):
$sample_loop = Mfn_Builder_Woo_Helper::sample_products_loop($attr);
$output .= '
';
if($sample_loop->have_posts()):
while ( $sample_loop->have_posts() ) {
$sample_loop->the_post();
global $product;
if($layout == 'masonry') $classes = array( 'isotope-item' );
if ( empty( $product ) || ! $product->is_visible() ) continue; // visibility
do_action( 'woocommerce_shop_loop' );
$output .= Mfn_Builder_Woo_Helper::productslist($product, $attr, $classes);
}
endif;
$output .= ' '; // end loop
else:
$output .= '
';
$output .= '
';
$output .= '
'.__('No products were found matching your selection.', 'woocommerce').'
';
$output .= '
';
endif;
$output .= '
';
wp_enqueue_script('mfn-isotope', get_theme_file_uri('/js/plugins/isotope.min.js'), ['jquery'], MFN_THEME_VERSION, true);
return $output;
}
}
/**
* Shop Title
*/
if (! function_exists('sc_shop_title')) {
function sc_shop_title($attr)
{
if( !function_exists('is_woocommerce') ) return;
$output = '<'. mfn_allowed_title_tag($attr['title_tag']) .' class="woocommerce-products-header__title page-title">';
if(get_option( 'woocommerce_shop_page_id' )){
$output .= woocommerce_page_title( false );
}else{
$output .= 'Shop Title';
}
$output .= ''. mfn_allowed_title_tag($attr['title_tag']) .'>'."\n";
return $output;
}
}
/**
* Shop Categories
*/
if (! function_exists('sc_shop_categories')) {
function sc_shop_categories($attr)
{
if( !function_exists('is_woocommerce') ) return;
global $wp_query;
extract(shortcode_atts(array(
'columns' => 3,
'category' => '',
'display' => '',
'subcategory' => '',
'count' => 0,
), $attr));
$attrs = array(
'taxonomy' => 'product_cat',
'hide_empty' => !empty($attr['empty']) && $attr['empty'] == '1' ? true : false,
);
$output = '';
$order = str_replace(' ', '', $attr['order']);
$order_arr = explode(',', $order);
$classes = 'order-'.str_replace(array(',', ' '), array('-', ''), $order);
$parent = false;
if( !empty($attr['category']) ){
$getterm = get_term_by('slug', $attr['category'], 'product_cat');
if( !empty($getterm->term_id) ){
$parent = $getterm->term_id;
}
}
if( !empty($subcategory) && $subcategory == 1 && is_product_category() ){
$parent = $wp_query->get_queried_object()->term_id;
$attrs['parent'] = $parent;
}elseif( !empty($display) && $display == 1 ){
$attrs['parent'] = 0;
}else{
$attrs['child_of'] = $parent;
}
$cats = get_terms($attrs);
if(count($cats) > 0){
$output .= '
';
$output .= '
';
$output .= '
';
}
return $output;
}
}
/**
* Column One Sixth
* [one_sixth] [/one_sixth]
*/
if (! function_exists('sc_one_sixth')) {
function sc_one_sixth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column One Fifth
* [one_fifth] [/one_fifth]
*/
if (! function_exists('sc_one_fifth')) {
function sc_one_fifth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column One Fourth
* [one_fourth] [/one_fourth]
*/
if (! function_exists('sc_one_fourth')) {
function sc_one_fourth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column One Third
* [one_third] [/one_third]
*/
if (! function_exists('sc_one_third')) {
function sc_one_third($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Two Fifth [two_fifth] [/two_fifth]
*/
if (! function_exists('sc_two_fifth')) {
function sc_two_fifth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column One Second [one_second] [/one_second]
*/
if (! function_exists('sc_one_second')) {
function sc_one_second($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Two Fifth [three_fifth] [/three_fifth]
*/
if (! function_exists('sc_three_fifth')) {
function sc_three_fifth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Two Third [two_third] [/two_third]
*/
if (! function_exists('sc_two_third')) {
function sc_two_third($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Three Fourth [three_fourth] [/three_fourth]
*/
if (! function_exists('sc_three_fourth')) {
function sc_three_fourth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Two Fifth [four_fifth] [/four_fifth]
*/
if (! function_exists('sc_four_fifth')) {
function sc_four_fifth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column Two Fifth [five_sixth] [/five_sixth]
*/
if (! function_exists('sc_five_sixth')) {
function sc_five_sixth($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Column One [one] [/one]
*/
if (! function_exists('sc_one')) {
function sc_one($attr, $content = null)
{
$output = '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Code [code] [/code]
*/
if (! function_exists('sc_code')) {
function sc_code($attr, $content = null)
{
$output = '
';
$output .= do_shortcode(htmlspecialchars($content ?? ''));
$output .= ' '."\n";
return $output;
}
}
/**
* Article Box [article_box] [/article_box]
*/
if (! function_exists('sc_article_box')) {
function sc_article_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'slogan' => '',
'title' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
// image | visual composer fix
$image = mfn_vc_image($image);
// image class
$img_class = 'scale-with-grid';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// src output
if( strpos($image, '{') !== false ){
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$src = 'src="'. esc_url($image) .'"';
}else{
$src = 'src="'. esc_url($image) .'"';
}
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
$title = be_dynamic_data($title);
$slogan = be_dynamic_data($slogan);
$link_title = be_dynamic_data($link_title);
$link = be_dynamic_data($link);
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Heading
*/
if (! function_exists('sc_heading')) {
function sc_heading($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'header_tag' => 'h2',
'link' => '',
'link_title' => '',
'target' => '',
'onclick' => '',
), $attr));
// class
$class = '';
if( !empty($attr['style:.mcb-section .mcb-wrap .mcb-item-mfnuidelement .title:background-image']) || !empty($attr['css_bg_img']) ){
$class .= ' mfn-mask-shape';
}
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if ( !empty($onclick) ) {
$onclick_escaped = 'onclick="'. esc_js($onclick) .'"';
} else {
$onclick_escaped = '';
}
// dynamic data
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
// title tag
if( ! empty($header_tag) ){
if( 'p.lead' == $header_tag ){
$header_tag = 'p';
$class .= ' lead';
}
}
// output -----
$output = '';
$output .= '<'. mfn_allowed_title_tag($header_tag) .' class="title'. $class.'">';
if( ! empty($link) ) $output .= '
';
$output .= do_shortcode($title ?? '');
if( ! empty($link) ) $output .= ' ';
$output .= ''. mfn_allowed_title_tag($header_tag) .'>';
return $output;
}
}
/**
* Helper [helper] [/helper]
*/
if (! function_exists('sc_helper')) {
function sc_helper($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => 'h4',
'title1' => '',
'content1' => '',
'link1' => '',
'target1' => '',
'class1' => '',
'title2' => '',
'content2' => '',
'link2' => '',
'target2' => '',
'class2' => '',
), $attr));
$title = be_dynamic_data($title);
$title1 = be_dynamic_data($title1);
$title2 = be_dynamic_data($title2);
$content1 = be_dynamic_data($content1);
$content2 = be_dynamic_data($content2);
$link1 = be_dynamic_data($link1);
$link2 = be_dynamic_data($link2);
// target
if ($target1) {
$target_1_escaped = 'target="_blank"';
} else {
$target_1_escaped = false;
}
if ($target2) {
$target_2_escaped = 'target="_blank"';
} else {
$target_2_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link1) ) $link1 = '#';
$class1 .= ' open-mfn-popup';
$target_1_escaped = ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
if( !empty( $attr['link_type_2'] ) && !empty($attr['popup_id_2']) ){
if( empty($link2) ) $link2 = '#';
$class2 .= ' open-mfn-popup';
$target_2_escaped = ' data-mfnpopup="'. esc_attr($attr['popup_id_2']) .'"';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
';
$output .= '';
$output .= '
';
if (! $link1) {
$output .= '
'. do_shortcode($content1 ?? '') .'
';
}
if (! $link2) {
$output .= '
'. do_shortcode($content2 ?? '') .'
';
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Before After [before_after] [/before_after]
*/
if (! function_exists('sc_before_after')) {
function sc_before_after($attr, $content = null)
{
extract(shortcode_atts(array(
'image_before' => '',
'image_after' => '',
'size' => 'full',
'label_before' => '',
'label_after' => '',
'classes' => '',
), $attr));
// image | visual composer fix
$image_before = be_dynamic_data($image_before);
if( is_numeric($image_before) ) $image_before = wp_get_attachment_image_url($image_before, 'full');
$image_after = be_dynamic_data($image_after);
if( is_numeric($image_after) ) $image_after = wp_get_attachment_image_url($image_after, 'full');
$image_before = mfn_vc_image($image_before);
$image_after = mfn_vc_image($image_after);
// size
if( empty($size) ){
$size = 'full';
}
// labels
if( ! $label_before ){
$label_before = mfn_opts_get('translate') ? mfn_opts_get('translate-before', 'Before') : __('Before', 'betheme');
}
if( ! $label_after ){
$label_after = mfn_opts_get('translate') ? mfn_opts_get('translate-after', 'After') : __('After', 'betheme');
}
// output -----
$output = '
';
if( $image_output_before = mfn_get_attachment($image_before, $size) ){
$output .= $image_output_before;
} else {
$output .= '
';
}
if( $image_output_after = mfn_get_attachment($image_after, $size) ){
$output .= $image_output_after;
} else {
$output .= '
';
}
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-eventmove', get_theme_file_uri('/js/plugins/eventmove.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-beforeafter', get_theme_file_uri('/js/plugins/beforeafter.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Flat Box [flat_box] [/flat_box]
*/
if (! function_exists('sc_flat_box')) {
function sc_flat_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'icon' => 'icon-lamp',
'icon_image' => '',
'background' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
// image | visual composer fix
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
$content = be_dynamic_data($content);
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
$icon_image = mfn_vc_image($icon_image);
// image class
$img_class = 'photo scale-with-grid';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// background
if ($background) {
$background_escaped = 'style="background-color:'. esc_attr($background) .'"';
} else {
$background_escaped = false;
}
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
if( !isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Flat Box [feature_box] [/feature_box]
*/
if (! function_exists('sc_feature_box')) {
function sc_feature_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'background'=> '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
// image class
$img_class = 'scale-with-grid';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// background
if ($background) {
$background_escaped = 'style="background-color:'. esc_attr($background) .'"';
} else {
$background_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target_escaped = 'class="open-mfn-popup"';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// output -----
$output = '
';
// This variable has been safely escaped above in this function
$output .= '
';
$output .= '
';
$output .= '
';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
if ($content) {
$output .= '
'. do_shortcode($content ?? '') .'
';
}
$output .= '
';
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Payment methods [payment_methods] [/payment_methods]
*/
if (! function_exists('sc_payment_methods')) {
function sc_payment_methods($attr)
{
extract(shortcode_atts(array(
'dynamic_items' => '',
'greyscale' => '',
'invert' => ''
), $attr));
$classes = array();
if( !empty($greyscale) ) $classes[] = 'greyscale';
if( !empty($invert) ) $classes[] = 'invert';
if( empty($dynamic_items) ){
$classes[] = 'empty';
}
$classes = count($classes) > 0 ? implode(' ', $classes) : '';
$output = '';
$output .= '
';
if( !empty($dynamic_items) && is_iterable($dynamic_items) ){
foreach ($dynamic_items as $d=>$di) {
if( empty( $di['type'] ) ) continue;
if( $di['type'] == 'predefined' ){
$output .= ' ';
}else{
$output .= ' ';
}
}
}else{
$output .= ' ';
$output .= ' ';
$output .= ' ';
}
$output .= ' ';
return $output;
}
}
/**
* Photo Box [photo_box] [/photo_box]
*/
if (! function_exists('sc_photo_box')) {
function sc_photo_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'align' => '',
'link' => '',
'link_title' => '',
'target' => '',
'greyscale' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// image class
$img_class = 'scale-with-grid';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// class
$class = '';
if ($align) {
$class .= ' pb_'. $align;
}
if ($greyscale) {
$class .= ' greyscale';
}
if (! $content) {
$class .= ' without-desc';
}
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
if ($image) {
$output .= '
';
$output .= '
';
$output .= '
';
}
if ($content) {
$output .= '
'. do_shortcode($content ?? '') .'
';
}
$output .= '
'."\n";
return $output;
}
}
/**
* Plain text [plain_text] [/plain_text]
*/
if (! function_exists('sc_plain_text')) {
function sc_plain_text($attr, $content = null) {
extract(shortcode_atts(array(
'content' => '',
), $attr));
$is_dd = false;
if( ($content == '{termmeta:mfn_product_cat_top_content}' || $content == '{termmeta:mfn_product_cat_bottom_content}') && (!empty($attr['vb']) || apply_filters('bebuilder_preview', false)) ) {
$is_dd = str_replace(array('{termmeta:mfn_', '}'), '', $content);
$is_dd = str_replace('cat', 'category', $is_dd);
}
$content = be_dynamic_data($content);
$output = '
';
if( !empty( $attr['shortcodes_parser'] ) ){
$output .= do_shortcode($content ?? '');
}else{
$output .= $content;
}
if( !empty($is_dd) && empty($content) && ( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) ) {
$output .= '
';
}elseif( empty($content) && ( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) ) {
$output .= '
';
}
$output .= '
';
return $output;
}
}
/**
* Zoom Box [zoom_box] [/zoom_box]
*/
if (! function_exists('sc_zoom_box')) {
function sc_zoom_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'bg_color' => '',
'content_image' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
$content = be_dynamic_data($content);
$link_title = be_dynamic_data($link_title);
$link = be_dynamic_data($link);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$content_image = be_dynamic_data($content_image);
if( is_numeric($content_image) ) $content_image = wp_get_attachment_image_url($content_image, 'full');
$image = mfn_vc_image($image);
$content_image = mfn_vc_image($content_image);
// image class
$img_class = 'scale-with-grid';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target_escaped = 'class="open-mfn-popup"';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
$color = false;
if($bg_color){
$color = 'style="background-color:'. esc_attr(mfn_hex2rgba($bg_color, 0.8)) .';"';
}
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Sliding Box [sliding_box] [/sliding_box]
*/
if (! function_exists('sc_sliding_box')) {
function sc_sliding_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Story Box [story_box] [/story_box]
*/
if (! function_exists('sc_story_box')) {
function sc_story_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'style' => '',
'title' => '',
'title_tag' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$content = be_dynamic_data($content);
$link_title = be_dynamic_data($link_title);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Trailer Box [trailer_box]
*/
if (! function_exists('sc_trailer_box')) {
function sc_trailer_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'orientation' => '',
'slogan' => '',
'title' => '',
'title_tag' => '',
'link' => '',
'link_title' => '',
'target' => '',
'style' => '', // [default], plain
), $attr));
// image | visual composer fix
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$slogan = be_dynamic_data($slogan);
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// class
$class = '';
if ($style) {
$class .= $style;
}
if ($orientation) {
$class .= ' '. $orientation;
}
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target_escaped = 'class="open-mfn-popup"';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Promo Box [promo_box] [/promo_box]
*/
if (! function_exists('sc_promo_box')) {
function sc_promo_box($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'btn_text' => '',
'btn_link' => '',
'link_title' => '',
'position' => 'left',
'border' => '',
'target' => '',
), $attr));
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
$btn_text = be_dynamic_data($btn_text);
$btn_link = be_dynamic_data($btn_link);
$link_title = be_dynamic_data($link_title);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// border
if ($border) {
$border = 'has_border';
} else {
$border = 'no_border';
}
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Share Box [share_box]
*/
if (! function_exists('sc_share_box')) {
function sc_share_box($attr, $content = null)
{
$output = mfn_share('item');
return $output;
}
}
/**
* How It Works [how_it_works] [/how_it_works]
*/
if (! function_exists('sc_how_it_works')) {
function sc_how_it_works($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'number' => '',
'title' => '',
'title_tag' => '',
'border' => '',
'style' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
$link = be_dynamic_data($link);
$title = be_dynamic_data($title);
$link_title = be_dynamic_data($link_title);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = mfn_vc_image($image);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// class
$class = '';
// border
if ($border) {
$class .= ' has_border';
} else {
$class .= ' no_border';
}
// style
if ($style) {
$class .= ' '. $style;
}
// image
if (! $image) {
$class .= ' no-img';
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '
'."\n";
return $output;
}
}
/**
* Blog [blog]
*/
if (! function_exists('sc_blog')) {
function sc_blog($attr, $content = null)
{
extract(shortcode_atts(array(
'count' => 2,
'style' => 'classic', // classic, grid, masonry, masonry tiles, photo, photo2, timeline
'columns' => 3,
'title_tag' => 'h2',
'images' => '',
'category' => '',
'category_multi'=> '',
'orderby' => 'date',
'order' => 'DESC',
'exclude_id' => '',
'related' => '',
'filters' => '',
'excerpt' => true,
'more' => '',
'pagination' => '',
'load_more' => '',
'greyscale' => '',
'margin' => '',
'events' => '',
), $attr));
// translate
$translate['filter'] = mfn_opts_get('translate') ? mfn_opts_get('translate-filter', 'Filter by') : __('Filter by', 'betheme');
$translate['tags'] = mfn_opts_get('translate') ? mfn_opts_get('translate-tags', 'Tags') : __('Tags', 'betheme');
$translate['authors'] = mfn_opts_get('translate') ? mfn_opts_get('translate-authors', 'Authors') : __('Authors', 'betheme');
$translate['all'] = mfn_opts_get('translate') ? mfn_opts_get('translate-item-all', 'All') : __('All', 'betheme');
$translate['categories'] = mfn_opts_get('translate') ? mfn_opts_get('translate-categories', 'Categories') : __('Categories', 'betheme');
// query args
$paged = (get_query_var('paged')) ? get_query_var('paged') : ((get_query_var('page')) ? get_query_var('page') : 1);
$args = array(
'posts_per_page' => intval($count, 10),
'paged' => $paged,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => !empty($attr['sticky_posts']) ? true : false,
'post_status' => 'publish',
//'ignore_sticky_posts' => false,
);
// private
if (is_user_logged_in()) {
$args['post_status'] = array( 'publish', 'private' );
}
// Include events | The events calendar
if ($events) {
$args['post_type'] = array( 'post', 'tribe_events' );
}
// categories
if ($category_multi) {
$args['category_name'] = trim($category_multi);
} elseif ($category) {
$args['category_name'] = $category;
}
// exclude posts
if ($exclude_id) {
$exclude_id = str_replace(' ', '', $exclude_id);
$args['post__not_in'] = explode(',', $exclude_id);
}
// related posts
if ( ! empty($related) && !isset( $attr['vb'] ) && empty( $_GET['visual'] ) ) {
/*if( isset($attr['pageid']) ) {
$id = $attr['pageid'];
} else {
$id = mfn_ID() ? mfn_ID() : $_POST['pageid'];
}*/
$args['post__not_in'] = [ get_the_ID() ];
$aCategories = wp_get_post_categories(get_the_ID());
$args['category__in'] = $aCategories;
}
if( is_home() || is_category() || is_tag() || is_author() ) {
$query_blog = false;
}else{
$query_blog = new WP_Query($args);
}
// classes
$classes = $style;
if ($greyscale) {
$classes .= ' greyscale';
}
if ($margin) {
$classes .= ' margin';
}
if (! $more) {
$classes .= ' hide-more';
}
if ($filters || in_array($style, array( 'masonry', 'masonry tiles' ))) {
$classes .= ' isotope';
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-isotope', get_theme_file_uri('/js/plugins/isotope.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
}
// output -----
$output = '
';
// output | Filters
if ($filters && (! $category) && (! $category_multi)) {
$filters_class = '';
if ($filters != 1) {
$filters_class .= ' only '. $filters;
}
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
// categories
$output .= '
';
// tags
$output .= '
';
// authors
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
'."\n";
}
// output | Main Content
$output .= '
';
$output .= '
';
// blog query attributes
$attr = array(
'excerpt' => $excerpt,
'featured_image' => false,
'filters' => $filters,
'title_tag' => $title_tag,
'more' => $more,
);
if ($load_more) {
$attr['featured_image'] = 'no_slider'; // no slider if load more
}
if ($images) {
$attr['featured_image'] = 'image'; // images only option
}
$output .= mfn_content_post($query_blog, $style, $attr);
$output .= '
';
if ($pagination || $load_more) {
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
$output .= mfn_pagination($query_blog, $load_more);
}
$output .= '
'."\n";
$output .= '
'."\n";
wp_reset_postdata();
return $output;
}
}
/**
* Blog Slider [blog_slider]
*/
if (! function_exists('sc_blog_slider')) {
function sc_blog_slider($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'count' => 5,
'category' => '',
'category_multi' => '',
'excerpt' => '',
'orderby' => 'date',
'order' => 'DESC',
'one_post_per_slide' => '',
'more' => '',
'style' => '',
'navigation' => '',
), $attr));
$title = be_dynamic_data($title);
// translate
$translate['readmore'] = mfn_opts_get('translate') ? mfn_opts_get('translate-readmore', 'Read more') : __('Read more', 'betheme');
// classes
$classes = '';
if (! $more) {
$classes .= ' hide-more';
}
if ($style) {
$classes .= ' '. $style;
}
if ($navigation) {
$classes .= ' '. $navigation;
}
if ( ! empty($one_post_per_slide) ) {
$classes .= ' single_post_mode';
}
// query args
$args = array(
'posts_per_page' => intval($count, 10),
'orderby' => $orderby,
'order' => $order,
'no_found_rows' => 1,
'post_status' => 'publish',
'ignore_sticky_posts' => !empty($attr['sticky_posts']) ? true : false,
);
// private
if (is_user_logged_in()) {
$args['post_status'] = array( 'publish', 'private' );
}
// categories
if ($category_multi) {
$args['category_name'] = trim($category_multi);
} elseif ($category) {
$args['category_name'] = $category;
}
$query_blog = new WP_Query($args);
// output -----
$output = '
';
$output .= '';
$output .= '
';
while ($query_blog->have_posts()) {
$query_blog->the_post();
$output .= '';
$output .= '';
$output .= ' ';
}
$output .= ' ';
$output .= '';
$output .= '
'."\n";
wp_reset_postdata();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Blog News [blog_news]
*/
if (! function_exists('sc_blog_news')) {
function sc_blog_news($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'count' => 5,
'style' => '',
'category' => '',
'category_multi' => '',
'orderby' => 'date',
'order' => 'DESC',
'excerpt' => '',
'link' => '',
'link_title' => '',
), $attr));
// query args
$args = array(
'posts_per_page' => intval($count, 10),
'orderby' => $orderby,
'order' => $order,
'no_found_rows' => 1,
'post_status' => 'publish',
'ignore_sticky_posts' => !empty($attr['sticky_posts']) ? true : false,
);
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
// private
if (is_user_logged_in()) {
$args['post_status'] = array( 'publish', 'private' );
}
// categories
if ($category_multi) {
$args['category_name'] = trim($category_multi);
} elseif ($category) {
$args['category_name'] = $category;
}
// featured first
if ($style == 'featured') {
$first = true;
} else {
$first = false;
}
$query_blog = new WP_Query($args);
// output -----
$output = '
';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. $title .''. mfn_allowed_title_tag($title_tag) .'>';
}
$items_title_tag = !empty( $attr['items_title_tag'] ) ? $attr['items_title_tag'] : 'h5';
$featured_title_tag = !empty( $attr['featured_title_tag'] ) ? $attr['featured_title_tag'] : 'h4';
$output .= '
';
while ($query_blog->have_posts()) {
$query_blog->the_post();
$output .= '';
$output .= '';
$output .= '';
$output .= ' ';
if ($first) {
$output .= ' ';
$output .= '
';
$first = false;
}
}
wp_reset_postdata();
$output .= ' ';
if ($link) {
$output .= '
'. esc_html($link_title) .' ';
}
$output .= '
'."\n";
return $output;
}
}
/**
* Blog Teaser [blog_teaser]
*/
if (! function_exists('sc_blog_teaser')) {
function sc_blog_teaser($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => 'h3',
'category' => '',
'category_multi'=> '',
'orderby' => 'date',
'order' => 'DESC',
'margin' => '',
), $attr));
// query args
$args = array(
'posts_per_page' => 3,
'orderby' => $orderby,
'order' => $order,
'no_found_rows' => 1,
'post_status' => 'publish',
'ignore_sticky_posts' => !empty($attr['sticky_posts']) ? true : false,
);
$title = be_dynamic_data($title);
// translate
$translate['published'] = mfn_opts_get('translate') ? mfn_opts_get('translate-published', 'Published by') : __('Published by', 'betheme');
$translate['at'] = mfn_opts_get('translate') ? mfn_opts_get('translate-at', 'at') : __('at', 'betheme');
// class
$class = '';
if (! $margin) {
$class .= 'margin-no';
}
// private
if (is_user_logged_in()) {
$args['post_status'] = array( 'publish', 'private' );
}
// categories
if ($category_multi) {
$args['category_name'] = trim($category_multi);
} elseif ($category) {
$args['category_name'] = $category;
}
$query_blog = new WP_Query($args);
// output -----
$output = '
';
if ($title) {
$heading_tag = !empty( $attr['heading_tag'] ) ? $attr['heading_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($heading_tag) .' class="title">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($heading_tag) .'>';
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Shop Slider [shop_slider]
*/
if (! function_exists('sc_shop_slider')) {
function sc_shop_slider($attr, $content = null)
{
if( !function_exists('is_woocommerce') ) return;
extract(shortcode_atts(array(
'title' => '',
'count' => 5,
'show' => '',
'category' => '',
'out_of_stock' => '',
'orderby' => 'date',
'order' => 'DESC',
), $attr));
$title = be_dynamic_data($title);
// query args
$args = array(
'post_type' => 'product',
'posts_per_page' => intval($count, 10),
'paged' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
// show
if ($show == 'featured') {
// featured ------------------------------
$args['post__in'] = array_merge(array(0), wc_get_featured_product_ids());
} elseif ($show == 'onsale') {
// onsale --------------------------------
$args['post__in'] = array_merge(array(0), wc_get_product_ids_on_sale());
} elseif ($show == 'best-selling') {
// best-selling --------------------------
$args['meta_key'] = 'total_sales';
$args['orderby'] = 'meta_value_num';
}
// axclude out of stock products
if( !empty($out_of_stock) && 'hide' == $out_of_stock ){
$args['meta_query'] = [
[
'key' => '_stock_status',
'value' => 'instock',
],
];
}
// category
if ($category && !empty($category) && $category != 'All') {
$args['product_cat'] = $category;
}
$query_shop = new WP_Query();
$query_shop->query($args);
// output -----
$output = '
';
$output .= '';
$output .= '
';
while ($query_shop->have_posts()) {
$query_shop->the_post();
global $product;
//setup_postdata($product);
$output .= '';
$output .= '';
if (mfn_opts_get('shop-images') == 'secondary') {
$output .= '
';
} else {
$output .= '
';
$output .= '
';
$output .= '
';
}
$output .= '
';
$output .= '
';
if ($price_html = $product->get_price_html()) {
$output .= '
'. $price_html .' ';
}
if( !empty( $attr['add_to_cart_button'] ) ){
$classes = '';
$product->is_purchasable() ? $classes .= 'add_to_cart_button' : null;
$product->supports( 'ajax_add_to_cart' ) ? $classes .= ' ajax_add_to_cart' : null;
$output .= '
';
$output .= '
';
$output .= '';
}
$output .= '';
$output .= '';
$output .= '
'."\n";
wp_reset_postdata();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Contact Box [contact_box]
*/
if (! function_exists('sc_contact_box')) {
function sc_contact_box($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'address' => '',
'telephone' => '',
'telephone_2' => '',
'fax' => '',
'email' => '',
'www' => '',
'image' => '',
), $attr));
// image | visual composer fix
$image = mfn_vc_image($image);
$title = be_dynamic_data($title);
$address = be_dynamic_data($address);
// background
if ($image) {
$background_escaped = 'style="background-image:url('. esc_url($image) .');"';
} else {
$background_escaped = false;
}
// output -----
$output = '';
// This variable has been safely escaped above in this function
$output .= '';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Popup [popup][/popup]
*/
if (! function_exists('sc_popup')) {
function sc_popup($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'padding' => '',
'button' => '',
'uid' => 'popup-'. uniqid(),
), $attr));
// padding
if ($padding) {
$style_escaped = 'style="padding:'. intval($padding, 10) .'px;"';
} else {
$style_escaped = false;
}
// output -----
$output = '';
if ($button) {
$output .= '';
} else {
$output .= '';
}
$output .= ''."\n";
return $output;
}
}
/**
* Info Box [info_box]
*/
if (! function_exists('sc_info_box')) {
function sc_info_box($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'tabs' => '',
'image' => '',
), $attr));
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = mfn_vc_image($image);
// background
if ($image) {
$background_escaped = 'style="background-image:url('. esc_url($image) .');"';
} else {
$background_escaped = false;
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
// This variable has been safely escaped above in this function
$output .= '';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
// Elementor repeater item
if( is_array( $tabs ) ){
$output .= '
';
foreach( $tabs as $tab ){
if( ! empty( $tab['content'] ) ){
$output .= ''. nl2br($tab['content']) .' ';
}
}
$output .= ' ';
}
if( !empty($content) ){
$output .= '
' . do_shortcode($content ?? '') . ' ';
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Opening hours [opening_hours]
*/
if (! function_exists('sc_opening_hours')) {
function sc_opening_hours($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'tabs' => '',
'image' => '',
), $attr));
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = mfn_vc_image($image);
// background
if ($image) {
$background_escaped = 'style="background-image:url('. esc_url($image) .');"';
} else {
$background_escaped = false;
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
// This variable has been safely escaped above in this function
$output .= '';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
$output .= '
'.do_shortcode($content ?? '').' ';
if( is_array( $tabs ) ){
$output .= '
';
foreach( $tabs as $tab ){
$output .= ''. $tab['days'] .' '. $tab['hours'] .' ';
}
$output .= ' ';
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* List [list_2]
*/
if (! function_exists('sc_list_2')) {
function sc_list_2($attr, $content = null)
{
extract(shortcode_atts(array(
'tabs' => '',
'type' => '',
'starting' => 0,
'align' => '',
'align_tablet' => '',
'align_mobile' => '',
'valign' => '',
'valign_tablet' => '',
'valign_mobile' => '',
'icon' => '',
'image' => '',
'divider' => '',
), $attr));
// classes
$classes = ['mfn-list'];
$style = '';
// type
if( ! empty( $type ) ){
$classes[] = 'mfn-list-'. $type;
}
// starting
if( ! empty( $starting ) ){
$style = 'counter-set:my-sec-counter '. esc_attr($starting - 1);
}
// divider
if( ! empty( $divider ) ){
$classes[] = 'mfn-list-divider';
}
// align
if( ! empty( $align ) ){
$classes[] = 'mfn-list-'. $align;
}
if( ! empty( $align_tablet ) ){
$classes[] = 'mfn-list-tablet-'. $align_tablet;
}
if( ! empty( $align_mobile ) ){
$classes[] = 'mfn-list-mobile-'. $align_mobile;
}
// vertical align
if( ! empty( $valign ) ){
$classes[] = 'mfn-list-'. $valign;
}
if( ! empty( $valign_tablet ) ){
$classes[] = 'mfn-list-tablet-'. $valign_tablet;
}
if( ! empty( $valign_mobile ) ){
$classes[] = 'mfn-list-mobile-'. $valign_mobile;
}
$classes = implode(' ', $classes);
if( $style ){
$style = 'style="'. $style .'"';
}
// output -----
$output = '';
if( ! empty($tabs) && is_array($tabs) ){
foreach( $tabs as $tab ){
// custom background
$style_background = '';
if( !empty($tab['background']) ){
$style_background = 'style="background-color:'. $tab['background'] .'"';
}
// custom color
$style_color = '';
if( !empty($tab['color']) ){
$style_color = 'style="color:'. $tab['color'] .'"';
}
$output .= '';
if( !empty($image) || !empty($icon) || !empty($tab['image']) || !empty($tab['icon']) || 'ordered' == $type ){
$output .= '';
if( 'ordered' == $type ){
// do nothing
} elseif( !empty($tab['image']) ){
$output .= ' ';
} elseif( !empty($tab['icon']) ){
$output .= ' ';
} elseif( !empty($image) ){
$output .= ' ';
} elseif( !empty($icon) ){
$output .= ' ';
}
$output .= ' ';
}
$output .= '';
if( ! empty($tab['content']) ){
if( ! empty($tab['link']) ){
$target = '';
if( ! empty($tab['target']) ){
$target = 'target="_blank"';
}
$output .= ''. do_shortcode($tab['content'] ?? '') .' ';
} else {
$output .= do_shortcode($tab['content'] ?? '');
}
}
$output .= ' ';
$output .= ' ';
$style = '';
}
} else {
$output .= 'Please add list items.
';
}
$output .= ' '."\n";
// style
wp_enqueue_style('mfn-element-list-2', get_theme_file_uri('/css/elements/list-2.css'), null, MFN_THEME_VERSION);
return $output;
}
}
/**
* Toggle [toggle]
*/
if (! function_exists('sc_toggle')) {
function sc_toggle($attr, $content = null)
{
extract(shortcode_atts(array(
'tabs' => '',
'tag' => 'h5',
'type' => '',
'starting' => 0,
'divider' => '',
'open_first' => '',
'open_all' => '',
'open_more' => '',
'align' => '',
'align_tablet' => '',
'align_mobile' => '',
'icon' => '',
'active_icon' => '',
'icon_animation' => '',
), $attr));
// classes
$classes = ['mfn-toggle'];
$style_li = '';
// type
if( ! empty( $type ) ){
$classes[] = 'mfn-toggle-'. $type;
}
// starting
if( ! empty( $starting ) ){
$style_li = 'counter-set:my-sec-counter '. esc_attr($starting - 1);
}
// open
if( 'enable' == $open_first ){
$classes[] = 'mfn-toggle-open-first';
}
if( 'enable' == $open_all ){
$classes[] = 'mfn-toggle-open-all';
}
if( 'enable' == $open_more ){
$classes[] = 'mfn-toggle-open-more';
}
// divider
if( 'enable' == $divider ){
$classes[] = 'mfn-toggle-divider';
}
// align
if( ! empty( $align ) ){
$classes[] = 'mfn-toggle-'. $align;
}
if( ! empty( $align_tablet ) ){
$classes[] = 'mfn-toggle-tablet-'. $align_tablet;
}
if( ! empty( $align_mobile ) ){
$classes[] = 'mfn-toggle-mobile-'. $align_mobile;
}
// icon animation
if( ! empty( $icon_animation ) ){
$classes[] = 'mfn-toggle-icon-'. $icon_animation;
}
$classes = implode(' ', $classes);
if( $style_li ){
$style_li = 'style="'. $style_li .'"';
}
// title tag
$title_class = '';
if( ! empty($tag) ){
if( 'p.lead' == $tag ){
$tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
if( ! empty($tabs) && is_array($tabs) ){
$i = 1;
$count = count($tabs);
// class
$active = '';
$style = 'display:none';
if( 'enable' == $open_first || 'enable' == $open_all ){
$active = 'active';
$style = '';
}
foreach( $tabs as $tab ){
$tab['content'] = be_dynamic_data($tab['content']);
// output
$output .= '
';
$output .= '
';
if( !empty($tab['image']) || !empty($tab['icon']) || 'ordered' == $type ){
$output .= '
';
if( 'ordered' == $type ){
// do nothing
} elseif( !empty($tab['image']) ){
$output .= ' ';
} elseif( !empty($tab['icon']) ){
$output .= ' ';
}
$output .= ' ';
}
$output .= '<'. mfn_allowed_title_tag($tag) .' class="toggle-heading '. esc_attr($title_class) .'">'. $tab['title'] .''. mfn_allowed_title_tag($tag) .'>';
$output .= '
';
if( !empty($icon) ){
$output .= ' ';
}
if( !empty($active_icon) ){
$output .= ' ';
}
$output .= ' ';
$output .= '
';
$output .= '
';
$output .= do_shortcode($tab['content'] ?? '');
$output .= '
';
$output .= '
';
// divider
if( (! empty( $divider ) && 'enable' == $divider) && $i < $count ){
$output .= '
';
}
// end: output
if( 'enable' == $open_first && 'enable' != $open_all ){
$active = '';
$style = 'display:none';
}
$style_li = '';
$i++;
}
}
$output .= '
'."\n";
// style
wp_enqueue_style('mfn-element-toggle', get_theme_file_uri('/css/elements/toggle.css'), null, MFN_THEME_VERSION);
return $output;
}
}
/**
* Divider [divider_2]
*/
if (! function_exists('sc_divider_2')) {
function sc_divider_2($attr, $content = null)
{
extract(shortcode_atts(array(
'type' => '',
'align' => '',
'align_tablet' => '',
'align_mobile' => '',
'addon' => '',
'label' => '',
'image' => '',
'icon' => '',
), $attr));
// classes
$classes = ['mfn-divider'];
// addon
if( $addon && ( $label || $image || $icon ) ){
$classes[] = 'mfn-divider-advanced';
}
// type
if( $type ){
$type_parent = explode( '-', $type );
$classes[] = 'mfn-divider-'. $type_parent[0];
$classes[] = 'mfn-divider-'. $type;
}
// align
if( ! empty( $align ) ){
$classes[] = 'mfn-divider-'. $align;
}
if( ! empty( $align_tablet ) ){
$classes[] = 'mfn-divider-tablet-'. $align_tablet;
}
if( ! empty( $align_mobile ) ){
$classes[] = 'mfn-divider-mobile-'. $align_mobile;
}
$classes = implode(' ', $classes);
// output -----
$output = '';
$output .= '
';
if( 'label' == $addon && $label ){
$output .= '
'. wp_kses( $label, mfn_allowed_html() ) .' ';
} elseif( 'image' == $addon && $image ){
$output .= '
';
if( strpos('#', $image) !== false ){
$image_tag = mfn_get_attachment($src, 'large');
$output .= $image_tag;
}else{
$output .= ' ';
}
$output .= ' ';
} elseif( 'icon' == $addon && $icon ){
$output .= '
';
}
$output .= '
';
$output .= '
'."\n";
// style
wp_enqueue_style('mfn-element-divider-2', get_theme_file_uri('/css/elements/divider-2.css'), null, MFN_THEME_VERSION);
return $output;
}
}
/**
* Divider Basic [divider]
*/
if (! function_exists('sc_divider')) {
function sc_divider($attr, $content = null)
{
extract(shortcode_atts(array(
'height' => 0,
'style' => '', // default, dots, zigzag
'line' => '', // default, narrow, wide, 0 = no_line
'color' => '',
'themecolor' => '',
), $attr));
// classes
$class = '';
if ($themecolor) {
$class .= ' hr_color';
$color = false; // theme color overwrites
}
// color
if( $color ){
if( 'zigzag' == $style ){
$color = 'color:'. $color;
} else {
$color = 'background-color:'. $color;
}
}
switch ($style) {
case 'dots':
// This variable has been safely escaped above in this function
$output = '
'."\n";
break;
case 'zigzag':
// This variable has been safely escaped above in this function
$output = '
'."\n";
break;
default:
if ($line == 'narrow') {
// This variable has been safely escaped above in this function
$output = ' '."\n";
} elseif ($line == 'wide') {
// This variable has been safely escaped above in this function
$output = '
'."\n";
} elseif ($line) {
// This variable has been safely escaped above in this function
$output = ' '."\n";
} else {
// This variable has been safely escaped above in this function
$output = ' '."\n";
}
}
return $output;
}
}
/**
* Fancy Divider [fancy_divider]
*/
if (! function_exists('sc_fancy_divider')) {
function sc_fancy_divider($attr, $content = null)
{
extract(shortcode_atts(array(
'style' => 'stamp',
'color_top' => '',
'color_bottom' => '',
), $attr));
// output -----
$output = '';
switch ($style) {
case 'circle up':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
case 'circle down':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
case 'curve up':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
case 'curve down':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
case 'triangle up':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
case 'triangle down':
$output .= '
';
$output .= ' ';
$output .= ' ';
break;
default:
$output .= '
';
$output .= ' ';
$output .= ' ';
}
$output .= '
';
return $output;
}
}
/**
* Google Font [google_font]
*/
if (! function_exists('sc_google_font')) {
function sc_google_font($attr, $content = null)
{
extract(shortcode_atts(array(
'font' => '',
'size' => '25',
'weight' => '400',
'italic' => '',
'letter_spacing' => '',
'subset' => '',
'color' => '',
'inline' => '',
), $attr));
// style
$style_escaped = array();
$style_escaped[] = "font-family:'". esc_attr($font) ."',Arial,Tahoma,sans-serif;";
$style_escaped[] = "font-size:". intval($size, 10) ."px;";
$style_escaped[] = "line-height:". intval($size, 10) ."px;";
$style_escaped[] = "font-weight:". esc_attr($weight) .";";
$style_escaped[] = "letter-spacing:". intval($letter_spacing, 10) ."px;";
if ($color) {
$style_escaped[] = "color:". esc_attr($color) .";";
}
// italic
if ($italic) {
$style_escaped[] = "font-style:italic;";
$weight = $weight .'italic';
}
$style_escaped = implode('', $style_escaped);
// subset
if ($subset) {
$subset = '&subset='. str_replace(' ', '', $subset);
} else {
$subset = false;
}
// class
$class = '';
if ($inline) {
$class .= ' inline';
}
// enqueue_style
if ( ! mfn_opts_get('google-font-mode') ) {
$font_slug = str_replace(' ', '+', $font);
wp_enqueue_style(esc_attr($font_slug), 'https://fonts.googleapis.com/css?family='. esc_attr($font_slug) .':'. esc_attr($weight) . esc_attr($subset));
}
// output -----
// This variable has been safely escaped above in this function
$output = '';
$output .= do_shortcode($content ?? '');
$output .= '
'."\n";
return $output;
}
}
/**
* Sidebar Widget [sidebar_widget]
*/
if (! function_exists('sc_sidebar_widget')) {
function sc_sidebar_widget($attr, $content = null)
{
extract(shortcode_atts(array(
'sidebar' => 0,
), $attr));
// output -----
$output = '';
if (($sidebar !== '') && ($sidebar !== false)) {
$sidebars = mfn_opts_get('sidebars');
if (is_array($sidebars)) {
$sidebar = $sidebars[ esc_attr($sidebar) ];
ob_start();
dynamic_sidebar($sidebar);
$output = ob_get_clean();
}
}
return $output;
}
}
/**
* Pricing Item [pricing_item] [/pricing_item]
*/
if (! function_exists('sc_pricing_item')) {
function sc_pricing_item($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'currency' => '',
'currency_pos' => '',
'price' => '',
'period' => '',
'subtitle' => '',
'link_title' => '',
'link' => '',
'link_title' => '',
'target' => '',
'icon' => '',
'featured' => '',
'style' => 'box',
'tabs' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
$button_class = '';
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$button_class .= ' open-mfn-popup';
$target_escaped = ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// classes
$classes = '';
if ($currency_pos) {
$classes .= ' cp-'. $currency_pos;
}
if ($featured) {
$classes .= ' pricing-box-featured';
}
if ($style) {
$classes .= ' pricing-box-'. $style;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
// header
$output .= '';
// content
if ( $content || $tabs ) {
$output .= '
';
if( !empty($content) ){
$output .= '
'.do_shortcode($content ?? '').' ';
}
if( is_array( $tabs ) ){
$output .= '
';
foreach( $tabs as $tab ){
$output .= '';
if( Mfn_Icons::is_icon($tab['title']) ){
$output .= ' ';
} else {
$output .= do_shortcode($tab['title'] ?? '');
}
$output .= ' ';
}
$output .= ' ';
}
$output .= '
';
}
// link
if ($link) {
if ($icon) {
$button_class = 'has-icon';
}
$output .= '';
}
$output .= '
'."\n";
return $output;
}
}
/**
* Call to Action [call_to_action] [/call_to_action]
*/
if (! function_exists('sc_call_to_action')) {
function sc_call_to_action($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'icon' => '',
'link' => '',
'link_title' => '',
'button_title' => '',
'class' => '',
'target' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$content = be_dynamic_data($content);
$link_title = be_dynamic_data($link_title);
$button_title = be_dynamic_data($button_title);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// FIX | prettyphoto
if (strpos($class, 'prettyphoto') !== false) {
$class = str_replace('prettyphoto', '', $class);
$rel_escaped = 'rel="prettyphoto"';
} else {
$rel_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$class .= ' open-mfn-popup';
$rel_escaped = 'data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// output -----
$output = '';
$output .= '
';
$output .= '
';
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
'. do_shortcode($content ?? '') .'
';
$output .= '
';
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Chart [chart]
*/
if (! function_exists('sc_chart')) {
function sc_chart($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'percent' => '',
'label' => '',
'icon' => '',
'image' => '',
'line_width' => '',
'color' => '',
), $attr));
// image | visual composer fix
$title = be_dynamic_data($title);
$image = mfn_vc_image($image);
// color
if( ! $color ){
$color = mfn_opts_get('color-counter', '#2991D6');
}
// line width
if ($line_width) {
$line_width_escaped = 'data-line-width="'. intval($line_width, 10) .'"';
} else {
$line_width_escaped = false;
}
$output = '';
// This variable has been safely escaped above in this function
$output .= '
';
if ($image) {
$output .= '
';
} elseif ($icon) {
$output .= '
';
} else {
$output .= '
'. esc_html($label) .'
';
}
$output .= '
';
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'p';
$output .= '<'. mfn_allowed_title_tag($title_tag) .'>
'. esc_html($title) .' '. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-chart', get_theme_file_uri('/js/plugins/chart.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Countdown [countdown]
*/
if (! function_exists('sc_countdown')) {
function sc_countdown($attr, $content = null)
{
extract(shortcode_atts(array(
'date' => '12/30/2022 12:00:00',
'timezone' => '0',
'show' => '',
'number_size' => '', // for inline shortcode only
), $attr));
// translate
$is_translatable = mfn_opts_get('translate');
$translate['days'] = $is_translatable ? mfn_opts_get('translate-days', 'days') : __('days', 'betheme');
$translate['hours'] = $is_translatable ? mfn_opts_get('translate-hours', 'hours') : __('hours', 'betheme');
$translate['minutes'] = $is_translatable ? mfn_opts_get('translate-minutes', 'minutes') : __('minutes', 'betheme');
$translate['seconds'] = $is_translatable ? mfn_opts_get('translate-seconds', 'seconds') : __('seconds', 'betheme');
// number of columns to show
switch ($show) {
case 'dhm':
$hide = 1;
$columns = 'one-third';
break;
case 'dh':
$hide = 2;
$columns = 'one-second';
break;
case 'd':
$hide = 3;
$columns = 'one';
break;
default:
$hide = 0;
$columns = 'one-fourth';
}
// number size
if( ! empty($number_size) ){
if( is_numeric($number_size) ){
$number_size .= 'px';
}
$number_size = 'style="font-size:'. $number_size .'"';
}
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
// output -----
$output = '';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
00
';
$output .= '
';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. esc_html($translate['days']) .''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
if (3 > $hide) {
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
00
';
$output .= '
';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. esc_html($translate['hours']) .''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
}
if (2 > $hide) {
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
00
';
$output .= '
';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. esc_html($translate['minutes']) .''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
}
if (1 > $hide) {
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
00
';
$output .= '
';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. esc_html($translate['seconds']) .''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
}
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-countdown', get_theme_file_uri('/js/plugins/countdown.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Countdown inline [countdown_inline]
*/
if (! function_exists('sc_countdown_inline')) {
function sc_countdown_inline($attr, $content = null)
{
extract(shortcode_atts(array(
'date' => '12/30/2022 12:00:00',
'timezone' => '0',
'show' => '',
), $attr));
// translate
$is_translatable = mfn_opts_get('translate');
$translate['days'] = $is_translatable ? mfn_opts_get('translate-days', 'days') : __('days', 'betheme');
$translate['hours'] = $is_translatable ? mfn_opts_get('translate-hours', 'hours') : __('hours', 'betheme');
$translate['minutes'] = $is_translatable ? mfn_opts_get('translate-minutes', 'minutes') : __('minutes', 'betheme');
$translate['seconds'] = $is_translatable ? mfn_opts_get('translate-seconds', 'seconds') : __('seconds', 'betheme');
// output -----
$output = '';
$output .= '00 ';
$output .= ''. esc_html($translate['days']) .' ';
$output .= '00 ';
$output .= ''. esc_html($translate['hours']) .' ';
$output .= '00 ';
$output .= ''. esc_html($translate['minutes']) .' ';
$output .= '00 ';
$output .= ''. esc_html($translate['seconds']) .' ';
$output .= ' ';
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-countdown', get_theme_file_uri('/js/plugins/countdown.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Counter [counter]
*/
if (! function_exists('sc_counter')) {
function sc_counter($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => '',
'color' => '',
'image' => '',
'number' => '',
'duration' => '',
'prefix' => '',
'label' => '',
'title' => '',
'thousands_separator' => '',
'type' => 'vertical',
), $attr));
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
$title = be_dynamic_data($title);
// color
if ($color) {
$style_escaped = 'style="color:'. esc_attr($color) .';"';
} else {
$style_escaped = false;
}
// animate math
$animate_math = mfn_opts_get('math-animations-disable') ? false : 'animate-math';
// duration
if( ! empty($duration) ){
$duration = 'data-duration="'. intval($duration, 10) .'"';
} else {
$duration = '';
}
// thousands_separator
if( ! empty($thousands_separator) ){
$thousands_separator = 'data-thousands-separator="'. esc_attr($thousands_separator) .'"';
} else {
$thousands_separator = '';
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// output -----
$output = '';
if( $image || $icon ){
$output .= '
';
if ($image) {
$output .= '
';
} elseif ($icon) {
// This variable has been safely escaped above in this function
$output .= '
';
}
$output .= '
';
}
$output .= '
';
if ( $number || $number === '0' ) {
$output .= '
';
if ($prefix) {
$output .= ''. esc_html($prefix) .' ';
}
$output .= ''. intval($number, 10) .' ';
if ($label) {
$output .= ''. esc_html($label) .' ';
}
$output .= '
';
}
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'p';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-chart', get_theme_file_uri('/js/plugins/chart.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-countdown', get_theme_file_uri('/js/plugins/countdown.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Counter inline [counter_inline]
*/
if (! function_exists('sc_counter_inline')) {
function sc_counter_inline($attr, $content = null)
{
extract(shortcode_atts(array(
'value' => '',
'duration' => '',
), $attr));
if( ! $value ){
return false;
}
if( ! empty($duration) ){
$duration = 'data-duration="'. intval($duration, 10) .'"';
} else {
$duration = '';
}
$output = ''. intval($value, 10) .' ';
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-countdown', get_theme_file_uri('/js/plugins/countdown.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Icon [icon]
*/
if (! function_exists('sc_icon')) {
function sc_icon($attr, $content = null)
{
extract(shortcode_atts(array(
'type' => '',
'color' => '',
), $attr));
$class = $type;
if( 'themecolor' == $color ){
$class .= ' themecolor';
$color = false;
} elseif( $color ){
$color = 'color:'. $color;
}
$output = ' ';
return $output;
}
}
/**
* Icon Block [icon_block]
*/
if (! function_exists('sc_icon_block')) {
function sc_icon_block($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => '',
'align' => '',
'color' => '',
'size' => 25,
), $attr));
// classes
$class = '';
if ($align) {
$class .= ' icon_'. $align;
}
if ($color) {
$color = 'color:'. $color .';';
} else {
$class .= ' themecolor';
}
// output -----
$output = '';
$output .= ' ';
$output .= ' '."\n";
return $output;
}
}
/**
* Image [image]
*/
if (! function_exists('sc_image')) {
function sc_image($attr, $content = null) {
extract(shortcode_atts(array(
'src' => '',
'size' => '',
'lazy_load' => '',
// options
'align' => 'none',
'stretch' => '',
'border' => '',
'margin' => '',
'margin_top' => '', // alias for: margin
'margin_bottom' => '',
// link
'link_image' => '',
'link' => '',
'link_title' => '',
'target' => '',
'hover' => '',
'onclick' => '',
// description
'alt' => '',
'caption' => '',
// advanced
'greyscale' => '',
'classes' => '',
// mask
'mask_shape_type' => '',
'mask_shape_size' => '',
'mask_shape_position' => '',
// deprecated
'width' => '',
'height' => '',
), $attr));
$link_classes = '';
$link_attr = '';
// STYLE -----
if ($margin_top) {
// alias for: margin
$margin = $margin_top;
}
if ($margin || $margin_bottom) {
$margin_tmp = '';
if ($margin) {
$margin_tmp .= 'margin-top:'. intval($margin, 10) .'px;';
}
if ($margin_bottom) {
$margin_tmp .= 'margin-bottom:'. intval($margin_bottom, 10) .'px;';
}
$style_escaped = 'style="'. esc_attr($margin_tmp) .'"';
} else {
$style_escaped = false;
}
// end: STYLE
// TARGET
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// end: TARGET
// ONCLICK
if ( !empty($onclick) ) {
$onclick_escaped = 'onclick="'. $onclick .'"';
} else {
$onclick_escaped = '';
}
// end: ONCLICK
// DIV CLASS -----
$class_div = '';
// align
if ($align) {
$class_div .= ' align'. $align;
}
// stretch
if ($stretch == 'ultrawide') {
$class_div .= ' stretch-ultrawide';
} elseif ($stretch) {
$class_div .= ' stretch';
}
// border
if ($border) {
$class_div .= ' has_border';
} else {
$class_div .= ' no_border';
}
// greyscale
if ($greyscale) {
$class_div .= ' greyscale';
}
// hover
if ($hover) {
$class_div .= ' hover-disable';
}
// end: DIV CLASS
// PRETTYPHOTO ---
$link_all = $link;
if ($link_all) {
if( false !== strpos( $classes, 'scroll' ) ){
$rel_escaped = 'class="scroll"';
}
if( !empty($link) && !empty($attr['rel']) ) {
$rel_escaped = 'rel="'.$attr['rel'].'"';
}else{
$rel_escaped = false;
}
} else {
$link_all = $link_image;
$rel_escaped = 'rel="prettyphoto"';
$target_escaped = false;
}
// end: PRETTYPHOTO ---
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
$link_image = false;
if( empty($link_all) ) $link_all = '#';
if( empty($link) ) $link = '#';
$rel_escaped = false;
$link_classes .= 'open-mfn-popup';
$link_attr .= 'data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// mask shape
$img_style = '';
$is_mask_shape_enabled = !empty($mask_shape_type) ? true : false;
$class_div .= $is_mask_shape_enabled ? ' mfn-mask-shape' : '';
$class_div .= $is_mask_shape_enabled && $mask_shape_type !== '0' ? ' '.$mask_shape_type : '';
if ( $mask_shape_size !== 'custom' && $is_mask_shape_enabled) {
$img_style .= '-webkit-mask-size:'. $mask_shape_size .';';
}
if( $mask_shape_position !== 'custom' && $is_mask_shape_enabled ){
$img_style .= '-webkit-mask-position:'. $mask_shape_position .';';
}
// NEW url#id image link format
$image_output = false;
if( ! empty($src) && strpos($src, '#') !== false ){
$attachment_attr = [ 'class' => 'scale-with-grid', 'style' => $img_style ];
if( ! empty($alt) ){
$attachment_attr['alt'] = $alt;
}
$image_output = mfn_get_attachment( $src, $size, $lazy_load, $attachment_attr );
$width = mfn_get_attachment_data( $src, 'width' ); // FIX: svg images width
} else {
// dynamic data
$src = be_dynamic_data($src);
// mfn_get_attachment_id_url -----
if( ! is_numeric( $src ) && empty( $width ) && empty( $height ) ){ // width & height are deprecated | just for backward compatibility
$attachment_id = mfn_get_attachment_id_url( $src );
if( $attachment_id ){
$src = $attachment_id;
$src = apply_filters( 'wpml_object_id', $src, 'attachment', true );
}
}
}
// IMAGE OUTPUT -----
if( $image_output ){
// do nothing, we already have output image
} elseif( is_numeric( $src ) ){
$attachment_attr = [ 'class' => 'scale-with-grid', 'style' => $img_style ];
if( ! empty($alt) ){
$attachment_attr['alt'] = $alt;
}
$image_output = mfn_get_attachment( $src, $size, $lazy_load, $attachment_attr );
$width = mfn_get_attachment_data( $src, 'width' ); // FIX: svg images width
} else {
$class = 'scale-with-grid';
// title, alt, width, height
$title = mfn_get_attachment_data($src, 'title');
if (! $alt) {
$alt = mfn_get_attachment_data($src, 'alt');
}
if (! $width) {
$width = mfn_get_attachment_data($src, 'width');
}
if (! $height) {
$height = mfn_get_attachment_data($src, 'height');
}
// src output
$src = 'src="'. esc_url($src) .'"';
if( ! isset($attr['vb']) && mfn_is_lazy( $lazy_load ) ){
$src = 'data-'. $src;
$class .= ' mfn-lazy';
}
$image_output = ' ';
}
// svg
if( ( ! $width ) && ( strpos( $image_output, '.svg' ) !== false ) ) {
$class_div .= ' svg'; // FIX: SVG image without width
}
/*if( strpos( $image_output, '.svg' ) !== false ) {
$class_div .= ' svg';
}*/
if( !empty($attr['image_height']) && $attr['image_height'] == 'custom' ){
$class_div .= ' mfn-coverimg';
}
// OUTPUT -----
$output = '';
if ($link || $link_image) {
if( !empty($attr['image_height']) && $attr['image_height'] == 'custom' ) {
if( !empty($attr['image_height_style']) ){
$link_classes .= ' mfn-'.$attr['image_height_style'].'img-wrapper';
}else{
$link_classes .= ' mfn-coverimg-wrapper';
}
}
// This variable has been safely escaped above in this function
$output .= '';
$output .= '
';
// This variable has been safely escaped above in this function
$link_all = be_dynamic_data($link_all);
if( is_numeric($link_all) ) $link_all = wp_get_attachment_image_url($link_all, 'full');
$output .= '
';
$output .= '
';
// This variable has been safely escaped above in this function
$output .= $image_output;
$output .= ' ';
$output .= '
';
if ($link_image) {
$link_image = be_dynamic_data($link_image);
if( is_numeric($link_image) ) $link_image = wp_get_attachment_image_url($link_image, 'full');
$output .= '
';
}
if ($link) {
// This variable has been safely escaped above in this function
$output .= '
';
}
$output .= '
';
$output .= '
';
if ($caption) {
$caption = be_dynamic_data($caption);
$output .= '
'. wp_kses($caption, mfn_allowed_html('caption')) .'
';
}
$output .= '
'."\n";
} else {
$coverimg = false;
if( !empty($attr['image_height']) && $attr['image_height'] == 'custom' ) {
if( !empty($attr['image_height_style']) ){
$coverimg = 'mfn-'.$attr['image_height_style'].'img-wrapper';
}else{
$coverimg = 'mfn-coverimg-wrapper';
}
}
// This variable has been safely escaped above in this function
$output .= '';
$output .= '
';
// This variable has been safely escaped above in this function
$output .= $image_output;
$output .= '
';
if ($caption) {
$output .= '
'. wp_kses($caption, mfn_allowed_html('caption')) .'
';
}
$output .= '
'."\n";
}
return $output;
}
}
/**
* Hover Box [hover_box]
*/
if (! function_exists('sc_hover_box')) {
function sc_hover_box($attr, $content = null) {
extract(shortcode_atts(array(
'image' => '',
'image_hover' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image_hover = be_dynamic_data($image_hover);
if( is_numeric($image_hover) ) $image_hover = wp_get_attachment_image_url($image_hover, 'full');
$image = mfn_vc_image($image);
$image_hover = mfn_vc_image($image_hover);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target_escaped = 'class="open-mfn-popup"';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// image class
$img_class = 'scale-with-grid visible_photo';
$img_class2 = 'scale-with-grid hidden_photo';
// src output
$src = 'src="'. esc_url($image) .'"';
$src2 = 'src="'. esc_url($image_hover) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$src2 = 'data-'. $src2;
$img_class .= ' mfn-lazy';
$img_class2 .= ' mfn-lazy';
}
// output -----
$output = ''."\n";
return $output;
}
}
/**
* Hover Color [hover_color]
*/
if (! function_exists('sc_hover_color')) {
function sc_hover_color($attr, $content = null)
{
extract(shortcode_atts(array(
'align' => '',
'background' => '',
'background_hover' => '',
'border' => '',
'border_hover' => '',
'border_width' => '',
'padding' => '',
'link' => '',
'link_title' => '',
'class' => '',
'target' => '',
'style' => '',
), $attr));
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
$content = be_dynamic_data($content);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// padding
if ($padding) {
$padding = 'padding:'. $padding .';';
}
// border width
if( is_numeric($border_width) ){
$border_width .= 'px';
}
// FIX | prettyphoto
if (strpos($class, 'prettyphoto') !== false) {
$class = str_replace('prettyphoto', '', $class);
$rel_escaped = 'rel="prettyphoto"';
} else {
$rel_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$rel_escaped = false;
$class .= ' open-mfn-popup';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// output -----
$output = '';
$output .= '
'."\n";
$output .= '
'."\n";
return $output;
}
}
/**
* Quick Fact [quick_fact]
*/
if (! function_exists('sc_quick_fact')) {
function sc_quick_fact($attr, $content = null)
{
extract(shortcode_atts(array(
'heading' => '',
'heading_tag' => 'h4',
'title' => '',
'title_tag' => 'h3',
'number' => '',
'prefix' => '',
'label' => '',
'align' => 'center',
), $attr));
$title = be_dynamic_data($title);
$heading = be_dynamic_data($heading);
$content = be_dynamic_data($content);
// animate math
$animate_math = mfn_opts_get('math-animations-disable') ? false : 'animate-math';
// title tag
$heading_class = '';
if( ! empty($heading_tag) ){
if( 'p.lead' == $heading_tag ){
$heading_tag = 'p';
$heading_class = 'lead';
}
}
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
if ($heading) {
$output .= '<'. mfn_allowed_title_tag( $heading_tag ) .' class="title heading_tag '. esc_attr($heading_class) .'">'. wp_kses($heading, mfn_allowed_html()) .''. mfn_allowed_title_tag( $heading_tag ) .'>';
}
if ( $number || $number === '0' ) {
$output .= '
';
if ($prefix) {
$output .= ''. esc_html($prefix) .' ';
}
$output .= ''. esc_html($number) .' ';
if ($label) {
$output .= ''. esc_html($label) .' ';
}
$output .= '
';
}
if ($title) {
$output .= '<'. mfn_allowed_title_tag( $title_tag ) .' class="title title_tag '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag( $title_tag ) .'>';
}
$output .= '
';
$output .= '
'. do_shortcode($content ?? '') .'
';
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Button [button]
*/
if (! function_exists('sc_button')) {
function sc_button($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => 'Button',
'link' => '',
'link_title' => '',
'target' => '',
'align' => '',
'icon' => '',
'icon_position' => 'left',
'color' => '',
'font_color' => '',
'size' => 2,
'full_width' => '',
'button_style' => '',
'class' => '',
'button_id' => '',
'rel' => '',
'download' => '',
'onclick' => '',
), $attr));
$is_add_to_cart = '';
if( $link == '{permalink:add_to_cart}' && get_post_type(Mfn_Builder_Front::$item_id) == 'product' && get_option('woocommerce_enable_ajax_add_to_cart') == 'yes' ) {
$product_tmp = wc_get_product( Mfn_Builder_Front::$item_id );
if( $product_tmp->is_type( 'simple' ) ) {
$class .= 'mfn-dynamic-data-add-to-cart add_to_cart_button ajax_add_to_cart product_type_'.$product_tmp->get_type();
$is_add_to_cart = 'data-product_id="'.$product_tmp->get_ID().'"';
}
}
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
// target
if( 'lightbox' === $target ) {
$target_escaped = false;
$rel = 'prettyphoto '. $rel; // do not change order
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// download
if ($download) {
$download_escaped = 'download="'. $download .'"';
} else {
$download_escaped = false;
}
// onclick
if ($onclick) {
$onclick_escaped = 'onclick="'. $onclick .'"';
} else {
$onclick_escaped = false;
}
// icon_position
if ( empty($icon_position) ) {
$icon_position = 'left';
}
// FIX | prettyphoto
if ( strpos( $class, 'prettyphoto' ) !== false ) {
$class = str_replace( 'prettyphoto', '', $class );
$rel = 'prettyphoto '. $rel; // do not change order
}
// id
if( ! empty($button_id) ){
$button_id = 'id="'. esc_attr($button_id) .'"';
} else {
$button_id = '';
}
// class
if ( $icon ) {
$class .= ' button_'. $icon_position;
}
if ( $full_width ) {
$class .= ' button_full_width';
}
if ( !empty($button_style) ) {
$class .= ' '.$button_style;
}
if ($size) {
$class .= ' button_size_'. $size;
}
// custom color
$style = '';
$style_icon = '';
$data_tags = [];
if ( $color ) { // TODO: change to variables
if (strpos($color, '#') === 0) {
if ( 'stroke' == mfn_opts_get( 'button-style' ) ) {
// Stroke | Border
$style .= 'border-color:'. $color .'!important;';
$class .= ' button_stroke_custom';
} else {
// Default | Background
$style .= 'background-color:'. $color .'!important;';
}
} else {
$class .= ' button_'. $color;
}
}
if( !empty($attr['button_function']) ){
$class .= ' '.$attr['button_function'];
if( $attr['button_function'] == 'mfn-read-more' ){
$data_tags[] = 'data-label_path=".button_label"';
$data_tags[] = 'data-icon_path=".button_icon"';
$data_tags[] = 'data-title1="'.$title.'"';
$data_tags[] = !empty($attr['button_function_read_more_title']) ? 'data-title2="'.be_dynamic_data($attr['button_function_read_more_title']).'"' : 'data-title2="'.$title.'"';
$data_tags[] = 'data-icon1="'.( !empty($icon) ? $icon : '').'"';
$data_tags[] = 'data-icon2="'.( !empty($attr['button_function_read_more_icon']) ? $attr['button_function_read_more_icon'] : '').'"';
}
if( $attr['button_function'] == 'open-mfn-popup' ){
$data_tags[] = 'data-mfnpopup="'.(!empty($attr['button_function_popupid']) ? $attr['button_function_popupid'] : 'popup_id_required').'"';
}
if( $attr['button_function'] == 'mfn-go-to' ){
$data_tags[] = 'data-mfngoto="'.(!empty( $attr['button_function_go_to']) ? $attr['button_function_go_to'] : 'next').'"';
}
}
if ($font_color) {
$style .= 'color:'. $font_color .';';
$style_icon = 'color:'. $font_color .'!important;';
}
if ($style) {
$style_escaped = ' style="'. esc_attr( $style ) .'"';
} else {
$style_escaped = false;
}
if ($style_icon) {
$style_icon_escaped = ' style="'. $style_icon .'"';
} else {
$style_icon_escaped = false;
}
// rel (do not move up)
if( $rel ) {
$rel_escaped = 'rel="'. esc_attr( $rel ) .'"';
} else {
$rel_escaped = false;
}
// link attributes
// This variable has been safely escaped above in this function
$attributes_escaped = $style_escaped .' '. $target_escaped .' '. $rel_escaped .' '. $download_escaped .' '. $onclick_escaped;
// output -----
$output = '';
if ( $align ) {
$output .= '';
}
$output .= "\n";
return $output;
}
}
/**
* Icon Bar [icon_bar]
*/
if (! function_exists('sc_icon_bar')) {
function sc_icon_bar($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => 'icon-lamp',
'link' => '',
'target' => '',
'size' => '',
'social' => '',
), $attr));
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// class
$class = '';
if ($social) {
$class .= ' icon_bar_'. $social;
}
if ($size) {
$class .= ' icon_bar_'. $size;
}
// This variable has been safely escaped above in this function
$output = '';
$output .= ' ';
$output .= ' ';
$output .= ' '."\n";
return $output;
}
}
/**
* Alert [alert] [/alert]
*/
if (! function_exists('sc_alert')) {
function sc_alert($attr, $content = null)
{
extract(shortcode_atts(array(
'style' => 'warning',
), $attr));
// style
switch ($style) {
case 'error':
$icon = ' ';
break;
case 'info':
$icon = ' ';
break;
case 'success':
$icon = ' ';
break;
default:
$icon = ' ';
break;
}
// output -----
$output = '';
$output .= '
'. $icon .'
';
$output .= '
'. do_shortcode($content ?? '') .'
';
$output .= '
✕ ';
$output .= '
'."\n";
return $output;
}
}
/**
* Idea [idea] [/idea]
*/
if (! function_exists('sc_idea')) {
function sc_idea($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => 'icon-lamp',
'border_radius' => '',
), $attr));
if( $border_radius ){
if( is_numeric($border_radius) ){
$border_radius .= 'px';
}
$border_radius = 'border-radius:'. $border_radius;
}
// output -----
$output = '';
$output .= '
';
$output .= '
'. do_shortcode($content ?? '') .'
';
$output .= '
'."\n";
return $output;
}
}
/**
* Dropcap [dropcap] [/dropcap]
*/
if (! function_exists('sc_dropcap')) {
function sc_dropcap($attr, $content = null)
{
extract(shortcode_atts(array(
'font' => '',
'size' => 1, // 1-3, or custom size in px
'background' => '',
'color' => '',
'circle' => '',
'transparent' => '', // deprecated
), $attr));
$class = '';
$style = '';
// font family
if ( $font ) {
$style .= "font-family:'". $font ."',Arial,Tahoma,sans-serif;";
if ( ! mfn_opts_get('google-font-mode') ) {
$font_slug = str_replace(' ', '+', $font);
wp_enqueue_style($font_slug, 'https://fonts.googleapis.com/css?family='. esc_attr($font_slug) .':400');
}
}
// circle
if ($circle) {
$class = ' dropcap_circle';
}
// transparent
if ($transparent) {
$class = ' transparent';
}
// background
if ($background) {
$style .= 'background-color:'. $background .';';
}
// color
if ($color) {
$style .= ' color:'. $color .';';
}
// size
$size = intval($size, 10);
$sizeH = $size + 15;
if ($size > 3) {
if ($transparent) {
$style .= ' font-size:'. $size .'px;height:'. $size .'px;line-height:'. $size .'px;width:'. $size .'px;';
} else {
$style .= ' font-size:'. $size .'px;height:'. $sizeH .'px;line-height:'. $sizeH .'px;width:'. $sizeH .'px;';
}
} else {
$class .= ' size-'. $size;
}
if ($style) {
$style_escaped = 'style="'. esc_attr($style) .'"';
} else {
$style_escaped = false;
}
// output -----
// This variable has been safely escaped above in this function
$output = '';
$output .= do_shortcode($content ?? '');
$output .= ' '."\n";
return $output;
}
}
/**
* Highlight [highlight] [/highlight]
*/
if (! function_exists('sc_highlight')) {
function sc_highlight($attr, $content = null)
{
extract(shortcode_atts(array(
'background' => '',
'color' => '',
'style' => '', // '', underline
), $attr));
// style
$css = '';
if ($background) {
$css .= 'background-color:'. $background .';';
}
if ($color) {
$css .= 'color:'. $color .';';
}
if ($css) {
$css_escaped = 'style="'. esc_attr($css) .'"';
} else {
$css_escaped = false;
}
// output -----
// This variable has been safely escaped above in this function
$output = '';
if( 'underline' == $style ){
$words = explode( ' ', trim($content) );
$string = '';
foreach( $words as $word ){
$string .= ''. $word .' ';
}
$output .= trim( $string );
} else {
$output .= do_shortcode($content ?? '');
}
$output .= ' '."\n";
return $output;
}
}
/**
* Tooltip [tooltip] [/tooltip]
*/
if (! function_exists('sc_tooltip')) {
function sc_tooltip($attr, $content = null)
{
extract(shortcode_atts(array(
'hint' => '',
'position' => 'top',
), $attr));
// output -----
$output = '';
if ($hint) {
$output .= '';
$output .= do_shortcode($content ?? '');
$output .= ' '."\n";
}
return $output;
}
}
/**
* Tooltip [tooltip_image] [/tooltip_image]
*/
if (! function_exists('sc_tooltip_image')) {
function sc_tooltip_image($attr, $content = null)
{
extract(shortcode_atts(array(
'hint' => '',
'image' => '',
), $attr));
// output -----
$output = '';
if ($hint || $image) {
$output .= '';
$output .= '';
if ($image) {
$output .= ' ';
}
if ($hint) {
$output .= wp_kses($hint, mfn_allowed_html('caption'));
}
$output .= ' ';
$output .= do_shortcode($content ?? '');
$output .= ' '."\n";
}
return $output;
}
}
/**
* Content Link [content_link]
*/
if (! function_exists('sc_content_link')) {
function sc_content_link($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'icon' => '',
'link' => '',
'target' => '',
'class' => '',
'download' => '',
), $attr));
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// download
if ($download) {
$download_escaped = 'download="'. esc_attr($download) .'"';
} else {
$download_escaped = false;
}
// output -----
// This variable has been safely escaped above in this function
$output = '';
if ($icon) {
$output .= ' ';
}
if ($title) {
$output .= ''. wp_kses($title, mfn_allowed_html()) .' ';
}
$output .= ' ';
return $output;
}
}
/**
* Fancy Link [fancy_link]
*/
if (! function_exists('sc_fancy_link')) {
function sc_fancy_link($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'link' => '',
'target' => '',
'style' => '1', // 1-9
'icon' => '', // for style 9 only
'margin' => '0',
'font' => '',
'font_size' => '',
'class' => '',
'popup' => '',
'download' => '',
), $attr));
$css = '';
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// font size
if( ! empty($font_size) ){
if( is_numeric($font_size) ){
$font_size .= 'px';
}
$css .= 'font-size:'. esc_attr($font_size) .';';
}
// font family
if( ! empty($font) ){
$css .= "font-family:'". esc_attr($font) ."',Arial,Tahoma,sans-serif;";
}
// margin
if( ! empty($margin) ){
if( is_numeric($margin) ){
$margin .= 'px';
}
$css .= 'margin:'. esc_attr($margin) .';';
}
// popup
if( ! empty($popup) ){
$popup_escaped = 'data-mfnpopup="'. esc_attr($popup) .'"';
$class .= ' open-mfn-popup';
} else {
$popup_escaped = false;
}
// download
if ($download) {
$download_escaped = 'download="'. esc_attr($download) .'"';
} else {
$download_escaped = false;
}
// output -----
$output = '';
$output .= ''. esc_html($title) .' ';
if( 9 == $style ){
if( $icon ){
$output .= ' ';
} else {
$output .= ' ';
}
}
$output .= ' ';
// enqueue_style
if ( $font && ! mfn_opts_get('google-font-mode') ) {
$font_slug = str_replace(' ', '+', $font);
wp_enqueue_style(esc_attr($font_slug), 'https://fonts.googleapis.com/css?family='. esc_attr($font_slug) );
}
return $output;
}
}
/**
* Blockquote [blockquote] [/blockquote]
*/
if (! function_exists('sc_blockquote')) {
function sc_blockquote($attr, $content = null)
{
extract(shortcode_atts(array(
'author' => '',
'link' => '',
'link_title' => '',
'icon' => '',
'icon_author' => '',
'target' => 0,
), $attr));
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// output -----
$output = '';
if( empty( mfn_opts_get('style') ) ){
$output .= '
';
}
$output .= '
';
$output .= do_shortcode($content ?? '') .' ';
if ($author) {
$output .= '
';
$output .= !empty($icon_author) ? ' ' : ' ';
if ($link) {
// This variable has been safely escaped above in this function
$output .= ''. esc_html($author) .' ';
} else {
$output .= ''. esc_html($author) .' ';
}
$output .= '
';
}
$output .= '
'."\n";
return $output;
}
}
/**
* Clients [clients]
*/
if (! function_exists('sc_clients')) {
function sc_clients($attr, $content = null)
{
extract(shortcode_atts(array(
'in_row' => 6,
'category' => '',
'orderby' => 'menu_order',
'order' => 'ASC',
'style' => '',
'greyscale' => '',
), $attr));
// class
$class = '';
if ($greyscale) {
$class .= ' greyscale';
}
if ($style) {
$class .= ' clients_tiles';
}
if (! intval($in_row, 10)) {
$in_row = 6;
}
// query args
$args = array(
'post_type' => 'client',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => $order,
);
if ($category) {
$args['client-types'] = $category;
}
$clients_query = new WP_Query();
$clients_query->query($args);
// output -----
$output = '';
if ($clients_query->have_posts()) {
$i = 1;
$width = round((100 / $in_row), 3);
while ($clients_query->have_posts()) {
$clients_query->the_post();
$output .= '';
$output .= '';
$output .= ' ';
$i++;
}
}
wp_reset_query();
$output .= ' '."\n";
return $output;
}
}
/**
* Clients slider [clients_slider]
*/
if (! function_exists('sc_clients_slider')) {
function sc_clients_slider($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'category' => '',
'orderby' => 'menu_order',
'order' => 'ASC',
'per_slide' => '3',
'scroll' => '',
'navigation' => '', // '' (header), 'content'
), $attr));
$title = be_dynamic_data($title);
// query args
$args = array(
'post_type' => 'client',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => $order,
);
if ($category) {
$args['client-types'] = $category;
}
$clients_query = new WP_Query();
$clients_query->query($args);
// slider to scroll
if( empty( $scroll ) ){
$scroll = '';
}
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
// output -----
$output = '';
if ($clients_query->have_posts()) {
$output = '';
$output .= '';
$output .= '
';
while ($clients_query->have_posts()) {
$clients_query->the_post();
$output .= '';
$output .= '';
$output .= ' ';
}
$output .= ' ';
$output .= '
'."\n";
}
wp_reset_query();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Fancy Heading [fancy_heading] [/fancy_heading]
*/
if (! function_exists('sc_fancy_heading')) {
function sc_fancy_heading($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'h1' => '',
'icon' => '',
'slogan' => '',
'style' => 'icon', // icon, line, arrows
), $attr));
$title = be_dynamic_data($title);
// title tag
$title_class = '';
if( ! empty($h1) ){
if( 'p.lead' == $h1 ){
$h1 = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
$output .= '
';
if ($style == 'icon' && $icon) {
$output .= ' ';
}
if ($style == 'line' && $slogan) {
$output .= ''. wp_kses($slogan, mfn_allowed_html()) .' ';
}
if ($style =='arrows') {
$title = ' '. wp_kses($title, mfn_allowed_html()) .' ';
}
$output .= '
';
if ($title) {
if ($h1) {
$title_tag = $h1 == '1' ? 'h1' : $h1;
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
} else {
$output .= '
'. wp_kses($title, mfn_allowed_html()) .' ';
}
}
if ($content) {
$output .= '
'. do_shortcode($content ?? '') .'
';
}
$output .= '
'."\n";
return $output;
}
}
/**
* Heading [heading] [/heading]
*/
if (! function_exists('sc_heading_inline')) {
function sc_heading_inline($attr, $content = null)
{
extract(shortcode_atts(array(
'tag' => 'h2',
'align' => 'left',
'color' => '',
'style' => '', // [none], lines
'color2' => '',
), $attr));
$before = $after = '';
// inline_css
$inline_css = '';
if ($color) {
$inline_css .= 'color:'. $color .';';
}
if ($inline_css) {
$inline_css_escaped = 'style="'. esc_attr($inline_css) .'"';
} else {
$inline_css_escaped = false;
}
// inline_css_line
$inline_css_line = '';
if ($color2) {
$inline_css_line .= 'background:'. $color2 .';';
}
if ($inline_css_line) {
$inline_css_line_escaped = 'style="'. esc_attr($inline_css_line) .'"';
} else {
$inline_css_line_escaped = false;
}
// style
if ($style == 'lines') {
// This variable has been safely escaped above in this function
$before = ' ';
$after = ' ';
}
if ($style) {
$style = 'heading_'. $style;
}
// output -----
$output = '';
// This variable has been safely escaped above in this function
$output .= '<'. mfn_allowed_title_tag($tag) .' class="title" '. $inline_css_escaped .'>';
$output .= $before;
$output .= do_shortcode($content ?? '');
$output .= $after;
$output .= ''. mfn_allowed_title_tag($tag) .'>';
$output .= '
'."\n";
return $output;
}
}
/**
* Icon Box [icon_box] [/icon_box]
*/
if (! function_exists('sc_icon_box')) {
function sc_icon_box($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => 'h4',
'icon' => '',
'image' => '',
'icon_position' => 'top',
'border' => '',
'link' => '',
'link_title' => '',
'target' => '',
'class' => '',
), $attr));
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// border
if ($border) {
$border = 'has_border';
} else {
$border = 'no_border';
}
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// FIX | prettyphoto
if (strpos($class, 'prettyphoto') !== false) {
$class = str_replace('prettyphoto', '', $class);
$rel_escaped = 'rel="prettyphoto"';
} else {
$rel_escaped = false;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
$output .= ''."\n";
return $output;
}
}
/**
* Icon
*/
if (! function_exists('sc_icon_2')) {
function sc_icon_2($attr) {
extract(shortcode_atts(array(
'icon' => '',
'link' => '',
'target' => '',
'hover' => '',
), $attr));
if( empty($icon) ) $icon = 'icon-lamp';
$classes = array('mfn-icon-2');
if ( 'lightbox' === $target ) {
$target = 'rel="prettyphoto"';
} elseif ( $target ) {
$target = 'target="_blank"';
} else {
$target = '';
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$classes[] = 'open-mfn-popup';
$target .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
if( $hover ){
$classes[] = 'mfn-icon-box-'. esc_attr( $hover );
}
$output = '';
$link_title = !empty($attr['link_title']) ? 'title="'.$attr['link_title'].'"' : false;
if( !empty($link) ){
$output .= '';
}else{
$output .= '';
}
$output .= ' ';
if( !empty($link) ){
$output .= ' ';
}else{
$output .= '';
}
return $output;
}
}
/**
* Icon Box 2 [icon_box_2] [/icon_box_2]
*/
if (! function_exists('sc_icon_box_2')) {
function sc_icon_box_2($attr, $content = null) {
extract(shortcode_atts(array(
'title' => '',
'title_tag' => 'h4',
'icon' => '',
'label' => '',
'image' => '',
'icon_position' => 'top',
'icon_position_tablet' => '',
'icon_position_laptop' => '',
'icon_position_mobile' => '',
'icon_align' => 'center',
'icon_align_tablet' => '',
'icon_align_laptop' => '',
'icon_align_mobile' => '',
'link' => '',
'link_title' => '',
'target' => '',
'hover' => '',
), $attr));
// image | visual composer fix
$post_id = false;
if( !empty($attr['vb_postid']) ){
$post_id = $attr['vb_postid'];
}else if( !empty(Mfn_Builder_Front::$item_id) ){
$post_id = Mfn_Builder_Front::$item_id;
}else if( is_single() ){
$post_id = get_the_ID();
}
$image_tag = false;
if( !empty($image) && strpos($image, '#') !== false ){
$image_tag = mfn_get_attachment($image);
}else{
$image = mfn_vc_image($image);
}
// target
if ( 'lightbox' === $target ) {
$target = 'rel="prettyphoto"';
} elseif ( $target ) {
$target = 'target="_blank"';
} else {
$target = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target = 'class="open-mfn-popup"';
$target .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
if( !empty( $attr['link_type'] ) && $attr['link_type'] == 'mfn-read-more' ){
if( empty($link) ) $link = '#';
$target = 'class="mfn-read-more"';
$target .= ' data-label_path=".title.label"';
$target .= ' data-icon_path=".icon-wrapper"';
$target .= ' data-title1="'.$title.'"';
$target .= !empty($attr['link_type_read_more_title']) ? ' data-title2="'.$attr['link_type_read_more_title'].'"' : ' data-title2="'.$title.'"';
$target .= ' data-icon1="'.esc_attr($icon).'"';
$target .= ' data-icon2="'.( !empty($attr['link_type_read_more_icon']) ? esc_attr($attr['link_type_read_more_icon']) : '' ).'"';
}
// classes
$classes = ['mfn-icon-box'];
if( $icon_position ){
$classes[] = 'mfn-icon-box-'. esc_attr( $icon_position );
}
if( $icon_position_tablet ){
$classes[] = 'mfn-icon-box-tablet-'. esc_attr( $icon_position_tablet );
}
if( $icon_position_laptop ){
$classes[] = 'mfn-icon-box-laptop-'. esc_attr( $icon_position_laptop );
}
if( $icon_position_mobile ){
$classes[] = 'mfn-icon-box-mobile-'. esc_attr( $icon_position_mobile );
}
if( $icon_align ){
$classes[] = 'mfn-icon-box-'. esc_attr( $icon_align );
}
if( $icon_align_tablet ){
$classes[] = 'mfn-icon-box-tablet-'. esc_attr( $icon_align_tablet );
}
if( $icon_align_laptop ){
$classes[] = 'mfn-icon-box-laptop-'. esc_attr( $icon_align_laptop );
}
if( $icon_align_mobile ){
$classes[] = 'mfn-icon-box-mobile-'. esc_attr( $icon_align_mobile );
}
if( $hover ){
$classes[] = 'mfn-icon-box-'. esc_attr( $hover );
}
$classes = implode(' ', $classes);
$is_love_item = false;
if( $title == '{postmeta:mfn-post-love}' ) {
$is_love_item = 'mfn-love';
}
// dynamic data
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$content = be_dynamic_data($content);
if ( !empty($is_love_item) && isset($_COOKIE['mfn-post-love-'. $post_id])) {
$is_love_item .= ' loved';
}
$image = be_dynamic_data($image);
if( is_numeric($image) ){
$image_tag = wp_get_attachment_image($image, 'full');
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ) {
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
if( $link || !empty($is_love_item) ){
$output .= '';
}
$output .= '';
$output .= '
';
if( !empty($is_love_item) ){
$output .= '
';
}else{
if( $image ){
if( $image_tag ){
$output .= $image_tag;
}else{
$output .= '
';
}
} elseif( $icon ){
$output .= '
';
} elseif( $label ){
$output .= '
'.$label.' ';
}
}
$output .= '
';
$output .= '
';
if( $title || !empty($is_love_item) ){
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title label '. esc_attr($title_class) .'">'. $title .''. mfn_allowed_title_tag($title_tag) .'>';
}
if( $content ){
$output .= '
'. do_shortcode($content ?? '') .'
';
}
$output .= '
';
$output .= '
';
if( $link || !empty($is_love_item) ){
$output .= ' ';
}
return $output;
}
}
/**
* Our Team [our_team]
*/
if (! function_exists('sc_our_team')) {
function sc_our_team($attr, $content = null)
{
extract(shortcode_atts(array(
'heading' => '',
'heading_tag' => '',
'image' => '',
'title' => '',
'title_tag' => '',
'subtitle' => '',
'phone' => '',
'email' => '',
'facebook' => '',
'twitter' => '',
'linkedin' => '',
'vcard' => '',
'blockquote' => '',
'style' => 'vertical',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
// image | visual composer fix
$heading = be_dynamic_data($heading);
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
if( !empty( $attr['link_type'] ) && !empty($attr['popup_id']) ){
if( empty($link) ) $link = '#';
$target_escaped = 'class="open-mfn-popup"';
$target_escaped .= ' data-mfnpopup="'. esc_attr($attr['popup_id']) .'"';
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$heading_class = '';
if( ! empty($heading_tag) ){
if( 'p.lead' == $heading_tag ){
$heading_tag = 'p';
$heading_class = 'lead';
}
}
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
if ($heading) {
$heading_tag = !empty( $attr['heading_tag'] ) ? $attr['heading_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($heading_tag) .' class="title '. esc_attr($heading_class) .'">'. wp_kses($heading, mfn_allowed_html()) .''. mfn_allowed_title_tag($heading_tag) .'>';
}
if ( $image ) {
$output .= '
';
$output .= '
';
$output .= '
';
}
$output .= '
';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="desc_wrappper_title '. esc_attr($title_class) .'">';
if ($link) {
// This variable has been safely escaped above in this function
$output .= '
';
}
$output .= wp_kses( $title, mfn_allowed_html() );
if ($link) {
$output .= ' ';
}
$output .= ''. mfn_allowed_title_tag($title_tag) .'>';
}
if ($subtitle) {
$output .= '
'. wp_kses($subtitle, mfn_allowed_html()) .'
';
}
if ($phone) {
$output .= '
'. esc_html($phone) .'
';
}
$output .= '
';
$output .= '
'. do_shortcode($content ?? '') .'
';
if ($email || $phone || $facebook || $twitter || $linkedin) {
$output .= '
';
if ($email) {
$output .= '
';
}
if ($facebook) {
$output .= '
';
}
if ($twitter) {
$output .= '';
}
if ($linkedin) {
$output .= '
';
}
if ($vcard) {
$output .= '
';
}
$output .= '
';
}
if ($blockquote) {
$output .= '
'. wp_kses($blockquote, mfn_allowed_html('desc')) .' ';
//$output .= '
'. wp_kses($blockquote, mfn_allowed_html('desc')) .' ';
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Our Team List [our_team_list]
*/
if (! function_exists('sc_our_team_list')) {
function sc_our_team_list($attr, $content = null)
{
extract(shortcode_atts(array(
'image' => '',
'title' => '',
'title_tag' => '',
'subtitle' => '',
'blockquote'=> '',
'email' => '',
'phone' => '',
'facebook' => '',
'twitter' => '',
'linkedin' => '',
'vcard' => '',
'link' => '',
'link_title' => '',
'target' => '',
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$link_title = be_dynamic_data($link_title);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// target
if ( 'lightbox' === $target ) {
$target_escaped = 'rel="prettyphoto"';
} elseif ( $target ) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// image class
$img_class = 'scale-with-grid';
// src output
$src = 'src="'. esc_url($image) .'"';
if( empty( $attr['vb'] ) && mfn_is_lazy() ){
$src = 'data-'. $src;
$img_class .= ' mfn-lazy';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">';
if ($link) {
// This variable has been safely escaped above in this function
$output .= '
';
}
$output .= wp_kses($title, mfn_allowed_html());
if ($link) {
$output .= ' ';
}
$output .= ''. mfn_allowed_title_tag($title_tag) .'>';
}
if ($subtitle) {
$output .= '
'. wp_kses($subtitle, mfn_allowed_html()) .'
';
}
if ($phone) {
$output .= '
'. esc_html($phone) .'
';
}
$output .= '
';
$output .= '
'. do_shortcode($content ?? '') .'
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
if ($blockquote) {
//$output .= '
'. wp_kses($blockquote, mfn_allowed_html('desc')) .' ';
$output .= '
'. wp_kses($blockquote, mfn_allowed_html('desc')) .' ';
}
if ($email || $phone || $facebook || $twitter || $linkedin) {
$output .= '
';
if ($email) {
$output .= '
';
}
if ($facebook) {
$output .= '
';
}
if ($twitter) {
$output .= '';
}
if ($linkedin) {
$output .= '
';
}
if ($vcard) {
$output .= '
';
}
$output .= '
';
}
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Lottie [lottie]
*/
if (! function_exists('sc_lottie')) {
function sc_lottie($attr) {
extract(shortcode_atts(array(
'file' => '',
'src' => '',
'trigger' => '',
'speed' => '',
'loop' => '0',
'link' => '',
'frame_start' => '',
'frame_end' => '',
'viewport' => '',
'direction' => '',
), $attr));
$script = '';
$output = '';
$return = array();
$id = 'mfn_lottie_'.rand(0, 999).'_'.rand(0, 999);
$viewport = !empty( $viewport ) ? 100 - (int)$viewport : 90;
if( empty($trigger) ) $trigger = 'default';
if( empty($frame_start) ) $frame_start = 0;
if( empty($frame_end) ) $frame_end = 100;
if( empty($file) && !empty($src) ){
$file = $src;
}else if( empty($file) ){
$file = get_theme_file_uri('/assets/lottie/betheme-lottie.json');
}
$script .= 'var lottie_cont'.$id.' = document.getElementById("'.$id.'");';
$script .= '
var trigger'.$id.' = "'.$trigger.'";
var direction'.$id.' = '.( !empty( $direction ) ? $direction : '1' ).';
var total'.$id.'frames;
var start'.$id.'frame;
var scroll_started'.$id.' = false;
var frames'.$id.';
var frames'.$id.'_reverse;
var '.$id.' = bodymovin.loadAnimation({
container: lottie_cont'.$id.',
renderer: \'svg\',
autoplay: false,
loop: '.( !empty($loop) && $loop == "1" && !in_array($trigger, array('scroll')) ? "true" : "false" ).',
path: "'.$file.'"
});';
// speed
if( !empty($speed) ) {
$script .= $id.'.setSpeed('.$speed.');';
}else{
$speed = 1;
}
// direction
if( !empty( $direction ) ) {
$script .= $id.'.setDirection('.$direction.');';
}
// frames
if( !empty($frame_start) || !empty($frame_end) ) {
$script .= $id.'.addEventListener("DOMLoaded", function() {
total'.$id.'frames = Math.floor( ('.$frame_end.'*'.$id.'.animationData.op)/100 );
start'.$id.'frame = Math.floor( ('.$frame_start.'*'.$id.'.animationData.op)/100 );
frames'.$id.' = [start'.$id.'frame, total'.$id.'frames];
frames'.$id.'_reverse = [total'.$id.'frames, start'.$id.'frame];';
// default, hover, click
if( in_array($trigger, array('default', 'hover', 'click')) ) {
$script .= 'if( trigger'.$id.' == "default" ){
if(direction'.$id.' == -1) { '.$id.'.playSegments(frames'.$id.'_reverse, true); }else{ '.$id.'.playSegments(frames'.$id.', true); }
}else if( trigger'.$id.' == "hover" ){
if(direction'.$id.' == -1) { choosed_frames'.$id.' = frames'.$id.'_reverse; }else{ choosed_frames'.$id.' = frames'.$id.'; }
lottie_cont'.$id.'.addEventListener("mouseenter", function() { if(direction'.$id.' == -1) { '.$id.'.playSegments(frames'.$id.'_reverse, true); }else{ '.$id.'.playSegments(frames'.$id.', true); } });
}else if( trigger'.$id.' == "click" ){
lottie_cont'.$id.'.addEventListener("click", function() { if(direction'.$id.' == -1) { '.$id.'.playSegments(frames'.$id.'_reverse, true); }else{ '.$id.'.playSegments(frames'.$id.', true); } });
}';
// viewport, scroll
}else if( in_array($trigger, array('viewport', 'scroll')) ){
$script .= 'imagesLoaded(document.body, function() {
var waypoint = new Waypoint({
element: lottie_cont'.$id.',
handler: function(direction) {
if( trigger'.$id.' == "viewport" ){
if( direction == "down" ) {
if(direction'.$id.' == -1) { '.$id.'.playSegments(frames'.$id.'_reverse, true); }else{ '.$id.'.playSegments(frames'.$id.', true); }
}
}else{
if( !scroll_started'.$id.' ){
scroll_started'.$id.' = true;
var last_pos = 0;
var cont_offset = (jQuery("#'.$id.'").offset().top - '.$viewport.' - ( jQuery(window).height() * ('.(int)$viewport.'/100) ) );
document.addEventListener("scroll", function() {
var curr_offset = jQuery(window).scrollTop();
var anim_pos = Math.floor( ( (curr_offset-cont_offset)/8)*'.$speed.' );
if( anim_pos >= start'.$id.'frame && anim_pos <= (total'.$id.'frames) && anim_pos != last_pos ) {
last_pos = anim_pos;
'.$id.'.goToAndStop(anim_pos, true);
}else{
return;
}
});
}
}
}, offset: "'.$viewport.'%"
}); });';
}
$script .= '});';
}
// output -----
$selector = 'div';
if( !empty($link) && $trigger != 'click' ){
$selector = 'a';
}
$output .= '<'.$selector.' '.( !empty($link) && $trigger != 'click' ? 'href="'.$link.'"' : "" ).' class="mfn-lottie-wrapper">';
$output .= '
';
$output .= ''.$selector.'>';
if( isset( $attr['vb'] ) ){
// bebuilder
$output .= '';
/*$return[] = $output;
$return[] = $script;*/
return $output;
}else{
// front
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-lottie-player', get_theme_file_uri('/assets/lottie/lottie-player.js'), false, null, true);
wp_add_inline_script('mfn-lottie-player', $script);
return $output;
}
}
}
/**
* Portfolio [portfolio]
*/
if (! function_exists('sc_portfolio')) {
function sc_portfolio($attr, $content = null)
{
extract(shortcode_atts(array(
'title_tag' => '',
'count' => 2,
'category' => '',
'category_multi'=> '',
'exclude_id' => '',
'orderby' => 'date',
'order' => 'DESC',
'style' => 'list',
'columns' => 3,
'greyscale' => '',
'filters' => '',
'pagination' => '',
'load_more' => '',
'related' => '',
), $attr));
// translate
$translate['all'] = mfn_opts_get('translate') ? mfn_opts_get('translate-item-all', 'All') : __('All', 'betheme');
// class
$class = '';
if ($greyscale) {
$class .= ' greyscale';
}
// query args
$paged = (get_query_var('paged')) ? get_query_var('paged') : ((get_query_var('page')) ? get_query_var('page') : 1);
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => intval($count, 10),
'paged' => $paged,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
// categories
if ($category_multi = trim($category_multi)) {
$category_multi = mfn_wpml_term_slug($category_multi, 'portfolio-types', 1);
$args['portfolio-types'] = $category_multi;
$category_multi_array = explode(',', str_replace(' ', '', $category_multi));
} elseif ($category) {
$category = mfn_wpml_term_slug($category, 'portfolio-types');
$args['portfolio-types'] = $category;
}
// exclude posts
if ($exclude_id) {
$exclude_id = str_replace(' ', '', $exclude_id);
$args['post__not_in'] = explode(',', $exclude_id);
}
// related | exclude current
if( ! empty($related) && !isset( $attr['vb'] ) && empty( $_GET['visual'] ) ) {
$aCategories = array();
$terms = get_the_terms(get_the_ID(), 'portfolio-types');
if (is_array($terms)) {
foreach ($terms as $term) {
$aCategories[] = $term->term_id;
}
}
$args['post__not_in'] = [ get_the_ID() ];
$args['tax_query'] = array(
array(
'taxonomy' => 'portfolio-types',
'field' => 'term_id',
'terms' => $aCategories
),
);
}
$link = false;
if( !empty($attr['portfolio-link']) ) {
$link = $attr['portfolio-link'];
}
if( empty($attr['title_tag']) ) $attr['title_tag'] = 'h5';
// query
//$query_portfolio = new WP_Query($args);
if( is_tax('portfolio-types') ) {
$query_portfolio = false;
}else{
$query_portfolio = new WP_Query($args);
}
// output -----
$output = '';
// output | filters
if ($filters && ! $category) {
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '
'."\n";
}
// output | main
$output .= '
';
$output .= '
';
$output .= mfn_content_portfolio($query_portfolio, $style, $link, $attr['title_tag']);
$output .= ' ';
if ($pagination) {
$output .= mfn_pagination($query_portfolio, $load_more);
}
$output .= '
'."\n";
$output .= '
'."\n";
wp_reset_postdata();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-isotope', get_theme_file_uri('/js/plugins/isotope.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Portfolio Grid [portfolio_grid]
*/
if (! function_exists('sc_portfolio_grid')) {
function sc_portfolio_grid($attr, $content = null)
{
extract(shortcode_atts(array(
'count' => '4',
'category' => '',
'category_multi' => '',
'orderby' => 'date',
'order' => 'DESC',
'greyscale' => '',
), $attr));
// class
$class = '';
if ($greyscale) {
$class .= ' greyscale';
}
// query args
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => intval($count, 10),
'paged' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
// categories
if ($category_multi = trim($category_multi)) {
$category_multi = mfn_wpml_term_slug($category_multi, 'portfolio-types', 1);
$args['portfolio-types'] = $category_multi;
} elseif ($category) {
$category = mfn_wpml_term_slug($category, 'portfolio-types');
$args['portfolio-types'] = $category;
}
// query
$query = new WP_Query();
$query->query($args);
$post_count = $query->post_count;
// output -----
$output = '';
if ($query->have_posts()) {
$output = '';
while ($query->have_posts()) {
$query->the_post();
$output .= '';
$output .= '';
$output .= '
';
$output .= mfn_post_thumbnail(get_the_ID(), 'portfolio');
$output .= '
';
$output .= '
';
$output .= ' ';
}
$output .= ' '."\n";
}
wp_reset_query();
return $output;
}
}
/**
* Portfolio Photo [portfolio_photo]
*/
if (! function_exists('sc_portfolio_photo')) {
function sc_portfolio_photo($attr, $content = null)
{
extract(shortcode_atts(array(
'title_tag' => '',
'count' => '5',
'category' => '',
'category_multi' => '',
'orderby' => 'date',
'order' => 'DESC',
'target' => '',
'greyscale' => '',
'margin' => '',
), $attr));
// translate
$translate['readmore'] = mfn_opts_get('translate') ? mfn_opts_get('translate-readmore', 'Read more') : __('Read more', 'betheme');
// class
$class = '';
if ($greyscale) {
$class .= ' greyscale';
}
if ($margin) {
$class .= ' margin';
}
// query args
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => intval($count, 10),
'paged' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
// categories
if ($category_multi = trim($category_multi)) {
$category_multi = mfn_wpml_term_slug($category_multi, 'portfolio-types', 1);
$args['portfolio-types'] = $category_multi;
} elseif ($category) {
$category = mfn_wpml_term_slug($category, 'portfolio-types');
$args['portfolio-types'] = $category;
}
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// title tag
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3';
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = ' lead';
}
}
// query
$query = new WP_Query();
$query->query($args);
// output -----
$output = '';
if ($query->have_posts()) {
$output = '';
while ($query->have_posts()) {
$query->the_post();
// external link to project page
if (get_post_meta(get_the_ID(), 'mfn-post-link', true)) {
$link = get_post_meta(get_the_ID(), 'mfn-post-link', true);
} else {
$link = get_permalink();
}
// portfolio categories
$terms = get_the_terms(get_the_ID(), 'portfolio-types');
$categories = array();
if (is_array($terms)) {
foreach ($terms as $term) {
$categories[] = $term->name;
}
}
$categories = implode(', ', $categories);
// image
$large_image_url = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'large');
$output .= '
';
}
$output .= '
'."\n";
}
wp_reset_query();
return $output;
}
}
/**
* Portfolio Slider [portfolio_slider]
*/
if (! function_exists('sc_portfolio_slider')) {
function sc_portfolio_slider($attr, $content = null)
{
extract(shortcode_atts(array(
'count' => '5',
'category' => '',
'category_multi'=> '',
'orderby' => 'date',
'order' => 'DESC',
'arrows' => '', // [default], hover, always
'size' => 'small', // small, medium, large
'scroll' => 'page', // page, slide
), $attr));
// image
$sizes = array(
'small' => 380,
'medium' => 480,
'large' => 638,
);
// slider scroll type
$scrolls = array(
'page' => 5,
'slide' => 1,
);
// class
$class = '';
if ($arrows) {
$class .= ' arrows arrows_' .$arrows;
}
// query args
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => intval($count, 10),
'paged' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
// categories
if ($category_multi = trim($category_multi)) {
$category_multi = mfn_wpml_term_slug($category_multi, 'portfolio-types', 1);
$args['portfolio-types'] = $category_multi;
} elseif ($category) {
$category = mfn_wpml_term_slug($category, 'portfolio-types');
$args['portfolio-types'] = $category;
}
// query
$query = new WP_Query();
$query->query($args);
// output ------
$output = '';
if ($query->have_posts()) {
$output = '';
$output .= '
';
while ($query->have_posts()) {
$query->the_post();
$output .= '';
$output .= '';
$output .= '
';
$output .= mfn_post_thumbnail(get_the_ID(), 'portfolio');
$output .= '
';
$output .= '
';
$output .= ' ';
}
$output .= ' ';
$output .= '
'."\n";
}
wp_reset_query();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Slider [slider]
*/
if (! function_exists('sc_slider')) {
function sc_slider($attr, $content = null)
{
extract(shortcode_atts(array(
'category' => '',
'orderby' => 'date',
'order' => 'DESC',
'style' => 'default', // [default], img-text, flat, carousel
'navigation' => '', // [default], hide-arrows, hide-dots, hide
), $attr));
// query args
$args = array(
'post_type' => 'slide',
'posts_per_page' => -1,
'paged' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
if ($category) {
$args['slide-types'] = $category;
}
// query
$query = new WP_Query();
$query->query($args);
$post_count = $query->post_count;
// class
$class = !empty($style) != '' ? $style : 'default';
if ($class == 'description') {
$class .= ' flat';
}
if ($navigation) {
if ($navigation == 'hide') {
$navigation = 'hide-arrows hide-dots';
}
$class .= ' '. $navigation;
}
// output -----
$output = '';
if ($query->have_posts()) {
$output .= '';
$output .= '
';
$output .= '';
$output .= '
'."\n";
}
wp_reset_query();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Slider Plugin [slider_plugin]
*/
if (! function_exists('sc_slider_plugin')) {
function sc_slider_plugin($attr, $content = null)
{
extract(shortcode_atts(array(
'rev' => '',
'layer' => '',
), $attr));
// output -----
$output = '';
if ($rev) {
// Revolution Slider
$output .= '';
$output .= do_shortcode('[rev_slider '. esc_attr($rev) .']' ?? '');
$output .= '
';
} elseif ($layer) {
// Layer Slider
$output .= '';
$output .= do_shortcode('[layerslider id="'. esc_attr($layer) .'"]' ?? '');
$output .= '
';
}
return $output;
}
}
/**
* Offer Slider Full [offer]
*/
if (! function_exists('sc_offer')) {
function sc_offer($attr = false, $content = null)
{
extract(shortcode_atts(array(
'category' => '',
'align' => 'left',
), $attr));
// query args
$args = array(
'post_type' => 'offer',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'ignore_sticky_posts' => 1,
);
if ($category) {
$args['offer-types'] = $category;
}
$args = apply_filters('mfn_element_offer', $args, $attr);
$offer_query = new WP_Query();
$offer_query->query($args);
// output -----
$output = '';
if ($offer_query->have_posts()) {
$output .= '';
$output .= '
';
// pagination
$output .= '';
$output .= '
'."\n";
}
wp_reset_query();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Offer Slider Thumb [offer_thumb]
*/
if (! function_exists('sc_offer_thumb')) {
function sc_offer_thumb($attr = false, $content = null)
{
extract(shortcode_atts(array(
'category' => '',
'style' => '',
'align' => 'left',
), $attr));
// query args
$args = array(
'post_type' => 'offer',
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC',
'ignore_sticky_posts' => 1,
);
if ($category) {
$args['offer-types'] = $category;
}
$args = apply_filters('mfn_element_offer_thumb', $args, $attr);
$offer_query = new WP_Query();
$offer_query->query($args);
// output -----
$output = '';
if ($offer_query->have_posts()) {
$output .= '';
$output .= '
';
// pagination
$output .= '';
$output .= '
'."\n";
}
wp_reset_query();
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Map Basic [map_basic]
*/
if (! function_exists('sc_map_basic')) {
function sc_map_basic($attr, $content = null)
{
extract(shortcode_atts(array(
'iframe' => '',
'address' => '',
'zoom' => 13,
'height' => 300,
), $attr));
// output -----
$output = '';
if( $iframe == '' && $address == '' ){
return ' ';
}
if ($iframe) {
// iframe
$output = wp_kses($iframe, array(
'iframe' => array(
'src' => array(),
'width' => array(),
'height' => array(),
'frameborder' => array(),
'style' => array(),
'allowfullscreen' => array(),
),
));
} elseif ($address) {
// embed
$address = str_replace(array( ' ' ,',' ), '+', trim($address));
$api_key = trim(mfn_opts_get('google-maps-api-key'));
$src = 'https://www.google.com/maps/embed/v1/place?key='. $api_key .'&q='. $address .'&zoom='. $zoom ;
$output = '';
}
return $output;
}
}
/**
* Map [map] [/map]
*/
if (! function_exists('sc_map')) {
function sc_map($attr, $content = null)
{
extract(shortcode_atts(array(
'lat' => '',
'lng' => '',
'zoom' => 13,
'height' => '',
'info_window' => '',
'type' => 'ROADMAP',
'controls' => '',
'draggable' => '',
'border' => '',
'icon' => '',
'color' => '',
'styles' => '',
'tabs' => '',
'latlng' => '',
'title' => '',
'telephone' => '',
'email' => '',
'www' => '',
'style' => 'box',
'uid' => uniqid(),
), $attr));
//if ( /*apply_filters('bebuilder_preview', false)*/ ) {
if ( !empty( $attr['vb'] ) && empty( mfn_opts_get('google-maps-api-key') ) ) {
return '';
}
// image | visual composer fix
$icon = mfn_vc_image($icon);
// border
if ($border) {
$class = 'has_border';
} else {
$class = 'no_border';
}
// controls
$zoomControl = $mapTypeControl = $streetViewControl = 'false';
if (! $controls) {
$zoomControl = 'true';
}
if (strpos($controls, 'zoom') !== false) {
$zoomControl = 'true';
}
if (strpos($controls, 'mapType') !== false) {
$mapTypeControl = 'true';
}
if (strpos($controls, 'streetView') !== false) {
$streetViewControl = 'true';
}
$fun_name = 'mfn_google_maps_'. esc_attr($uid);
if ($api_key = trim(mfn_opts_get('google-maps-api-key'))) {
$api_key = '?key='. $api_key;
}
// output -----
if( ! wp_script_is( 'google-maps', 'enqueued') ){
wp_enqueue_script('google-maps', 'https://maps.google.com/maps/api/js'. $api_key .'&callback=mfnInitMap', false, null, true);
wp_add_inline_script('mfn-scripts', 'function mfnInitMap() { return false; }');
if( is_admin() ){
wp_add_inline_script('jquery-core', 'function mfnInitMap() { return false; }');
}
}
// output: JS
$inline_script = 'function mfn_google_maps_'.$uid.'() {';
$inline_script .= 'var latlng = new google.maps.LatLng('. esc_attr($lat) .','. esc_attr($lng) .');';
// draggable
if ($draggable == 'disable') {
$inline_script .= 'var draggable = false;';
} elseif ($draggable == 'disable-mobile') {
$inline_script .= 'var draggable = jQuery(document).width() > 767 ? true : false;';
} else {
$inline_script .= 'var draggable = true;';
}
// function to close all other info windows
$inline_script .= 'var InforObj = [];';
$inline_script .= 'function closeOtherInfo() {';
$inline_script .= 'if (InforObj.length > 0) {';
$inline_script .= 'InforObj[0].set("marker", null);';
$inline_script .= 'InforObj[0].close();';
$inline_script .= 'InforObj.length = 0;';
$inline_script .= '}';
$inline_script .= '};';
// 1 click color adjustment
if ($color && ! $styles) {
if ( 'light' == mfn_brightness($color) ) {
$styles = '[{featureType:"all",elementType:"labels",stylers:[{visibility:"on"}]},{featureType:"administrative",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"'. esc_attr($color) .'"},{visibility:"simplified"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{visibility:"on"}]},{featureType:"road",elementType:"geometry",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"50"}]},{featureType:"road",elementType:"labels.text",stylers:[{visibility:"on"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"-60"}]},{featureType:"road",elementType:"labels.text.stroke",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"50"}]},{featureType:"road",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"simplified"},{color:"'. esc_attr($color) .'"},{lightness:"50"}]},{featureType:"transit.station",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"-10"}]}]';
} else {
$styles = '[{featureType:"all",elementType:"labels",stylers:[{visibility:"on"}]},{featureType:"administrative",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"'. esc_attr($color) .'"},{visibility:"simplified"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{visibility:"on"}]},{featureType:"road",elementType:"geometry",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"30"},{saturation:"-10"}]},{featureType:"road",elementType:"labels.text",stylers:[{visibility:"on"}]},{featureType:"road",elementType:"labels.text.fill",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"80"}]},{featureType:"road",elementType:"labels.text.stroke",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"0"}]},{featureType:"road",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"simplified"},{color:"'. esc_attr($color) .'"},{lightness:"50"}]},{featureType:"transit.station",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"'. esc_attr($color) .'"},{lightness:"-20"}]}]';
}
}
$inline_script .= 'var myOptions = {';
$inline_script .= 'zoom:'. intval($zoom, 10) .',';
$inline_script .= 'center:latlng,';
$inline_script .= 'mapTypeId:google.maps.MapTypeId.'. esc_attr($type) .',';
if ($styles) {
$inline_script .= 'styles:'. wp_unslash($styles) .',';
}
$inline_script .= 'draggable:draggable,';
$inline_script .= 'zoomControl:'. esc_attr($zoomControl) .',';
$inline_script .= 'mapTypeControl:'. esc_attr($mapTypeControl) .',';
$inline_script .= 'streetViewControl:'. esc_attr($streetViewControl) .',';
$inline_script .= 'scrollwheel:false';
$inline_script .= '};';
$inline_script .= 'var map = new google.maps.Map(document.getElementById("google-map-area-'. esc_attr($uid) .'"), myOptions);';
$inline_script .= 'var marker = new google.maps.Marker({';
$inline_script .= 'position:latlng,';
if ($icon) {
$inline_script .= 'icon:"'. esc_url($icon) .'",';
}
$inline_script .= 'map:map';
$inline_script .= '});';
// display Info Window on main marker click
if($info_window) {
$inline_script .= 'const infowindow = new google.maps.InfoWindow({';
/*if( ( isset($attr['vb']) && $attr['vb'] ) || ( ! empty( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' ) ){
$inline_script .= 'content: "'.str_replace("\n", ' ', $info_window).'",';
} else {
$inline_script .= 'content: "'.addslashes( str_replace("\n", ' ', $info_window) ).'",';
}*/
$inline_script .= 'content: "'.str_replace("\n", ' ', wp_slash($info_window)).'",';
$inline_script .= '});';
$inline_script .= 'marker.addListener("click", () => {';
$inline_script .= 'closeOtherInfo();';
$inline_script .= 'infowindow.open({
anchor: marker,
map,
shouldFocus: false,
});';
$inline_script .= 'InforObj[0] = infowindow;';
$inline_script .= '});';
}
// additional markers
if ( $tabs ) {
$i = 0;
foreach( $tabs as $tab ){
$markerID = $i;
$markerID = 'marker'. $markerID;
if ( ! empty( $tab['lat'] ) && ! empty( $tab['lng'] ) ){
if ( ! empty( $tab['icon'] ) ) {
$customIcon = $tab['icon'];
} else {
$customIcon = $icon;
}
$inline_script .= 'var '. esc_attr( $markerID ) .' = new google.maps.Marker({';
$inline_script .= 'position : new google.maps.LatLng('. esc_attr( $tab['lat'] ) .','. esc_attr( $tab['lng'] ) .'),';
if ($customIcon) {
$inline_script .= 'icon: "'. esc_url( $customIcon ) .'",';
}
$inline_script .= 'map : map';
$inline_script .= '});';
}
if(!empty($tab['content'])){
// display Info Window on additional markers click
$inline_script .= 'const infowindow'.$i.' = new google.maps.InfoWindow({';
if( ( isset($attr['vb']) && $attr['vb'] ) || wp_doing_ajax() ){
$inline_script .= 'content: "'.wp_slash( str_replace("\n", ' ', $tab['content']) ).'",';
} else {
$inline_script .= 'content: "'.addslashes( str_replace("\n", ' ', $tab['content']) ).'",';
}
$inline_script .= '});';
$inline_script .= $markerID.'.addListener("click", () => {';
$inline_script .= 'closeOtherInfo();';
$inline_script .= 'infowindow'.$i.'.open({';
$inline_script .= 'anchor: marker'.$i.',';
$inline_script .= 'map,';
$inline_script .= 'shouldFocus: false,';
$inline_script .= '});';
$inline_script .= 'InforObj[0] = infowindow'.$i.';';
$inline_script .= '});';
}
$i++;
}
} elseif ( $latlng ) {
// remove white spaces
$latlng = str_replace(' ', '', $latlng);
// explode array
$latlng = explode(';', $latlng);
foreach ($latlng as $k=>$v) {
$markerID = $k + 1;
$markerID = 'marker'. $markerID;
// custom marker icon
$vEx = explode(',', $v);
if (isset($vEx[2])) {
$customIcon = $vEx[2];
} else {
$customIcon = $icon;
}
$inline_script .= 'var '. esc_attr($markerID) .' = new google.maps.Marker({';
$inline_script .= 'position : new google.maps.LatLng('. esc_attr($vEx[0]) .','. esc_attr($vEx[1]) .'),';
if ($customIcon) {
$inline_script .= 'icon: "'. esc_url($customIcon) .'",';
}
$inline_script .= 'map : map';
$inline_script .= '});';
}
}
$inline_script .= '}';
/*if ( ( isset($attr['vb']) && $attr['vb'] ) || ( ! empty( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' ) ){
$inline_script .= 'mfn_google_maps_'. esc_attr($uid) .'();';
}else{
$inline_script .= 'jQuery(document).ready(function(){';
$inline_script .= 'mfn_google_maps_'. esc_attr($uid) .'();';
$inline_script .= '});';
}*/
// output: HTML
$output = '';
if ($title || $content) {
$output .= '
';
}
$output .= '
';
$output .= '
'."\n";
if ( ( isset($attr['vb']) && $attr['vb'] ) || wp_doing_ajax() ){
//wp_add_inline_script('google-maps', $inline_script);
// wp_enqueue_script('google-maps-'.esc_attr($uid), 'https://maps.google.com/maps/api/js'. $api_key, false, null, true);
$inline_script .= 'mfn_google_maps_'. esc_attr($uid) .'();';
$output .= '';
return $output;
} else {
$inline_script .= 'jQuery(document).ready(function(){';
$inline_script .= 'mfn_google_maps_'. esc_attr($uid) .'();';
$inline_script .= '});';
wp_add_inline_script('google-maps', $inline_script);
return $output;
}
}
}
/**
* Tabs [tabs]
*/
$mfn_tabs_array = false;
$mfn_tabs_count = 0;
if (! function_exists('sc_tabs')) {
function sc_tabs($attr, $content = null)
{
global $mfn_tabs_array, $mfn_tabs_count;
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'tabs' => '',
'type' => '',
'padding' => '',
'uid' => '',
), $attr));
$title = be_dynamic_data($title);
do_shortcode($content ?? '');
// content builder
if ($tabs) {
$mfn_tabs_array = $tabs;
}
// uid
if (! $uid) {
$uid = 'tab-'. uniqid();
}
// padding
if( is_numeric( $padding ) ){
$padding .= 'px';
}
if ($padding || $padding === '0') {
$style_escaped = 'style="padding:'. esc_attr($padding) .'"';
} else {
$style_escaped = false;
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
if ( is_array( $mfn_tabs_array ) ) {
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '';
$output .= '
';
// titles
$output .= $output_tabs;
$output .= '
';
$mfn_tabs_array = false;
$mfn_tabs_count = 0;
}
return $output;
}
}
/**
* _Tab [tab] _private
*/
if (! function_exists('sc_tab')) {
function sc_tab($attr, $content = null)
{
global $mfn_tabs_array, $mfn_tabs_count;
extract(shortcode_atts(array(
'title' => 'Tab title',
), $attr));
if ( ! is_array( $mfn_tabs_array ) ) {
$mfn_tabs_array = array();
}
$mfn_tabs_array[] = array(
'title' => $title,
'content' => do_shortcode($content ?? '')
);
$mfn_tabs_count++;
return true;
}
}
/**
* Accordion [accordion][accordion_item]...[/accordion]
*/
if (! function_exists('sc_accordion')) {
function sc_accordion($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'tabs' => '',
'icon' => '',
'icon_active' => '',
'open1st' => '',
'openall' => '',
'openAll' => '',
'style' => 'accordion',
), $attr));
// class
$class = '';
if ($open1st) {
$class .= ' open1st';
}
if ($openall || $openAll) {
$class .= ' openAll';
}
if ($style == 'toggle') {
$class .= ' toggle';
}
$title = be_dynamic_data($title);
// output ------
$output = '';
if ($title) {
$title_tag = !empty($attr['title_tag']) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title heading">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
if (is_array($tabs)) {
// content builder
foreach ($tabs as $tab) {
$tab['content'] = be_dynamic_data($tab['content']);
$output .= '
';
$output .= '
'. wp_kses($tab['title'], mfn_allowed_html()) .'
';
$output .= '
';
$output .= do_shortcode($tab['content'] ?? '');
$output .= '
';
$output .= '
'."\n";
}
} else {
// shortcode
$output .= do_shortcode($content ?? '');
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Accordion Item [accordion_item][/accordion_item]
*/
if (! function_exists('sc_accordion_item')) {
function sc_accordion_item($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
), $attr));
$output = '';
$output .= '
';
$output .= ' ';
$output .= ' ';
$output .= wp_kses($title, mfn_allowed_html());
$output .= '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* FAQ [faq][faq_item]../[/faq]
*/
if (! function_exists('sc_faq')) {
function sc_faq($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'tabs' => '',
'open1st' => '',
'openall' => '',
'openAll' => '',
'style' => '',
), $attr));
$title = be_dynamic_data($title);
// class
$class = '';
if ($open1st) {
$class .= ' open1st';
}
if ($openall || $openAll) {
$class .= ' openAll';
}
if ( 'toggle' == $style ) {
$class .= ' toggle';
}
// output -----
$output = '';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="heading">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
if (is_array($tabs)) {
// content builder
$i = 0;
foreach ($tabs as $tab) {
$tab['content'] = be_dynamic_data($tab['content']);
$tab['title'] = be_dynamic_data($tab['title']);
$i++;
$output .= '
';
$output .= '
';
$output .= ''. esc_html($i) .' ';
$output .= ' ';
$output .= ' ';
$output .= wp_kses($tab['title'], mfn_allowed_html());
$output .= '
';
$output .= '
';
$output .= do_shortcode($tab['content'] ?? '');
$output .= '
';
$output .= '
'."\n";
}
} else {
// shortcode
$output .= do_shortcode($content ?? '');
}
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* FAQ Item [faq_item][/faq_item]
*/
if (! function_exists('sc_faq_item')) {
function sc_faq_item($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'number' => '1',
), $attr));
// output
$output = '';
$output .= '
';
$output .= ''. esc_html($number) .' ';
$output .= ' ';
$output .= ' ';
$output .= wp_kses($title, mfn_allowed_html());
$output .= '
';
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Progress Icons [progress_icons]
*/
if (! function_exists('sc_progress_icons')) {
function sc_progress_icons($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => 'icon-lamp',
'image' => '',
'count' => 5,
'active' => 0,
'background' => '', // or color for transparent
'transparent' => false,
), $attr));
// class
$class = '';
// transparent
if( ! empty($transparent) ){
$class .= ' transparent';
}
// icon
$icon_class = false;
$icon_style = false;
// bebuilder element update
if( wp_doing_ajax() ){
$icon_class = 'themebg';
if( empty($transparent) ){
$icon_style = 'background-color:'. esc_attr($background);
} else {
$icon_style = 'color:'. esc_attr($background);
}
}
// output -----
$output = '';
for ($i = 1; $i <= $count; $i++) {
if( $i > $active ){
$icon_class = false;
$icon_style = false;
}
if ($image) {
$output .= '
';
} else {
$output .= '
';
}
}
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Progress Bars [progress_bars][bar][/progress_bars]
*/
if (! function_exists('sc_progress_bars')) {
function sc_progress_bars($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'tabs' => '',
), $attr));
$title = be_dynamic_data($title);
$content = be_dynamic_data($content);
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output
$output = '';
if ($title) {
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class).'">'. wp_kses($title, mfn_allowed_html()) .''. mfn_allowed_title_tag($title_tag) .'>';
}
$output .= '
';
if( is_array( $tabs ) ) {
$output .= '';
foreach( $tabs as $tab ){
$output .= sc_bar( $tab );
}
$output .= ' ';
}
$output .= '';
$output .= do_shortcode($content ?? '');
$output .= ' ';
$output .= ' ';
$output .= '
'."\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-waypoints', get_theme_file_uri('/js/plugins/waypoints.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* _Bar [bar]
*/
if (! function_exists('sc_bar')) {
function sc_bar($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'value' => 0,
'size' => '',
'color' => '',
), $attr));
// size
if ($size) {
$size_escaped = 'style="height:'. intval($size, 10) .'px"';
} else {
$size_escaped = false;
}
// color
if( $color ){
$color_escaped = 'background-color:'. esc_attr($color);
} else {
$color_escaped = false;
}
// output -----
$output = ' ';
$output .= '';
$output .= wp_kses($title, mfn_allowed_html());
$output .= ''. intval($value, 10) .'% ';
$output .= ' ';
// This variable has been safely escaped above in this function
$output .= '';
$output .= ' ';
$output .= '
';
$output .= ' '."\n";
return $output;
}
}
/**
* Timeline [timeline] [/timeline]
*/
if (! function_exists('sc_timeline')) {
function sc_timeline($attr, $content = null)
{
extract(shortcode_atts(array(
'count' => '',
'tabs' => '',
), $attr));
// output -----
$output = ''."\n";
return $output;
}
}
/**
* Tag cloud [tag_cloud]
*/
if (! function_exists('sc_tag_cloud')) {
function sc_tag_cloud($attr) {
extract(shortcode_atts(array(
'category' => 'category',
'reference' => '',
'design' => '',
), $attr));
$classes = array('mfn-tag-cloud');
$output = '';
if( !empty($design) ){
$classes[] = 'mfn-tag-cloud-'.$design;
}else{
$classes[] = 'mfn-tag-cloud-text';
}
if( !empty($reference) && $reference == 'post' ){
// current post taxonomies
$post_id = false;
if( !empty($attr['vb_postid']) ){
$post_id = $attr['vb_postid'];
}else if( is_single() ){
$post_id = get_the_ID();
}
if( $category == 'category' && get_post_type($post_id) == 'portfolio' ) $category = 'portfolio-types';
$terms = get_the_terms( $post_id, $category );
}else{
// all terms
$terms_attr = array(
'taxonomy' => $category,
'hide_empty' => false
);
if( !empty( $attr['orderby'] ) ) $terms_attr['orderby'] = $attr['orderby'];
if( !empty( $attr['order'] ) ) { $terms_attr['order'] = 'ASC'; }else{ $terms_attr['order'] = 'DESC'; }
if( !empty($reference) && $reference == 'not_empty' ) unset($terms_attr['hide_empty']);
$terms = get_terms($terms_attr);
}
$output = '';
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
$term_link = get_term_link( $term->slug, $category );
if( ! is_wp_error( $term_link ) ){
$output .= '';
$output .= '';
$output .= __( $term->name );
$output .= ' ';
$output .= ' ';
}
}
}
$output .= ' ';
return $output;
}
}
/**
* Testimonials [testimonials]
*/
if (! function_exists('sc_testimonials')) {
function sc_testimonials($attr, $content = null)
{
extract(shortcode_atts(array(
'title_tag' => '',
'category' => '',
'orderby' => 'menu_order',
'order' => 'ASC',
'style' => '',
'hide_photos' => '',
), $attr));
// query args
$args = array(
'post_type' => 'testimonial',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' => 1,
);
if ($category) {
$args['testimonial-types'] = $category;
}
// query
$query_tm = new WP_Query();
$query_tm->query($args);
// class
$class = $style;
if ($hide_photos) {
$class .= ' hide-photos';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = '';
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h5';
if ($query_tm->have_posts()) {
$output .= '';
// photos | pagination (style !== single-photo)
if ($style != 'single-photo' && ! $hide_photos) {
$output .= '';
}
// testimonials | contant
$output .= '
';
while ($query_tm->have_posts()) {
$query_tm->the_post();
$output .= '';
$output .= '';
if (has_post_thumbnail()) {
$output .= get_the_post_thumbnail(null, 'be_thumbnail', array('class'=>'scale-with-grid'));
} else {
$output .= '
';
}
$output .= '
';
$output .= '';
$output .= '
';
$output .= '
';
$output .= '
';
$output .= '';
$output .= ' ';
}
wp_reset_query();
$output .= ' ';
// photos | pagination (style == single-photo)
if ($style == 'single-photo') {
$output .= '';
}
$output .= '
'."\n";
}
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-slick', get_theme_file_uri('/js/plugins/slick.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Testimonials List [testimonials_list]
*/
if (! function_exists('sc_testimonials_list')) {
function sc_testimonials_list($attr, $content = null)
{
extract(shortcode_atts(array(
'title_tag' => '',
'category' => '',
'orderby' => 'menu_order',
'order' => 'ASC',
'style' => '', // [default], quote
), $attr));
// query args
$args = array(
'post_type' => 'testimonial',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => $order,
'ignore_sticky_posts' =>1,
);
if ($category) {
$args['testimonial-types'] = $category;
}
// query
$query_tm = new WP_Query();
$query_tm->query($args);
// class
if ($style) {
$class = 'style_'. $style;
} else {
$class = '';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h4';
$output = '';
if ($query_tm->have_posts()) {
$output .= '';
while ($query_tm->have_posts()) {
$query_tm->the_post();
// classes
$class = '';
if (! has_post_thumbnail()) {
$class .= 'no-img';
}
$output .= '
';
if (has_post_thumbnail()) {
$output .= '
';
$output .= '
';
$output .= '
';
$output .= get_the_post_thumbnail(null, 'full', array('class'=>'scale-with-grid' ));
$output .= '
';
$output .= '
';
$output .= '
';
}
$output .= '
';
if ($style == 'quote') {
$output .= '
';
$output .= '
'. get_the_content() .' ';
$output .= '
';
$output .= '
';
}
$output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">';
if ($link = get_post_meta(get_the_ID(), 'mfn-post-link', true)) {
$output .= '
';
}
$output .= get_post_meta(get_the_ID(), 'mfn-post-author', true);
if ($link) {
$output .= ' ';
}
$output .= ''. mfn_allowed_title_tag($title_tag) .'>';
$output .= '
'. esc_html(get_post_meta(get_the_ID(), 'mfn-post-company', true)) .'
';
if ($style != 'quote') {
$output .= '
';
$output .= '
';
$output .= '
'. get_the_content() .' ';
//$output .= '
'. get_the_content() .' ';
$output .= '
';
}
$output .= '
';
$output .= '
'."\n";
}
wp_reset_query();
$output .= '
'."\n";
}
return $output;
}
}
/**
* Vimeo [video]
*/
if (! function_exists('sc_video')) {
function sc_video($attr, $content = null)
{
extract(shortcode_atts(array(
'video' => '',
'parameters' => '',
'mp4' => '',
'ogv' => '',
'placeholder' => '',
'html5_parameters' => '',
'width' => '',
'height' => '',
'mask_shape_type' => '',
'mask_shape_size' => '',
'mask_shape_position' => '',
), $attr));
$css = '';
// Mask Shape
$is_mask_shape_enabled = !empty($mask_shape_type) ? true : false;
if( $is_mask_shape_enabled ) {
// Video params
//!! Mask Shape IMPORTANT
//!! BG -> div.content video && img -> layer with video
//!! Params required -> autoplay=1, mute=1, loop=1
//!! For iframe controns mustn't be disabled, CSS solve the problem
$find_pos_autoplay = strpos($parameters, 'autoplay=');
$find_pos_mute = strpos($parameters, 'mute=');
$find_pos_loop = strpos($parameters, 'loop=');
//!! +9, +5 is just a length of a word 'autoplay' or 'mute' or 'loop'
!is_bool($find_pos_autoplay) ? $parameters[$find_pos_autoplay + 9] = '1' : $parameters .= '&autoplay=1';
!is_bool($find_pos_mute) ? $parameters[$find_pos_mute + 5] = '1' : $parameters .= '&mute=1';
!is_bool($find_pos_loop) ? $parameters[$find_pos_loop + 5] = '1' : $parameters .= '&loop=1';
$parameters = '&'. $parameters;
// Inline CSS => Position
if ( $mask_shape_size !== 'custom' ) {
$css .= '-webkit-mask-size:'. $mask_shape_size .';';
}
if( $mask_shape_position !== 'custom' ){
$css .= '-webkit-mask-position:'. $mask_shape_position .';';
}
} else if ( $parameters ) {
$parameters = '&'. $parameters;
}
// HTML5 parameters
$html5_default = array(
'autoplay' => 'autoplay="1"',
'controls' => 'controls="1"',
'loop' => 'loop="1"',
'muted' => 'muted="1"',
'playsinline' => '',
);
if ($html5_parameters) {
$html5_parameters = explode(';', $html5_parameters);
if (! $html5_parameters[0]) {
$html5_default['autoplay'] = $is_mask_shape_enabled ? 'autoplay="1"' : false;
}
if (! $html5_parameters[1] || $is_mask_shape_enabled ) {
$html5_default['controls'] = false;
}
if (! $html5_parameters[2]) {
$html5_default['loop'] = $is_mask_shape_enabled ? 'loop="1"' : false;
}
if (! $html5_parameters[3]) {
$html5_default['muted'] = $is_mask_shape_enabled ? 'muted="1"' : false;
}
if ( ! empty($html5_parameters[4]) ) {
$html5_default['playsinline'] = 'playsinline="1"';
}
// Disable Picture in Picture for Mask Shape || ONLY CHROME, firefox force to enable it
if( $is_mask_shape_enabled ) {
$html5_default['picture-in-picture'] = 'disablePictureInPicture="1';
}
}
// no need to escape, no user data
$html5_escaped = implode(' ', $html5_default);
// class
$class = $video ? 'iframe' : '' ;
if ($width && $height) {
$class .= ' has-wh';
} else {
$class .= ' auto-wh';
}
$class .= $is_mask_shape_enabled ? ' mfn-mask-shape' : '';
$class .= $is_mask_shape_enabled && $mask_shape_type !== '0' ? ' '.$mask_shape_type : '';
$output = '';
if ($video) {
// Embed
if (is_numeric($video)) {
// Vimeo
$output .= '
'."\n";
} else {
$parameters .= '&rel=0&enablejsapi=1';
// YouTube
$output .= '
'."\n";
}
} elseif ($mp4) {
// HTML5
$output .= '
';
$output .= '
';
$poster = ($placeholder) ? $placeholder : false;
// This variable has been safely escaped above in this function
$output .= '
';
$output .= ' ';
if ($ogv) {
$output .= ' ';
}
$output .= ' ';
$output .= '
';
}
$output .= '
'."\n";
return $output;
}
}
/**
* _Item [item]
* [feature_list][item][/feature_list]
*/
if (! function_exists('sc_item')) {
function sc_item($attr, $content = null)
{
extract(shortcode_atts(array(
'icon' => 'icon-picture',
'title' => '',
'link' => '',
'target' => '',
), $attr));
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// elementor icon
if( is_array($icon) ){
$icon = $icon['value'];
}
// output -----
$output = '';
if ($link) {
// This variable has been safely escaped above in this function
$output .= '';
}
$output .= '';
$output .= ' ';
$output .= ' ';
$output .= ''. wp_kses($title, mfn_allowed_html()) .'
';
if ($link) {
$output .= ' ';
}
$output .= ' '."\n";
return $output;
}
}
/**
* Feature List [feature_list] [feature_list][item][/feature_list]
*/
if (! function_exists('sc_feature_list')) {
function sc_feature_list($attr, $content = null)
{
extract(shortcode_atts(array(
'tabs' => '',
'columns' => 4,
), $attr));
$content = be_dynamic_data($content);
// output -----
$output = '';
if( is_array( $tabs ) ) {
$output .= '
';
foreach( $tabs as $tab ){
$output .= sc_item( $tab );
}
$output .= ' ';
}
$output .= '
';
$output .= do_shortcode($content ?? '');
$output .= ' ';
$output .= '
'."\n";
return $output;
}
}
/**
* List [list][/list]
*/
if (! function_exists('sc_list')) {
function sc_list($attr, $content = null)
{
extract(shortcode_atts(array(
'title_tag' => '',
'icon' => 'icon-picture',
'image' => '',
'title' => '',
'link' => '',
'target' => '',
'style' => 1,
), $attr));
$title = be_dynamic_data($title);
$link = be_dynamic_data($link);
$content = be_dynamic_data($content);
// image | visual composer fix
$image = be_dynamic_data($image);
if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full');
$image = mfn_vc_image($image);
// target
if ($target) {
$target_escaped = 'target="_blank"';
} else {
$target_escaped = false;
}
// FIX: elementor svg icon
if( is_array($icon) && ! empty($icon['url']) ){
$image = $icon['url'];
$icon = false;
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// output -----
$output = ''."\n";
return $output;
}
}
/**
* Gallery [gallery]
*/
if (! function_exists('sc_gallery')) {
function sc_gallery($attr)
{
$post = get_post();
static $instance = 0;
$instance++;
// visual builder
if( wp_doing_ajax() ){
$instance = rand(0, 9999);
}
if (! empty($attr['ids'])) {
// 'ids' is explicitly ordered, unless you specify otherwise.
if (empty($attr['orderby'])) {
$attr['orderby'] = 'post__in';
}
$attr['include'] = $attr['ids'];
}
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
if (isset($attr['orderby'])) {
$attr['orderby'] = sanitize_sql_orderby($attr['orderby']);
if (! $attr['orderby']) {
unset($attr['orderby']);
}
}
$html5 = current_theme_supports('html5', 'gallery');
$atts = shortcode_atts(array(
'order' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post ? $post->ID : 0,
'itemtag' => $html5 ? 'figure' : 'dl',
'icontag' => $html5 ? 'div' : 'dt',
'captiontag' => $html5 ? 'figcaption' : 'dd',
'columns' => 3,
'size' => 'thumbnail',
'include' => '',
'exclude' => '',
'link' => '',
// mfn custom
'style' => '', // [default], flat, fancy, masonry
'greyscale' => '',
), $attr, 'gallery');
// mfn custom class
$class = $atts['link'];
if ( !empty($atts['style']) ) {
$class .= ' '. $atts['style'];
}else{
$class .= ' gallery-default';
}
if ($atts['greyscale']) {
$class .= ' greyscale';
}
if( !empty( $attr['layout'] ) && $atts['style'] != 'masonry' ) {
$class .= ' equal-heights';
}
if( !empty( $attr['image_height'] ) ) {
$class .= ' '. $attr['image_height'];
}
if( !empty( $attr['image_caption_style'] ) ) {
$class .= ' '. $attr['image_caption_style'];
}
// end: mfn custom class
$id = intval($atts['id'], 10);
$id == 0 ? $id = 1 : $id = $id; // VB: prevents post_parent = 0 where all images are loaded on start
if ('RAND' == $atts['order']) {
$atts['orderby'] = 'none';
}
if (! empty($atts['include'])) {
$_attachments = get_posts(array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ));
$attachments = array();
foreach ($_attachments as $key => $val) {
$attachments[$val->ID] = $_attachments[$key];
}
} elseif (! empty($atts['exclude'])) {
$attachments = get_children(array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ));
} else {
$attachments = get_children(array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ));
}
if (empty($attachments)) {
return '';
}
if (is_feed()) {
$output = "\n";
foreach ($attachments as $att_id => $attachment) {
$output .= wp_get_attachment_link($att_id, $atts['size'], true) . "\n";
}
return $output;
}
$itemtag = tag_escape($atts['itemtag']);
$captiontag = tag_escape($atts['captiontag']);
$icontag = tag_escape($atts['icontag']);
$valid_tags = wp_kses_allowed_html('post');
if (! isset($valid_tags[ $itemtag ])) {
$itemtag = 'dl';
}
if (! isset($valid_tags[ $captiontag ])) {
$captiontag = 'dd';
}
if (! isset($valid_tags[ $icontag ])) {
$icontag = 'dt';
}
$columns = intval($atts['columns'], 10);
$itemwidth = $columns > 0 ? (ceil(100/$columns*100)/100 - 0.01) : 100;
$float = is_rtl() ? 'right' : 'left';
$selector = "sc_gallery-{$instance}";
$gallery_style = '';
if (apply_filters('use_default_gallery_style', ! $html5)) {
$gallery_style = "
\n\t\t";
}
$size_class = sanitize_html_class($atts['size']);
$gallery_div = "";
$output = apply_filters('gallery_style', $gallery_style . $gallery_div);
// output -----
$i = 0;
foreach ($attachments as $id => $attachment) {
if (! empty($atts['link']) && 'file' === $atts['link']) {
$image_output = wp_get_attachment_link($id, $atts['size'], false, false);
} elseif (! empty($atts['link']) && 'none' === $atts['link']) {
$image_output = wp_get_attachment_image($id, $atts['size'], false);
} else {
$image_output = wp_get_attachment_link($id, $atts['size'], true, false);
}
$image_meta = wp_get_attachment_metadata($id);
$orientation = '';
if (isset($image_meta['height'], $image_meta['width'])) {
$orientation = ($image_meta['height'] > $image_meta['width']) ? 'portrait' : 'landscape';
}
// elementor image attributes
$image_data = [
'alt' => get_post_meta( $id, '_wp_attachment_image_alt', true ),
'caption' => $attachment->post_excerpt,
'description' => $attachment->post_content,
'title' => $attachment->post_title,
];
if( !empty( mfn_opts_get('lazy-load') ) ){
$image_data['loading'] = 'lazy';
}
$lightbox_title_src = 'title';
$lightbox_description_src = 'description';
if ( class_exists( 'Elementor\Plugin' ) ){
$kit = \Elementor\Plugin::$instance->kits_manager->get_active_kit();
$lightbox_title_src = $kit->get_settings( 'lightbox_title_src' );
$lightbox_description_src = $kit->get_settings( 'lightbox_description_src' );
}
// end: elementor image attributes
$output .= "<{$itemtag} class='gallery-item' ".( !empty($attr['vb']) || !empty($_GET['visual']) ? "data-id='".$id."'" : "" )." data-title='{$image_data[$lightbox_title_src]}' data-description='{$image_data[$lightbox_description_src]}'>
";
$output .= "
<{$icontag} class='gallery-icon {$orientation}'>
$image_output
{$icontag}>";
if ($captiontag && trim($attachment->post_excerpt)) {
$output .= "
<{$captiontag} class='wp-caption-text gallery-caption'>
" . wptexturize($attachment->post_excerpt) . "
{$captiontag}>";
}
$output .= "
{$itemtag}>";
if (! $html5 && $columns > 0 && ++$i % $columns == 0) {
$output .= '
';
}
}
if (! $html5 && $columns > 0 && $i % $columns !== 0) {
$output .= "
";
}
$output .= "
\n";
if( ! isset( $attr['vb'] ) ){
wp_enqueue_script('mfn-imagesloaded', get_theme_file_uri('/js/plugins/imagesloaded.min.js'), ['jquery'], MFN_THEME_VERSION, true);
wp_enqueue_script('mfn-isotope', get_theme_file_uri('/js/plugins/isotope.min.js'), ['jquery'], MFN_THEME_VERSION, true);
}
return $output;
}
}
/**
* Raw [raw][/raw]
* WordPress 4.8 | Text Widget - autop
*/
if (! function_exists('sc_raw')) {
function sc_raw($content)
{
$new_content = '';
$pattern_full = '{(\[raw\].*?\[/raw\])}is';
$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}
return $new_content;
}
}
if (! function_exists('mfn_widget_text_content')) {
function mfn_widget_text_content(){
add_filter('widget_text_content', 'sc_raw', 99);
}
}
/**
* Year [year]
*/
if (! function_exists('sc_year')) {
function sc_year()
{
return date_i18n ('Y');
}
}
/**
* Livesearch [livesearch]
*/
if (! function_exists('sc_livesearch')) {
function sc_livesearch($attr, $content = null)
{
$atts = shortcode_atts(array(
'min_characters' => '3',
'load_posts' => '10',
'container_height' => '300',
'featured_image' => '1'
), $attr);
$translate['search-placeholder'] = mfn_opts_get('translate') ? mfn_opts_get('translate-search-placeholder','Enter your search') : __('Enter your search','betheme');
$translate['livesearch-noresults'] = mfn_opts_get('translate') ? mfn_opts_get('translate-livesearch-noresults','Not found text') : __('Not found text','betheme');
$translate['livesearch-button'] = mfn_opts_get('translate') ? mfn_opts_get('translate-livesearch-button','See all results') : __('See all results','betheme');
// enqueue
wp_enqueue_script( 'mfn-livesearch', get_theme_file_uri('js/live-search.js'), array('underscore'), MFN_THEME_VERSION, true );
wp_localize_script( 'mfn-livesearch', 'mfn_livesearch_categories', mfn_list_categories() );
// output -----
$output = '';
// is elementor
if( !empty( $attr['elementor'] ) ){
$output .= '';
}
$output .= '
';
// searchfield
$output .= '
';
// box
$output .= '
';
$output .= '
';
// is elementor
if( !empty( $attr['elementor'] ) ){
$output .= '
';
}
return $output;
}
}
/**
* Table of contents [table_of_contents] toc
*/
if (! function_exists('sc_table_of_contents')) {
function sc_table_of_contents($attr, $content = null)
{
extract(shortcode_atts(array(
'title' => '',
'title_tag' => '',
'tags_anchors' => 'h1 h2 h3',
'marker_view' => 'numbers',
'icon' => '',
'url_format' => '',
'allow_hide' => '',
'text_show' => __('Show', 'mfn-opts'),
'text_hide' => __('Hide', 'mfn-opts'),
), $attr));
$title = be_dynamic_data($title);
if( empty($marker_view) ){
$marker_view = 'numbers';
}
// title tag
$title_class = '';
if( ! empty($title_tag) ){
if( 'p.lead' == $title_tag ){
$title_tag = 'p';
$title_class = 'lead';
}
}
// GET content from BeBuilder
if( isset($attr['pageid']) ) {
$id = $attr['pageid'];
}else if( isset($attr['vb_postid']) ) {
$id = $attr['vb_postid'];
} else {
$id = get_the_ID();
}
$mfn_sections = get_post_meta($id, 'mfn-page-items', true);
$mfn_wraps = [];
$mfn_items = [];
$mfn_columns = [];
$wp_content = [];
if ( $mfn_sections && ! is_array( $mfn_sections ) ) {
$mfn_sections = unserialize(call_user_func('base'.'64_decode', $mfn_sections), ['allowed_classes' => false]);
}
if( is_array($mfn_sections) ){
// wraps
foreach($mfn_sections as $key => $value){
if( is_array($value) ) {
foreach($value as $in_key => $in_val){
if ($in_key === 'wraps'){
$mfn_wraps[] = $in_val;
}
}
}
}
// items
if( is_array($mfn_wraps) ){
foreach($mfn_wraps as $key => $value){
if( is_array($value) ){
foreach($value as $in_key => $in_val){
if( isset($in_val['items']) ) {
$mfn_items[] = $in_val['items'];
if( is_array($in_val['items']) && ! empty($in_val['items']) ){
foreach ($in_val['items'] as $ii_key => $ii_val) {
if( !empty($ii_val['item_is_wrap']) && !empty($ii_val['items']) ){
$mfn_items[] = $ii_val['items'];
}
}
}
}
}
}
}
}
if( is_array($mfn_items) ){
// columns & heading content only
foreach($mfn_items as $key => $value){
if( is_array($value) ){
foreach($value as $in_key => $in_val){
// fields -> attr
if( isset( $in_val['fields'] ) ){
$in_val['attr'] = $in_val['fields'];
unset($in_val['fields']);
}
// column
if ( !empty($in_val['type']) && 'column' == $in_val['type'] && ! empty($in_val['attr']['content']) ) {
$mfn_columns[] = be_dynamic_data(esc_html($in_val['attr']['content']));
};
// heading
if ( !empty($in_val['type']) && 'heading' == $in_val['type'] ) {
$heading_tag = $in_val['attr']['header_tag'];
$heading_title = be_dynamic_data($in_val['attr']['title']);
$mfn_columns[] = esc_html('<'. $heading_tag .'>'. $heading_title .''. $heading_tag .'>');
};
// fancy heading
if ( !empty($in_val['type']) && 'fancy_heading' == $in_val['type'] ) {
$heading_tag = !empty($in_val['attr']['h1']) ? 'h1' : 'h2';
$heading_title = be_dynamic_data($in_val['attr']['title']);
$mfn_columns[] = esc_html('<'. $heading_tag .'>'. $heading_title .''. $heading_tag .'>');
};
};
}
}
}
}
// GET Elementor, WPB, Gutenberg content
if( ! get_post_meta($id, 'mfn-post-hide-content', true) ){
$wp_content = array( htmlentities(get_the_content()) );
}
// create regex
$tags_regex = '/';
if( empty($tags_anchors) ) {
$tags_anchors = 'h1 h2 h3';
}
foreach(explode(' ', $tags_anchors) as $key => $value){
if($key == 0){
$tags_regex .= '<('.$value.'?.*?'.'<\/'.$value.')>';
}else{
$tags_regex .= '|<('.$value.'?.*?'.'<\/'.$value.')>';
}
}
$tags_regex .= '/i';
// get all headings
$highest_heading = 0;
$mfn_headings = [];
foreach( array_merge($mfn_columns, $wp_content) as $key => $value){
preg_match_all( $tags_regex, $value, $matches );
foreach($matches[0] as $in_key => $in_value){
$in_value = wp_specialchars_decode($in_value);
if( $title != wp_strip_all_tags($in_value) ){
$mfn_headings[] = $in_value;
}
}
// get the biggest heading
foreach($mfn_headings as $in_key => $in_value){
preg_match('/[1234567]/', $in_value, $headingChecked);
if ($highest_heading === 0) {
$highest_heading = $headingChecked[0];
}else if($highest_heading > $headingChecked[0]){
$highest_heading = $headingChecked[0];
}
}
}
// bullets
if( ('bullets' === $marker_view) && $icon ){
$icon = ' ';
$marker_view = 'custom_icon';
} else {
$icon = ' ';
}
// init
$previous_heading_level = 0;
$nested_depth = 1;
// class
$class = '';
if( 'hide' == $allow_hide ){
$class .= 'hide hide_on_start';
}
// output -----
$output = '';
if ($title) {
$output .= '
';
}
$output .= '
';
$output .= '
';
$i = 1;
$urls = [];
foreach($mfn_headings as $key => $value){
preg_match('/[1234567]/', $value, $matches); //for checking, which heading is bigger
// prepare url friendly link
if( 'simple' === $url_format ){
$href_parsed = 'toc-'. $i++;
} else {
$href_parsed = sanitize_title(wp_strip_all_tags(do_shortcode($value ?? '')));
// more than one heading with the same title
if( ! empty($urls[$href_parsed]) ){
$urls[$href_parsed] += 1;
$href_parsed .= '-'. $urls[$href_parsed];
} else {
$urls[$href_parsed] = 1;
}
}
switch(true){
case $previous_heading_level === 0: //init
$output .= ''. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
break;
case $highest_heading === $matches[0] && $nested_depth > 1: //root heading reached, reset
$x = 1;
for($x; $x < $nested_depth; $x++ ){
$output .= ' ';
}
$output .= '
'. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
$nested_depth = 1;
break;
case $previous_heading_level < $matches[0]; //new value is bigger, make a nest
$nested_depth++;
$output .= '
';
$output .= ''. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
break;
case $previous_heading_level > $matches[0] && $nested_depth > 1: //new value is smaller and its in nest (x > 1), decrease nest
$nested_depth--;
$output .= ' ';
$output .= '';
$output .= '
'. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
break;
case $previous_heading_level > $matches[0]: //new value is smaller and its in nest (x < 1), decrease nest
$output .= '
'. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
break;
case $previous_heading_level === $matches[0]:
$output .= '
'. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .' ';
break;
}
$previous_heading_level = $matches[0];
}
$output .= '';
$output .= '
';
$output .= '
'."\n";
return $output;
}
}
/**
* Shortcodes
*/
if (! function_exists('mfn_shortcodes')) {
function mfn_shortcodes(){
// columns
add_shortcode('one', 'sc_one');
add_shortcode('one_second', 'sc_one_second');
add_shortcode('one_third', 'sc_one_third');
add_shortcode('two_third', 'sc_two_third');
add_shortcode('one_fourth', 'sc_one_fourth');
add_shortcode('two_fourth', 'sc_one_second');
add_shortcode('three_fourth', 'sc_three_fourth');
add_shortcode('one_fifth', 'sc_one_fifth');
add_shortcode('two_fifth', 'sc_two_fifth');
add_shortcode('three_fifth', 'sc_three_fifth');
add_shortcode('four_fifth', 'sc_four_fifth');
add_shortcode('one_sixth', 'sc_one_sixth');
add_shortcode('two_sixth', 'sc_one_third');
add_shortcode('three_sixth', 'sc_one_second');
add_shortcode('four_sixth', 'sc_two_third');
add_shortcode('five_sixth', 'sc_five_sixth');
// Content, inline shortcodes
add_shortcode('alert', 'sc_alert');
add_shortcode('blockquote', 'sc_blockquote');
add_shortcode('button', 'sc_button');
add_shortcode('code', 'sc_code');
add_shortcode('content_link', 'sc_content_link');
add_shortcode('counter_inline', 'sc_counter_inline');
add_shortcode('countdown_inline', 'sc_countdown_inline');
add_shortcode('divider', 'sc_divider');
add_shortcode('dropcap', 'sc_dropcap');
add_shortcode('fancy_link', 'sc_fancy_link');
add_shortcode('google_font', 'sc_google_font');
add_shortcode('heading', 'sc_heading_inline');
add_shortcode('highlight', 'sc_highlight');
add_shortcode('hr', 'sc_divider'); // do NOT change, alias for [divider] shortcode
add_shortcode('icon', 'sc_icon');
add_shortcode('icon_bar', 'sc_icon_bar');
add_shortcode('icon_block', 'sc_icon_block');
add_shortcode('idea', 'sc_idea');
add_shortcode('image', 'sc_image');
add_shortcode('popup', 'sc_popup');
add_shortcode('progress_icons', 'sc_progress_icons');
add_shortcode('share_box', 'sc_share_box');
add_shortcode('tooltip', 'sc_tooltip');
add_shortcode('tooltip_image', 'sc_tooltip_image');
add_shortcode('video_embed', 'sc_video'); // WordPress has default [video] shortcode
add_shortcode('year', 'sc_year');
// builder
add_shortcode('accordion', 'sc_accordion');
add_shortcode('accordion_item', 'sc_accordion_item');
add_shortcode('article_box', 'sc_article_box');
add_shortcode('before_after', 'sc_before_after');
add_shortcode('blog', 'sc_blog');
add_shortcode('blog_news', 'sc_blog_news');
add_shortcode('blog_slider', 'sc_blog_slider');
add_shortcode('blog_teaser', 'sc_blog_teaser');
add_shortcode('call_to_action', 'sc_call_to_action');
add_shortcode('chart', 'sc_chart');
add_shortcode('clients', 'sc_clients');
add_shortcode('clients_slider', 'sc_clients_slider');
add_shortcode('contact_box', 'sc_contact_box');
add_shortcode('countdown', 'sc_countdown');
add_shortcode('counter', 'sc_counter');
add_shortcode('fancy_divider', 'sc_fancy_divider');
add_shortcode('fancy_heading', 'sc_fancy_heading');
add_shortcode('faq', 'sc_faq');
add_shortcode('faq_item', 'sc_faq_item');
add_shortcode('feature_box', 'sc_feature_box');
add_shortcode('feature_list', 'sc_feature_list');
add_shortcode('flat_box', 'sc_flat_box');
add_shortcode('helper', 'sc_helper');
add_shortcode('hover_box', 'sc_hover_box');
add_shortcode('hover_color', 'sc_hover_color');
add_shortcode('how_it_works', 'sc_how_it_works');
add_shortcode('icon_box', 'sc_icon_box'); // deprecated: icon_box_new
add_shortcode('icon_box_2', 'sc_icon_box_2');
add_shortcode('info_box', 'sc_info_box');
add_shortcode('list', 'sc_list');
add_shortcode('livesearch', 'sc_livesearch');
add_shortcode('map_basic', 'sc_map_basic');
add_shortcode('map', 'sc_map');
add_shortcode('offer', 'sc_offer');
add_shortcode('offer_thumb', 'sc_offer_thumb');
add_shortcode('opening_hours', 'sc_opening_hours');
add_shortcode('our_team', 'sc_our_team');
add_shortcode('our_team_list', 'sc_our_team_list');
add_shortcode('photo_box', 'sc_photo_box');
add_shortcode('portfolio', 'sc_portfolio');
add_shortcode('portfolio_grid', 'sc_portfolio_grid');
add_shortcode('portfolio_photo', 'sc_portfolio_photo');
add_shortcode('portfolio_slider', 'sc_portfolio_slider');
add_shortcode('pricing_item', 'sc_pricing_item');
add_shortcode('progress_bars', 'sc_progress_bars');
add_shortcode('promo_box', 'sc_promo_box');
add_shortcode('quick_fact', 'sc_quick_fact');
add_shortcode('shop_slider', 'sc_shop_slider');
add_shortcode('slider', 'sc_slider');
add_shortcode('sliding_box', 'sc_sliding_box');
add_shortcode('story_box', 'sc_story_box');
add_shortcode('tabs', 'sc_tabs');
add_shortcode('tab', 'sc_tab');
add_shortcode('table_of_contents', 'sc_table_of_contents');
add_shortcode('testimonials', 'sc_testimonials');
add_shortcode('testimonials_list', 'sc_testimonials_list');
add_shortcode('trailer_box', 'sc_trailer_box');
add_shortcode('zoom_box', 'sc_zoom_box');
// private
add_shortcode('bar', 'sc_bar');
add_shortcode('item', 'sc_item');
// gallery
if (! mfn_opts_get('sc-gallery-disable')) {
remove_shortcode('gallery');
add_shortcode('gallery', 'sc_gallery');
}
}
}
add_action('init', 'mfn_widget_text_content');
add_action('init', 'mfn_shortcodes');