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 / Multicurrency / Analytics / Export.php
woocommerce-multilingual / classes / Multicurrency / Analytics Last commit date
Export.php 1 week ago ExportHPOS.php 1 week ago ExportLegacy.php 1 week ago Factory.php 1 week ago Hooks.php 1 week ago
Export.php
49 lines
1 <?php
2
3 namespace WCML\Multicurrency\Analytics;
4
5 use WPML\FP\Obj;
6
7 abstract class Export implements \IWPML_Backend_Action, \IWPML_REST_Action, \IWPML_DIC_Action {
8
9 const COL_LANGUAGE = 'language';
10 const COL_CURRENCY = 'currency';
11
12 protected $wpdb;
13
14 public function __construct( \wpdb $wpdb ) {
15 $this->wpdb = $wpdb;
16 }
17
18 public function add_hooks() {
19 add_filter( 'woocommerce_analytics_clauses_join_orders_subquery', [ $this, 'addJoinClauses' ] );
20 add_filter( 'woocommerce_analytics_clauses_select_orders_subquery', [ $this, 'addSelectClauses' ] );
21 add_filter( 'woocommerce_analytics_clauses_join_products_subquery', [ $this, 'addJoinClauses' ] );
22 add_filter( 'woocommerce_analytics_clauses_select_products_subquery', [ $this, 'addSelectClauses' ] );
23
24 add_filter( 'woocommerce_report_orders_export_columns', $this->addColumnTitle( self::COL_LANGUAGE, __( 'Language', 'woocommerce-multilingual' ) ) );
25 add_filter( 'woocommerce_report_orders_prepare_export_item', $this->copyProp( self::COL_LANGUAGE ), 10, 2 );
26
27 if ( wcml_is_multi_currency_on() ) {
28 add_filter( 'woocommerce_report_orders_export_columns', $this->addColumnTitle( self::COL_CURRENCY, __( 'Currency', 'woocommerce-multilingual' ) ) );
29 add_filter( 'woocommerce_report_orders_prepare_export_item', $this->copyProp( self::COL_CURRENCY ), 10, 2 );
30 add_filter( 'woocommerce_report_products_export_columns', $this->addColumnTitle( self::COL_CURRENCY, __( 'Currency', 'woocommerce-multilingual' ) ) );
31 add_filter( 'woocommerce_report_products_prepare_export_item', $this->copyProp( self::COL_CURRENCY ), 10, 2 );
32 }
33 }
34
35 private function addColumnTitle( $column, $title ) {
36 return Obj::assoc( $column, $title );
37 }
38
39 abstract public function addJoinClauses( $clauses );
40
41 abstract public function addSelectClauses( $clauses );
42
43 public function copyProp( $column ) {
44 return function ( $export_item, $item ) use ( $column ) {
45 return Obj::assoc( $column, Obj::prop( $column, $item ), $export_item );
46 };
47 }
48 }
49