File "vc-pricing-table.php"
Full Path: /home/jlklyejr/public_html/wp-content/test/wp-content/plugins/js_composer/include/classes/shortcodes/vc-pricing-table.php
File size: 5.41 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
/**
* WPBakery Page Builder shortcodes
*
* @package WPBakeryPageBuilder
* @since 7.0
*/
/**
* Class WPBakeryShortCode_Vc_Pricing_Table
* @since 7.0
*/
class WPBakeryShortCode_Vc_Pricing_Table extends WPBakeryShortCode {
/**
* Template variables
* @var array
* @since 7.0
*/
protected $template_vars = array();
/**
* Build templates where we are keeping element optionality
* @since 7.0
*
* @param array $atts
* @param string $content
* @throws Exception
*/
public function buildTemplate( $atts, $content ) {
$output = array();
$inline_css = array();
$main_wrapper_classes = array( 'wpb-pricing-table' );
if ( ! empty( $atts['el_class'] ) ) {
$main_wrapper_classes[] = $atts['el_class'];
}
if ( ! empty( $atts['css_animation'] ) ) {
$main_wrapper_classes[] = $this->getCSSAnimation( $atts['css_animation'] );
}
if ( ! empty( $atts['css'] ) ) {
$main_wrapper_classes[] = vc_shortcode_custom_css_class( $atts['css'] );
}
if ( isset( $atts['style'] ) && 'custom' === $atts['style'] ) {
if ( ! empty( $atts['custom_background'] ) ) {
$inline_css[] = vc_get_css_color( 'background-color', $atts['custom_background'] );
}
}
$output['inline-css'] = $inline_css;
$output['css-class'] = $main_wrapper_classes;
$output['content'] = wpb_js_remove_wpautop( $content, true );
$is_custom_heading = isset( $atts['use_custom_fonts_heading'] ) && 'true' === $atts['use_custom_fonts_heading'];
$default_heading = '<h3 class="wpb-plan-title">' . esc_html( $atts['heading'] ) . '</h2>';
$output['heading'] = $is_custom_heading ? $this->getHeading( 'heading', $atts ) : $default_heading;
$is_custom_subheading = isset( $atts['use_custom_fonts_subheading'] ) && 'true' === $atts['use_custom_fonts_subheading'];
$default_subheading = '<p class="wpb-plan-description">' . esc_html( $atts['subheading'] ) . '</p>';
$output['subheading'] = $is_custom_subheading ? $this->getHeading( 'subheading', $atts ) : $default_subheading;
$is_button_active = isset( $atts['add_button'] ) && 'yes' === $atts['add_button'];
if ( $is_button_active ) {
$output['button'] = $this->getButton( $atts );
}
$this->template_vars = $output;
}
/**
* Get custom element heading.
* @since 7.0
*
* @param string $tag
* @param array $atts
*
* @return string
* @throws Exception
*/
public function getHeading( $tag, $atts ) {
if ( isset( $atts[ $tag ] ) && '' !== trim( $atts[ $tag ] ) ) {
$custom_heading = wpbakery()->getShortCode( 'vc_custom_heading' );
$data = vc_map_integrate_parse_atts( $this->shortcode, 'vc_custom_heading', $atts, $tag . '_' );
$data['font_container'] = implode( '|', array_filter( array(
'tag:' . $tag,
$data['font_container'],
) ) );
$data['text'] = $atts[ $tag ]; // provide text to shortcode
return $custom_heading->render( array_filter( $data ) );
}
return '';
}
/**
* Get custom element button.
* @since 7.0
*
* @param array $atts
* @return string
* @throws Exception
*/
public function getButton( $atts ) {
$data = vc_map_integrate_parse_atts( $this->shortcode, 'vc_btn', $atts, 'btn_' );
if ( $data ) {
$btn = wpbakery()->getShortCode( 'vc_btn' );
if ( is_object( $btn ) ) {
return $btn->render( array_filter( $data ) );
}
}
return '';
}
/**
* We keep some element setting here.
* @since 7.0
*
* @param string $string
* @return mixed|string
*/
public function getTemplateVariable( $string ) {
if ( is_array( $this->template_vars ) && isset( $this->template_vars[ $string ] ) ) {
return $this->template_vars[ $string ];
}
return '';
}
/**
* Some styles that depend on element setting we out them as inline.
* @since 7.0
*
* @param array $atts
* @param string $element_id
*
* @return string
*/
public function getInlineStyle( $atts, $element_id ) {
$color = empty( $atts['markers_color'] ) ? '#5188F1' : str_replace( '#', '', $atts['markers_color'] );
$style = '<style>';
$style .= '#' . esc_attr( $element_id ) . ' .wpb-plan-features li::before { ';
$style .= ' content: ""; ';
$style .= ' display: inline-block; ';
$style .= ' margin: 0 10px 0 0;';
$style .= ' width: 18px; ';
$style .= ' height: 18px; ';
$style .= ' vertical-align: middle; ';
$style .= ' background: url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'22px\' height=\'22px\' viewBox=\'0 0 22 22\' version=\'1.1\'%3E%3Cg id=\'Page-1\' stroke=\'none\' stroke-width=\'1\' fill=\'none\' fill-rule=\'evenodd\'%3E%3Cg id=\'Artboard\' transform=\'translate(-472.000000, -546.000000)\' fill-rule=\'nonzero\'%3E%3Cg id=\'wpb-pricing-table-element\' transform=\'translate(445.000000, 222.000000)\'%3E%3Cg id=\'bullet\' transform=\'translate(27.000000, 324.000000)\'%3E%3Cpath d=\'M22,10.9999756 C22,17.0751668 17.0751778,22 11,22 C4.92487111,22 0,17.0751668 0,10.9999756 C0,4.92488206 4.92487111,0 11,0 C17.0751778,0 22,4.92488206 22,10.9999756 Z\' id=\'Path\' fill=\'%23'
. $color .
'\'/%3E%3Cpolygon id=\'Path\' fill=\'%23FFFFFF\' transform=\'translate(11.011123, 9.631788) rotate(-45.000000) translate(-11.011123, -9.631788) \' points=\'8.39375516 6.63178844 8.39375516 10.0231025 16.2371538 10.0231255 16.2371538 12.6317884 5.78509217 12.6317133 5.78509217 6.63178844\'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E") center no-repeat; ';
$style .= ' background-size: 18px; ';
$style .= '}</style>';
return $style;
}
}