HEX
Server: LiteSpeed
System: Linux server.zepintelhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: enamadmin (1026)
PHP: 8.2.30
Disabled: exec,system,passthru,shell_exec,proc_open,popen,apache_child_terminate
Upload Files
File: /home/enamadmin/public_html/wp-content/themes/eduma/woocommerce/woocommerce.php
<?php

/**
 * init class.
 */
class Thim_WC_Init {
	/**
	 * @var Thim_WC_Init
	 */
	protected static $_instance;

	/**
	 * WC_Init
	 */
	public function __construct() {
		// Wrap checkout form elements for styling.
		add_action('woocommerce_checkout_before_order_review_heading', array($this, 'before_order_review'), 1);
		add_action('woocommerce_checkout_after_order_review', array($this, 'after_order_review'), 90);

		// Remove each style one by one
		add_filter('woocommerce_enqueue_styles', array($this, 'woo_dequeue_styles'));

		/*****************quick view*****************/
		//remove_action( 'woocommerce_single_product_summary_quick', 'woocommerce_show_product_sale_flash', 10 );
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_title', 5);
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_price', 10);
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_rating', 15);
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_add_to_cart', 20);
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_excerpt', 30);

		//remove_action( 'woocommerce_single_product_summary_quick', 'woocommerce_template_single_meta', 40 );
		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_meta', 7);

		add_action('woocommerce_single_product_summary_quick', 'woocommerce_template_single_sharing', 50);

		//overwrite content product.
		remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10);
		remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5);
		// add_action( 'woocommerce_after_shop_loop_item_title_rating', 'woocommerce_template_loop_rating', 5 );
		add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 15);

		// add_filter( 'loop_shop_columns', '__return_false' );


		// remove woocommerce_breadcrumb
		remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
		// remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 );

		// add_filter( 'loop_shop_per_page', array( $this, 'loop_shop_per_page' ) );

		/* Share Product */
		add_action('woocommerce_share', 'thim_social_share');
		add_action('wp_ajax_jck_quickview', array($this, 'jck_quickview'));
		add_action('wp_ajax_nopriv_jck_quickview', array($this, 'jck_quickview'));
		/**
		 * Custom WooCommerce breadcrumbs
		 *
		 * @return array
		 */

		add_filter('woocommerce_breadcrumb_defaults', array($this, 'woocommerce_breadcrumbs'));

		add_filter('woocommerce_output_related_products_args', array($this, 'related_products_args'), 20);

		add_filter('woocommerce_upsell_display_args', array($this, 'upsell_products_column'), 20);
		add_filter('woocommerce_cross_sells_columns', array($this, 'cross_sell_products_column'), 20);
		add_filter('woocommerce_add_to_cart_fragments', array($this, 'add_to_cart_success_ajax'));
		// Override WooCommerce Widgets
		add_action('widgets_init', array($this, 'override_woocommerce_widgets'), 15);
		add_filter('woocommerce_account_menu_items', array($this, 'woocommerce_account_menu_items'));
		//remove cross-sells
		remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display');
		add_action('woocommerce_after_cart', 'woocommerce_cross_sell_display');
		//add plus minus to add to cart
		//add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'woo_add_text_quantity_before_add_to_cart' ) );
		add_action('woocommerce_before_quantity_input_field', array($this, 'ts_quantity_minus_sign'));
		add_action('woocommerce_after_quantity_input_field', array($this, 'ts_quantity_plus_sign'));
		/**
		 * Shop layout grid/list
		 */
		$shop_layout = get_theme_mod('thim_woo_cate_display_layout', 'grid');
		if ('grid' == $shop_layout) {
			add_action('woocommerce_before_shop_loop', array($this, 'woocommerce_product_filter'), 15);
			add_action('woocommerce_before_shop_loop', array($this, 'woo_add_div_sec'), 60);
		}

		if (thim_customizer_extral_class('archive-product') === ' hidden') {
			add_action('init', array($this, 'woocommerce_remove_action'), 15);
		}
		// re_update column default
		if (get_option('woocommerce_catalog_columns') == '') {
			update_option('woocommerce_catalog_columns', get_theme_mod('thim_woo_product_column', 3));
		}
		/**
		 * hook plugin woo boster tooltip
		 */
		add_filter('wcbt_product_thumbnails_size', function () {
			return array(138, 136);
		});
		add_filter('wcbt/filter/breadcrumb/enable', '__return_false');
		// add_action( 'wcbt/layout/wishlist/container/before','thim_wapper_page_title',99);
		// add_action( 'wcbt/layout/compare/container/before','thim_wapper_page_title',99);
		add_action('woocommerce_cart_actions', array($this, 'thim_add_buttom_continue_shop'),99);
	}
	function woo_add_div_sec() {
		echo '</div>';
	}
	function woocommerce_remove_action() {
		remove_action('woocommerce_before_shop_loop', array($this, 'woocommerce_product_filter'), 15);
		remove_action('woocommerce_before_shop_loop', array($this, 'woo_add_div_sec'), 60);
	}
	/**
	 * Wrap checkout order review with a `col2-set` div.
	 */
	public static function before_order_review() {
		echo '<div class="col2-set"><div class="inner-col-set">';
	}

	/**
	 * Close the div wrapper.
	 */
	public static function after_order_review() {
		echo '</div></div>';
	}

	public function woo_dequeue_styles($enqueue_styles) {
		unset($enqueue_styles['woocommerce-smallscreen']);   // Remove the smallscreen optimisation

		return $enqueue_styles;
	}

	public function loop_shop_per_page() {
		$product_per_page = get_theme_mod('thim_woo_product_per_page', false);
		parse_str($_SERVER['QUERY_STRING'], $params);
		if (!empty($product_per_page)) {
			$per_page = $product_per_page;
		} else {
			$per_page = 12;
		}
		$pc = !empty($params['product_count']) ? $params['product_count'] : $per_page;

		return $pc;
	}

	/** The Quickview Ajax Output **/
	public function jck_quickview() {
		global $post, $product;
		$prod_id = $_POST['product'];
		$post    = get_post($prod_id);
		$product = wc_get_product($prod_id);
		// Get category permalink
		ob_start();

		wc_get_template_part('content', 'single-product-lightbox');

		$output = ob_get_contents();
		ob_end_clean();
		echo ent2ncr($output);
		die();
	}

	/* End PRODUCT QUICK VIEW */
	public function woocommerce_breadcrumbs() {
		return array(
			'delimiter'   => '',
			'wrap_before' => '<ul class="breadcrumbs" id="breadcrumbs">',
			'wrap_after'  => '</ul>',
			'before'      => '<li>',
			'after'       => '</li>',
			'home'        => esc_html__('Home', 'eduma'),
		);
	}

	public function related_products_args($args) {
		$args['posts_per_page'] = get_theme_mod('thim_woo_related_column', 3);
		$args['columns']        = get_theme_mod('thim_woo_related_column', 3);

		return $args;
	}

	public function upsell_products_column($args) {
		$args['columns'] = get_theme_mod('thim_woo_related_column', 3);

		return $args;
	}

	public function cross_sell_products_column($columns) {
		$columns = get_theme_mod('thim_woo_related_column', 3);

		return $columns;
	}

	public function add_to_cart_success_ajax($count_cat_product) {
		$cart_items                                                              = is_object(WC()->cart) ? WC()->cart->get_cart_contents_count() : 0;
		$count_cat_product['#header-mini-cart .cart-items-number .items-number'] = '<span class="items-number">' . $cart_items . '</span>';

		return $count_cat_product;
	}

	public function override_woocommerce_widgets() {
		if (class_exists('WC_Widget_Cart')) {
			unregister_widget('WC_Widget_Cart');
			$file_child = get_stylesheet_directory() . '/woocommerce/widgets/class-wc-widget-cart.php';
			if (file_exists($file_child)) {
				include_once(get_stylesheet_directory() . '/woocommerce/widgets/class-wc-widget-cart.php');
			} else {
				include_once('widgets/class-wc-widget-cart.php');
			}
			register_widget('Thim_Custom_WC_Widget_Cart');
		}
	}

	public function woocommerce_account_menu_items($items) {
		unset($items['customer-logout']);

		return $items;
	}

	public function woocommerce_product_filter() {
		echo '<div class="thim-product-switch-wrap switch-layout-container">
					<div class="thim-product-switch-layout switch-layout">
							<a href="javascript:;" class="list switchToGrid switch-active"><i class="fa fa-th"></i></a>
							<a href="javascript:;" class="grid switchToList"><i class="fa fa-list-ul"></i></a>
					</div>';
	}
	function ts_quantity_plus_sign() {
		echo '<div  class="plus" >+</div></div>';
	}

	function ts_quantity_minus_sign() {
		echo '<div class="quantity-add-value"><div  class="minus" >-</div>';
	}
	function thim_add_buttom_continue_shop() { ?>
		<a class="btn-black wc-backward" href="<?php echo get_permalink(wc_get_page_id('shop')); ?>"><?php echo esc_html__('Continue Shopping', 'eduma') ?></a>
	<?php }
	public static function getInstance() {
		if (is_null(self::$_instance)) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}
}

Thim_WC_Init::getInstance();