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 / COT / Helper.php
woocommerce-multilingual / classes / COT Last commit date
Helper.php 1 week ago Hooks.php 3 years ago
Helper.php
73 lines
1 <?php
2
3 namespace WCML\COT;
4
5 use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;
6 use Automattic\WooCommerce\Internal\DataStores\Orders\DataSynchronizer;
7 use Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore;
8 use Automattic\WooCommerce\Utilities\OrderUtil;
9 use WPML\FP\Maybe;
10 use WPML\FP\Obj;
11 use function WPML\FP\invoke;
12
13 class Helper {
14
15
16 const WC_ORDERS = 'wc-orders';
17
18 public static function getTableExists() {
19 return self::callStaticMethod( DataSynchronizer::class, 'get_table_exists', false );
20 }
21
22 public static function getTableName() {
23 return self::callStaticMethod( OrdersTableDataStore::class, 'get_orders_table_name', null );
24 }
25
26 public static function getMetaTableName() {
27 return self::callStaticMethod( OrdersTableDataStore::class, 'get_meta_table_name', null );
28 }
29
30 public static function isUsageEnabled() {
31 return self::callStaticMethod( CustomOrdersTableController::class, 'custom_orders_table_usage_is_enabled', false );
32 }
33
34 public static function isOrder( int $id ) : bool {
35 return OrderUtil::is_order( $id );
36 }
37
38 private static function callStaticMethod( $wcClass, $method, $default ) {
39 return Maybe::fromNullable( self::getFromContainer( $wcClass ) )
40 ->map( invoke( $method ) )
41 ->getOrElse( $default );
42 }
43
44 private static function getFromContainer( $wcClass ) {
45 try {
46 $object = \wc_get_container()->get( $wcClass );
47 } catch ( \Exception $e ) {
48 return null;
49 }
50
51 return $object;
52 }
53
54 private static function isOrderAdminScreen( $action ) {
55 return is_admin()
56 && Obj::prop( 'page', $_GET ) === self::WC_ORDERS
57 && Obj::prop( 'action', $_GET ) === $action;
58 }
59
60 public static function isOrderCreateAdminScreen() {
61 return self::isOrderAdminScreen( 'new' );
62 }
63
64 public static function isOrderListAdminScreen() {
65 return self::isOrderAdminScreen( null ) || self::isOrderAdminScreen( '-1' );
66 }
67
68 public static function isOrderEditAdminScreen() {
69 return self::isOrderAdminScreen( 'edit' ) && isset( $_GET['id'] );
70 }
71
72 }
73