Server IP : 172.67.158.161 / Your IP : 3.145.12.0 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/giankuin/bnnagency.com/wp-content/themes/flatsome/inc/extensions/flatsome-swatches/includes/ |
Upload File : |
<?php /** * Swatches main class. * * @package Flatsome\Extensions */ namespace Flatsome\Extensions; defined( 'ABSPATH' ) || exit; /** * Class Swatches * * @package Flatsome\Extensions */ final class Swatches { /** * The single instance of the class. * * @var Swatches */ protected static $instance = null; /** * Custom attribute types. * * @var array */ private $types; /** * Holds extension version. * * @var string */ public $version; /** * Swatches constructor. */ public function __construct() { $this->types = array( 'ux_color' => esc_html__( 'UX Color', 'flatsome' ), 'ux_image' => esc_html__( 'UX Image', 'flatsome' ), 'ux_label' => esc_html__( 'UX Label', 'flatsome' ), ); $theme = wp_get_theme( get_template() ); $this->version = $theme->get( 'Version' ); $this->includes(); add_action( 'init', array( $this, 'init' ) ); } /** * Include core files. */ public function includes() { if ( is_admin() ) { require_once dirname( __FILE__ ) . '/class-swatches-admin.php'; } require_once dirname( __FILE__ ) . '/class-swatches-frontend.php'; } /** * Initialize. */ public function init() { add_filter( 'product_attributes_type_selector', array( $this, 'add_attribute_types' ) ); if ( is_admin() ) { $this->admin(); } if ( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) { $this->frontend(); } } /** * Add extra custom attribute types. * * @param array $types The default types. * * @return array */ public function add_attribute_types( $types ) { $types = array_merge( $types, $this->types ); return $types; } /** * Get custom attribute types. * * @return array */ public function get_attribute_types() { return $this->types; } /** * Get product attribute option data by ID. * * @param string|int $id The ID. * * @return false|mixed */ public function get_attribute_option( $id ) { return get_option( "flatsome_product_attribute-{$id}" ); } /** * Get product attribute option data by name. * * @param string $attribute The attribute name. * * @return false|mixed */ public function get_attribute_option_by_name( $attribute ) { $id = wc_attribute_taxonomy_id_by_name( $attribute ); return get_option( "flatsome_product_attribute-{$id}" ); } /** * Get attribute's properties. * * @param string $taxonomy Taxonomy. * * @return object */ public function get_attribute( $taxonomy ) { global $wpdb; $attr = substr( $taxonomy, 3 ); $attr = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s;", $attr ) ); return $attr; } /** * Parses the term value specifically for ux_color. Checks and * returns parsed data for single and dual color value(s). * * @param string $value The term meta value. * * @return string[] */ public function parse_ux_color_term_meta( $value ) { $data = array( 'color' => '', 'color_2' => '', 'class' => '', 'style' => '', ); $colors = explode( ',', $value ); $data['color'] = $colors[0]; if ( count( $colors ) > 1 ) { $data['color_2'] = $colors[1]; $data['style'] = "--swatch-color: $colors[0]; --swatch-color-secondary: $colors[1];"; $data['class'] = 'ux-swatch__color--dual-color'; } else { $data['style'] = "--swatch-color: $colors[0]"; $data['class'] = 'ux-swatch__color--single-color'; } return $data; } /** * Clears all cache. */ public function cache_clear() { global $wpdb; $wpdb->query( "DELETE FROM {$wpdb->options} WHERE `option_name` LIKE ('%\_transient\_flatsome\_swatches%');" ); $wpdb->query( "DELETE FROM {$wpdb->options} WHERE `option_name` LIKE ('%\_transient\_timeout\_flatsome\_swatches%');" ); } /** * Main instance. * * @return Swatches */ public static function instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } /** * Instance of admin. * * @return Swatches_Admin */ public function admin() { return Swatches_Admin::instance(); } /** * Instance of frontend. * * @return Swatches_Frontend */ public function frontend() { return Swatches_Frontend::instance(); } } /** * Main instance. * * @return Swatches */ function flatsome_swatches() { return Swatches::instance(); }