PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 month 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