'.__( 'Preview error', 'woocommerce' ).'
'; }else{ ob_start(); if( is_product() ) { do_action( 'woocommerce_before_single_product' ); }else if( is_shop() || is_product_category() || is_product_tag() ) { wc_print_notices(); } $output = ob_get_clean(); } return $output; } } /** * Order steps */ if (! function_exists('sc_order_steps')) { function sc_order_steps($attr) { global $mfn_global; if( !function_exists('is_woocommerce') ) return ''; $classes = array(); if( is_cart() ){ $step = 1; }elseif( is_wc_endpoint_url( 'order-received' ) ){ $step = 3; }elseif( is_checkout() ){ $step = 2; } if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) { $step = 2; } $cart_label = !empty($attr['cart_label']) ? $attr['cart_label'] : __( 'Cart', 'woocommerce' ); $checkout_label = !empty($attr['checkout_label']) ? $attr['checkout_label'] : __( 'Checkout', 'woocommerce' ); $order_label = !empty($attr['order_label']) ? $attr['order_label'] : __( 'Order', 'woocommerce' ); $output = ''; return $output; } } /** * Thank you thanks */ if (! function_exists('sc_thankyou_overview')) { function sc_thankyou_overview($attr) { extract(shortcode_atts(array( 'layout' => '', ), $attr)); if( !function_exists('is_woocommerce') ) return ''; $order_id = false; $order = false; $output = ''; if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) { $args = array( 'limit' => 1, 'type' => 'shop_order' ); $order = wc_get_orders($args); if( !empty($order) ){ $order_id = $order[0]->get_id(); } }else if( !empty( $_GET['key'] ) ) { $order_id = wc_get_order_id_by_order_key($_GET['key']); } if( $order_id ) $order = wc_get_order( $order_id ); ob_start(); if( $order ){ do_action( 'woocommerce_before_thankyou', $order->get_id() ); if ( $order->has_status( 'failed' ) ) : echo '

'.esc_html__( 'Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction. Please attempt your purchase again.', 'woocommerce' ).'

'; echo '

'; echo ''. esc_html__( 'Pay', 'woocommerce' ) .''; if ( is_user_logged_in() ) : echo ''. esc_html__( 'My account', 'woocommerce' ) .''; endif; echo '

'; else: wc_get_template( 'checkout/order-received.php', array( 'order' => $order ) ); echo ''; endif; echo '
'; if( $order->get_payment_method_title() && empty($attr['vb']) ) { do_action( 'woocommerce_thankyou_' . $order->get_payment_method(), $order->get_id() ); }else{ esc_html__('Pay with cash upon delivery.', 'woocommerce'); } echo '
'; }else{ wc_get_template( 'checkout/order-received.php', array( 'order' => false ) ); } //wc_get_template( 'checkout/thankyou.php', array('order' => $order) ); $output .= ob_get_clean(); return $output; } } /** * Thank you thanks */ if (! function_exists('sc_thankyou_order')) { function sc_thankyou_order($attr) { extract(shortcode_atts(array( 'layout' => '', ), $attr)); if( !function_exists('is_woocommerce') ) return ''; $order_id = false; $order = false; $output = ''; if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) { $args = array( 'limit' => 1, 'type' => 'shop_order' ); $order = wc_get_orders($args); if( !empty($order) ){ $order_id = $order[0]->get_id(); } }else if( !empty( $_GET['key'] ) ) { $order_id = wc_get_order_id_by_order_key($_GET['key']); } if( $order_id ) $order = wc_get_order( $order_id ); if( $order && empty($attr['vb']) ){ ob_start(); do_action( 'woocommerce_thankyou', $order->get_id() ); $output .= ob_get_clean(); }else if( !empty($attr['vb']) ) { $output .= '

'.__("Order details", "woocommerce").'

'.__("Product", "woocommerce").' '.__("Total", "woocommerce").'
'.__("Product", "woocommerce").' 1 × 3
  • Color:

    Green

'.wc_price(10).'
'.__('Subtotal', 'woocommerce').': '.wc_price(10).'
'.__('Shipping', 'woocommerce').': '.wc_price(5).'
'.__('Tax', 'woocommerce').': '.wc_price(2).'
'.__('Payment method', 'woocommerce').': '.__('Pay with cash upon delivery.', 'woocommerce').'
'.__('Total', 'woocommerce').': '.wc_price(17).'

'.__('Billing address', 'woocommerce').'

Lorem ipsum dolor sit amet
Consectetur adipiscing elit 22

112 223 445

'.__('Shipping address', 'woocommerce').'

