<?php if ( ! defined( 'WOODMART_THEME_DIR' ) ) { exit( 'No direct script access allowed' );} /** * ------------------------------------------------------------------------------------------------ * Buttons shortcode * ------------------------------------------------------------------------------------------------ */ if ( ! function_exists( 'woodmart_shortcode_button' ) ) { function woodmart_shortcode_button( $atts, $popup = false ) { $wrap_class = apply_filters( 'vc_shortcodes_css_class', '', '', $atts ); extract( shortcode_atts( array( 'title' => 'GO', 'link' => '', 'link_nofollow' => false, 'color' => 'default', 'style' => 'default', 'shape' => 'rectangle', 'size' => 'default', 'align' => 'center', 'button_inline' => 'no', 'full_width' => 'no', 'button_smooth_scroll' => 'no', 'button_smooth_scroll_time' => '100', 'button_smooth_scroll_offset' => '100', 'bg_color' => '', 'bg_color_hover' => '', 'color_scheme' => 'light', 'color_scheme_hover' => 'light', 'woodmart_css_id' => '', 'css' => '', 'css_animation' => 'none', 'el_class' => '', 'wrapper_class' => '', 'icon_fontawesome' => '', 'icon_openiconic' => '', 'icon_typicons' => '', 'icon_entypo' => '', 'icon_linecons' => '', 'icon_monosocial' => '', 'icon_material' => '', 'icon_library' => 'fontawesome', 'icon_position' => 'right', 'icon_type' => 'icon', 'image' => '', 'img_size' => '25x25', 'wd_button_collapsible_content' => 'no', ), $atts ) ); if ( function_exists( 'vc_icon_element_fonts_enqueue' ) && ${'icon_' . $icon_library} ) { vc_icon_element_fonts_enqueue( $icon_library ); } if ( function_exists( 'vc_shortcode_custom_css_class' ) ) { $wrap_class .= ' ' . vc_shortcode_custom_css_class( $css ); } if ( ! empty( $wrapper_class ) ) { $wrap_class .= ' ' . $wrapper_class; } $attributes = woodmart_get_link_attributes( $link, $popup ); $btn_class = 'btn'; $wrapper_attrs = ''; if ( ! $woodmart_css_id ) { $woodmart_css_id = uniqid(); } $id = 'wd-' . $woodmart_css_id; $wrap_class .= ' wd-button-wrapper'; $wrap_class .= woodmart_get_old_classes( ' woodmart-button-wrapper' ); $wrap_class .= woodmart_get_css_animation( $css_animation ); if ( $bg_color || $bg_color_hover ) { $btn_class .= ' btn-scheme-' . $color_scheme; $btn_class .= ' btn-scheme-hover-' . $color_scheme_hover; } else { $btn_class .= ' btn-color-' . $color; } $btn_class .= ' btn-style-' . $style; $btn_class .= ' btn-style-' . $shape; $btn_class .= ' btn-size-' . $size; if ( $full_width == 'yes' ) { $btn_class .= ' btn-full-width'; } if ( 'yes' === $button_smooth_scroll ) { woodmart_enqueue_js_script( 'button-element' ); $wrap_class .= ' wd-smooth-scroll'; $wrapper_attrs .= ' data-smooth-time="' . $button_smooth_scroll_time . '"'; $wrapper_attrs .= ' data-smooth-offset="' . $button_smooth_scroll_offset . '"'; } $wrap_class .= ' text-' . $align; if ( $button_inline == 'yes' ) { $wrap_class .= ' inline-element'; } if ( $el_class != '' ) { $btn_class .= ' ' . $el_class; } if ( 'yes' === $wd_button_collapsible_content ) { woodmart_enqueue_js_script( 'button-show-more' ); $wrap_class .= ' wd-collapsible-button'; } // Icon settings. $icon = ''; if ( 'icon' === $icon_type && ${'icon_' . $icon_library} ) { $btn_class .= ' btn-icon-pos-' . $icon_position; $icon = '<span class="wd-btn-icon"><span class="wd-icon ' . ${'icon_' . $icon_library} . '"></span></span>'; } elseif ( 'image' === $icon_type && ! empty( $image ) ) { $btn_class .= ' btn-icon-pos-' . $icon_position; if ( woodmart_is_svg( wp_get_attachment_image_url( $image ) ) ) { $image_output = woodmart_get_svg_html( $image, $img_size ); } elseif ( function_exists( 'wpb_getImageBySize' ) ) { if ( ! empty( $image['id'] ) ) { $image = $image['id']; } $image_output = wpb_getImageBySize( array( 'attach_id' => $image, 'thumb_size' => $img_size, ) )['thumbnail']; } elseif ( function_exists( 'woodmart_get_image_html' ) ) { $custom_dimension = array(); if ( strpos( $img_size, 'x' ) ) { $custom_dimension = explode( 'x', $img_size ); $custom_dimension = array( 'width' => $custom_dimension[0], 'height' => $custom_dimension[1], ); $img_size = 'custom'; } $image_output = woodmart_get_image_html( array( 'image' => $image, 'image_size' => $img_size, 'image_custom_dimension' => $custom_dimension, ), 'image' ); } elseif ( ! empty( $image['id'] ) ) { $image_output = wp_get_attachment_image( $image['id'], $img_size ); } $icon = '<span class="wd-btn-icon">' . $image_output . '</span>'; } $attributes .= ' class="' . $btn_class . '"'; if ( $link_nofollow ) { $attributes .= ' rel="nofollow"'; } $output = '<div id="' . esc_attr( $id ) . '" class="' . esc_attr( $wrap_class ) . '"' . $wrapper_attrs . '><a ' . $attributes . '>' . esc_html( $title ) . $icon . '</a>'; if ( is_array( $bg_color ) ) { $bg_color = 'rgba(' . $bg_color['r'] . ', ' . $bg_color['g'] . ', ' . $bg_color['b'] . ',' . $bg_color['a'] . ')'; } if ( is_array( $bg_color_hover ) ) { $bg_color_hover = 'rgba(' . $bg_color_hover['r'] . ', ' . $bg_color_hover['g'] . ', ' . $bg_color_hover['b'] . ',' . $bg_color_hover['a'] . ')'; } if ( $bg_color && ! woodmart_is_css_encode( $bg_color ) || $bg_color_hover && ! woodmart_is_css_encode( $bg_color_hover ) ) { $css = ''; // Custom Color $css .= '#' . $id . ' a {'; if ( $style == 'bordered' || $style == 'link' ) { $css .= 'border-color:' . $bg_color . ';'; } else { $css .= 'background-color:' . $bg_color . ';'; } $css .= '}'; $css .= '#' . $id . ' a:hover {'; if ( $style == 'bordered' ) { $css .= 'border-color:' . $bg_color_hover . ';'; $css .= 'background-color:' . $bg_color_hover . ';'; } elseif ( $style == 'link' ) { $css .= 'border-color:' . $bg_color_hover . ';'; } else { $css .= 'background-color:' . $bg_color_hover . ';'; } $css .= '}'; wp_add_inline_style( 'woodmart-inline-css', $css ); } $output .= '</div>'; return $output; } }