HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/dinamo-shop/wp-content/plugins/woocommerce-multilingual/classes/AdminDashboard/Hooks.php
<?php

namespace WCML\AdminDashboard;

use WPML\Core\ISitePress;
use WCML\StandAlone\NullSitePress;
use SitePress;
use wpdb;
use IWPML_DIC_Action;
use IWPML_Backend_Action;

class Hooks implements IWPML_Backend_Action, IWPML_DIC_Action {

	/** @var SitePress|NullSitePress $sitepress */
	private $sitepress;

	/** @var wpdb $wpdb */
	private $wpdb;

	/**
	 * @param SitePress|NullSitePress $sitepress
	 * @param wpdb                    $wpdb
	 */
	public function __construct( ISitePress $sitepress, wpdb $wpdb ) {
		$this->sitepress = $sitepress;
		$this->wpdb      = $wpdb;
	}

	public function add_hooks() {
		add_action( 'wp_dashboard_setup', [ $this, 'clearStockTransients' ] );
		add_filter( 'woocommerce_status_widget_low_in_stock_count_query', [ $this, 'addLanguageQuery' ] );
		add_filter( 'woocommerce_status_widget_out_of_stock_count_query', [ $this, 'addLanguageQuery' ] );
	}

	public function clearStockTransients() {
		delete_transient( 'wc_outofstock_count' );
		delete_transient( 'wc_low_stock_count' );
	}

	/**
	 * @param string $query
	 *
	 * @return string
	 */
	public function addLanguageQuery( $query ) {

		$currentLanguage = $this->sitepress->get_current_language();

		if ( $currentLanguage !== 'all' ) {
			$languageQuery = $this->wpdb->prepare(
				" INNER JOIN {$this->wpdb->prefix}icl_translations AS t
                ON posts.ID = t.element_id AND t.element_type IN ( 'post_product', 'post_product_variation' )
                WHERE t.language_code = %s AND ",
				$currentLanguage );

			return str_replace( 'WHERE', $languageQuery, $query );
		}

		return $query;
	}
}