Lorem ipsum dolor sit amet
Consectetur adipiscing elit 24
'; } return $output; } } /** * Checkout */ if (! function_exists('sc_checkout')) { function sc_checkout($attr) { extract(shortcode_atts(array( 'layout' => '', ), $attr)); if( !function_exists('is_woocommerce') ) return ''; $classes = array('mfn-checkout-wrapper'); $classes[] = !empty($layout) ? 'mfn-be-checkout-'.$layout : 'mfn-be-checkout'; $output = '
'; $output .= do_shortcode( '[woocommerce_checkout]' ); $output .= '
'; return $output; } } /** * Cart */ if (! function_exists('sc_cart_table')) { function sc_cart_table($attr) { extract(shortcode_atts(array( 'layout' => '', ), $attr)); if( !function_exists('is_woocommerce') ) return ''; $output = ''; $classes = array('mfn-cart-table-tmpl-wrapper'); if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) $classes[] = 'woocommerce-cart'; $output .= '
'; if( empty($attr['vb']) && !apply_filters('bebuilder_preview', false) ) remove_action('woocommerce_cart_collaterals', 'woocommerce_cart_totals'); if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ) { $output .= do_shortcode( '[woocommerce_cart]' ); }else{ ob_start(); wc_get_template('cart/cart.php'); $output .= ob_get_clean(); } $output .= '
'; return $output; } } /** * Cart totals */ if (! function_exists('sc_cart_totals')) { function sc_cart_totals($attr) { extract(shortcode_atts(array( 'layout' => '', ), $attr)); if( !function_exists('is_woocommerce') ) return ''; $output = ''; global $woocommerce; if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ){ $output .= do_shortcode( '[woocommerce_cart]' ); }else{ /*ob_start(); add_action('woocommerce_cart_collaterals', 'woocommerce_cart_totals'); do_action( 'woocommerce_cart_collaterals' ); $output .= ob_get_clean();*/ WC()->cart->calculate_shipping(); ob_start(); do_action( 'woocommerce_before_cart_collaterals' ); echo '
'; woocommerce_cart_totals(); echo '
'; do_action( 'woocommerce_after_cart' ); $output .= ob_get_clean(); } return $output; } } /** * Cart cross sells */ if (! function_exists('sc_cart_cross_sells')) { function sc_cart_cross_sells($attr) { if( !function_exists('is_woocommerce') ) return; remove_standard_woo_actions_archive(); $args = array( 'posts_per_page' => !empty($attr['products']) ? $attr['products'] : 4, 'columns' => !empty($attr['columns']) ? $attr['columns'] : 4, 'order' => 'desc', 'orderby' => 'rand', 'post_type' => 'product', ); if( !empty($attr['vb']) || apply_filters('bebuilder_preview', false) ){ $cs_query = new WP_Query($args); }else{ $cross_sells_ids_in_cart = array(); $cross_sells_id = array(); foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { if ( $values['quantity'] > 0 ) { $cross_sells_ids_in_cart = array_merge( $values['data']->get_cross_sell_ids(), $cross_sells_ids_in_cart ); } } $cross_sellsq = wp_parse_id_list( $cross_sells_ids_in_cart ); if( !empty($cross_sellsq) && count($cross_sellsq) > 0 ) { foreach($cross_sellsq as $csp) { if( get_post_type($csp) == 'product' ) { $cross_sells_id[] = $csp; }elseif( get_post_type($csp) == 'product_variation' ) { $cross_sells_id[] = wp_get_post_parent_id($csp); } } } $args['post__in'] = $cross_sells_id; $cs_query = new WP_Query($args); } 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']; $output = '
'; $title_tag = !empty($attr['heading_tag']) ? $attr['heading_tag'] : 'h3'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title heading">'.( !empty($attr['heading']) ? $attr['heading'] : __( 'You may be interested in…', 'woocommerce' ) ).''; $output .= ''; $output .= '
'; return $output; } } if (! function_exists('sc_hotspot')) { function sc_hotspot($attr){ extract( shortcode_atts(array( 'image' => '', 'marker_animation' => '', 'content_animation' => '', 'img_height' => '', 'img_height_style' => '', 'style' => '', ), $attr) ); $id_canvas = false; $id_canvas_wrapper = false; $image = be_dynamic_data($image); if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full'); $classes = array('mfn-image-hotspot'); if( !empty($marker_animation) ) $classes[] = 'mfn-image-hotspot-point-'.$marker_animation; if( !empty($content_animation) ) $classes[] = 'mfn-image-hotspot-content-'.$content_animation; if( !empty($img_height) ) $classes[] = 'mfn-image-hotspot-height'; if( !empty($img_height_style) ) $classes[] = 'mfn-image-hotspot-height-cover'; if( !empty( $style ) ) { $classes[] = 'mfn-hotspot-style-'.$style; $id_canvas = 'canvas'.Mfn_Builder_Helper::unique_ID(); $id_canvas_wrapper = $id_canvas.'wrapper'; } $output = ''; $script = ''; $output .= '
'; $output .= '
'; if( !empty($id_canvas) ) { $script .= ''; } //print_r($attr['hotspots']); $output .= '
'; return $output; } } /** * Banner box */ if (! function_exists('sc_banner_box')) { function sc_banner_box($attr) { extract(shortcode_atts(array( 'image' => '', 'size' => 'full', 'title' => '', 'title_tag' => '', 'subtitle' => '', 'subtitle_tag' => '', 'bb_excerpt' => '', 'link' => '', 'link_title' => '', ), $attr)); $classes = array('mfn-banner-box'); $title = be_dynamic_data($title); $subtitle = be_dynamic_data($subtitle); $bb_excerpt = be_dynamic_data($bb_excerpt); $link_title = be_dynamic_data($link_title); $link = be_dynamic_data($link); $wrapper_attr = ''; $image = be_dynamic_data($image); if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full'); if( !empty( $attr['style'] ) ) $classes[] = 'mfn-banner-box-boxed'; if( !empty( $attr['image_height'] ) ) $classes[] = 'mfn-banner-box-height'; if( !empty( $attr['overlay'] ) ) $classes[] = 'mfn-banner-box-image-overlay'; if( !empty( $attr['hover_effect'] ) ) $classes[] = 'mfn-banner-box-image-'.$attr['hover_effect']; if( !empty( $attr['cta_hover_effect'] ) ) $classes[] = 'mfn-banner-box-cta-'.$attr['cta_hover_effect']; if( !empty( $attr['hidden_elements_mobile'] ) ) { if( $attr['hidden_elements_mobile'] == '1' ){ $classes[] = 'mfn-show-hidden-elements-on-mobile'; }else if( $attr['hidden_elements_mobile'] == '2' ){ $classes[] = 'mfn-show-hidden-elements-on-tablet'; } } // size if( empty($size) ){ $size = 'full'; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } $subtitle_class = ''; if( ! empty($subtitle_tag) ){ if( 'p.lead' == $subtitle_tag ){ $subtitle_tag = 'p'; $subtitle_class = 'lead'; } } $title_tag = !empty($attr['title_tag']) ? $attr['title_tag'] : 'h3'; $subtitle_tag = !empty($attr['subtitle_tag']) ? $attr['subtitle_tag'] : 'p'; $order = !empty( $attr['order'] ) ? $attr['order'] : 'title,subtitle,excerpt,divider,cta'; $order_arr = explode('divider', $order); $visible = $order_arr[0]; $hidden = $order_arr[1]; $visible_arr = explode(',', $visible); $hidden_arr = explode(',', $hidden); $elements = array( 'subtitle' => !empty($subtitle) || !empty($_GET['visual']) || !empty($attr['vb']) ? '<'. mfn_allowed_title_tag($subtitle_tag) .' '.( empty( $subtitle ) ? 'style="display: none;"' : '' ).' class="subtitle banner-item '. esc_attr($subtitle_class) .'">'.$subtitle.'' : '', 'title' => !empty($title) || !empty($_GET['visual']) || !empty($attr['vb']) ? '<'. mfn_allowed_title_tag($title_tag) .' '.( empty( $title ) ? 'style="display: none;"' : '' ).' class="title banner-item '. esc_attr($title_class) .'">'.$title.'' : '', 'excerpt' => !empty($bb_excerpt) || !empty($_GET['visual']) || !empty($attr['vb']) ? '

'.$bb_excerpt.'

