Server IP : 192.64.112.168 / Your IP : 18.117.94.221 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/ |
Upload File : |
<?php /** * Helpers. * * @package Woodmart */ use Elementor\Group_Control_Image_Size; use XTS\Config; use XTS\Modules\Layouts\Main as Builder; if ( ! defined( 'WOODMART_THEME_DIR' ) ) { exit( 'No direct script access allowed' ); } if ( ! function_exists( 'woodmart_otf_get_image_html' ) ) { /** * Get image html with custom size. * * @param integer $image_id Image ID. * @param string|array $size Image size. * @param array $custom_size Image custom size. * @param array $attr Image attribute. * @return string */ function woodmart_otf_get_image_html( $image_id, $size = 'thumbnail', $custom_size = array(), $attr = array() ) { if ( apply_filters( 'woodmart_old_image_size_function', false ) ) { $image_html = ''; if ( woodmart_is_elementor_installed() ) { $image_html = Group_Control_Image_Size::get_attachment_image_html( array( 'image' => array( 'id' => $image_id, ), 'image_size' => $size, 'image_custom_dimension' => $custom_size, ) ); } elseif ( function_exists( 'wpb_getImageBySize' ) ) { $img = wpb_getImageBySize( array( 'attach_id' => $image_id, 'thumb_size' => $size, ) ); $image_html = isset( $img['thumbnail'] ) ? $img['thumbnail'] : ''; } else { $image_html = wp_get_attachment_image( $image_id, $size, false, $attr ); } return apply_filters( 'woodmart_get_image_html', $image_html, $image_id, $size, $attr ); } if ( 'custom' === $size ) { if ( $custom_size ) { if ( is_array( $custom_size ) ) { $size = array( null, null ); if ( ! empty( $custom_size['width'] ) ) { $size[0] = $custom_size['width']; } if ( ! empty( $custom_size['height'] ) ) { $size[1] = $custom_size['height']; } if ( ! $size[0] && ! $size[1] ) { $size = 'full'; } } elseif ( is_string( $custom_size ) && strpos( $custom_size, 'x' ) ) { $size = explode( 'x', $custom_size ); } } else { $size = 'full'; } } elseif ( is_string( $size ) && strpos( $size, 'x' ) && 'woodmart_shop_catalog_x2' !== $size ) { $size = explode( 'x', $size ); } if ( is_array( $size ) ) { add_filter( 'image_downsize', 'gambit_otf_regen_thumbs_media_downsize', 10, 3 ); } $image_html = wp_get_attachment_image( $image_id, $size, false, $attr ); if ( is_array( $size ) ) { remove_filter( 'image_downsize', 'gambit_otf_regen_thumbs_media_downsize', 10, 3 ); } return apply_filters( 'woodmart_get_image_html', $image_html, $image_id, $size, $attr ); } } if ( ! function_exists( 'woodmart_otf_get_image_url' ) ) { /** * Get image url with custom size. * * @param integer $image_id Image ID. * @param string|array $size Image size. * @param array $custom_size Image custom size. * @return string */ function woodmart_otf_get_image_url( $image_id, $size = 'thumbnail', $custom_size = array() ) { if ( apply_filters( 'woodmart_old_image_size_function', false ) ) { $image_url = ''; if ( woodmart_is_elementor_installed() ) { $image_url = Group_Control_Image_Size::get_attachment_image_src( $image_id, 'image', array( 'image_size' => $size, 'image_custom_dimension' => $custom_size, ) ); } elseif ( function_exists( 'wpb_resize' ) && ( in_array( $size, array( 'thumbnail', 'thumb', 'medium', 'large', 'full' ), true ) || ( is_string( $size ) && preg_match_all( '/\d+/', $size ) ) ) ) { $thumb_size = woodmart_get_image_size( $size ); $img = wpb_resize( $image_id, null, $thumb_size[0], $thumb_size[1], true ); $image_url = isset( $img['url'] ) ? $img['url'] : ''; } else { $image_url = wp_get_attachment_image_url( $image_id, $size ); } return apply_filters( 'woodmart_get_image_src', $image_url, $image_id, $size ); } if ( 'custom' === $size ) { if ( $custom_size ) { if ( is_array( $custom_size ) ) { $size = array( null, null ); if ( ! empty( $custom_size['width'] ) ) { $size[0] = $custom_size['width']; } if ( ! empty( $custom_size['height'] ) ) { $size[1] = $custom_size['height']; } if ( ! $size[0] && ! $size[1] ) { $size = 'full'; } } elseif ( is_string( $custom_size ) && strpos( $custom_size, 'x' ) ) { $size = explode( 'x', $custom_size ); } } else { $size = 'full'; } } elseif ( is_string( $size ) && strpos( $size, 'x' ) && 'woodmart_shop_catalog_x2' !== $size ) { $size = explode( 'x', $size ); } if ( is_array( $size ) ) { add_filter( 'image_downsize', 'gambit_otf_regen_thumbs_media_downsize', 10, 3 ); } $image_src = wp_get_attachment_image_url( $image_id, $size ); if ( is_array( $size ) ) { remove_filter( 'image_downsize', 'gambit_otf_regen_thumbs_media_downsize', 10, 3 ); } return apply_filters( 'woodmart_get_image_src', $image_src, $image_id, $size ); } } if ( ! function_exists( 'woodmart_is_core_installed' ) ) { function woodmart_is_core_installed() { return defined( 'WOODMART_CORE_PLUGIN_VERSION' ); } } if ( ! function_exists( 'wd_array_unique_recursive' ) ) { function wd_array_unique_recursive( $array ) { $scalars = array(); foreach ( $array as $key => $value ) { if ( is_scalar( $value ) ) { if ( isset( $scalars[ $value ] ) ) { unset( $array[ $key ] ); } else { $scalars[ $value ] = true; } } elseif ( is_array( $value ) ) { $array[ $key ] = wd_array_unique_recursive( $value ); } } return $array; } } if ( ! function_exists( 'wd_add_cssclass' ) ) { /** * Adds a CSS class to a string. * * @since 2.7.0 * * @param string $class_to_add The CSS class to add. * @param string $classes The string to add the CSS class to. * * @return string The string with the CSS class added. */ function wd_add_cssclass( $class_to_add, $classes ) { if ( empty( $classes ) ) { return $class_to_add; } return $classes . ' ' . $class_to_add; } } if ( ! function_exists( 'str_contains' ) ) { /** * str_contains php8 fix. */ function str_contains( $haystack, $needle ) { return $needle !== '' && mb_strpos( $haystack, $needle ) !== false; } } if ( ! function_exists( 'woodmart_page_css_files_disable' ) ) { /** * Page css files disable. * * @param string $description Term description. * @return string * @since 1.0.0 */ function woodmart_page_css_files_disable( $description ) { $GLOBALS['wd_page_css_ignore'] = true; return $description; } } if ( ! function_exists( 'woodmart_page_css_files_enable' ) ) { /** * Page css files enable. * * @param string $description Term description. * @return string * @since 1.0.0 */ function woodmart_page_css_files_enable( $description ) { unset( $GLOBALS['wd_page_css_ignore'] ); return $description; } } if ( ! function_exists( 'woodmart_cookie_secure_param' ) ) { /** * Cookie secure param. * * @since 1.0.0 */ function woodmart_cookie_secure_param() { return apply_filters( 'woodmart_cookie_secure_param', is_ssl() ); } } if ( ! class_exists( 'WD_WPBakeryShortCodeFix' ) ) { /** * Class fix for compatibility with WPB addons plugins. */ class WD_WPBakeryShortCodeFix { /** * Settings. * * @return null */ public function settings() { return null; } } } if ( ! function_exists( 'woodmart_fix_transitions_flicking' ) ) { /** * Fix for transitions flicking. * * @since 1.0.0 */ function woodmart_fix_transitions_flicking() { echo '<script type="text/javascript" id="wd-flicker-fix">// Flicker fix.</script>'; } add_action( 'wp_body_open', 'woodmart_fix_transitions_flicking', 1 ); } if ( ! function_exists( 'woodmart_get_theme_settings_selectors_array' ) ) { /** * Get selectors array. * * @return array */ function woodmart_get_theme_settings_selectors_array() { return woodmart_get_config( 'typography-selectors' ); } } if ( ! function_exists( 'woodmart_get_theme_settings_css_files_name_array' ) ) { /** * Get css files array. * * @return array */ function woodmart_get_theme_settings_css_files_name_array() { return woodmart_get_theme_settings_css_files_array( 'name' ); } } if ( ! function_exists( 'woodmart_get_theme_settings_css_files_array' ) ) { /** * Get css files array. * * @param string $name_format Result name format. * * @return array */ function woodmart_get_theme_settings_css_files_array( $name_format = 'title' ) { $config_styles = woodmart_get_config( 'css-files' ); $styles_options = array(); foreach ( $config_styles as $key => $styles ) { foreach ( $styles as $style ) { if ( isset( $styles_options[ $style['name'] ] ) ) { continue; } $styles_options[ $key ] = array( 'name' => $style['title'], 'value' => $key, ); if ( 'name' === $name_format ) { $styles_options[ $key ]['name'] = 'wd-' . $style['name'] . '-css'; } } } asort( $styles_options ); return $styles_options; } } if ( ! function_exists( 'woodmart_get_theme_settings_js_scripts_files_array' ) ) { /** * Get js files array. * * @return array */ function woodmart_get_theme_settings_js_scripts_files_array() { $config_scripts = woodmart_get_config( 'js-scripts' ); $scripts_options = array(); foreach ( $config_scripts as $key => $scripts ) { foreach ( $scripts as $script ) { if ( isset( $scripts_options[ $script['name'] ] ) ) { continue; } $scripts_options[ $script['name'] ] = array( 'name' => $script['title'], 'value' => $script['name'], ); } } asort( $scripts_options ); return $scripts_options; } } if ( ! function_exists( 'woodmart_get_current_page_builder' ) ) { /** * Get current page builder. * If both builders are activated then 'wpb' will be returned. * If no builder is active, an empty ribbon will be returned. * * @since 6.1.0 */ function woodmart_get_current_page_builder() { if ( defined( 'WPB_VC_VERSION' ) ) { return 'wpb'; } if ( did_action( 'elementor/loaded' ) ) { return 'elementor'; } return ''; } } if ( ! function_exists( 'woodmart_is_blog_design_new' ) ) { /** * Is blog design new. * * @since 6.1.0 * * @param string $design Design. */ function woodmart_is_blog_design_new( $design ) { $old = array( 'default', 'default-alt', 'small-images', 'chess', 'masonry', 'mask', ); return ! in_array( $design, $old, true ); } } if ( ! function_exists( 'woodmart_get_element_template' ) ) { /** * Loads a template part into a template. * * @since 6.1.0 * * @param string $element_name Template name. * @param array $args Arguments. * @param string $template_name Module name. */ function woodmart_get_element_template( $element_name, $args, $template_name ) { if ( ! empty( $args ) && is_array( $args ) ) { extract( $args ); // phpcs:ignore } include WOODMART_THEMEROOT . '/inc/template-tags/elements/' . $element_name . '/' . $template_name; } } if ( ! function_exists( 'woodmart_get_old_classes' ) ) { /** * Get old classes. * * @since 6.0.0 * * @param string $classes Classes. * * @return string */ function woodmart_get_old_classes( $classes ) { if ( ! apply_filters( 'woodmart_show_deprecated_css_classes', false ) ) { $classes = ''; } return esc_html( $classes ); } } if ( ! function_exists( 'woodmart_get_theme_settings_selectors_array' ) ) { /** * Get selectors array. * * @return array */ function woodmart_get_theme_settings_selectors_array() { return woodmart_get_config( 'typography-selectors' ); } } if ( ! function_exists( 'woodmart_get_theme_settings_buttons_selectors_array' ) ) { /** * Get buttons selectors array. * * @return array */ function woodmart_get_theme_settings_buttons_selectors_array() { return woodmart_get_config( 'buttons-selectors' ); } } if ( ! function_exists( 'woodmart_get_theme_settings_headers_array' ) ) { /** * Function to get array of HTML Blocks in theme settings array style. * * @return array */ function woodmart_get_theme_settings_headers_array() { $list = get_option( 'whb_saved_headers' ); if ( ! $list ) { $list = whb_get_builder()->list->get_all(); } $headers = array(); $headers['none'] = array( 'name' => esc_html__( 'None', 'woodmart' ), 'value' => 'none', ); if ( ! empty( $list ) && is_array( $list ) ) { foreach ( $list as $key => $header ) { $headers[ $key ] = array( 'name' => $header['name'], 'value' => $key, ); } } return $headers; } } if ( ! function_exists( 'woodmart_get_current_url' ) ) { /** * Get current url. * * @since 1.0.0 * * @return string */ function woodmart_get_current_url() { global $wp; return home_url( $wp->request ); } } if ( ! function_exists( 'woodmart_get_document_title' ) ) { /** * Returns document title for the current page. * * @since 1.0.0 * * @return string */ function woodmart_get_document_title() { $title = wp_get_document_title(); $post_meta = get_post_meta( woodmart_get_the_ID(), '_yoast_wpseo_title', true ); if ( is_object( get_queried_object() ) && property_exists( get_queried_object(), 'term_id' ) && function_exists( 'YoastSEO' ) ) { $taxonomy_helper = YoastSEO()->helpers->taxonomy; $meta = $taxonomy_helper->get_term_meta( get_queried_object() ); if ( isset( $meta['wpseo_title'] ) && $meta['wpseo_title'] ) { $title = wpseo_replace_vars( $meta['wpseo_title'], get_queried_object() ); } } elseif ( $post_meta && function_exists( 'wpseo_replace_vars' ) ) { $title = wpseo_replace_vars( $post_meta, get_post( woodmart_get_the_ID() ) ); } return $title; } } if ( ! function_exists( 'woodmart_get_new_size_classes' ) ) { /** * Get new size classes. * * @param mixed $element Element. * @param mixed $old_key Old key. * @param mixed $selector Selector. * * @return string */ function woodmart_get_new_size_classes( $element, $old_key, $selector ) { $array = array( 'banner' => array( 'small' => array( 'subtitle' => 'xs', 'title' => 's', ), 'default' => array( 'subtitle' => 'xs', 'title' => 'l', 'content' => 'xs', ), 'large' => array( 'subtitle' => 's', 'title' => 'xl', 'content' => 'm', ), 'extra-large' => array( 'subtitle' => 'm', 'title' => 'xxl', ), 'medium' => array( 'content' => 's', ), ), 'infobox' => array( 'small' => array( 'subtitle' => 'xs', 'title' => 's', ), 'default' => array( 'subtitle' => 'xs', 'title' => 'm', ), 'large' => array( 'subtitle' => 's', 'title' => 'xl', ), 'extra-large' => array( 'subtitle' => 'm', 'title' => 'xxl', ), ), 'title' => array( 'small' => array( 'subtitle' => 'xs', 'title' => 'm', 'after_title' => 'xs', ), 'default' => array( 'subtitle' => 'xs', 'title' => 'l', 'after_title' => 'xs', ), 'medium' => array( 'subtitle' => 'xs', 'title' => 'xl', 'after_title' => 's', ), 'large' => array( 'subtitle' => 'xs', 'title' => 'xxl', 'after_title' => 's', ), 'extra-large' => array( 'subtitle' => 'm', 'title' => 'xxxl', 'after_title' => 's', ), ), 'text' => array( 'small' => array( 'title' => 'm', ), 'default' => array( 'title' => 'l', ), 'medium' => array( 'title' => 'xl', ), 'large' => array( 'title' => 'xxl', ), 'extra-large' => array( 'title' => 'xxxl', ), ), 'list' => array( 'default' => array( 'text' => 'xs', ), 'medium' => array( 'text' => 's', ), 'large' => array( 'text' => 'm', ), 'extra-large' => array( 'text' => 'l', ), ), 'testimonials' => array( 'small' => array( 'text' => 'xs', ), 'medium' => array( 'text' => 's', ), 'large' => array( 'text' => 'm', ), ), ); return isset( $array[ $element ][ $old_key ][ $selector ] ) ? 'wd-fontsize-' . $array[ $element ][ $old_key ][ $selector ] : ''; } } if ( ! function_exists( 'array_key_first' ) ) { function array_key_first( array $arr ) { foreach ( $arr as $key => $unused ) { return $key; } return null; } } if ( ! function_exists( 'woodmart_is_elementor_full_width' ) ) { /** * Check if Elementor full width. * * @param bool $negative_gap_ignore Is ignore negative gap option. * * @return boolean */ function woodmart_is_elementor_full_width( $negative_gap_ignore = false ) { $page_template = get_post_meta( woodmart_get_the_ID(), '_wp_page_template', true ); if ( woodmart_is_elementor_pro_installed() ) { $manager = \ElementorPro\Plugin::instance()->modules_manager->get_modules( 'theme-builder' )->get_conditions_manager(); if ( $manager->get_documents_for_location( 'single' ) || $manager->get_documents_for_location( 'archive' ) ) { $page_template = 'elementor_header_footer'; } } if ( $negative_gap_ignore ) { return 'elementor_header_footer' === $page_template; } return 'elementor_header_footer' === $page_template && 'enabled' !== woodmart_get_opt( 'negative_gap', 'enabled' ); } } if ( ! function_exists( 'woodmart_is_elementor_pro_installed' ) ) { /** * Check if Elementor PRO is activated * * @since 1.0.0 * @return boolean */ function woodmart_is_elementor_pro_installed() { return defined( 'ELEMENTOR_PRO_VERSION' ) && woodmart_is_elementor_installed(); } } if ( ! function_exists( 'woodmart_vc_build_link' ) ) { function woodmart_vc_build_link( $value ) { return woodmart_vc_parse_multi_attribute( $value, array( 'url' => '', 'title' => '', 'target' => '', 'rel' => '', ) ); } } if ( ! function_exists( 'woodmart_vc_parse_multi_attribute' ) ) { function woodmart_vc_parse_multi_attribute( $value, $default = array() ) { $result = $default; if ( is_array( $value ) ) { $params_pairs = $value; } else { $params_pairs = explode( '|', $value ); } if ( ! empty( $params_pairs ) ) { foreach ( $params_pairs as $pair ) { $param = preg_split( '/\:/', $pair ); if ( ! empty( $param[0] ) && isset( $param[1] ) ) { $result[ $param[0] ] = rawurldecode( $param[1] ); } } } return $result; } } if ( ! function_exists( 'woodmart_get_size_guides_array' ) ) { function woodmart_get_size_guides_array( $style = 'default' ) { if ( 'default' === $style ) { $output = array( esc_html__( 'Select', 'woodmart' ) => '', esc_html__( 'Inherit current product', 'woodmart' ) => 'inherit', ); } elseif ( 'elementor' === $style ) { $output = array( '0' => esc_html__( 'Select', 'woodmart' ), 'inherit' => esc_html__( 'Inherit current product', 'woodmart' ), ); } $posts = get_posts( array( 'posts_per_page' => 200, 'post_type' => 'woodmart_size_guide', ) ); foreach ( $posts as $post ) { if ( 'default' === $style ) { $output[ $post->post_title ] = $post->ID; } elseif ( 'elementor' === $style ) { $output[ $post->ID ] = $post->post_title; } } return $output; } } if ( ! function_exists( 'woodmart_is_elementor_installed' ) ) { /** * Check if Elementor is activated * * @since 1.0.0 * @return boolean */ function woodmart_is_elementor_installed() { return did_action( 'elementor/loaded' ) && 'elementor' === woodmart_get_current_page_builder(); } } // **********************************************************************// // Remove https // **********************************************************************// if ( ! function_exists( 'woodmart_remove_https' ) ) { function woodmart_remove_https( $link ) { return preg_replace( '#^https?:#', '', $link ); } } // **********************************************************************// // ! If page needs header // **********************************************************************// if ( ! function_exists( 'woodmart_needs_header' ) ) { function woodmart_needs_header() { return ( ! isset( $GLOBALS['wd_maintenance'] ) && ! is_singular( 'woodmart_slide' ) && ! is_singular( 'cms_block' ) ); } } // **********************************************************************// // ! If page needs footer // **********************************************************************// if ( ! function_exists( 'woodmart_needs_footer' ) ) { function woodmart_needs_footer() { return ( ! isset( $GLOBALS['wd_maintenance'] ) && ! is_singular( 'woodmart_slide' ) && ! is_singular( 'cms_block' ) ); } } // **********************************************************************// // ! Conditional tags // **********************************************************************// if ( ! function_exists( 'woodmart_is_shop_archive' ) ) { function woodmart_is_shop_archive() { return ( woodmart_woocommerce_installed() && ( is_shop() || is_product_category() || is_product_tag() || is_singular( 'product' ) || woodmart_is_product_attribute_archive() ) ); } } if ( ! function_exists( 'woodmart_is_blog_archive' ) ) { function woodmart_is_blog_archive() { return ( is_home() || is_search() || is_tag() || is_category() || is_date() || is_author() ); } } if ( ! function_exists( 'woodmart_is_portfolio_archive' ) ) { function woodmart_is_portfolio_archive() { return ( is_post_type_archive( 'portfolio' ) || is_tax( 'project-cat' ) ); } } // **********************************************************************// // ! Is maintenance page // **********************************************************************// if ( ! function_exists( 'woodmart_maintenance_page' ) ) { function woodmart_maintenance_page() { if ( ! woodmart_get_opt( 'maintenance_mode' ) || is_user_logged_in() || ( woodmart_get_opt( 'maintenance_mode' ) && isset( $_GET[ woodmart_get_opt( 'maintenance_access_key' ) ] ) ) ) { return false; } $pages_ids = woodmart_pages_ids_from_template( 'maintenance' ); if ( ! empty( $pages_ids ) && is_page( $pages_ids ) ) { return true; } return false; } } if ( ! function_exists( 'woodmart_is_maintenance_active' ) ) { /** * This function will return true if the site visitor should be redirected to the maintenance page. * * @return bool */ function woodmart_is_maintenance_active() { $maintenance_mode = woodmart_get_opt( 'maintenance_mode' ); $maintenance_access_key = woodmart_get_opt( 'maintenance_access_key' ); $is_access_key = ! empty( $maintenance_access_key ) && isset( $_GET[ $maintenance_access_key ] ); //phpcs:ignore; if ( ! $maintenance_mode || is_user_logged_in() || $is_access_key ) { return false; } return true; } } // **********************************************************************// // ! Get config file // **********************************************************************// if ( ! function_exists( 'woodmart_get_config' ) ) { function woodmart_get_config( $name ) { return Config::get_instance()->get_config( $name ); } } // **********************************************************************// // ! Text to one-line string // **********************************************************************// if ( ! function_exists( 'woodmart_text2line' ) ) { function woodmart_text2line( $str ) { return trim( preg_replace( "/('|\"|\r?\n)/", '', $str ) ); } } // **********************************************************************// // ! Get page ID by it's template name // **********************************************************************// if ( ! function_exists( 'woodmart_tpl2id' ) ) { function woodmart_tpl2id( $tpl = '' ) { $pages = get_pages( array( 'meta_key' => '_wp_page_template', 'meta_value' => $tpl, ) ); foreach ( $pages as $page ) { return $page->ID; } } } if ( ! function_exists( 'woodmart_get_portfolio_page_id' ) ) { /** * Get portfolio page id. */ function woodmart_get_portfolio_page_id() { return woodmart_get_opt( 'portfolio_page' ) ? woodmart_get_opt( 'portfolio_page' ) : woodmart_tpl2id( 'portfolio.php' ); } } // **********************************************************************// // ! Function print array within a pre tags // **********************************************************************// if ( ! function_exists( 'ar' ) ) { function ar( $array ) { echo '<pre>'; print_r( $array ); echo '</pre>'; } } // **********************************************************************// // ! Get protocol (http or https) // **********************************************************************// if ( ! function_exists( 'woodmart_http' ) ) { function woodmart_http() { if ( ! is_ssl() ) { return 'http'; } else { return 'https'; } } } // **********************************************************************// // Woodmart get theme info // **********************************************************************// if ( ! function_exists( 'woodmart_get_theme_info' ) ) { function woodmart_get_theme_info( $parameter ) { $theme_info = wp_get_theme(); if ( is_child_theme() && is_object( $theme_info->parent() ) ) { $theme_info = wp_get_theme( $theme_info->parent()->template ); } return $theme_info->get( $parameter ); } } // **********************************************************************// // Is share button enable // **********************************************************************// if ( ! function_exists( 'woodmart_is_social_link_enable' ) ) { function woodmart_is_social_link_enable( $type ) { $result = false; if ( $type == 'share' && ( woodmart_get_opt( 'share_fb' ) || woodmart_get_opt( 'share_twitter' ) || woodmart_get_opt( 'share_linkedin' ) || woodmart_get_opt( 'share_pinterest' ) || woodmart_get_opt( 'share_ok' ) || woodmart_get_opt( 'share_whatsapp' ) || woodmart_get_opt( 'share_email' ) || woodmart_get_opt( 'share_vk' ) || woodmart_get_opt( 'share_tg' ) || woodmart_get_opt( 'share_viber' ) ) ) { $result = true; } if ( $type == 'follow' && ( woodmart_get_opt( 'fb_link' ) || woodmart_get_opt( 'twitter_link' ) || woodmart_get_opt( 'google_link' ) || woodmart_get_opt( 'isntagram_link' ) || woodmart_get_opt( 'pinterest_link' ) || woodmart_get_opt( 'youtube_link' ) || woodmart_get_opt( 'tumblr_link' ) || woodmart_get_opt( 'linkedin_link' ) || woodmart_get_opt( 'vimeo_link' ) || woodmart_get_opt( 'flickr_link' ) || woodmart_get_opt( 'github_link' ) || woodmart_get_opt( 'dribbble_link' ) || woodmart_get_opt( 'behance_link' ) || woodmart_get_opt( 'soundcloud_link' ) || woodmart_get_opt( 'spotify_link' ) || woodmart_get_opt( 'ok_link' ) || woodmart_get_opt( 'whatsapp_link' ) || woodmart_get_opt( 'vk_link' ) || woodmart_get_opt( 'snapchat_link' ) || woodmart_get_opt( 'tg_link' ) || woodmart_get_opt( 'tiktok_link' ) || woodmart_get_opt( 'discord_link' ) || woodmart_get_opt( 'social_email_links' ) ) ) { $result = true; } return $result; } } // **********************************************************************// // Is compare iframe // **********************************************************************// if ( ! function_exists( 'woodmart_is_compare_iframe' ) ) { function woodmart_is_compare_iframe() { return wp_script_is( 'jquery-fixedheadertable', 'enqueued' ); } } // **********************************************************************// // Is SVG image // **********************************************************************// if ( ! function_exists( 'woodmart_is_svg' ) ) { function woodmart_is_svg( $src ) { return substr( $src, -3, 3 ) == 'svg'; } } // **********************************************************************// // Get explode size // **********************************************************************// if ( ! function_exists( 'woodmart_get_explode_size' ) ) { function woodmart_get_explode_size( $img_size, $default_size ) { $sizes = explode( 'x', $img_size ); if ( count( $sizes ) < 2 ) { $sizes[0] = $sizes[1] = $default_size; } return $sizes; } } // **********************************************************************// // Check is theme is activated with a purchase code // **********************************************************************// if ( ! function_exists( 'woodmart_is_license_activated' ) ) { function woodmart_is_license_activated() { return get_option( 'woodmart_is_activated', false ); } } /** * ------------------------------------------------------------------------------------------------ * Is shop on front page * ------------------------------------------------------------------------------------------------ */ if ( ! function_exists( 'woodmart_is_shop_on_front' ) ) { function woodmart_is_shop_on_front() { return function_exists( 'wc_get_page_id' ) && 'page' === get_option( 'show_on_front' ) && wc_get_page_id( 'shop' ) == get_option( 'page_on_front' ); } } if ( ! function_exists( 'woodmart_get_allowed_html' ) ) { /** * Return allowed html tags * * @since 1.0.0 * * @return array */ function woodmart_get_allowed_html() { return apply_filters( 'woodmart_allowed_html', array( 'h1' => array(), 'h2' => array(), 'h3' => array(), 'h4' => array(), 'h5' => array(), 'h6' => array(), 'pre' => array(), 'p' => array(), 'br' => array(), 'i' => array(), 'b' => array(), 'u' => array(), 'em' => array(), 'del' => array(), 'a' => array( 'href' => true, 'class' => true, 'target' => true, 'title' => true, 'rel' => true, ), 'strong' => array(), 'span' => array( 'style' => true, 'class' => true, ), 'ol' => array(), 'ul' => array(), 'li' => array(), ) ); } } if ( ! function_exists( 'woodmart_clean' ) ) { /** * Clean variables using sanitize_text_field. Arrays are cleaned recursively. * Non-scalar values are ignored. * * @param string|array $var Data to sanitize. * @return string|array */ function woodmart_clean( $var ) { if ( is_array( $var ) ) { return array_map( 'woodmart_clean', $var ); } else { return is_scalar( $var ) ? sanitize_text_field( $var ) : $var; } } } if ( ! function_exists( 'woodmart_get_svg_html' ) ) { /** * Function to show SVG images. * * @param string|int $image_id image id. * @param null|string $size Needed image size. Default = thumbnail. * @param null|string $attributes List of attributes. If a whip then the data is taken from $attachment object. * @return string html tag img string. */ function woodmart_get_svg_html( $image_id, $size = 'thumbnail', $attributes = array() ) { $html = ''; $thumb_size = array(); $image_id = apply_filters( 'wpml_object_id', $image_id, 'attachment', true ); $attributes = wp_parse_args( $attributes, array( 'alt' => get_post_meta( $image_id, '_wp_attachment_image_alt', true ), 'src' => wp_get_attachment_image_url( $image_id, 'full' ), 'title' => get_the_title( $image_id ), ) ); if ( 'string' === gettype( $size ) ) { $thumb_size = woodmart_get_image_size( $size ); } elseif ( is_array( $size ) ) { if ( array_key_exists( 'width', $size ) && array_key_exists( 'height', $size ) ) { $thumb_size[0] = $size['width']; $thumb_size[1] = $size['height']; } else { $thumb_size = $size; } } if ( isset( $attributes ) ) { $attributes['width'] = isset( $thumb_size[0] ) ? $thumb_size[0] : ''; $attributes['height'] = isset( $thumb_size[1] ) ? $thumb_size[1] : ''; $attributes = array_map( 'esc_attr', $attributes ); foreach ( $attributes as $name => $value ) { if ( ! empty( $value ) ) { $html .= " $name=" . '"' . $value . '"'; } } } return '<img ' . $html . '>'; } } if ( ! function_exists( 'woodmart_get_mailchimp_forms' ) ) { /** * This function return form list for mailchimp. * * @return array */ function woodmart_get_mailchimp_forms() { $forms = get_posts( array( 'post_type' => 'mc4wp-form', 'numberposts' => -1, ) ); $mailchimp_forms = array(); if ( $forms ) { foreach ( $forms as $form ) { $mailchimp_forms[ $form->post_title ] = $form->ID; } } return $mailchimp_forms; } } if ( ! function_exists( 'woodmart_get_wpb_font_family_options' ) ) { /** * This function get theme font options and return array for WPBakery map. * * @return array */ function woodmart_get_wpb_font_family_options() { $secondary_font = woodmart_get_opt( 'secondary-font' ); $primary_font = woodmart_get_opt( 'primary-font' ); $text_font = woodmart_get_opt( 'text-font' ); $secondary_font_title = isset( $secondary_font[0] ) ? esc_html__( 'Secondary font', 'woodmart' ) . ' (' . $secondary_font[0]['font-family'] . ')' : esc_html__( 'Secondary font', 'woodmart' ); $text_font_title = isset( $text_font[0] ) ? esc_html__( 'Text font', 'woodmart' ) . ' (' . $text_font[0]['font-family'] . ')' : esc_html__( 'Text', 'woodmart' ); $primary_font_title = isset( $primary_font[0] ) ? esc_html__( 'Title font', 'woodmart' ) . ' (' . $primary_font[0]['font-family'] . ')' : esc_html__( 'Title font', 'woodmart' ); return array( $primary_font_title => 'primary', $text_font_title => 'text', $secondary_font_title => 'alt', ); } } if ( ! function_exists( 'woodmart_get_builder_status_class' ) ) { /** * This function return woodmart css class for check builder status (on/off). * * @return string */ function woodmart_get_builder_status_class() { if ( Builder::get_instance()->has_custom_layout( 'single_product' ) || Builder::get_instance()->has_custom_layout( 'shop_archive' ) || Builder::get_instance()->has_custom_layout( 'cart' ) || Builder::get_instance()->has_custom_layout( 'checkout_content' ) || Builder::get_instance()->has_custom_layout( 'checkout_form' ) ) { $class = ' wd-builder-on'; } else { $class = ' wd-builder-off'; } return $class; } } if ( ! function_exists( 'woodmart_get_responsive_dependency_width_map' ) ) { /** * Get width map (with responsive dependency tabs). * * @param string $key name needed field. * * @return array */ function woodmart_get_responsive_dependency_width_map( $key ) { if ( ! function_exists( 'woodmart_compress' ) ) { return array(); } $fields = array( // Desktop. 'responsive_tabs' => array( 'heading' => esc_html__( 'Width', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'woodmart_button_set', 'param_name' => 'responsive_tabs', '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', ), 'width_desktop' => array( 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_select', 'param_name' => 'width_desktop', 'style' => 'select', 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}} !important;', 'max-width: {{VALUE}} !important;', ), ), 'devices' => array( 'desktop' => array( 'value' => '', ), ), 'value' => array( esc_html__( 'Default', 'woodmart' ) => '', esc_html__( 'Full Width (100%)', 'woodmart' ) => '100%', esc_html__( 'Inline (auto)', 'woodmart' ) => 'auto', esc_html__( 'Custom', 'woodmart' ) => '-', ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'desktop' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), 'custom_width_desktop' => array( 'heading' => esc_html__( 'Custom width', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_slider', 'param_name' => 'custom_width_desktop', 'devices' => array( 'desktop' => array( 'unit' => 'px', 'value' => 0, ), ), 'range' => array( 'px' => array( 'min' => 0, 'max' => 1000, 'step' => 1, ), '%' => array( 'min' => 0, 'max' => 100, 'step' => 1, ), ), 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}}{{UNIT}} !important;', 'max-width: {{VALUE}}{{UNIT}} !important;', ), ), 'dependency' => array( 'element' => 'width_desktop', 'value' => woodmart_compress( wp_json_encode( array( 'devices' => array( 'desktop' => array( 'value' => '-', ), ), ) ) ), ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'desktop' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), // Tablet. 'width_tablet' => array( 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_select', 'param_name' => 'width_tablet', 'style' => 'select', 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}} !important;', 'max-width: {{VALUE}} !important;', ), ), 'devices' => array( 'tablet' => array( 'value' => '', ), ), 'value' => array( esc_html__( 'Inherit', 'woodmart' ) => '', esc_html__( 'Full Width (100%)', 'woodmart' ) => '100%', esc_html__( 'Inline (auto)', 'woodmart' ) => 'auto', esc_html__( 'Custom', 'woodmart' ) => '-', ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'tablet' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), 'custom_width_tablet' => array( 'heading' => esc_html__( 'Custom width', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_slider', 'param_name' => 'custom_width_tablet', 'devices' => array( 'tablet' => array( 'unit' => 'px', 'value' => 0, ), ), 'range' => array( 'px' => array( 'min' => 0, 'max' => 1000, 'step' => 1, ), '%' => array( 'min' => 0, 'max' => 100, 'step' => 1, ), ), 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}}{{UNIT}} !important;', 'max-width: {{VALUE}}{{UNIT}} !important;', ), ), 'dependency' => array( 'element' => 'width_tablet', 'value' => woodmart_compress( wp_json_encode( array( 'devices' => array( 'tablet' => array( 'value' => '-', ), ), ) ) ), ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'tablet' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), // Mobile. 'width_mobile' => array( 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_select', 'param_name' => 'width_mobile', 'style' => 'select', 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}} !important;', 'max-width: {{VALUE}} !important;', ), ), 'devices' => array( 'mobile' => array( 'value' => '', ), ), 'value' => array( esc_html__( 'Inherit', 'woodmart' ) => '', esc_html__( 'Full Width (100%)', 'woodmart' ) => '100%', esc_html__( 'Inline (auto)', 'woodmart' ) => 'auto', esc_html__( 'Custom', 'woodmart' ) => '-', ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'mobile' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), 'custom_width_mobile' => array( 'heading' => esc_html__( 'Custom width', 'woodmart' ), 'group' => esc_html__( 'Advanced', 'woodmart' ), 'type' => 'wd_slider', 'param_name' => 'custom_width_mobile', 'devices' => array( 'mobile' => array( 'unit' => 'px', 'value' => 0, ), ), 'range' => array( 'px' => array( 'min' => 0, 'max' => 1000, 'step' => 1, ), '%' => array( 'min' => 0, 'max' => 100, 'step' => 1, ), ), 'selectors' => array( '{{WRAPPER}}' => array( 'width: {{VALUE}}{{UNIT}} !important;', 'max-width: {{VALUE}}{{UNIT}} !important;', ), ), 'dependency' => array( 'element' => 'width_mobile', 'value' => woodmart_compress( wp_json_encode( array( 'devices' => array( 'mobile' => array( 'value' => '-', ), ), ) ) ), ), 'wd_dependency' => array( 'element' => 'responsive_tabs', 'value' => array( 'mobile' ), ), 'edit_field_class' => 'vc_col-sm-12 vc_column', ), ); return $fields[ $key ]; } } if ( ! function_exists( 'woodmart_is_compressed_data' ) ) { /** * Check $variable to compressed. * * @param string $variable need check data. * @return bool */ function woodmart_is_compressed_data( $variable ) { if ( ! function_exists( 'woodmart_compress' ) || ! function_exists( 'woodmart_decompress' ) ) { return ''; } return woodmart_compress( woodmart_decompress( $variable ) ) === $variable; } } if ( ! function_exists( 'woodmart_get_current_user_roles' ) ) { /** * Get the current user roles list. * * @retun array */ function woodmart_get_current_user_roles() { return is_user_logged_in() ? (array) wp_get_current_user()->roles : array(); } } if ( ! function_exists( 'woodmart_get_center_coords' ) ) { /** * This function accepts a list of coords and returns a prepared array with the coordinates of the center. * If the token list is empty, the method will return an empty array. * * @param array $coords List of coords. * @return array */ function woodmart_get_center_coords( $coords ) { if ( empty( $coords ) ) { return array(); } $count_coords = count( $coords ); $xcos = 0.0; $ycos = 0.0; $zsin = 0.0; foreach ( $coords as $lnglat ) { $lat = $lnglat['lat'] * pi() / 180; $lon = $lnglat['lng'] * pi() / 180; $acos = cos( $lat ) * cos( $lon ); $bcos = cos( $lat ) * sin( $lon ); $csin = sin( $lat ); $xcos += $acos; $ycos += $bcos; $zsin += $csin; } $xcos /= $count_coords; $ycos /= $count_coords; $zsin /= $count_coords; $lon = atan2( $ycos, $xcos ); $sqrt = sqrt( $xcos * $xcos + $ycos * $ycos ); $lat = atan2( $zsin, $sqrt ); return array( $lat * 180 / pi(), $lon * 180 / pi() ); } } if ( ! function_exists( 'woodmart_is_old_category_structure' ) ) { /** * Check if the category design refers to the old structure. * * @param string $category_design The design of the category that needs to be checked. * * @return bool */ function woodmart_is_old_category_structure( $category_design ) { $old_categories_designs = array( 'default', 'alt', 'center', 'replace-title', ); return in_array( $category_design, $old_categories_designs, true ); } }