File manager - Edit - /home/matthif/www/wp-content/themes/neve/header-footer-grid/Core/Components/CartIcon.php
Back
<?php /** * Button Component class for Header Footer Grid. * * Name: Header Footer Grid * Author: Bogdan Preda <bogdan.preda@themeisle.com> * * @version 1.0.0 * @package HFG */ namespace HFG\Core\Components; use HFG\Core\Settings\Manager as SettingsManager; use HFG\Main; use Neve\Core\Styles\Dynamic_Selector; use Neve_Pro\Core\Settings; /** * Class SearchResponsive * * @package HFG\Core\Components */ class CartIcon extends Abstract_Component { const COMPONENT_ID = 'header_cart_icon'; const SIZE_ID = 'icon_size'; const COLOR_ID = 'color'; const HOVER_COLOR_ID = 'hover_color'; const ICON_SELECTOR = 'icon_selector'; const ICON_CUSTOM = 'icon_selector_custom'; const CART_LABEL = 'cart_label'; const CART_FOCUS = 'cart_focus'; const MINI_CART_STYLE = 'mini_cart_style'; const AFTER_CART_HTML = 'after_cart_html'; const LABEL_SIZE_ID = 'label_size'; /** * Button constructor. * * @since 1.0.0 * @access public */ public function init() { $this->set_property( 'label', __( 'Cart Icon', 'neve' ) ); $this->set_property( 'id', self::COMPONENT_ID ); $this->set_property( 'width', 1 ); $this->set_property( 'icon', 'store' ); $this->set_property( 'default_selector', '.builder-item--' . $this->get_id() ); $this->set_property( 'is_auto_width', true ); $this->set_property( 'default_padding_value', array( 'mobile' => array( 'top' => 0, 'right' => 10, 'bottom' => 0, 'left' => 10, ), 'tablet' => array( 'top' => 0, 'right' => 10, 'bottom' => 0, 'left' => 10, ), 'desktop' => array( 'top' => 0, 'right' => 10, 'bottom' => 0, 'left' => 10, ), 'mobile-unit' => 'px', 'tablet-unit' => 'px', 'desktop-unit' => 'px', ) ); if ( function_exists( 'do_blocks' ) ) { add_filter( 'neve_post_content', 'do_blocks' ); } add_filter( 'neve_post_content', 'wptexturize' ); add_filter( 'neve_post_content', 'convert_smilies' ); add_filter( 'neve_post_content', 'convert_chars' ); add_filter( 'neve_post_content', 'wpautop' ); add_filter( 'neve_post_content', 'shortcode_unautop' ); add_filter( 'neve_post_content', 'do_shortcode' ); add_action( 'wp_enqueue_scripts', [ $this, 'load_scripts' ] ); } /** * Load Component Scripts * * @return void */ public function load_scripts() { if ( $this->is_component_active() ) { wp_add_inline_script( 'neve-script', $this->toggle_cart_is_empty() ); } } /** * Inline script that removes the cart-is-empty class. * * @return string */ public function toggle_cart_is_empty() { return ' (function($){ $(\'body\').on( \'added_to_cart\', function(){ var responsiveCart = document.querySelector( \'.responsive-nav-cart\' ); if ( responsiveCart ) { responsiveCart.classList.remove(\'cart-is-empty\'); } }); })(jQuery); '; } /** * Method to filter component loading if needed. * * @return bool * @since 1.0.1 * @access public */ public function is_active() { return class_exists( 'WooCommerce', false ); } /** * Define settings for this component. */ public function add_settings() { do_action( 'nv_cart_icon_component_controls' ); SettingsManager::get_instance()->add( [ 'id' => self::SIZE_ID, 'group' => $this->get_id(), 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'postMessage', 'sanitize_callback' => 'absint', 'default' => 15, 'label' => __( 'Icon Size', 'neve' ), 'type' => 'Neve\Customizer\Controls\React\Range', 'options' => [ 'input_attrs' => [ 'min' => 10, 'max' => 100, 'defaultVal' => 15, ], ], 'live_refresh_selector' => $this->default_selector . ' span.nv-icon.nv-cart svg', 'live_refresh_css_prop' => [ 'cssVar' => [ 'vars' => '--iconsize', 'selector' => '.builder-item--' . $this->get_id(), 'suffix' => 'px', ], 'type' => 'svg-icon-size', 'default' => 15, ], 'section' => $this->section, 'conditional_header' => true, ] ); SettingsManager::get_instance()->add( [ 'id' => self::COLOR_ID, 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'postMessage', 'sanitize_callback' => 'neve_sanitize_colors', 'label' => __( 'Color', 'neve' ), 'type' => '\Neve\Customizer\Controls\React\Color', 'section' => $this->section, 'live_refresh_selector' => true, 'live_refresh_css_prop' => [ 'cssVar' => [ 'vars' => '--color', 'selector' => '.builder-item--' . $this->get_id(), ], [ 'selector' => $this->default_selector . ' svg', 'prop' => 'fill', 'fallback' => 'inherit', ], [ 'selector' => $this->default_selector . ' .cart-icon-label', 'prop' => 'color', 'fallback' => 'inherit', ], ], 'conditional_header' => true, ] ); SettingsManager::get_instance()->add( [ 'id' => self::HOVER_COLOR_ID, 'group' => self::COMPONENT_ID, 'tab' => SettingsManager::TAB_STYLE, 'transport' => 'postMessage', 'sanitize_callback' => 'neve_sanitize_colors', 'label' => __( 'Hover Color', 'neve' ), 'type' => '\Neve\Customizer\Controls\React\Color', 'section' => $this->section, 'live_refresh_selector' => true, 'live_refresh_css_prop' => [ 'cssVar' => [ 'vars' => '--hovercolor', 'selector' => '.builder-item--' . $this->get_id(), ], [ 'selector' => $this->default_selector . ':hover svg', 'prop' => 'fill', 'fallback' => 'inherit', ], [ 'selector' => $this->default_selector . ':hover .cart-icon-label', 'prop' => 'color', 'fallback' => 'inherit', ], ], 'conditional_header' => true, ] ); } /** * Method to add Component css styles. * * @param array $css_array An array containing css rules. * * @return array * @since 1.0.0 * @access public */ public function add_style( array $css_array = array() ) { $rules = [ '--iconsize' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::SIZE_ID, Dynamic_Selector::META_SUFFIX => 'px', Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::SIZE_ID ), ], '--labelsize' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::LABEL_SIZE_ID, Dynamic_Selector::META_SUFFIX => 'px', Dynamic_Selector::META_DEFAULT => 15, ], '--color' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::COLOR_ID ), ], '--hovercolor' => [ Dynamic_Selector::META_KEY => $this->get_id() . '_' . self::HOVER_COLOR_ID, Dynamic_Selector::META_DEFAULT => SettingsManager::get_instance()->get_default( $this->get_id() . '_' . self::HOVER_COLOR_ID ), ], ]; $css_array[] = [ Dynamic_Selector::KEY_RULES => $rules, Dynamic_Selector::KEY_SELECTOR => $this->default_selector, ]; return parent::add_style( $css_array ); } /** * The render method for the component. * * @since 1.0.0 * @access public */ public function render_component() { Main::get_instance()->load( 'components/component-cart-icon' ); } /** * Check if pro features should load. * * @return bool */ public static function should_load_pro_features() { if ( ! class_exists( '\Neve_Pro\Modules\Woocommerce_Booster\Customizer\Cart_Icon' ) ) { return false; } if ( ! apply_filters( 'nv_pro_woocommerce_booster_status', false ) || ! class_exists( 'WooCommerce' ) ) { return false; } return true; } }
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0 |
proxy
|
phpinfo
|
Settings