' : '', 'cta' => !empty($link_title) || !empty($_GET['visual']) || !empty($attr['vb']) ? '' : '', ); if( !empty( $attr['cta'] ) && $attr['cta'] == 'icon' ){ $elements['cta'] = ''; }elseif( !empty( $attr['cta'] ) && $attr['cta'] == 'image' ){ $elements['cta'] = ''; } if( !empty( $attr['link_type'] ) && !empty( $attr['popup_id'] ) ){ if( empty($link) ) $link = '#'; $classes[] = 'open-mfn-popup'; $wrapper_attr = 'data-mfnpopup="'. esc_attr($attr['popup_id']) .'"'; } $target = false; if ( !empty($attr['target']) && 'lightbox' == $attr['target'] ) { $target = 'rel="prettyphoto"'; } elseif ( !empty($attr['target']) ) { $target = 'target="_blank"'; } $output = ''; // start wrapper if( !empty($link) ){ $output .= ''; }else{ $output .= '
'; } $output .= ''; if( !empty( $attr['bb_badge'] ) || !empty($_GET['visual']) || !empty($attr['vb']) ) $output .= ''; $output .= ''; // end wrapper if( !empty($link) ){ $output .= ''; }else{ $output .= '
'; } return $output; } } /** * HTML editor */ if (! function_exists('sc_html')) { function sc_html($attr){ extract(shortcode_atts(array( 'content' => '', ), $attr)); if( ! empty( $attr['vb'] ) && empty( $content ) ) { return '
product rating
'; } if( !substr( $content, 0, 7 ) === "', '', $content); $ready_content = str_replace('', '', $ready_content); $ready_content = str_replace('', '', $ready_content); $ready_content = str_replace('', '', $ready_content); $ready_content = str_replace('', '', $ready_content); libxml_use_internal_errors(true); $dom = new DOMDocument(); $dom->loadHTML('' . $ready_content . '', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($dom); foreach( $xpath->query('//*[not(node())]') as $node ) { $node->parentNode->removeChild($node); } $ready_content = substr($dom->saveHTML(), 6, -8); }else{ $ready_content = $content; } $output = '
'.$ready_content.'
'; return $output; } } /** * Spacer */ if (! function_exists('sc_spacer')) { function sc_spacer($attr){ extract(shortcode_atts(array( 'form' => '', ), $attr)); $output = ''; if( !empty($form) ){ $post = get_post($form); if( $post ){ $output = do_shortcode('[contact-form-7 id="" title="'.$post->post_title.'"]'); } } return $output; } } /** * CF7 contact form 7 */ if (! function_exists('sc_cf7')) { function sc_cf7($attr){ extract(shortcode_atts(array( 'form' => '', ), $attr)); $output = ''; if( !empty($form) ){ $post = get_post($form); if( $post ){ $output = do_shortcode('[contact-form-7 id="" title="'.$post->post_title.'"]'); } } return $output; } } /** * Breadcrumbs */ if (! function_exists('sc_breadcrumbs')) { function sc_breadcrumbs($attr) { extract(shortcode_atts(array( 'separator' => '', ), $attr)); $params = array(); $output = ''; if( !empty($separator) ) $params['separator'] = $separator; if( empty($attr['breadcrumb_home']) || $attr['breadcrumb_home'] == '0' ) { $params['include_home'] = 0; }else{ $params['include_home'] = 1; } ob_start(); mfn_breadcrumbs($params); $output = ob_get_clean(); return $output; } } /** * Post share */ if (! function_exists('sc_share')) { function sc_share($attr) { extract(shortcode_atts(array( 'label' => '', 'copy_link' => '', 'facebook' => '', 'twitter' => '', 'linkedin' => '', ), $attr)); if( empty($copy_link) && empty($facebook) && empty($twitter) && empty($linkedin) ) return; $output = '
'; if( !empty($copy_link) ) { $output .= ''; if( !empty($attr['copy_link_icon']) ) { $output .= ''; }else{ $output .= ''; } if( !empty($attr['copy_link_label']) ) $output .= ''.$attr['copy_link_label'].''; $output .= ''; } if( !empty($facebook) ) { $output .= ''; if( !empty($attr['facebook_icon']) ) { $output .= ''; }else{ $output .= ''; } if( !empty($attr['facebook_label']) ) $output .= ''.$attr['facebook_label'].''; $output .= ''; } if( !empty($twitter) ) { $output .= ''; if( !empty($attr['twitter_icon']) ) { $output .= ''; }else{ $output .= ''; } if( !empty($attr['twitter_label']) ) $output .= ''.$attr['twitter_label'].''; $output .= ''; } if( !empty($linkedin) ) { $output .= ''; if( !empty($attr['linkedin_icon']) ) { $output .= ''; }else{ $output .= ''; } if( !empty($attr['linkedin_label']) ) $output .= ''.$attr['linkedin_label'].''; $output .= ''; } $output .= '
'; return $output; } } /** * Single post template: Post comments */ if (! function_exists('sc_post_comments')) { function sc_post_comments($attr){ $output = ''; $post_id = !empty( $attr['vb_postid'] ) ? $attr['vb_postid'] : get_the_ID(); ob_start(); comments_template(); $output = ob_get_clean(); return $output; } } /** * Single post template: Post content */ if (! function_exists('sc_post_content')) { function sc_post_content($attr){ extract(shortcode_atts(array( 'content' => '', ), $attr)); $output = ''; $post_id = !empty( $attr['vb_postid'] ) ? $attr['vb_postid'] : get_the_ID(); if( !empty($content) && $content == 'mfn' ) { $mfn_builder = new Mfn_Builder_Front( $post_id ); ob_start(); $mfn_builder->show(false, true); $output = ob_get_clean(); }else{ $output = apply_filters( 'the_content', get_the_content(null, false, $post_id) ); } return $output; } } /** * Sidemenu Menu */ if (! function_exists('sc_sidemenu_menu')) { function sc_sidemenu_menu($attr) { extract(shortcode_atts(array( 'icon_animation' => '', 'submenu_icon' => '', ), $attr)); require_once( get_theme_file_path('/visual-builder/classes/header-template-items-class.php') ); $output = ''; $ul_classes = array('mfn-sidemenu-menu'); // icon align $ul_classes[] = 'mfn-menu-icon-left'; // icon animation if( !empty($icon_animation) ) $ul_classes[] = 'mfn-menu-icon-'.$icon_animation; // submenu display if( !empty($attr['submenu']) ) $ul_classes[] = 'mfn-menu-submenu-'.$attr['submenu']; // submenu animation if( !empty($attr['submenu_on']) ) $ul_classes[] = 'mfn-menu-submenu-'.$attr['submenu_on']; // submenu icon display if( empty($attr['submenu_icon_display']) || $attr['submenu_icon_display'] == 'on' ) { $ul_classes[] = 'mfn-menu-submenu-icon-on'; if( !empty($attr['submenu_icon_animation']) ) $ul_classes[] = 'mfn-menu-submenu-icon-'.$attr['submenu_icon_animation']; }else{ $ul_classes[] = 'mfn-menu-submenu-icon-off'; } $arg = array( 'container' => false, 'menu_class' => implode(' ', $ul_classes), 'walker' => new Mfn_Vb_Header_Tmpl, 'outer_submenu_icon' => '', 'after' => !empty($attr['dropdown_pointer']) && $attr['dropdown_pointer'] == '1' ? '' : '', 'mega_menu' => false, 'mfn_classes' => true, 'echo' => false ); if( isset($attr['tabs']) && is_array($attr['tabs']) && count($attr['tabs']) > 0 ) { if( count($attr['tabs']) == 1 ){ $arg['menu'] = $attr['tabs'][0]['menu']; $output .= '
'; $output .= wp_nav_menu( $arg ); $output .= '
'; }else{ $output .= '
'; $output .= '
    '; foreach( $attr['tabs'] as $m=>$mt ){ $output .= '
  • '.$mt['title'].'
  • '; } $output .= '
