PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 3.8.1
WooCommerce Square v3.8.1
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 3 years ago Compatibility 3 years ago PaymentGateway 3 years ago Utilities 3 years ago Admin_Message_Handler.php 3 years ago Admin_Notice_Handler.php 3 years ago Lifecycle.php 3 years ago Plugin.php 3 years ago Plugin_Compatibility.php 3 years ago Plugin_Dependencies.php 3 years ago Square_Helper.php 4 years ago
Plugin_Compatibility.php
130 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) 2021-2022, WooCommerce.
16 * @copyright Copyright (c) 2013-2019, SkyVerge, Inc.
17 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
18 *
19 * Modified by WooCommerce on 01 December 2021.
20 */
21
22 namespace WooCommerce\Square\Framework;
23
24 defined( 'ABSPATH' ) || exit;
25
26 class Plugin_Compatibility {
27
28 /**
29 * Logs a doing_it_wrong message.
30 *
31 * Backports wc_doing_it_wrong() to WC 2.6.
32 *
33 * @since 3.0.0
34 *
35 * @param string $function function used
36 * @param string $message message to log
37 * @param string $version version the message was added in
38 */
39 public static function wc_doing_it_wrong( $function, $message, $version ) {
40 wc_doing_it_wrong( $function, $message, $version );
41 }
42
43 /**
44 * Helper method to get the version of the currently installed WooCommerce
45 *
46 * @since 3.0.0
47 * @return string woocommerce version number or null
48 */
49 public static function get_wc_version() {
50
51 return defined( 'WC_VERSION' ) && WC_VERSION ? WC_VERSION : null;
52 }
53
54 /**
55 * Determines if the installed version of WooCommerce is lower than the
56 * passed version.
57 *
58 * @since 3.0.0
59 *
60 * @param string $version version number to compare
61 * @return bool
62 */
63 public static function is_wc_version_lt( $version ) {
64 return self::get_wc_version() && version_compare( self::get_wc_version(), $version, '<' );
65 }
66
67 /**
68 * Normalizes a WooCommerce page screen ID.
69 *
70 * Needed because WordPress uses a menu title (which is translatable), not slug, to generate screen ID.
71 * See details in: https://core.trac.wordpress.org/ticket/21454
72 *
73 * @since 3.0.0
74 * @param string $slug slug for the screen ID to normalize (minus `woocommerce_page_`)
75 * @return string normalized screen ID
76 */
77 public static function normalize_wc_screen_id( $slug = 'wc-settings' ) {
78
79 // The textdomain usage is intentional here, we need to match the menu title.
80 $prefix = sanitize_title( __( 'WooCommerce', 'woocommerce-square' ) );
81
82 return $prefix . '_page_' . $slug;
83 }
84
85
86 /**
87 * Converts a shorthand byte value to an integer byte value.
88 *
89 * Wrapper for wp_convert_hr_to_bytes(), moved to load.php in WordPress 4.6 from media.php
90 *
91 * Based on ActionScheduler's compat wrapper for the same function:
92 * ActionScheduler_Compatibility::convert_hr_to_bytes()
93 *
94 * @link https://secure.php.net/manual/en/function.ini-get.php
95 * @link https://secure.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
96 *
97 * @since 3.0.0
98 *
99 * @param string $value A (PHP ini) byte value, either shorthand or ordinary.
100 * @return int An integer byte value.
101 */
102 public static function convert_hr_to_bytes( $value ) {
103
104 if ( function_exists( 'wp_convert_hr_to_bytes' ) ) {
105
106 return wp_convert_hr_to_bytes( $value );
107 }
108
109 $value = strtolower( trim( $value ) );
110 $bytes = (int) $value;
111
112 if ( false !== strpos( $value, 'g' ) ) {
113
114 $bytes *= GB_IN_BYTES;
115
116 } elseif ( false !== strpos( $value, 'm' ) ) {
117
118 $bytes *= MB_IN_BYTES;
119
120 } elseif ( false !== strpos( $value, 'k' ) ) {
121
122 $bytes *= KB_IN_BYTES;
123 }
124
125 // deal with large (float) values which run into the maximum integer size
126 return min( $bytes, PHP_INT_MAX );
127 }
128 }
129
130