Server IP : 192.64.112.168 / Your IP : 3.133.155.253 Web Server : Apache System : Linux nc-ph-2300-85.bluforrest.com 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Sat Dec 2 05:23:44 EST 2023 x86_64 User : expressoneac ( 1128) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/expressoneac/www/wp-content/themes/woodmart/inc/integrations/visual-composer/ |
Upload File : |
<?php /** * This file adds some custom properties to the WPB editor. * * @package Woodmart. */ if ( ! defined( 'WOODMART_THEME_DIR' ) ) { exit( 'No direct script access allowed' ); } // **********************************************************************// // Features that add GLOBAL maps to WPB Composer // **********************************************************************// if ( ! function_exists( 'woodmart_vc_map' ) ) { /** * Register element map. * * @param string $tag Element tag. * @param callable-string $callback Map callback. * * @return void */ function woodmart_vc_map( $tag, $callback ) { vc_lean_map( $tag, $callback ); } } if ( ! function_exists( 'woodmart_vc_row_custom_options' ) ) { /** * Update custom params map to Default Row element in WPBakery. * * @throws Exception . */ function woodmart_vc_row_custom_options() { $general_options = array( /** * CSS ID Option. */ array( 'type' => 'woodmart_css_id', 'param_name' => 'woodmart_css_id', ), array( 'type' => 'dropdown', 'heading' => esc_html__( 'Row stretch CSS', 'woodmart' ), 'param_name' => 'woodmart_stretch_content', 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'Stretch row', 'woodmart' ) => 'section-stretch', esc_html__( 'Stretch row and content', 'woodmart' ) => 'section-stretch-content', esc_html__( 'Stretch row and content (no paddings)', 'woodmart' ) => 'section-stretch-content-no-pd', ), 'description' => esc_html__( 'Enable this option instead of native WPBakery one to stretch row with CSS and not with JS.', 'woodmart' ), ), ); $general_options_inner = array( /** * CSS ID Option. */ array( 'type' => 'woodmart_css_id', 'param_name' => 'woodmart_css_id', ), ); $design_options = array( /** * Responsive Spacing Option. */ array( 'type' => 'woodmart_responsive_spacing', 'param_name' => 'responsive_spacing', 'group' => esc_html__( 'Design Options', 'js_composer' ), ), /** * Background Position Option. */ array( 'type' => 'dropdown', 'heading' => esc_html__( 'Background position', 'woodmart' ), 'param_name' => 'woodmart_bg_position', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'value' => array( esc_html__( 'None', 'woodmart' ) => '', esc_html__( 'Left top', 'woodmart' ) => 'left-top', esc_html__( 'Left center', 'woodmart' ) => 'left-center', esc_html__( 'Left bottom', 'woodmart' ) => 'left-bottom', esc_html__( 'Right top', 'woodmart' ) => 'right-top', esc_html__( 'Right center', 'woodmart' ) => 'right-center', esc_html__( 'Right bottom', 'woodmart' ) => 'right-bottom', esc_html__( 'Center top', 'woodmart' ) => 'center-top', esc_html__( 'Center center', 'woodmart' ) => 'center-center', esc_html__( 'Center bottom', 'woodmart' ) => 'center-bottom', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Responsive Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Disable background image', 'woodmart' ), 'param_name' => 'responsive_tabs', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', ), /** * Disable background image on mobile Option. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on mobile devices', 'woodmart' ), 'param_name' => 'mobile_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'mobile' ), ), ), /** * Disable background image on tablet Option. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on tablet devices', 'woodmart' ), 'param_name' => 'tablet_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'tablet' ), ), ), /** * Parallax Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Background parallax', 'woodmart' ), 'param_name' => 'woodmart_parallax', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), ); $advanced_options = array( /** * Z Index Option. */ array( 'type' => 'woodmart_switch', 'param_name' => 'wd_z_index', 'heading' => esc_html__( 'Z Index', 'woodmart' ), 'hint' => esc_html__( 'Enable this option if you would like to display this element above other elements on the page. You can specify a custom value as well.', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'wd_number', 'param_name' => 'wd_z_index_custom', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'devices' => array( 'desktop' => array( 'value' => 35, ), ), 'min' => -1, 'max' => 1000, 'step' => 1, 'selectors' => array( '{{WRAPPER}}' => array( 'z-index: {{VALUE}}', ), ), 'dependency' => array( 'element' => 'wd_z_index', 'value' => array( 'yes' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Disable overflow. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Disable "overflow:hidden;"', 'woodmart' ), 'hint' => esc_html__( 'Use this option if you have some elements inside this row that needs to overflow the boundaries. Examples: mega menu, filters, search with categories dropdowns.', 'woodmart' ), 'param_name' => 'woodmart_disable_overflow', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Responsive Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Row reverse', 'woodmart' ), 'param_name' => 'responsive_tabs_advanced', 'hint' => esc_html__( 'Reverse row columns on mobile and tablet devices.', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'content_width', 'value' => array( 'custom' ), ), ), /** * Row reverse mobile. */ array( 'type' => 'woodmart_switch', 'param_name' => 'row_reverse_mobile', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_advanced', 'value' => array( 'mobile' ), ), ), /** * Row reverse tablet. */ array( 'type' => 'woodmart_switch', 'param_name' => 'row_reverse_tablet', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_advanced', 'value' => array( 'tablet' ), ), ), ); /** * Gradient option. */ if ( apply_filters( 'woodmart_gradients_enabled', true ) ) { $design_options[] = array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Background gradient', 'woodmart' ), 'param_name' => 'woodmart_gradient_switch', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ); $design_options[] = array( 'type' => 'woodmart_gradient', 'param_name' => 'woodmart_color_gradient', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'dependency' => array( 'element' => 'woodmart_gradient_switch', 'value' => array( 'yes' ), ), ); } /** * Box Shadow Option. */ $design_options[] = array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Box Shadow', 'woodmart' ), 'group' => esc_html__( 'Design Options', 'js_composer' ), 'param_name' => 'woodmart_box_shadow', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ); $design_options[] = array( 'type' => 'wd_box_shadow', 'param_name' => 'wd_box_shadow', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'selectors' => array( '{{WRAPPER}}' => array( 'box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}};', ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'woodmart_box_shadow', 'value' => array( 'yes' ), ), 'default' => array( 'horizontal' => '0', 'vertical' => '0', 'blur' => '9', 'spread' => '0', 'color' => 'rgba(0, 0, 0, .15)', ), ); vc_add_params( 'vc_row', $general_options ); vc_add_params( 'vc_row', $design_options ); vc_add_params( 'vc_row', $advanced_options ); vc_add_params( 'vc_row_inner', $general_options_inner ); vc_add_params( 'vc_row_inner', $design_options ); vc_add_params( 'vc_row_inner', $advanced_options ); } add_action( 'vc_before_init', 'woodmart_vc_row_custom_options' ); } if ( ! function_exists( 'woodmart_vc_column_custom_options' ) ) { /** * Update custom params map to Default Column element in WPBakery. * * @throws Exception . */ function woodmart_vc_column_custom_options() { $general_options = array( /** * CSS ID Option. */ array( 'type' => 'woodmart_css_id', 'param_name' => 'woodmart_css_id', ), /** * Color Scheme Param. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Color Scheme', 'woodmart' ), 'param_name' => 'woodmart_color_scheme', 'value' => array( esc_html__( 'Inherit', 'woodmart' ) => '', esc_html__( 'Light', 'woodmart' ) => 'light', esc_html__( 'Dark', 'woodmart' ) => 'dark', ), ), /** * Parallax On Scroll Option. */ woodmart_parallax_scroll_map( 'parallax_scroll' ), woodmart_parallax_scroll_map( 'scroll_x' ), woodmart_parallax_scroll_map( 'scroll_y' ), woodmart_parallax_scroll_map( 'scroll_z' ), woodmart_parallax_scroll_map( 'scroll_smooth' ), /** * Enable sticky column Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Enable sticky column', 'woodmart' ), 'description' => esc_html__( 'Also enable equal columns height for the parent row to make it work', 'woodmart' ), 'param_name' => 'woodmart_sticky_column', 'true_state' => 'true', 'false_state' => 'false', 'default' => 'false', 'dependency' => array( 'element' => 'wd_column_role', 'value' => array( '' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'textfield', 'heading' => esc_html__( 'Sticky column offset', 'woodmart' ), 'param_name' => 'woodmart_sticky_column_offset', 'dependency' => array( 'element' => 'woodmart_sticky_column', 'value' => array( 'true' ), ), 'value' => 150, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Text align Option. */ array( 'type' => 'dropdown', 'heading' => esc_html__( 'Text align', 'woodmart' ), 'param_name' => 'woodmart_text_align', 'value' => array( esc_html__( 'Choose', 'woodmart' ) => '', esc_html__( 'Left', 'woodmart' ) => 'left', esc_html__( 'Center', 'woodmart' ) => 'center', esc_html__( 'Right', 'woodmart' ) => 'right', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Collapsible content Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Collapsible content', 'woodmart' ), 'hint' => esc_html__( 'Limit the column height and add the "Read more" button. IMPORTANT: you need to add our "Button" element to the end of this column and enable an appropriate option there as well.', 'woodmart' ), 'param_name' => 'wd_collapsible_content_switcher', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'dependency' => array( 'element' => 'wd_column_role', 'value' => array( '' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'wd_slider', 'param_name' => 'wd_collapsible_content_max_height', 'heading' => esc_html__( 'Column content height', 'woodmart' ), 'devices' => array( 'desktop' => array( 'unit' => 'px', 'value' => 300, ), 'tablet' => array( 'unit' => 'px', 'value' => 200, ), 'mobile' => array( 'unit' => 'px', 'value' => 100, ), ), 'range' => array( 'px' => array( 'min' => 1, 'max' => 1000, 'step' => 1, ), ), 'selectors' => array( '{{WRAPPER}}.wd-collapsible-content > .vc_column-inner' => array( 'max-height: {{VALUE}}{{UNIT}};', ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'wd_collapsible_content_switcher', 'value' => array( 'yes' ), ), ), array( 'type' => 'wd_colorpicker', 'param_name' => 'wd_collapsible_content_fade_out_color', 'heading' => esc_html__( 'Fade out color', 'woodmart' ), 'selectors' => array( '{{WRAPPER}}.wd-collapsible-content:not(.wd-opened) > .vc_column-inner > .wpb_wrapper:after' => array( 'color: {{VALUE}};', ), ), 'default' => array( 'value' => '#fff', ), 'dependency' => array( 'element' => 'wd_collapsible_content_switcher', 'value' => array( 'yes' ), ), ), /** Vertical Alignment */ array( 'type' => 'wd_select', 'heading' => esc_html__( 'Vertical alignment', 'woodmart' ), 'param_name' => 'vertical_alignment', 'style' => 'select', 'selectors' => array( '{{WRAPPER}} > .vc_column-inner > .wpb_wrapper' => array( 'align-items: {{VALUE}};', ), ), 'devices' => array( 'desktop' => array( 'value' => '', ), 'tablet' => array( 'value' => '', ), 'mobile' => array( 'value' => '', ), ), 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'Top', 'woodmart' ) => 'flex-start', esc_html__( 'Middle', 'woodmart' ) => 'center', esc_html__( 'Bottom', 'woodmart' ) => 'flex-end', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** Horizontal Alignment */ array( 'type' => 'wd_select', 'heading' => esc_html__( 'Horizontal alignment', 'woodmart' ), 'param_name' => 'horizontal_alignment', 'style' => 'select', 'selectors' => array( '{{WRAPPER}} > .vc_column-inner > .wpb_wrapper' => array( 'justify-content: {{VALUE}}', ), ), 'devices' => array( 'desktop' => array( 'value' => '', ), 'tablet' => array( 'value' => '', ), 'mobile' => array( 'value' => '', ), ), 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'Start', 'woodmart' ) => 'flex-start', esc_html__( 'Center', 'woodmart' ) => 'center', esc_html__( 'End', 'woodmart' ) => 'flex-end', esc_html__( 'Space Between', 'woodmart' ) => 'space-between', esc_html__( 'Space Around', 'woodmart' ) => 'space-around', esc_html__( 'Space Evenly', 'woodmart' ) => 'space-evenly', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** Off canvas column */ array( 'type' => 'dropdown', 'heading' => __( 'Column role for "off-canvas layout"', 'woodmart' ), 'description' => esc_html__( 'You can create your page layout with an off-canvas sidebar. In this case, you need to have two columns: one will be set as the off-canvas sidebar and another as the content. NOTE: you need to also display the Off-canvas button element somewhere in your content column to open the sidebar. Also, you need to enable them on specific devices synchronously.', 'woodmart' ), 'param_name' => 'wd_column_role', 'value' => array( esc_html__( 'None', 'woodmart' ) => '', esc_html__( 'Off canvas column', 'woodmart' ) => 'offcanvas', esc_html__( 'Content column', 'woodmart' ) => 'content', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Desktop', 'woodmart' ), 'param_name' => 'wd_column_role_offcanvas_desktop', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'offcanvas' ), ), ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Tablet', 'woodmart' ), 'param_name' => 'wd_column_role_offcanvas_tablet', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'offcanvas' ), ), ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Mobile', 'woodmart' ), 'param_name' => 'wd_column_role_offcanvas_mobile', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'offcanvas' ), ), ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Desktop', 'woodmart' ), 'param_name' => 'wd_column_role_content_desktop', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'content' ), ), ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Tablet', 'woodmart' ), 'param_name' => 'wd_column_role_content_tablet', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'content' ), ), ), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Mobile', 'woodmart' ), 'param_name' => 'wd_column_role_content_mobile', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-4 vc_column', 'wd_dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'content' ), ), ), array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Off canvas alignment', 'woodmart' ), 'param_name' => 'wd_off_canvas_alignment', 'value' => array( esc_html__( 'Left', 'woodmart' ) => 'left', esc_html__( 'Right', 'woodmart' ) => 'right', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', 'dependency' => array( 'element' => 'wd_column_role', 'value' => array( 'offcanvas' ), ), ), ); $design_option = array( /** * Background Position Option. */ array( 'type' => 'dropdown', 'heading' => esc_html__( 'Background position', 'woodmart' ), 'param_name' => 'woodmart_bg_position', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'value' => array( esc_html__( 'None', 'woodmart' ) => '', esc_html__( 'Left top', 'woodmart' ) => 'left-top', esc_html__( 'Left center', 'woodmart' ) => 'left-center', esc_html__( 'Left bottom', 'woodmart' ) => 'left-bottom', esc_html__( 'Right top', 'woodmart' ) => 'right-top', esc_html__( 'Right center', 'woodmart' ) => 'right-center', esc_html__( 'Right bottom', 'woodmart' ) => 'right-bottom', esc_html__( 'Center top', 'woodmart' ) => 'center-top', esc_html__( 'Center center', 'woodmart' ) => 'center-center', esc_html__( 'Center bottom', 'woodmart' ) => 'center-bottom', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Responsive Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Disable background image', 'woodmart' ), 'param_name' => 'responsive_tabs', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'content_width', 'value' => array( 'custom' ), ), ), /** * Hide bg img on mobile. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on mobile devices', 'woodmart' ), 'param_name' => 'mobile_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'mobile' ), ), ), /** * Hide bg img on tablet. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on tablet devices', 'woodmart' ), 'param_name' => 'tablet_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'tablet' ), ), ), /** * Parallax Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Background parallax', 'woodmart' ), 'param_name' => 'woodmart_parallax', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Box Shadow Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Box Shadow', 'woodmart' ), 'group' => esc_html__( 'Design Options', 'js_composer' ), 'param_name' => 'woodmart_box_shadow', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'wd_box_shadow', 'param_name' => 'wd_box_shadow', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'selectors' => array( '{{WRAPPER}} > .vc_column-inner' => array( 'box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}};', ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'woodmart_box_shadow', 'value' => array( 'yes' ), ), 'default' => array( 'horizontal' => '0', 'vertical' => '0', 'blur' => '9', 'spread' => '0', 'color' => 'rgba(0, 0, 0, .15)', ), ), /** * Responsive Spacing Option. */ array( 'type' => 'woodmart_responsive_spacing', 'param_name' => 'responsive_spacing', 'group' => esc_html__( 'Design Options', 'js_composer' ), ), ); $responsive_options = array( /** * Responsive Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Reset margin (deprecated)', 'woodmart' ), 'param_name' => 'responsive_tabs_advanced', 'group' => esc_html__( 'Responsive Options', 'woodmart' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'content_width', 'value' => array( 'custom' ), ), ), /** * Reset margin (deprecated) on mobile Option. */ array( 'type' => 'woodmart_switch', 'param_name' => 'mobile_reset_margin', 'group' => esc_html__( 'Responsive Options', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_advanced', 'value' => array( 'mobile' ), ), ), /** * Reset margin (deprecated) on tablet Option. */ array( 'type' => 'woodmart_switch', 'param_name' => 'tablet_reset_margin', 'group' => esc_html__( 'Responsive Options', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_advanced', 'value' => array( 'tablet' ), ), ), ); $advanced_options = array( /** * Z Index. */ array( 'type' => 'woodmart_switch', 'param_name' => 'wd_z_index', 'heading' => esc_html__( 'Z Index', 'woodmart' ), 'hint' => esc_html__( 'Enable this option if you would like to display this element above other elements on the page. You can specify a custom value as well.', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'wd_number', 'param_name' => 'wd_z_index_custom', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'devices' => array( 'desktop' => array( 'value' => 35, ), ), 'min' => -1, 'max' => 1000, 'step' => 1, 'selectors' => array( '{{WRAPPER}}' => array( 'z-index: {{VALUE}}', ), ), 'dependency' => array( 'element' => 'wd_z_index', 'value' => array( 'yes' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), ); vc_add_params( 'vc_column', $general_options ); vc_add_params( 'vc_column', $design_option ); vc_add_params( 'vc_column', $responsive_options ); vc_add_params( 'vc_column', $advanced_options ); vc_add_params( 'vc_column_inner', $general_options ); vc_add_params( 'vc_column_inner', $design_option ); vc_add_params( 'vc_column_inner', $advanced_options ); } add_action( 'vc_before_init', 'woodmart_vc_column_custom_options' ); } if ( ! function_exists( 'woodmart_vc_section_custom_options' ) ) { /** * Update custom params map to Default Section element in WPBakery. * * @throws Exception . */ function woodmart_vc_section_custom_options() { $general_options = array( /** * CSS ID Option. */ array( 'type' => 'woodmart_css_id', 'param_name' => 'woodmart_css_id', ), array( 'type' => 'dropdown', 'heading' => esc_html__( 'Section stretch CSS', 'woodmart' ), 'param_name' => 'woodmart_stretch_content', 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'Stretch section', 'woodmart' ) => 'section-stretch', esc_html__( 'Stretch section and content', 'woodmart' ) => 'section-stretch-content', ), 'description' => esc_html__( 'Enable this option instead of native WPBakery one to stretch section with CSS and not with JS.', 'woodmart' ), ), ); $design_options = array( /** * Responsive Spacing Option. */ array( 'type' => 'woodmart_responsive_spacing', 'param_name' => 'responsive_spacing', 'group' => esc_html__( 'Design Options', 'js_composer' ), ), /** * Background position Option. */ array( 'type' => 'dropdown', 'heading' => esc_html__( 'Background position', 'woodmart' ), 'param_name' => 'woodmart_bg_position', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'value' => array( esc_html__( 'None', 'woodmart' ) => '', esc_html__( 'Left top', 'woodmart' ) => 'left-top', esc_html__( 'Left center', 'woodmart' ) => 'left-center', esc_html__( 'Left bottom', 'woodmart' ) => 'left-bottom', esc_html__( 'Right top', 'woodmart' ) => 'right-top', esc_html__( 'Right center', 'woodmart' ) => 'right-center', esc_html__( 'Right bottom', 'woodmart' ) => 'right-bottom', esc_html__( 'Center top', 'woodmart' ) => 'center-top', esc_html__( 'Center center', 'woodmart' ) => 'center-center', esc_html__( 'Center bottom', 'woodmart' ) => 'center-bottom', ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Responsive Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Disable background image', 'woodmart' ), 'param_name' => 'responsive_tabs', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', ), /** * Disable background image on mobile Option. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on mobile devices', 'woodmart' ), 'param_name' => 'mobile_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'mobile' ), ), ), /** * Disable background image on tablet Option. */ array( 'type' => 'woodmart_switch', 'hint' => esc_html__( 'Turn on to reset background image on tablet devices', 'woodmart' ), 'param_name' => 'tablet_bg_img_hidden', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'tablet' ), ), ), /** * Parallax Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Background parallax', 'woodmart' ), 'param_name' => 'woodmart_parallax', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), ); $advanced_options = array( /** * Z Index Option. */ array( 'type' => 'woodmart_switch', 'param_name' => 'wd_z_index', 'heading' => esc_html__( 'Z Index', 'woodmart' ), 'hint' => esc_html__( 'Enable this option if you would like to display this element above other elements on the page. You can specify a custom value as well.', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), array( 'type' => 'wd_number', 'param_name' => 'wd_z_index_custom', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'devices' => array( 'desktop' => array( 'value' => 35, ), ), 'min' => -1, 'max' => 1000, 'step' => 1, 'selectors' => array( '{{WRAPPER}}' => array( 'z-index: {{VALUE}}', ), ), 'dependency' => array( 'element' => 'wd_z_index', 'value' => array( 'yes' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), /** * Disable Overflow Option. */ array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Disable "overflow:hidden;"', 'woodmart' ), 'hint' => esc_html__( 'Use this option if you have some elements inside this row that needs to overflow the boundaries. Examples: mega menu, filters, search with categories dropdowns.', 'woodmart' ), 'param_name' => 'woodmart_disable_overflow', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', ), ); if ( apply_filters( 'woodmart_gradients_enabled', true ) ) { $design_options[] = array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Background gradient', 'woodmart' ), 'param_name' => 'woodmart_gradient_switch', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ); $design_options[] = array( 'type' => 'woodmart_gradient', 'param_name' => 'woodmart_color_gradient', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'dependency' => array( 'element' => 'woodmart_gradient_switch', 'value' => array( 'yes' ), ), ); } /** * Box Shadow Option. */ $design_options[] = array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Box Shadow', 'woodmart' ), 'group' => esc_html__( 'Design Options', 'js_composer' ), 'param_name' => 'woodmart_box_shadow', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ); $design_options[] = array( 'type' => 'wd_box_shadow', 'param_name' => 'wd_box_shadow', 'group' => esc_html__( 'Design Options', 'js_composer' ), 'selectors' => array( '{{WRAPPER}}' => array( 'box-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{SPREAD}}px {{COLOR}};', ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'woodmart_box_shadow', 'value' => array( 'yes' ), ), 'default' => array( 'horizontal' => '0', 'vertical' => '0', 'blur' => '9', 'spread' => '0', 'color' => 'rgba(0, 0, 0, .15)', ), ); vc_add_params( 'vc_section', $general_options ); vc_add_params( 'vc_section', $design_options ); vc_add_params( 'vc_section', $advanced_options ); } add_action( 'vc_before_init', 'woodmart_vc_section_custom_options' ); } if ( ! function_exists( 'woodmart_vc_empty_space_custom_options' ) ) { /** * Update custom params map to Default Empty Space element in WPBakery. * * @throws Exception . */ function woodmart_vc_empty_space_custom_options() { $advanced_options = array( /** * Hide empty space Options. */ array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Hide empty space', 'woodmart' ), 'param_name' => 'responsive_tabs', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'tabs' => true, 'value' => array( esc_html__( 'Large', 'woodmart' ) => 'large', esc_html__( 'Medium', 'woodmart' ) => 'medium', esc_html__( 'Small', 'woodmart' ) => 'small', ), 'default' => 'large', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', ), /** * Hide on large. */ array( 'type' => 'woodmart_switch', 'param_name' => 'woodmart_hide_large', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'large' ), ), ), /** * Hide on medium. */ array( 'type' => 'woodmart_switch', 'param_name' => 'woodmart_hide_medium', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'medium' ), ), ), /** * Hide on small. */ array( 'type' => 'woodmart_switch', 'param_name' => 'woodmart_hide_small', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 1, 'false_state' => 0, 'default' => 0, 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'small' ), ), ), ); vc_add_params( 'vc_empty_space', $advanced_options ); } add_action( 'vc_before_init', 'woodmart_vc_empty_space_custom_options' ); } if ( ! function_exists( 'woodmart_vc_column_text_custom_options' ) ) { /** * Update custom params map to Default Column Text element in WPBakery. * * @throws Exception . */ function woodmart_vc_column_text_custom_options() { $design_options = array( woodmart_get_vc_display_inline_map(), array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Text larger', 'woodmart' ), 'param_name' => 'text_larger', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), woodmart_get_vc_animation_map( 'wd_animation' ), woodmart_get_vc_animation_map( 'wd_animation_delay' ), woodmart_get_vc_animation_map( 'wd_animation_duration' ), array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Color Scheme', 'woodmart' ), 'param_name' => 'woodmart_color_scheme', 'value' => array( esc_html__( 'Inherit', 'woodmart' ) => '', esc_html__( 'Light', 'woodmart' ) => 'light', esc_html__( 'Dark', 'woodmart' ) => 'dark', ), ), ); vc_add_params( 'vc_column_text', $design_options ); } add_action( 'vc_before_init', 'woodmart_vc_column_text_custom_options' ); } if ( ! function_exists( 'woodmart_vc_images_carousel_custom_options' ) ) { /** * Update custom params map to Default Images Carousel element in WPBakery. * * @throws Exception . */ function woodmart_vc_images_carousel_custom_options() { vc_remove_param( 'vc_images_carousel', 'mode' ); vc_remove_param( 'vc_images_carousel', 'partial_view' ); } add_action( 'vc_before_init', 'woodmart_vc_images_carousel_custom_options' ); } if ( ! function_exists( 'woodmart_vc_single_image_custom_options' ) ) { /** * Update custom params map to Default Single Image element in WPBakery. * * @throws Exception . */ function woodmart_vc_single_image_custom_options() { $general_options = array( /** * Woodmart Animation Option. */ woodmart_get_vc_animation_map( 'wd_animation' ), woodmart_get_vc_animation_map( 'wd_animation_delay' ), woodmart_get_vc_animation_map( 'wd_animation_duration' ), /** * Parallax On Scroll Option. */ woodmart_parallax_scroll_map( 'parallax_scroll' ), woodmart_parallax_scroll_map( 'scroll_x' ), woodmart_parallax_scroll_map( 'scroll_y' ), woodmart_parallax_scroll_map( 'scroll_z' ), woodmart_parallax_scroll_map( 'scroll_smooth' ), ); $advance_options = array( array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Display inline', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'param_name' => 'woodmart_inline', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', ), ); vc_add_params( 'vc_single_image', $general_options ); vc_add_params( 'vc_single_image', $advance_options ); } add_action( 'vc_before_init', 'woodmart_vc_single_image_custom_options' ); } if ( ! function_exists( 'woodmart_contact_form_7_custom_options' ) ) { /** * Update custom params map to Default Contact Form 7 element in WPBakery. * * @throws Exception . */ function woodmart_contact_form_7_custom_options() { $params = array( array( 'type' => 'woodmart_title_divider', 'holder' => 'div', 'title' => esc_html__( 'Style', 'woodmart' ), 'param_name' => 'style_divider', ), array( 'type' => 'dropdown', 'heading' => esc_html__( 'Color presets', 'woodmart' ), 'param_name' => 'html_class', 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'With background', 'woodmart' ) => 'wd-style-with-bg', ), 'std' => '', ), array( 'type' => 'woodmart_title_divider', 'holder' => 'div', 'title' => esc_html__( 'Form', 'woodmart' ), 'param_name' => 'form_divider', 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), ), array( 'heading' => esc_html__( 'Text color', 'woodmart' ), 'type' => 'wd_colorpicker', 'param_name' => 'form_color', 'selectors' => array( 'form.wpcf7-form' => array( '--wd-form-color: {{VALUE}};', ), ), 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', ), array( 'heading' => esc_html__( 'Placeholder color', 'woodmart' ), 'type' => 'wd_colorpicker', 'param_name' => 'form_placeholder_color', 'selectors' => array( 'form.wpcf7-form' => array( '--wd-form-placeholder-color: {{VALUE}};', ), ), 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', ), array( 'heading' => esc_html__( 'Border color', 'woodmart' ), 'type' => 'wd_colorpicker', 'param_name' => 'form_brd_color', 'selectors' => array( 'form.wpcf7-form' => array( '--wd-form-brd-color: {{VALUE}};', ), ), 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', ), array( 'heading' => esc_html__( 'Border color focus', 'woodmart' ), 'type' => 'wd_colorpicker', 'param_name' => 'form_brd_color_focus', 'selectors' => array( 'form.wpcf7-form' => array( '--wd-form-brd-color-focus: {{VALUE}};', ), ), 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', ), array( 'heading' => esc_html__( 'Background color', 'woodmart' ), 'type' => 'wd_colorpicker', 'param_name' => 'form_bg', 'selectors' => array( 'form.wpcf7-form' => array( '--wd-form-bg: {{VALUE}};', ), ), 'dependency' => array( 'element' => 'html_class', 'value_not_equal_to' => 'wd-style-with-bg', ), 'edit_field_class' => 'vc_col-sm-6 vc_column', ), ); vc_add_params( 'contact-form-7', $params ); } add_action( 'vc_before_init', 'woodmart_contact_form_7_custom_options' ); } if ( ! function_exists( 'woodmart_vc_separator_custom_options' ) ) { /** * Update custom params map to Default Separator element in WPBakery. * * @throws Exception . */ function woodmart_vc_separator_custom_options() { $advanced_options = array( woodmart_get_vc_responsive_visible_map( 'responsive_tabs_hide' ), woodmart_get_vc_responsive_visible_map( 'wd_hide_on_desktop' ), woodmart_get_vc_responsive_visible_map( 'wd_hide_on_tablet' ), woodmart_get_vc_responsive_visible_map( 'wd_hide_on_mobile' ), ); vc_add_params( 'vc_separator', $advanced_options ); } add_action( 'vc_before_init', 'woodmart_vc_separator_custom_options' ); } // **********************************************************************// // Filters for WPB Composer // **********************************************************************// if ( ! function_exists( 'woodmart_vc_extra_classes' ) ) { if ( defined( 'VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG' ) ) { add_filter( VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, 'woodmart_vc_extra_classes', 30, 3 ); } /** * Adds classes depending on the passed settings. * * @param array $class list of classes. * @param mixed $base . * @param array $atts list of settings. * @return string new classes. */ function woodmart_vc_extra_classes( $class, $base, $atts ) { if ( isset( $atts['wd_z_index'] ) && 'yes' === $atts['wd_z_index'] ) { $class .= ' wd-z-index'; } if ( 'vc_column' === $base || 'vc_column_inner' === $base ) { if ( ! empty( $atts['vertical_alignment'] ) || ! empty( $atts['horizontal_alignment'] ) ) { $class .= ' wd-enabled-flex'; } } if ( 'vc_column' === $base && ! empty( $atts['wd_column_role'] ) ) { woodmart_enqueue_inline_style( 'int-wpb-opt-off-canvas-column' ); if ( isset( $atts['wd_column_role_offcanvas_desktop'] ) && 'yes' === $atts['wd_column_role_offcanvas_desktop'] ) { $class .= ' wd-col-offcanvas-lg'; } if ( isset( $atts['wd_column_role_offcanvas_tablet'] ) && 'yes' === $atts['wd_column_role_offcanvas_tablet'] ) { $class .= ' wd-col-offcanvas-md-sm'; } if ( isset( $atts['wd_column_role_offcanvas_mobile'] ) && 'yes' === $atts['wd_column_role_offcanvas_mobile'] ) { $class .= ' wd-col-offcanvas-sm'; } if ( isset( $atts['wd_column_role_content_desktop'] ) && 'yes' === $atts['wd_column_role_content_desktop'] ) { $class .= ' wd-col-content-lg'; } if ( isset( $atts['wd_column_role_content_tablet'] ) && 'yes' === $atts['wd_column_role_content_tablet'] ) { $class .= ' wd-col-content-md-sm'; } if ( isset( $atts['wd_column_role_content_mobile'] ) && 'yes' === $atts['wd_column_role_content_mobile'] ) { $class .= ' wd-col-content-sm'; } if ( isset( $atts['wd_off_canvas_alignment'] ) && ! empty( $atts['wd_off_canvas_alignment'] ) ) { $class .= ' wd-alignment-' . $atts['wd_off_canvas_alignment']; } } if ( ! empty( $atts['woodmart_inline'] ) && 'yes' === $atts['woodmart_inline'] ) { $class .= ' inline-element'; } if ( ! empty( $atts['woodmart_color_scheme'] ) && ( 'vc_column' === $base || 'vc_column_inner' === $base || 'vc_empty_space' === $base || 'vc_column_text' === $base ) ) { $class .= ' color-scheme-' . $atts['woodmart_color_scheme']; } if ( isset( $atts['text_larger'] ) && 'yes' === $atts['text_larger'] ) { $class .= ' text-larger'; } if ( isset( $atts['woodmart_sticky_column'] ) && 'true' === $atts['woodmart_sticky_column'] ) { $class .= ' woodmart-sticky-column'; if ( isset( $atts['woodmart_sticky_column_offset'] ) && $atts['woodmart_sticky_column_offset'] ) { $class .= ' wd_sticky_offset_' . $atts['woodmart_sticky_column_offset']; } woodmart_enqueue_js_library( 'sticky-kit' ); woodmart_enqueue_js_script( 'sticky-column' ); } if ( isset( $atts['woodmart_parallax'] ) && $atts['woodmart_parallax'] ) { $class .= ' wd-parallax'; $class .= woodmart_get_old_classes( ' woodmart-parallax' ); woodmart_enqueue_js_library( 'parallax' ); woodmart_enqueue_js_script( 'parallax' ); } if ( isset( $atts['woodmart_disable_overflow'] ) && $atts['woodmart_disable_overflow'] ) { $class .= ' wd-disable-overflow'; } if ( isset( $atts['woodmart_gradient_switch'] ) && 'yes' === $atts['woodmart_gradient_switch'] && apply_filters( 'woodmart_gradients_enabled', true ) ) { $class .= ' wd-row-gradient-enable'; } // Bg option. if ( ! empty( $atts['woodmart_bg_position'] ) ) { $class .= ' wd-bg-' . $atts['woodmart_bg_position']; } // Text align option. if ( ! empty( $atts['woodmart_text_align'] ) ) { $class .= ' text-' . $atts['woodmart_text_align']; } // Responsive opt. if ( isset( $atts['woodmart_hide_large'] ) && $atts['woodmart_hide_large'] ) { $class .= ' hidden-lg'; } if ( isset( $atts['woodmart_hide_medium'] ) && $atts['woodmart_hide_medium'] ) { $class .= ' hidden-md hidden-sm'; } if ( isset( $atts['woodmart_hide_small'] ) && $atts['woodmart_hide_small'] ) { $class .= ' hidden-xs'; } // Row reverse opt. if ( isset( $atts['row_reverse_mobile'] ) && $atts['row_reverse_mobile'] ) { $class .= ' row-reverse-mobile'; } if ( isset( $atts['row_reverse_tablet'] ) && $atts['row_reverse_tablet'] ) { $class .= ' row-reverse-tablet'; } // Hide bg img on mobile. if ( isset( $atts['mobile_bg_img_hidden'] ) && 'yes' === $atts['mobile_bg_img_hidden'] ) { $class .= ' mobile-bg-img-hidden'; } // Hide bg img on tablet. if ( isset( $atts['tablet_bg_img_hidden'] ) && 'yes' === $atts['tablet_bg_img_hidden'] ) { $class .= ' tablet-bg-img-hidden'; } // Reset margin (deprecated). if ( isset( $atts['mobile_reset_margin'] ) && 'yes' === $atts['mobile_reset_margin'] ) { $class .= ' reset-margin-mobile'; } if ( isset( $atts['tablet_reset_margin'] ) && 'yes' === $atts['tablet_reset_margin'] ) { $class .= ' reset-margin-tablet'; } if ( ! empty( $atts['css_animation'] ) && 'none' !== $atts['css_animation'] ) { woodmart_enqueue_inline_style( 'mod-animations-keyframes' ); } if ( ! empty( $atts['wd_animation'] ) && 'none' !== $atts['wd_animation'] ) { $class .= ' wd-animation-' . $atts['wd_animation']; $duration = ! empty( $atts['wd_animation_duration'] ) ? $atts['wd_animation_duration'] : 'normal'; $class .= ' wd-animation-' . $duration; if ( ! empty( $atts['wd_animation_delay'] ) ) { $class .= ' wd_delay_' . $atts['wd_animation_delay']; } woodmart_enqueue_js_library( 'waypoints' ); woodmart_enqueue_js_script( 'animations' ); woodmart_enqueue_inline_style( 'animations' ); } if ( ! empty( $atts['woodmart_css_id'] ) ) { $class .= ' wd-rs-' . $atts['woodmart_css_id']; } if ( ! empty( $atts['woodmart_stretch_content'] ) ) { $class .= ' wd-' . $atts['woodmart_stretch_content']; } if ( isset( $atts['wd_hide_on_desktop'] ) && 'yes' === $atts['wd_hide_on_desktop'] ) { $class .= ' hidden-lg'; } if ( isset( $atts['wd_hide_on_tablet'] ) && 'yes' === $atts['wd_hide_on_tablet'] ) { $class .= ' hidden-md hidden-sm'; } if ( isset( $atts['wd_hide_on_mobile'] ) && 'yes' === $atts['wd_hide_on_mobile'] ) { $class .= ' hidden-xs'; } if ( isset( $atts['wd_collapsible_content_switcher'] ) && 'yes' === $atts['wd_collapsible_content_switcher'] ) { woodmart_enqueue_inline_style( 'collapsible-content' ); $class .= ' wd-collapsible-content'; } /** * Single Product Layout. */ if ( ( isset( $atts['width_desktop'] ) && ! empty( $atts['width_desktop'] ) ) || ( isset( $atts['width_tablet'] ) && ! empty( $atts['width_tablet'] ) || ( isset( $atts['width_mobile'] ) && ! empty( $atts['width_mobile'] ) ) ) ) { $class .= ' wd-enabled-width'; } return $class; } } // **********************************************************************// // Features that add FREQUENTLY USED maps to WPB Composer // **********************************************************************// if ( ! function_exists( 'woodmart_get_vc_display_inline_map' ) ) { /** * Get display inline option map. * * @return array map. */ function woodmart_get_vc_display_inline_map() { return array( 'type' => 'woodmart_switch', 'heading' => esc_html__( 'Display inline', 'woodmart' ), 'param_name' => 'woodmart_inline', 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', ); } } if ( ! function_exists( 'woodmart_get_vc_responsive_spacing_map' ) ) { /** * Get responsive spacing option map. * * @return array map. */ function woodmart_get_vc_responsive_spacing_map() { return array( 'type' => 'woodmart_responsive_spacing', 'param_name' => 'responsive_spacing', 'group' => esc_html__( 'Design Options', 'js_composer' ), ); } } if ( ! function_exists( 'woodmart_get_vc_responsive_visible_map' ) ) { /** * Get responsive visible option map. * * @param string $key Needed map. Should be equal to map param_name. * * @return array map. */ function woodmart_get_vc_responsive_visible_map( $key ) { $map = array( /** * Responsive Options. */ 'responsive_tabs_hide' => array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Hide element', 'woodmart' ), 'param_name' => 'responsive_tabs_hide', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'tabs' => true, 'value' => array( esc_html__( 'Desktop', 'woodmart' ) => 'desktop', esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'desktop', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', ), 'wd_hide_on_desktop' => array( 'type' => 'woodmart_switch', 'param_name' => 'wd_hide_on_desktop', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_hide', 'value' => array( 'desktop' ), ), ), 'wd_hide_on_tablet' => array( 'type' => 'woodmart_switch', 'param_name' => 'wd_hide_on_tablet', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_hide', 'value' => array( 'tablet' ), ), ), 'wd_hide_on_mobile' => array( 'type' => 'woodmart_switch', 'param_name' => 'wd_hide_on_mobile', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_hide', 'value' => array( 'mobile' ), ), ), ); return array_key_exists( $key, $map ) ? $map[ $key ] : array(); } } if ( ! function_exists( 'woodmart_get_responsive_reset_margin_map' ) ) { /** * Get mobile reset option map. * * @param string $key Needed map. Should be equal to map param_name. * * @return array map. */ function woodmart_get_responsive_reset_margin_map( $key ) { $map = array( /** * Responsive Options. */ 'responsive_tabs_reset' => array( 'type' => 'woodmart_button_set', 'heading' => esc_html__( 'Reset margin (deprecated)', 'woodmart' ), 'param_name' => 'responsive_tabs_reset', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'tabs' => true, 'value' => array( esc_html__( 'Tablet', 'woodmart' ) => 'tablet', esc_html__( 'Mobile', 'woodmart' ) => 'mobile', ), 'default' => 'tablet', 'edit_field_class' => 'wd-custom-width vc_col-sm-12 vc_column', ), 'mobile_reset_margin' => array( 'type' => 'woodmart_switch', 'param_name' => 'mobile_reset_margin', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_reset', 'value' => array( 'mobile' ), ), ), 'tablet_reset_margin' => array( 'type' => 'woodmart_switch', 'param_name' => 'tablet_reset_margin', 'group' => esc_html__( 'Advanced', 'woodmart' ), 'true_state' => 'yes', 'false_state' => 'no', 'default' => 'no', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'wd_dependency' => array( 'element' => 'responsive_tabs_reset', 'value' => array( 'tablet' ), ), ), ); return array_key_exists( $key, $map ) ? $map[ $key ] : array(); } } // **********************************************************************// // Add custom animations to WPB Composer // **********************************************************************// if ( ! function_exists( 'woodmart_add_css_animation' ) ) { /** * Add animation map settings for VC. * * @param array $animations list of animations. * @return array */ function woodmart_add_css_animation( $animations ) { $animations[] = array( 'label' => esc_html__( 'Woodmart Animations', 'woodmart' ), 'values' => array( esc_html__( 'Slide from top', 'woodmart' ) => array( 'value' => 'wd-slide-from-top', 'type' => 'in', ), esc_html__( 'Slide from bottom', 'woodmart' ) => array( 'value' => 'wd-slide-from-bottom', 'type' => 'in', ), esc_html__( 'Slide from left', 'woodmart' ) => array( 'value' => 'wd-slide-from-left', 'type' => 'in', ), esc_html__( 'Slide from right', 'woodmart' ) => array( 'value' => 'wd-slide-from-right', 'type' => 'in', ), esc_html__( 'Right flip Y', 'woodmart' ) => array( 'value' => 'wd-right-flip-y', 'type' => 'in', ), esc_html__( 'Left flip Y', 'woodmart' ) => array( 'value' => 'wd-left-flip-y', 'type' => 'in', ), esc_html__( 'Top flip X', 'woodmart' ) => array( 'value' => 'wd-top-flip-x', 'type' => 'in', ), esc_html__( 'Bottom flip X', 'woodmart' ) => array( 'value' => 'wd-bottom-flip-x', 'type' => 'in', ), esc_html__( 'Zoom in', 'woodmart' ) => array( 'value' => 'wd-zoom-in', 'type' => 'in', ), esc_html__( 'Rotate Z', 'woodmart' ) => array( 'value' => 'wd-rotate-z', 'type' => 'in', ), ), ); return $animations; } add_action( 'vc_param_animation_style_list', 'woodmart_add_css_animation', 1000 ); } if ( ! function_exists( 'woodmart_get_vc_animation_map' ) ) { /** * Get animation map settings for VC. * * @param string $key Needed map. Should be equal to map param_name. * * @return array */ function woodmart_get_vc_animation_map( $key ) { $map = array( 'wd_animation' => array( 'type' => 'dropdown', 'heading' => esc_html__( 'Woodmart Animation', 'woodmart' ), 'hint' => esc_html__( 'Use custom theme animations if you want to run them in the slider element.' ), 'param_name' => 'wd_animation', 'admin_label' => true, 'value' => array( esc_html__( 'None', 'woodmart' ) => '', esc_html__( 'Slide from top', 'woodmart' ) => 'slide-from-top', esc_html__( 'Slide from bottom', 'woodmart' ) => 'slide-from-bottom', esc_html__( 'Slide from left', 'woodmart' ) => 'slide-from-left', esc_html__( 'Slide from right', 'woodmart' ) => 'slide-from-right', esc_html__( 'Slide short from left', 'woodmart' ) => 'slide-short-from-left', esc_html__( 'Slide short from right', 'woodmart' ) => 'slide-short-from-right', esc_html__( 'Flip X bottom', 'woodmart' ) => 'bottom-flip-x', esc_html__( 'Flip X top', 'woodmart' ) => 'top-flip-x', esc_html__( 'Flip Y left', 'woodmart' ) => 'left-flip-y', esc_html__( 'Flip Y right', 'woodmart' ) => 'right-flip-y', esc_html__( 'Zoom in', 'woodmart' ) => 'zoom-in', ), 'std' => '', 'edit_field_class' => 'vc_col-sm-12 vc_column', ), 'wd_animation_delay' => array( 'type' => 'textfield', 'heading' => esc_html__( 'Woodmart Animation Delay (ms)', 'woodmart' ), 'param_name' => 'wd_animation_delay', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'dependency' => array( 'element' => 'wd_animation', 'value_not_equal_to' => array( '' ), ), ), 'wd_animation_duration' => array( 'type' => 'dropdown', 'heading' => esc_html__( 'Woodmart Animation duration', 'woodmart' ), 'param_name' => 'wd_animation_duration', 'edit_field_class' => 'vc_col-sm-12 vc_column', 'value' => array( esc_html__( 'Slow', 'woodmart' ) => 'slow', esc_html__( 'Normal', 'woodmart' ) => 'normal', esc_html__( 'Fast', 'woodmart' ) => 'fast', ), 'dependency' => array( 'element' => 'wd_animation', 'value_not_equal_to' => array( '' ), ), 'std' => 'normal', ), ); return array_key_exists( $key, $map ) ? $map[ $key ] : array(); } } if ( ! function_exists( 'woodmart_get_tab_title_category_for_wpb' ) ) { /** * Get tab title category for WPB builder. * * @param string $title Title category. * * @return string */ function woodmart_get_tab_title_category_for_wpb( $title, $layout = '' ) { if ( $layout ) { $layout = ' xts-layout-' . $layout; } return '<span class="xts-wpb-tab-title' . $layout . '">' . $title . '</span>'; } } if ( ! function_exists( 'woodmart_wpml_pb_shortcode_encode_urlencoded_json' ) ) { /** * Encode urlencoded json. * * @param string $string String. * @param string $encoding Format. * @param array $original_string Original string. * @return string */ function woodmart_wpml_pb_shortcode_encode_urlencoded_json( $string, $encoding, $original_string ) { if ( 'urlencoded_json' === $encoding ) { $output = array(); foreach ( $original_string as $combined_key => $value ) { $parts = explode( '_', $combined_key ); $i = array_pop( $parts ); $key = implode( '_', $parts ); $output[ $i ][ $key ] = $value; } $string = urlencode( wp_json_encode( $output ) ); // phpcs:ignore; } return $string; } add_filter( 'wpml_pb_shortcode_encode', 'woodmart_wpml_pb_shortcode_encode_urlencoded_json', 10, 3 ); } if ( ! function_exists( 'woodmart_wpml_pb_shortcode_decode_urlencoded_json' ) ) { /** * Decode urlencoded json. * * @param string $string String. * @param string $encoding Format. * @param string $original_string Original string. * @return string */ function woodmart_wpml_pb_shortcode_decode_urlencoded_json( $string, $encoding, $original_string ) { if ( 'urlencoded_json' === $encoding ) { $rows = json_decode( urldecode( $original_string ), true ); $string = array(); foreach ( $rows as $i => $row ) { foreach ( $row as $key => $value ) { if ( in_array( $key, array( 'list', 'list-content' ), true ) ) { $string[ $key . '_' . $i ] = array( 'value' => $value, 'translate' => true, ); } else { $string[ $key . '_' . $i ] = array( 'value' => $value, 'translate' => false, ); } } } } return $string; } add_filter( 'wpml_pb_shortcode_decode', 'woodmart_wpml_pb_shortcode_decode_urlencoded_json', 10, 3 ); }