'; foreach( $attr['tabs'] as $m=>$mt ){ $output .= ''; } $output .= '
'; } }else{ $output .= ''; } return $output; } } /** * Popup Exit */ if (! function_exists('sc_popup_exit')) { function sc_popup_exit($attr){ extract(shortcode_atts(array( 'icon' => '', 'image' => '', 'label' => '', ), $attr)); $classes = array(); if( (!empty($icon) || !empty($image)) && !empty($label) ) $classes[] = 'has-icon'; $output = ''; if( (!empty($icon) || !empty($image)) && !empty($label) ) $output .= ''; if( !empty($image) ){ $output .= ''; }elseif( !empty($icon) ){ $output .= ''; } if( (!empty($icon) || !empty($image)) && !empty($label) ) $output .= ''; if( !empty($label) ){ if( !empty($icon) || !empty($image) ) $output .= ''; $output .= $label; if( !empty($icon) || !empty($image) ) $output .= ''; } // std if( empty($icon) && empty($image) && empty($label) ){ $output .= ''.__('Close popup', 'mfn-opts').''; } $output .= ''; return $output; } } /** * Footer menu */ if (! function_exists('sc_footer_menu')) { function sc_footer_menu($attr){ extract(shortcode_atts(array( 'menu_style' => '', ), $attr)); // require_once( get_theme_file_path('/visual-builder/classes/header-template-items-class.php') ); $output = ''; $ul_classes = array('mfn-footer-menu'); if( !empty($menu_style) ) $ul_classes[] = 'mfn-footer-menu-style-'.$menu_style; $arg = array( 'container' => false, 'menu_id' => isset($attr['menu_display']) ? 'mfn-footer-menu-'.$attr['menu_display'] : 'mfn-footer-menu', 'menu_class' => implode(' ', $ul_classes), //'walker' => new Mfn_Vb_Header_Tmpl, 'submenu_icon' => !empty($submenu_on) && $submenu_on == 'toggled' && !empty($submenu_icon) ? '' : '', /*'li_id_prefix' => 'footer-', 'hide_helper' => true,*/ 'echo' => false ); if(isset($attr['menu_display']) && $attr['menu_display'] > 0) $arg['menu'] = $attr['menu_display']; $output .= wp_nav_menu( $arg ); return $output; } } /** * Menu Mega menu */ if (! function_exists('sc_megamenu_menu')) { function sc_megamenu_menu($attr){ extract(shortcode_atts(array( 'submenu' => '', 'menu_style' => '', 'submenu_on' => '', 'submenu_hori_on' => '', 'submenu_icon' => '', 'icon_animation' => '', 'icon_align' => 'left', ), $attr)); require_once( get_theme_file_path('/visual-builder/classes/header-template-items-class.php') ); $output = ''; $ul_classes = array('mfn-megamenu-menu'); if( !empty($menu_style) && $menu_style == 'horizontal' ) { $ul_classes[] = 'mfn-mm-menu-horizontal'; // submenu horizontal if( !empty($submenu) && $submenu == 'on' ) { $ul_classes[] = 'mfn-mm-submenu-on-'.( !empty($submenu_hori_on) ? $submenu_hori_on : 'hover'); } if( !empty($attr['submenu_animation']) ) $ul_classes[] = 'mfn-mm-submenu-show-'.$attr['submenu_animation']; }else{ $ul_classes[] = 'mfn-mm-menu-vertical'; // submenu vertical if( !empty($submenu) && $submenu == 'on' ) { $ul_classes[] = 'mfn-mm-submenu-'.( !empty($submenu_on) ? $submenu_on : 'visible'); } } // icon align $ul_classes[] = 'mfn-mm-menu-icon-'.$icon_align; // icon animation if( !empty($icon_animation) ) $ul_classes[] = 'mfn-mm-menu-icon-'.$icon_animation; // submenu icon animation if( !empty($submenu) && $submenu == 'on' ) { if( !empty($attr['submenu_icon_animation']) ) $ul_classes[] = 'mfn-mm-submenu-icon-'.$attr['submenu_icon_animation']; }else{ $ul_classes[] = 'mfn-mm-submenu-off'; } $arg = array( 'container' => false, 'menu_id' => isset($attr['menu_display']) ? 'mfn-megamenu-ul-'.$attr['menu_display'] : 'mfn-megamenu-ul', 'menu_class' => implode(' ', $ul_classes), 'walker' => new Mfn_Vb_Header_Tmpl, 'submenu_icon' => !empty($submenu_icon) ? '' : '', 'li_id_prefix' => 'megamenu-', 'link_after' => !empty($attr['decoration_icon']) ? '' : '', 'hide_helper' => true, //'mega_menu' => true, 'echo' => false ); if(isset($attr['menu_display']) && $attr['menu_display'] > 0) $arg['menu'] = $attr['menu_display']; $output .= wp_nav_menu( $arg ); return $output; } } /** * Logo */ if (! function_exists('sc_header_logo')) { function sc_header_logo($attr){ extract(shortcode_atts(array( 'image' => '', 'link' => '', ), $attr)); $image_tag = false; if( $image && !empty($image) ){ if( strpos($image, ':') !== false ){ $image = be_dynamic_data($image); }elseif( strpos($image, '#') !== false ){ $image_tag = mfn_get_attachment($image); }else{ $image = mfn_vc_image($image); } }elseif( empty($image) && !empty(mfn_opts_get('logo-img')) ){ $image = mfn_opts_get('logo-img'); }else{ $image = get_theme_file_uri( '/muffin-options/svg/placeholders/image.svg' ); } $output = ''; if( $image_tag ){ $output .= $image_tag; }else{ $output .= ''. esc_attr( mfn_get_attachment_data( $image, 'alt' ) ) .''; } $output .= ''; return $output; } } /** * Footer Logo */ if (! function_exists('sc_footer_logo')) { function sc_footer_logo($attr){ extract(shortcode_atts(array( 'image' => '', 'link' => '', ), $attr)); if( $image && !empty($image) ){ $image = mfn_vc_image($image); }elseif( empty($image) && mfn_opts_get('logo-img') ){ $image = mfn_opts_get('logo-img'); }else{ $image = get_theme_file_uri( '/muffin-options/svg/placeholders/image.svg' ); } $output = ''; $output .= ''. esc_attr( mfn_get_attachment_data( $image, 'alt' ) ) .''; $output .= ''; return $output; } } /** * Menu */ if (! function_exists('sc_header_menu')) { function sc_header_menu($attr){ extract(shortcode_atts(array( 'animation' => '', 'separator' => 'off', 'alignment' => 'flex-start', 'alignment_tablet' => 'flex-start', 'alignment_mobile' => 'flex-start', 'icon_animation' => '', 'icon_align' => 'left', 'submenu_icon' => 'fas fa-arrow-dow', 'submenu_subicon' => 'fas fa-arrow-right', 'submenu_fold_to_right' => '', ), $attr)); require_once( get_theme_file_path('/visual-builder/classes/header-template-items-class.php') ); $output = ''; $ul_classes = array('mfn-header-menu', 'mfn-header-mainmenu'); // alignment $ul_classes[] = 'mfn-menu-align-'.$alignment; $ul_classes[] = 'mfn-menu-tablet-align-'.$alignment_tablet; $ul_classes[] = 'mfn-menu-mobile-align-'.$alignment_mobile; // icon align $ul_classes[] = 'mfn-menu-icon-'.$icon_align; // animation if( !empty($animation) ) $ul_classes[] = 'mfn-menu-animation-'.$animation; // separator if( !empty($separator) ) $ul_classes[] = 'mfn-menu-separator-'.$separator; // icon animation if( !empty($icon_animation) ) $ul_classes[] = 'mfn-menu-icon-'.$icon_animation; // submenu display if( !empty($attr['submenu_display']) ) $ul_classes[] = 'mfn-menu-submenu-on-'.$attr['submenu_display']; // submenu animation if( !empty($attr['submenu_animation']) ) $ul_classes[] = 'mfn-menu-submenu-show-'.$attr['submenu_animation']; // submenu icon display if( !empty($attr['submenu_icon_display']) ) { if( !empty($attr['submenu_icon_animation']) ) $ul_classes[] = 'mfn-menu-submenu-icon-'.$attr['submenu_icon_animation']; }else{ $ul_classes[] = 'mfn-menu-submenu-icon-off'; } if( !empty($attr['dropdown_pointer']) && $attr['dropdown_pointer'] == '1' ){ $ul_classes[] = 'mfn-menu-dropdown-pointer'; if( !empty($attr['dropdown_alignment']) ){ $ul_classes[] = 'mfn-menu-dropdown-pointer-'.$attr['dropdown_alignment']; }else{ $ul_classes[] = 'mfn-menu-dropdown-pointer-left'; } } if( ! empty($submenu_fold_to_right) ){ $ul_classes[] = 'mfn-menu-fold-last-to-right'; } $arg = array( 'container' => false, 'menu_class' => implode(' ', $ul_classes), 'walker' => new Mfn_Vb_Header_Tmpl, 'custom_icon' => '', 'custom_subicon' => '', 'after' => !empty($attr['dropdown_pointer']) && $attr['dropdown_pointer'] == '1' ? '' : '', 'mega_menu' => true, 'mfn_classes' => true, 'echo' => false ); if ( !empty($_GET['visual']) || ( isset($attr['vb']) && $attr['vb'] ) || ( ! empty( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) == 'xmlhttprequest' ) ){ unset($arg['mega_menu']); $arg['mega_menu_simulate'] = true; } if(isset($attr['menu_display']) && $attr['menu_display'] > 0){ $arg['menu'] = $attr['menu_display']; $output .= wp_nav_menu( $arg ); }else{ $output .= ''; } return $output; } } /** * Icon */ if (! function_exists('sc_header_icon')) { function sc_header_icon($attr){ extract(shortcode_atts(array( 'type' => '', 'image' => '', 'icon' => '', 'desc' => '', 'link' => '', 'link_title' => '', 'icon_position' => 'top', 'icon_position_tablet' => '', 'icon_position_laptop' => '', 'icon_position_mobile' => '', 'icon_align' => 'center', 'icon_align_tablet' => '', 'icon_align_laptop' => '', 'icon_align_mobile' => '', 'hover' => '', ), $attr)); $output = ''; $classes = array('mfn-icon-box', 'mfn-header-icon-box'); $classes_desc = array(); $attr_link = '#'; $icon_html = ''; $icon_addons = ''; $additional_html = ''; if( !empty($attr['header_icon_desc_visibility']) ){ $classes_desc[] = $attr['header_icon_desc_visibility']; } 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 ); } // link if(in_array($type, array('default', 'mail', 'tel'))){ if($type == 'tel' && !empty($link)) $attr_link = 'tel:'.$link; if($type == 'mail' && !empty($link)) $attr_link = 'mailto:'.$link; if($type == 'default') $attr_link = $link; $classes[] = 'mfn-header-link'; if( empty($image) && empty($icon) ){ if( $type == 'tel' ){ $icon = 'icon-phone'; }elseif( $type == 'mail' ){ $icon = 'icon-email'; }elseif( $type == 'default' ){ $icon = 'icon-lamp'; } } }else if( $type == 'account' ){ //$desc = ''; if(function_exists('is_woocommerce')){ $additional_html .= ''; $attr_link = wc_get_page_permalink( 'myaccount' ); } $classes[] = 'mfn-header-account-link toggle-login-modal is-boxed'; if( empty($image) && empty($icon) ) $icon_html = ''; }else if( $type == 'cart' ){ if( function_exists('is_woocommerce') ){ if($type == 'cart' && ( (isset($attr['cart_total']) && $attr['cart_total'] == 1) || (isset($attr['count']) && $attr['count'] == 1 ) ) ){ global $woocommerce; if(!empty($attr['count']) && $attr['count'] == 1) $icon_addons .= '0'; if(!empty($attr['cart_total']) && $attr['cart_total'] == 1) $desc = '

'. wp_strip_all_tags( $woocommerce->cart->get_cart_total() ) .'

