PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / AdminDashboard / Hooks.php
woocommerce-multilingual / classes / AdminDashboard Last commit date
Hooks.php 1 week ago
Hooks.php
51 lines
1 <?php
2
3 namespace WCML\AdminDashboard;
4
5 use WPML\Core\ISitePress;
6 use WCML\StandAlone\NullSitePress;
7 use SitePress;
8 use wpdb;
9 use IWPML_DIC_Action;
10 use IWPML_Backend_Action;
11
12 class Hooks implements IWPML_Backend_Action, IWPML_DIC_Action {
13
14 private $sitepress;
15
16 private $wpdb;
17
18 public function __construct( ISitePress $sitepress, wpdb $wpdb ) {
19 $this->sitepress = $sitepress;
20 $this->wpdb = $wpdb;
21 }
22
23 public function add_hooks() {
24 add_action( 'wp_dashboard_setup', [ $this, 'clearStockTransients' ] );
25 add_filter( 'woocommerce_status_widget_low_in_stock_count_query', [ $this, 'addLanguageQuery' ] );
26 add_filter( 'woocommerce_status_widget_out_of_stock_count_query', [ $this, 'addLanguageQuery' ] );
27 }
28
29 public function clearStockTransients() {
30 delete_transient( 'wc_outofstock_count' );
31 delete_transient( 'wc_low_stock_count' );
32 }
33
34 public function addLanguageQuery( $query ) {
35
36 $currentLanguage = $this->sitepress->get_current_language();
37
38 if ( $currentLanguage !== 'all' ) {
39 $languageQuery = $this->wpdb->prepare(
40 " INNER JOIN {$this->wpdb->prefix}icl_translations AS t
41 ON posts.ID = t.element_id AND t.element_type IN ( 'post_product', 'post_product_variation' )
42 WHERE t.language_code = %s AND ",
43 $currentLanguage );
44
45 return str_replace( 'WHERE', $languageQuery, $query );
46 }
47
48 return $query;
49 }
50 }
51