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 / Rest / Wrapper / Reports / ProductsCount.php
woocommerce-multilingual / classes / Rest / Wrapper / Reports Last commit date
ProductsCount.php 1 week ago ProductsSales.php 1 week ago TopSeller.php 1 week ago
ProductsCount.php
50 lines
1 <?php
2
3 namespace WCML\Rest\Wrapper\Reports;
4
5 use WCML\Rest\Exceptions\InvalidLanguage;
6 use WCML\Rest\Wrapper\Handler;
7 use WPML\FP\Obj;
8
9 class ProductsCount extends Handler {
10
11 private $sitepress;
12 private $wpdb;
13
14 public function __construct( \SitePress $sitepress, \wpdb $wpdb ) {
15 $this->sitepress = $sitepress;
16 $this->wpdb = $wpdb;
17 }
18
19 public function prepare( $response, $object, $request ) {
20
21 $language = Obj::prop( 'lang', $request->get_params() );
22
23 if ( $language ) {
24
25 if ( ! $this->sitepress->is_active_language( $language ) ) {
26 throw new InvalidLanguage( $language );
27 }
28
29 $term = get_term_by( 'slug', $object->slug, 'product_type' );
30
31 $count = $this->wpdb->get_var(
32 $this->wpdb->prepare(
33 "SELECT count( p.ID ) FROM {$this->wpdb->posts} as p
34 LEFT JOIN {$this->wpdb->term_relationships} as tr ON p.ID = tr.object_id
35 LEFT JOIN {$this->wpdb->prefix}icl_translations as icl ON p.ID = icl.element_id
36 WHERE tr.term_taxonomy_id = %d AND icl.language_code = %s AND icl.element_type = 'post_product'",
37 $term->term_taxonomy_id, $language
38 )
39 );
40
41 $data = \WPML\FP\Obj::assoc( 'total', $count, $response->get_data() );
42 $data = \WPML\FP\Obj::assoc( 'lang', $language, $data );
43
44 $response->set_data( $data );
45 }
46
47 return $response;
48 }
49
50 }