'; } $attr_link = wc_get_page_permalink( 'cart' ); } $classes[] = 'mfn-header-cart-link toggle-mfn-cart'; if( empty($image) && empty($icon) ) $icon_html = ''; }else if( $type == 'wishlist' ){ //$desc = ''; if( function_exists('is_woocommerce') ){ if(!empty($attr['count']) && $attr['count'] == 1 ){ $icon_addons = '0'; } $attr_link = get_permalink(mfn_opts_get('shop-wishlist-page')); $classes[] = 'mfn-header-wishlist-link'; } if( empty($image) && empty($icon) ) $icon_html = ''; }else if( $type == 'search' ){ //$desc = ''; $classes[] = 'mfn-header-search-link mfn-search-button mfn-searchbar-toggle'; $output .= '
'; 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 = ''; } if( empty($desc) ) $classes[] = 'mfn-icon-box-empty-desc'; if( !empty($attr['count_if_zero']) ) $classes[] = 'mfn-hide-count-if-0'; $classes = implode(' ', $classes); $classes_desc = implode(' ', $classes_desc); $target = false; if( !empty($attr['target']) && $attr['target'] == '1' ){ $target = 'target="_blank"'; } if( $attr_link ){ $output .= ''; } else { $output .= ''; } if( !empty($image) || !empty($icon) || !empty($icon_html) ){ $output .= '
'; if( !empty($image) ){ $image = be_dynamic_data($image); if( is_numeric($image) ) $image = wp_get_attachment_image_url($image, 'full'); $output .= ''. esc_attr( mfn_get_attachment_data( $image, 'alt' ) ) .''; }elseif( !empty($icon) ){ $output .= ''; }elseif( !empty($icon_html) ){ $output .= $icon_html; } if( !empty($icon_addons) ){ $output .= $icon_addons; } $output .= '
'; } if( !empty($desc) ){ $output .= '
'; $output .= be_dynamic_data($desc); // additional to wishlist $output .= '
'; } if( $attr_link ){ $output .= '
'; } else { $output .= ''; } if( !empty($additional_html) ){ $output .= $additional_html; } return $output; } } /** * Menu burger */ if (! function_exists('sc_header_burger')) { function sc_header_burger($attr){ extract(shortcode_atts(array( 'image' => '', 'icon' => '', 'desc' => '', 'link' => '', 'icon_position' => 'top', 'icon_position_tablet' => '', 'icon_position_laptop' => '', 'icon_position_mobile' => '', 'icon_align' => 'center', 'icon_align_tablet' => '', 'icon_align_laptop' => '', 'icon_align_mobile' => '', 'hover' => '', 'menu_pos' => '', 'link_title' => '', 'animation' => '', 'separator' => 'off', 'alignment' => 'flex-start', 'alignment_tablet' => 'flex-start', 'alignment_laptop' => 'flex-start', 'alignment_mobile' => 'flex-start', 'icon_animation' => '', 'menu_icon_align' => 'left', 'submenu_icon' => 'fas fa-arrow-dow', 'submenu_subicon' => 'fas fa-arrow-right', ), $attr)); $output = ''; $classes = array('mfn-icon-box', 'mfn-header-menu-burger'); $classes_desc = array(); $close_icon_pos = 'mfn-close-icon-pos-default'; $attr_link = '#'; $nav_name = false; $sidemenu_attr = false; if( empty($menu_pos) ){ $menu_pos = 'right'; } if( !empty($attr['sidebar-menu-close-icon-position']) ){ $close_icon_pos = 'mfn-close-icon-pos-'.$attr['sidebar-menu-close-icon-position']; } if(isset($attr['menu_display']) && $attr['menu_display'] > 0){ $nav_id = get_term_by('id', $attr['menu_display'], 'nav_menu'); if( !empty($nav_id) ) $nav_name = 'data-nav="menu-'.$nav_id->slug.'"'; } if( !empty($attr['header_icon_desc_visibility']) ){ $classes_desc[] = $attr['header_icon_desc_visibility']; } 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 ); } if( !empty($attr['sidebar_type']) && is_numeric($attr['sidebar_type']) && $attr['sidebar_type'] != 'default' ) { $classes[] = 'mfn-header-sidemenu-toggle'; $sidemenu_attr = 'data-sidemenu="'.$attr['sidebar_type'].'"'; }else{ $classes[] = 'mfn-header-menu-toggle'; if( !empty($attr['sidebar_type']) && $attr['sidebar_type'] == 'classic' ) { $classes[] = 'mfn-header-classic-mobile-menu-toggle'; $menu_pos = 'center'; $close_icon_pos = 'mfn-header-classic-mobile-menu-close-icon-hidden'; } } // link if( empty($image) && empty($icon) ) $icon = 'icon-menu-fine'; if( empty($desc) ) $classes[] = 'mfn-icon-box-empty-desc'; $classes = implode(' ', $classes); $classes_desc = implode(' ', $classes_desc); $output .= ''; if( !empty($image) || !empty($icon) ){ $output .= '
'; if( !empty($image) ){ $output .= ''. esc_attr( mfn_get_attachment_data( $image, 'alt' ) ) .''; }elseif( !empty($icon) ){ $output .= ''; } $output .= '
'; } if( !empty($desc) ){ $output .= '
'; $output .= $desc; $output .= '
'; } $output .= '
'; // skip menu if sidebar template is selected if( ! empty($attr['sidebar_type']) && is_numeric($attr['sidebar_type']) ){ return $output; } // tmpl menu $output .= '
'; $output .= ''; require_once( get_theme_file_path('/visual-builder/classes/header-template-items-class.php') ); $ul_classes = array('mfn-header-menu'); // alignment $ul_classes[] = 'mfn-menu-align-'.$alignment; $ul_classes[] = 'mfn-menu-tablet-align-'.$alignment_tablet; $ul_classes[] = 'mfn-menu-laptop-align-'.$alignment_laptop; $ul_classes[] = 'mfn-menu-mobile-align-'.$alignment_mobile; if( !empty($attr['items_align']) ){ $ul_classes[] = 'mfn-items-align-'. esc_attr( $attr['items_align'] ); } if( !empty($attr['items_align_tablet']) ){ $ul_classes[] = 'mfn-items-align-'. esc_attr( $attr['items_align_tablet'] ); } if( !empty($attr['items_align_laptop']) ){ $ul_classes[] = 'mfn-items-align-'. esc_attr( $attr['items_align_laptop'] ); } if( !empty($attr['items_align_mobile']) ){ $ul_classes[] = 'mfn-items-align-'. esc_attr( $attr['items_align_mobile'] ); } // icon align $ul_classes[] = 'mfn-menu-icon-'.$menu_icon_align; // animation if( !empty($animation) ) $ul_classes[] = 'mfn-menu-animation-'.$animation; // separator if( !empty($separator) ) $ul_classes[] = 'mfn-menu-separator-'.$separator; // icon animation if( !empty($icon_animation) ) $ul_classes[] = 'mfn-menu-icon-'.$icon_animation; // submenu display on click $ul_classes[] = 'mfn-menu-submenu-on-click'; // submenu animation if( !empty($attr['submenu_animation']) ) $ul_classes[] = 'mfn-menu-submenu-show-'.$attr['submenu_animation']; // submenu icon display if( !empty($attr['submenu_icon_display']) ) { if( !empty($attr['submenu_icon_animation']) ) $ul_classes[] = 'mfn-menu-submenu-icon-'.$attr['submenu_icon_animation']; } $arg = array( 'container' => false, 'menu_class' => implode(' ', $ul_classes), 'walker' => new Mfn_Vb_Header_Tmpl, 'custom_icon' => '', 'custom_subicon' => '', 'mfn_classes' => true, 'echo' => false ); if(isset($attr['menu_display']) && $attr['menu_display'] > 0) $arg['menu'] = $attr['menu_display']; $output .= wp_nav_menu( $arg ); $output .= '
'; return $output; } } /** * Header Search */ if(! function_exists('sc_header_search')) { function sc_header_search($attr){ extract(shortcode_atts(array( 'placeholder' => '', 'icon' => '' ), $attr)); $args = array(); if( !empty($placeholder) ) $args['placeholder'] = $placeholder; if( !empty($icon) ) $args['icon'] = $icon; $output = ''; $output .= '
'; 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; $output = ''; $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; if(isset($items) && count($items) > 0){ $output = '
'; $title_tag = !empty($attr['heading_tag']) ? $attr['heading_tag'] : 'h3'; // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title heading '. esc_attr($title_class) .'">'.__( 'You may also like…', 'woocommerce' ).''; $output .= '
    '; 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; $output = ''; $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'] ); if(isset($related) && count($related) > 0) { $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 '
'; echo ''; // tags if(count( $product->get_tag_ids() ) > 0): echo ''; endif; // categories echo ''; // sku if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : echo ''; endif; echo ''; echo '
'._n( 'Tag:', 'Tags:', count( $product->get_tag_ids() ), 'woocommerce' ).''.wc_get_product_tag_list($product->get_id()).'
'._n( 'Category:', 'Categories:', count( $product->get_category_ids() ), 'woocommerce' ).''.wc_get_product_category_list($product->get_id()).'
'.__( 'SKU:', 'woocommerce' ).''.$sku.'
'; do_action( 'woocommerce_product_meta_end' ); }elseif(isset($attr['layout']) && $attr['layout'] == 'stacked'){ 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 '
'; 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; } // title tag $title_class = ''; if( ! empty($attr['title_tag']) ){ if( 'p.lead' == $attr['title_tag'] ){ $attr['title_tag'] = 'p'; $title_class = 'lead'; } } 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 '. esc_attr($title_class) .'">'. __( 'Additional information', 'woocommerce' ) .''; } 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 = '
product rating
'; }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' => '', ); if(isset( $attr['breadcrumb_home'] ) && $attr['breadcrumb_home'] == '0'){ $args['home'] = false; } if( $sample ){ // for builder only $output = ''; }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'] ) && ( empty($attr['vb']) || $key == 'description' ) ) 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; // title tag $title_class = ''; if( ! empty($attr['title_tag']) ){ if( 'p.lead' == $attr['title_tag'] ){ $attr['title_tag'] = 'p'; $title_class = 'lead'; } } $output = '<'. mfn_allowed_title_tag($attr['title_tag']) .' class="woocommerce-products-header__title title page-title '. esc_attr($title_class) .'">'; $output .= get_the_title( $product->get_id() ); $output .= ''; 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 col-2' => 2, '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) { // title tag $title_class = ''; if( ! empty($attr['title_tag']) ){ if( 'p.lead' == $attr['title_tag'] ){ $attr['title_tag'] = 'p'; $title_class = 'lead'; } } if( !function_exists('is_woocommerce') ) return; $output = '<'. mfn_allowed_title_tag($attr['title_tag']) .' class="woocommerce-products-header__title page-title '. esc_attr($title_class) .'">'; if(get_option( 'woocommerce_shop_page_id' )){ $output .= woocommerce_page_title( false ); }else{ $output .= 'Shop Title'; } $output .= ''."\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 .= ''; } 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 = ''."\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' => '', 'title_tag' => '', '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); // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // output ----- $output = '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= '
'; $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; $output .= '
'; $output .= '
'; if ($slogan) { $output .= '

'. wp_kses($slogan, mfn_allowed_html()) .'

'; } 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()) .''; } $output .= ''; $output .= '
'; if ($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 .= ''; 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 .= '
'; if ($title) { $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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 .= ''. esc_attr(mfn_get_attachment_data($image_before, 'alt')) .''; } if( $image_output_after = mfn_get_attachment($image_after, $size) ){ $output .= $image_output_after; } else { $output .= ''. esc_attr(mfn_get_attachment_data($image_after, 'alt')) .''; } $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' => '', 'title_tag' => '', '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'; } // 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 .= '
'; $output .= '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; if ($link) { $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) .'">'. wp_kses($title, mfn_allowed_html()) .''; } 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 .= '
  • payment
  • '; }else{ $output .= '
  • '. esc_attr(mfn_get_attachment_data($di['url'], 'alt')) .'
  • '; } } }else{ $output .= '
  • Mastercard
  • '; $output .= '
  • PayPal
  • '; $output .= '
  • ApplePay
  • '; } $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()) .''; } if ($image) { $output .= '
