PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
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 / Utilities / AdminPages.php
woocommerce-multilingual / classes / Utilities Last commit date
Suspend 2 years ago ActionScheduler.php 2 years ago AdminPages.php 8 months ago AdminUrl.php 8 months ago DB.php 4 years ago Post.php 5 years ago Resources.php 5 years ago SyncHash.php 8 months ago WCTaxonomies.php 1 year ago WcAdminPages.php 8 months ago WpAdminPages.php 1 year ago
AdminPages.php
109 lines
1 <?php
2
3 namespace WCML\Utilities;
4
5 use WCML_Admin_Menus;
6 use WCML_Capabilities;
7 use WPML\FP\Lst;
8 use WPML\FP\Obj;
9 use WPML\FP\Relation;
10 use function sanitize_key;
11 use function WCML\functions\isStandAlone;
12
13 class AdminPages {
14
15 const TAB_MULTICURRENCY = 'multi-currency';
16 const TAB_MULTILINGUAL = 'multilingual';
17 const TAB_MULTILINGUAL_STANDALONE = 'multilingual-standalone';
18
19 /**
20 * @return string
21 */
22 public static function getDefaultTab() {
23 return isStandAlone() ? self::TAB_MULTICURRENCY : self::TAB_MULTILINGUAL;
24 }
25
26 /**
27 * @param null|string $fallback
28 *
29 * @return string|null
30 */
31 public static function getCurrentTab( $fallback = null ) {
32 return sanitize_key( Obj::prop( 'tab', $_GET ) ) ?: $fallback;
33 }
34
35 /**
36 * @return string
37 */
38 public static function getTabToDisplay() {
39 return WCML_Capabilities::canAccessAllWcmlTabs()
40 ? self::getCurrentTab( self::getDefaultTab() )
41 : self::getDefaultTab();
42 }
43
44 /**
45 * @param string|array $tabs A single tab (string) or one of multiple tabs (array).
46 *
47 * @return bool
48 */
49 public static function isTab( $tabs ) {
50 return Lst::includes( self::getCurrentTab(), (array) $tabs );
51 }
52
53 /**
54 * @param string $page
55 *
56 * @return bool
57 */
58 public static function isPage( $page ) {
59 return Relation::propEq( 'page', $page, $_GET );
60 }
61
62 /**
63 * @return bool
64 */
65 public static function isWcmlSettings() {
66 return self::isPage( WCML_Admin_Menus::SLUG );
67 }
68
69 /**
70 * @return bool
71 */
72 public static function isMultiCurrency() {
73 $tabs = [ self::TAB_MULTICURRENCY ];
74
75 if ( isStandAlone() ) {
76 $tabs[] = null; // Also the default tab in Standalone mode.
77 }
78
79 return self::isWcmlSettings() && self::isTab( $tabs );
80 }
81
82 /**
83 * @return bool
84 */
85 public static function isTranslationQueue() {
86 return ! isStandAlone() && self::isTmPage( '/menu/translations-queue.php' );
87 }
88
89 /**
90 * @return bool
91 */
92 public static function isTranslationsDashboard() {
93 return ! isStandAlone() && self::isTmPage( '/menu/main.php' );
94 }
95
96 public static function isWcProductAttributesPage(): bool {
97 return self::isPage( 'product_attributes' ) && Relation::propEq( 'post_type', 'product', $_GET );
98 }
99
100 /**
101 * @param string $path Path after the TM folder (e.g. '/menu/main.php')
102 *
103 * @return bool
104 */
105 private static function isTmPage( $path ) {
106 return defined( 'WPML_TM_FOLDER' ) && self::isPage( WPML_TM_FOLDER . $path );
107 }
108 }
109