PluginProbe
WooCommerce Square / trunk
WooCommerce Square vtrunk
5.5.0 5.4.3 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 All 132 releases
woocommerce-square / includes / Utilities / Helper.php
Helper.php
102 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace WooCommerce\Square\Utilities;
3
4 defined( 'ABSPATH' ) || exit;
5
6 /**
7 * WooCommerce Square Helper Class
8 *
9 * The purpose of this class is to centralize common utility functions.
10 *
11 * @since 2.2.0
12 */
13 class Helper {
14 /**
15 * Format a number with 2 decimal points, using a period for the decimal
16 * separator and no thousands separator.
17 *
18 * Commonly used for payment gateways which require amounts in this format.
19 *
20 * @since 3.0.0
21 * @param float $number
22 * @return string
23 */
24 public static function number_format( $number ) {
25
26 return number_format( (float) $number, 2, '.', '' );
27 }
28
29 /**
30 * Safely get and trim data from $_POST
31 *
32 * @since 3.0.0
33 * @param string $key array key to get from $_POST array
34 * @return string value from $_POST or blank string if $_POST[ $key ] is not set
35 */
36 public static function get_post( $key ) {
37 wc_deprecated_function( __METHOD__, '4.6.3', 'Square_Helper::get_post' );
38
39 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Nonce verification is not required here as this is a helper function
40 if ( isset( $_POST[ $key ] ) ) {
41 return trim( wc_clean( wp_unslash( $_POST[ $key ] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
42 }
43
44 return '';
45 }
46
47 /**
48 * Add and store a notice.
49 *
50 * WC notice functions are not available in the admin
51 *
52 * @since 3.0.2
53 * @param string $message The text to display in the notice.
54 * @param string $notice_type The singular name of the notice type - either error, success or notice. [optional]
55 */
56 public static function wc_add_notice( $message, $notice_type = 'success' ) {
57
58 if ( function_exists( 'wc_add_notice' ) ) {
59 wc_add_notice( $message, $notice_type );
60 }
61 }
62
63 /**
64 * Gets the full URL to the log file for a given $handle
65 *
66 * @since 3.0.0
67 * @param string $handle log handle
68 * @return string URL to the WC log file identified by $handle
69 */
70 public static function get_wc_log_file_url( $handle ) {
71 return admin_url( sprintf( 'admin.php?page=wc-status&tab=logs&log_file=%s-%s-log', $handle, sanitize_file_name( wp_hash( $handle ) ) ) );
72 }
73
74 /**
75 * Helper method to get the version of the currently installed WooCommerce
76 *
77 * @since 3.0.0
78 * @return string woocommerce version number or null
79 */
80 public static function get_wc_version() {
81
82 return defined( 'WC_VERSION' ) && WC_VERSION ? WC_VERSION : null;
83 }
84
85 /**
86 * Registers, enqueues, and adds an inline script (replaces repeated wp_register_script + wp_enqueue_script + wp_add_inline_script).
87 *
88 * @since 5.3.0
89 * @param string $script_handle Script handle.
90 * @param string $javascript Inline JavaScript code.
91 * @param array $dependencies Optional. Script dependencies. Default array( 'jquery' ).
92 * @param string|null $version Optional. Script version. Default WC_SQUARE_PLUGIN_VERSION.
93 * @param bool $in_footer Optional. Whether to enqueue in footer. Default true.
94 */
95 public static function enqueue_inline_script( string $script_handle, string $javascript, array $dependencies = array( 'jquery' ), ?string $version = null, bool $in_footer = true ): void {
96 $version = $version ?? WC_SQUARE_PLUGIN_VERSION;
97 wp_register_script( $script_handle, '', $dependencies, $version, $in_footer );
98 wp_enqueue_script( $script_handle );
99 wp_add_inline_script( $script_handle, $javascript );
100 }
101 }
102