'; $output .= '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= '
'; $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; if ($link) { $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 .= '

'.str_replace('_', ' ', $is_dd).'

'; }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 = '
'; if ( $link ) { // This variable has been safely escaped above in this function $output .= ''; } if ( $image ) { $output .= '
'; $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; $output .= '
'; } $output .= '
'; if ($title) { $title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="themecolor title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; $output .= '
'; } $output .= '
'; if ($link) { $output .= '
'; } $output .= '
'. do_shortcode($content ?? '') .'
'; $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 = '
'; $output .= '
'; $output .= '
'; if ($image) { $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } $output .= '
'; $output .= '
'; if ($title) { $title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h2'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } if ($content) { $output .= '
'. do_shortcode($content ?? '') .'
'; } if ($btn_link) { // This variable has been safely escaped above in this function $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= ''. esc_html($btn_text) .''; $output .= ''; } $output .= '
'; $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 = '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= '
'; if ($image) { $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } $output .= '
'; if ($number) { $output .= ''. esc_html($number) .''; } $output .= '
'; if ($link) { $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()) .''; } $output .= '
'. do_shortcode($content ?? '') .'
'; $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() ) && !empty(Mfn_Builder_Front::$post_id2) && !in_array(get_post_meta(Mfn_Builder_Front::$post_id2, 'mfn_template_type', true), array('footer', 'header')) ) { $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' => '', 'title_tag' => '', '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'; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // 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 .= '
'; 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()) .''; } $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' => '', 'title_tag' => '', 'items_title_tag' => '', 'featured_title_tag' => '', '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; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } $items_title_class = ''; if( ! empty($items_title_tag) ){ if( 'p.lead' == $items_title_tag ){ $items_title_tag = 'p'; $items_title_class = 'lead'; } } $featured_title_class = ''; if( ! empty($featured_title_tag) ){ if( 'p.lead' == $featured_title_tag ){ $featured_title_tag = 'p'; $featured_title_class = 'lead'; } } $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 '. esc_attr($title_class) .'">'. $title .''; } $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 .= ''; $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', 'heading_tag' => '', '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; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } $heading_class = ''; if( ! empty($heading_tag) ){ if( 'p.lead' == $heading_tag ){ $heading_tag = 'p'; $heading_class = 'lead'; } } $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 '. esc_attr($heading_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $output .= '
    '; $first = true; while ($query_blog->have_posts()) { $query_blog->the_post(); $output .= '
  • '; $output .= '
    '; $output .= get_the_post_thumbnail(get_the_ID(), 'blog-portfolio', array( 'class' => 'scale-with-grid' )); $output .= '
    '; $output .= '
    '; $output .= '
    '; $blog_meta = mfn_opts_get('blog-meta'); $output .= ''; $output .= '
    '; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="'. esc_attr($title_class) .'">'. wp_kses(get_the_title(), mfn_allowed_html()) .''; $output .= '
    '; $output .= '
    '; $output .= '
    '; $output .= '
  • '; if ($first) { $first = false; } } wp_reset_postdata(); $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' => '', 'title_tag' => '', '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); // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // 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) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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' => '', 'title_tag' => '', '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; } // 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()) .''; } $output .= '
'; $output .= '
    '; if ($address) { $output .= '
  • '; $output .= ''; $output .= ''. wp_kses_post($address) .''; $output .= '
  • '; } if ($telephone) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($telephone) .'

    '; $output .= '
  • '; } if ($telephone_2) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($telephone_2) .'

    '; $output .= '
  • '; } if ($fax) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($fax) .'

    '; $output .= '
  • '; } if ($email) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($email) .'

    '; $output .= '
  • '; } if ($www) { if (strpos($www, 'http') === 0) { $url = $www; $www = str_replace('http://', '', $www); $www = str_replace('https://', '', $www); } else { $url = 'http'. mfn_ssl() .'://'. $www; } $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($www) .'

    '; $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 .= ''. wp_kses($title, mfn_allowed_html()) .''; } else { $output .= ''. wp_kses($title, mfn_allowed_html()) .''; } $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()) .''; } $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()) .''; } $output .= '
'; $output .= ''.do_shortcode($content ?? '').''; if( is_array( $tabs ) ){ $output .= '
    '; foreach( $tabs as $tab ){ $output .= '
  • '. $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'] .''; $output .= ''; if( !empty($icon) ){ $output .= ''; } if( !empty($active_icon) ){ $output .= ''; } $output .= ''; $output .= '
