You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
7.1 KiB
217 lines
7.1 KiB
<?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;
|
|
|
|
}
|
|
}
|
|
|