PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 5.4.2
WooCommerce Square v5.4.2
5.4.2 5.4.1 5.4.0 trunk 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.7.0 2.8.0 2.9.0 2.9.1 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.7.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 4.0.0 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 4.9.8 4.9.9 5.0.0 5.0.1 5.1.0 5.1.1 5.1.2 5.2.0 5.3.0 5.3.1 5.3.2 5.3.3
woocommerce-square / includes / Framework / Plugin_Compatibility.php
woocommerce-square / includes / Framework Last commit date
Addresses 3 years ago Api 1 year ago Compatibility 2 years ago PaymentGateway 1 day ago Utilities 1 year ago Admin_Message_Handler.php 3 years ago Admin_Notice_Handler.php 3 months ago Lifecycle.php 2 years ago Plugin.php 11 months ago Plugin_Compatibility.php 2 years ago Plugin_Dependencies.php 1 year ago Square_Helper.php 8 months ago
Plugin_Compatibility.php
129 lines
1 <?php
2 /**
3 * WooCommerce Plugin Framework
4 *
5 * This source file is subject to the GNU General Public License v3.0
6 * that is bundled with this package in the file license.txt.
7 * It is also available through the world-wide-web at this URL:
8 * http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
9 * If you did not receive a copy of the license and are unable to
10 * obtain it through the world-wide-web, please send an email
11 * to license@skyverge.com so we can send you a copy immediately.
12 *
13 * @since 3.0.0
14 * @author WooCommerce / SkyVerge
15 * @copyright Copyright (c) 2013-2019, SkyVerge, Inc.
16 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
17 *
18 * Modified by WooCommerce on 01 December 2021.
19 */
20
21 namespace WooCommerce\Square\Framework;
22
23 defined( 'ABSPATH' ) || exit;
24
25 class Plugin_Compatibility {
26
27 /**
28 * Logs a doing_it_wrong message.
29 *
30 * Backports wc_doing_it_wrong() to WC 2.6.
31 *
32 * @since 3.0.0
33 *
34 * @param string $func function used
35 * @param string $message message to log
36 * @param string $version version the message was added in
37 */
38 public static function wc_doing_it_wrong( $func, $message, $version ) {
39 wc_doing_it_wrong( $func, $message, $version );
40 }
41
42 /**
43 * Helper method to get the version of the currently installed WooCommerce
44 *
45 * @since 3.0.0
46 * @return string woocommerce version number or null
47 */
48 public static function get_wc_version() {
49
50 return defined( 'WC_VERSION' ) && WC_VERSION ? WC_VERSION : null;
51 }
52
53 /**
54 * Determines if the installed version of WooCommerce is lower than the
55 * passed version.
56 *
57 * @since 3.0.0
58 *
59 * @param string $version version number to compare
60 * @return bool
61 */
62 public static function is_wc_version_lt( $version ) {
63 return self::get_wc_version() && version_compare( self::get_wc_version(), $version, '<' );
64 }
65
66 /**
67 * Normalizes a WooCommerce page screen ID.
68 *
69 * Needed because WordPress uses a menu title (which is translatable), not slug, to generate screen ID.
70 * See details in: https://core.trac.wordpress.org/ticket/21454
71 *
72 * @since 3.0.0
73 * @param string $slug slug for the screen ID to normalize (minus `woocommerce_page_`)
74 * @return string normalized screen ID
75 */
76 public static function normalize_wc_screen_id( $slug = 'wc-settings' ) {
77
78 // The textdomain usage is intentional here, we need to match the menu title.
79 $prefix = sanitize_title( __( 'WooCommerce', 'woocommerce-square' ) );
80
81 return $prefix . '_page_' . $slug;
82 }
83
84
85 /**
86 * Converts a shorthand byte value to an integer byte value.
87 *
88 * Wrapper for wp_convert_hr_to_bytes(), moved to load.php in WordPress 4.6 from media.php
89 *
90 * Based on ActionScheduler's compat wrapper for the same function:
91 * ActionScheduler_Compatibility::convert_hr_to_bytes()
92 *
93 * @link https://secure.php.net/manual/en/function.ini-get.php
94 * @link https://secure.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
95 *
96 * @since 3.0.0
97 *
98 * @param string $value A (PHP ini) byte value, either shorthand or ordinary.
99 * @return int An integer byte value.
100 */
101 public static function convert_hr_to_bytes( $value ) {
102
103 if ( function_exists( 'wp_convert_hr_to_bytes' ) ) {
104
105 return wp_convert_hr_to_bytes( $value );
106 }
107
108 $value = strtolower( trim( $value ) );
109 $bytes = (int) $value;
110
111 if ( false !== strpos( $value, 'g' ) ) {
112
113 $bytes *= GB_IN_BYTES;
114
115 } elseif ( false !== strpos( $value, 'm' ) ) {
116
117 $bytes *= MB_IN_BYTES;
118
119 } elseif ( false !== strpos( $value, 'k' ) ) {
120
121 $bytes *= KB_IN_BYTES;
122 }
123
124 // deal with large (float) values which run into the maximum integer size
125 return min( $bytes, PHP_INT_MAX );
126 }
127 }
128
129