'; $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 .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } $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 .= ''; break; case 'circle down': $output .= ''; break; case 'curve up': $output .= ''; break; case 'curve down': $output .= ''; break; case 'triangle up': $output .= ''; break; case 'triangle down': $output .= ''; break; default: $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 .= '
'; if ($image) { $output .= '
'; $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; $output .= '
'; } if ($title) { $title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h2'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } if ($price || ($price === '0')) { $output .= '
'; if ($currency_pos != 'right') { $output .= ''. esc_html($currency) .''; } $output .= ''. esc_html($price) .''; if ($currency_pos == 'right') { $output .= ''. esc_html($currency) .''; } $output .= ''. esc_html($period) .''; $output .= '
'; $output .= '
'; } if ($subtitle) { $output .= '

'. wp_kses($subtitle, mfn_allowed_html()) .'

'; } $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' => '', 'title_tag' => '', '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']) .'"'; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // output ----- $output = '
'; $output .= '
'; $output .= '
'; $title_tag = !empty( $attr['title_tag'] ) ? $attr['title_tag'] : 'h3'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. $title_class .'">'. wp_kses($title, mfn_allowed_html()) .''; $output .= '
'; $output .= '
'; if ($button_title) { if ($link) { // This variable has been safely escaped above in this function $output .= ''; } if ($icon) { if( is_array($icon) ){ // svg $output .= ''; } else { // icon $output .= ''; } } $output .= ''. esc_html($button_title) .''; if ($link) { $output .= ''; } } else { if ($link) { // This variable has been safely escaped above in this function $output .= ''; } if( is_array($icon) ){ // svg $output .= ''; } else { // icon $output .= ''; } if ($link) { $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' => '', 'title_tag' => '', '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; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } $output = '
'; // This variable has been safely escaped above in this function $output .= '
'; if ($image) { $output .= '
'. esc_attr(mfn_get_attachment_data($image, 'alt')) .'
'; } 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) .' class="'. esc_attr($title_class) .'">'. esc_html($title) .''; $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 2 [countdown_2] */ if (! function_exists('sc_countdown_2')) { function sc_countdown_2($attr, $content = null) { extract(shortcode_atts(array( 'date' => '12/30/2025 23:59:00', // +12 - add 12 days to current date, [year] also works 'timezone' => '0', 'show' => '', 'show_laptop' => '', 'show_tablet' => '', 'show_mobile' => '', 'align' => 'center', // left / center / right 'separator' => '', // OFF / ON 'separator_sign' => ':', // OFF / ON 'mobile_orientation' => '', // Horizontal / Vertical 'mobile_align' => '', 'mobile_separator' => '', 'order' => '' // drag & drop ), $attr)); // year as shortcode if( ! empty($date) ){ $date = do_shortcode($date); } // add specified number of days, date starts with + if ( ! empty($date) && strpos($date, '+') === 0) { $dateFormat = 'm/d/Y H:i:s'; $daysToAdd = (int) substr($date, 1); $newDate = new DateTime(); $newDate->modify("+$daysToAdd days"); $newDate->setTime(23, 59, 0); $date = $newDate->format($dateFormat); } // class $classes = ['downcount','mfn-countdown']; // separator sign if( empty( $separator_sign ) ){ $separator_sign = ':'; } // show if( ! empty( $show ) ){ $classes[] = 'mfn-countdown-show-'. $show; } if( ! empty( $show_laptop ) ){ $classes[] = 'mfn-countdown-show-laptop-'. $show_laptop; } if( ! empty( $show_tablet ) ){ $classes[] = 'mfn-countdown-show-tablet-'. $show_tablet; } if( ! empty( $show_mobile ) ){ $classes[] = 'mfn-countdown-show-mobile-'. $show_mobile; } // align if( ! empty( $align ) ){ $classes[] = 'mfn-countdown-'. $align; } if( ! empty( $mobile_align ) ){ $classes[] = 'mfn-countdown-mobile-'. $mobile_align; } // mobile orientation if( ! empty( $mobile_orientation ) ){ $classes[] = 'mfn-countdown-mobile-'. $mobile_orientation; $mobile_separator = 'off'; } // separator if( ! empty( $separator ) ){ $classes[] = 'mfn-countdown-separator-'. $separator; } if( ! empty( $mobile_separator ) ){ $classes[] = 'mfn-countdown-separator-mobile-'. $mobile_separator; } // order if( ! empty( $order ) ){ $classes[] = 'mfn-countdown-order-'. str_replace(',','-',$order); } $classes = implode( ' ', $classes ); // print_r($classes); // 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 .= '
'; $output .= '
00
'; $output .= '

'. esc_html($translate['days']) .'

'; $output .= '
'; $output .= '
'. esc_attr($separator_sign) .'
'; $output .= '
'; $output .= '
00
'; $output .= '

'. esc_html($translate['hours']) .'

'; $output .= '
'; $output .= '
'. esc_attr($separator_sign) .'
'; $output .= '
'; $output .= '
00
'; $output .= '

'. esc_html($translate['minutes']) .'

'; $output .= '
'; $output .= '
'. esc_attr($separator_sign) .'
'; $output .= '
'; $output .= '
00
'; $output .= '

'. esc_html($translate['seconds']) .'

'; $output .= '
'; $output .= '
'."\n"; wp_enqueue_style('mfn-element-countdown-2', get_theme_file_uri('/css/elements/countdown-2.css'), null, MFN_THEME_VERSION); 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 [countdown] */ if (! function_exists('sc_countdown')) { function sc_countdown($attr, $content = null) { extract(shortcode_atts(array( 'title_tag' => '', 'date' => '12/30/2025 23:59:00', // +12 - add 12 days to current date 'timezone' => '0', 'show' => '', 'number_size' => '', // for inline shortcode only ), $attr)); // year as shortcode if( ! empty($date) ){ $date = do_shortcode($date); } // add specified number of days, date starts with + if ( ! empty($date) && strpos($date, '+') === 0) { $dateFormat = 'm/d/Y H:i:s'; $daysToAdd = (int) substr($date, 1); $newDate = new DateTime(); $newDate->modify("+$daysToAdd days"); $newDate->setTime(23, 59, 0); $date = $newDate->format($dateFormat); } // 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'; // 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 .= '
00
'; $output .= '
'; $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. esc_html($translate['days']) .''; $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_attr($title_class) .'">'. esc_html($translate['hours']) .''; $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_attr($title_class) .'">'. esc_html($translate['minutes']) .''; $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_attr($title_class) .'">'. esc_html($translate['seconds']) .''; $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' => '', 'title_tag' => '', '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'; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // output ----- $output = '
'; if( $image || $icon ){ $output .= '
'; if ($image) { $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } 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 '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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 = ''. esc_attr($alt) .''; } // 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 .= ''; $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 .= ''."\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 = '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= '
'; $output .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; $output .= ''. esc_attr(mfn_get_attachment_data($image_hover, 'alt')) .''; $output .= '
'; if ($link) { $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 .= '
'; if ($link) { // This variable has been safely escaped above in this function $output .= ''; } $output .= '
'; $output .= do_shortcode($content ?? ''); $output .= '
'; if ($link) { $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()) .''; } 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()) .''; } $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( $attr['button_function'] == 'mfn-copy-to-clipboard' ){ $data_tags[] = 'data-mfncopycode="'.(!empty( $attr['button_function_copy_to_clipboard']) ? esc_attr($attr['button_function_copy_to_clipboard']) : esc_attr($attr['title'])).'"'; if( !empty( $attr['button_function_copy_to_clipboard_tooltip']) ) { $data_tags[] = 'data-tooltip="'.esc_attr($attr['button_function_copy_to_clipboard_tooltip']).'"'; $class .= ' tooltip tooltip-txt'; } } } 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 .= '
'; } // This variable has been safely escaped above in this function $output .= ''; if ($icon) { // This variable has been safely escaped above in this function $output .= ''; } if ($title) { $output .= ''. $title .''; } $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 .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } 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' => '', 'size' => 'be_clients', 'greyscale' => '', ), $attr)); // class $class = ''; if ($greyscale) { $class .= ' greyscale'; } if ($style) { $class .= ' clients_tiles'; } if (! intval($in_row, 10)) { $in_row = 6; } // size if( empty($size) ){ $size = 'be_clients'; } if( 'be_clients' == $size ){ $class .= ' clients_image_default'; } // 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 = ''."\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' => '', 'title_tag' => '', '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'; // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // output ----- $output = ''; if ($clients_query->have_posts()) { $output = '
'; $output .= '
'; if ($title) { $output .= '<'. mfn_allowed_title_tag($title_tag) .' class="title '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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()) .''; } 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 .= ''; $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="'.be_dynamic_data( $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="'. be_dynamic_data( 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 .= ''. esc_attr(mfn_get_attachment_data($image, 'alt')) .''; } } 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 .''; } 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()) .''; } if ( $image ) { $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 .= ''; } 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 ($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 .= '
'; 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 .= ''; } 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 .= ''; } $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 .= ''; 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, 'excerpt_hide' => '', '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'; } if (! empty($excerpt_hide) ) { $class .= ' excerpt_hide'; } // 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() ]; if( count($aCategories) > 0 ){ $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); } $qo = get_queried_object(); $portfolio_page_id = mfn_wpml_ID( mfn_opts_get( 'portfolio-page' ) ); // 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( 'title_tag' => '', '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; } // title tag $title_class = ''; if( ! empty($title_tag) ){ if( 'p.lead' == $title_tag ){ $title_tag = 'p'; $title_class = 'lead'; } } // 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 .= '
    '; while ($offer_query->have_posts()) { $offer_query->the_post(); $output .= '
  • '; // link if ($link = get_post_meta(get_the_ID(), 'mfn-post-link', true)) { $class = 'has-link'; } else { $class = 'no-link'; } // target if (get_post_meta(get_the_ID(), 'mfn-post-target', true)) { $target_escaped = 'target="_blank"'; } else { $target_escaped = false; } $output .= '
    '; $output .= get_the_post_thumbnail(get_the_ID(), 'full', array('class'=>'scale-with-grid' )); $output .= '
    '; $output .= '
    '; if (trim(get_the_title()) || $link) { $output .= '
    '; $output .= '

    '. wp_kses(get_the_title(), mfn_allowed_html()) .'

    '; if ($link) { // This variable has been safely escaped above in this function $output .= ''; $output .= ''; $output .= ''. esc_html(get_post_meta(get_the_ID(), 'mfn-post-link_title', true)) .''; $output .= ''; } $output .= '
    '; } $output .= '
    '; $output .= apply_filters('the_content', get_the_content()); $output .= '
    '; $output .= '
    '; $output .= '
  • '; } $output .= '
'; // pagination $output .= '
1 / '. intval($offer_query->post_count, 10) .'
'; $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 .= '
    '; $i = 1; while ($offer_query->have_posts()) { $offer_query->the_post(); $output .= '
  • '; // the ID $id = get_the_ID(); // link if ($link = get_post_meta($id, 'mfn-post-link', true)) { $class = 'has-link'; } else { $class = 'no-link'; } // target if (get_post_meta($id, 'mfn-post-target', true)) { $target_escaped = 'target="_blank"'; } else { $target_escaped = false; } $output .= '
    '; $output .= get_the_post_thumbnail($id, 'full', array( 'class' => 'scale-with-grid' )); $output .= '
    '; $output .= '
    '; if (trim(get_the_title()) || $link) { $output .= '
    '; $output .= '

    '. wp_kses(get_the_title(), mfn_allowed_html()) .'

    '; if ($link) { // This variable has been safely escaped above in this function $output .= ''; $output .= ''; $output .= ''. esc_html(get_post_meta(get_the_ID(), 'mfn-post-link_title', true)) .''; $output .= ''; } $output .= '
    '; } $output .= '
    '; $output .= apply_filters('the_content', get_the_content()); $output .= '
    '; $output .= '
    '; $output .= ''; $output .= '
  • '; $i++; } $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 '
product rating
'; } // 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 .= '
'; if ($title) { $output .= '

'. wp_kses($title, mfn_allowed_html()) .'

'; } $output .= '
'; $output .= '
    '; if ($content) { $output .= '
  • '; $output .= ''; $output .= ''. do_shortcode($content ?? '') .''; $output .= '
  • '; } if ($telephone) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($telephone) .'

    '; $output .= '
  • '; } if ($email) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($email) .'

    '; $output .= '
  • '; } if ($www) { $output .= '
  • '; $output .= ''; $output .= '

    '. esc_html($www) .'

    '; $output .= '
  • '; } $output .= '
'; $output .= '
'; $output .= '
'; $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()) .''; } $output .= '
'; $output .= '
    '; $i = 1; $output_tabs = ''; foreach ( $mfn_tabs_array as $tab ) { $tab['content'] = be_dynamic_data($tab['content']); $tab['title'] = be_dynamic_data($tab['title']); // check if content contains [tab]|[tabs] $pattern = '/\[tab(\]|s| )/'; if (preg_match($pattern, $tab['content'])) { $tab['content'] = __('Tab shortcode does not work inside another tab.', 'betheme'); } $output .= '
  • '. wp_kses($tab['title'], mfn_allowed_html()) .'
  • '; // This variable has been safely escaped above in this function $output_tabs .= '
    '. do_shortcode($tab['content'] ?? '') .'
    '; $i++; } $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' => '', 'title_tag' => '', '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); // 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 heading '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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' => '', 'title_tag' => '', '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'; } // 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="heading '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; } $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 .= 'progress image'; } 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()) .''; } $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 = '
      '; if ( is_array( $tabs ) ) { // content builder foreach ( $tabs as $tab ) { $output .= '
    • '; $output .= '

      '; if( ! empty( $tab['date'] ) ){ $output .= ''. esc_html( $tab['date'] ) .''; } $output .= wp_kses( $tab['title'], mfn_allowed_html('caption') ); $output .= '

      '; if ( ! empty( $tab['content'] ) ) { $output .= '
      '; $output .= do_shortcode($tab['content'] ?? ''); $output .= '
      '; } $output .= '
    • '; } } else { // shortcode $output .= do_shortcode($content ?? ''); } $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 .= ''. esc_attr(get_post_meta(get_the_ID(), 'mfn-post-author', true)) .''; } $output .= '
      '; $output .= '
      '; $output .= '
      '. get_the_content() .'
      '; $output .= '
      '; $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 .= esc_html(get_post_meta(get_the_ID(), 'mfn-post-author', true)); if ($link) { $output .= ''; } $output .= ''; $output .= ''. get_post_meta(get_the_ID(), 'mfn-post-company', true) .''; $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 .= '
    '; 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 .= ''; $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) { $video = be_dynamic_data($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 .= '
    '; } $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 = "\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 .= '
    '; $output .= ''; if ( mfn_opts_get('keyboard-support') ) { $output .=''; } if( mfn_opts_get('header-search') == 'shop' ){ $output .= ''; } $output .= ''; $output .= ''; $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 .''); }; // 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 .''); }; }; } } } } // GET Elementor, WPB, Gutenberg content if( ! get_post_meta($id, 'mfn-post-hide-content', true) ){ $wp_content = array( htmlentities(get_the_content()) ); } // create regex if( empty($tags_anchors) ) { $tags_anchors = 'h1 h2 h3'; } /*$tags_regex = '/'; foreach(explode(' ', $tags_anchors) as $key => $value){ if($key == 0){ $tags_regex .= '<('.$value.'?.*?'.'<\/'.$value.')>'; }else{ $tags_regex .= '|<('.$value.'?.*?'.'<\/'.$value.')>'; } } $tags_regex .= '/i';*/ $tags_array = explode(' ', $tags_anchors); $escaped_headers = array_map(function($header) { return preg_quote($header, '/'); }, $tags_array); $tags_regex = '/<(' . implode('|', $escaped_headers) . ')[^>]*>(.*?)<\/\1>/si'; // get all headings $highest_heading = 0; $mfn_headings = []; foreach( array_merge($mfn_columns, $wp_content) as $key => $value){ $value = htmlspecialchars_decode($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 .= '<'. mfn_allowed_title_tag($title_tag) .' class="title-inner '. esc_attr($title_class) .'">'. wp_kses($title, mfn_allowed_html()) .''; if( ! empty($allow_hide) ){ $output .= ''; $output .= ''. $text_show .''; $output .= ''. $text_hide .''; $output .= ''; } $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 .= '
    1. '. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .'
    2. '; 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 .= '
    1. '; $output .= '
    2. '. $icon .''. wp_strip_all_tags(do_shortcode($value ?? '')) .'
    3. '; 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');