PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 5.3.2
WooCommerce Square v5.3.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 / Utilities / Array_Utility.php
woocommerce-square / includes / Utilities Last commit date
Array_Utility.php 3 years ago Coupon_Utility.php 4 months ago Encryption_Utility.php 2 years ago Helper.php 3 months ago Money_Utility.php 3 years ago Order_Ajax_Authorization.php 3 months ago Performance_Logger.php 1 year ago String_Utility.php 8 months ago Token_Scope_Utility.php 4 months ago
Array_Utility.php
111 lines
1 <?php
2 /**
3 * WooCommerce Square
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@woocommerce.com so we can send you a copy immediately.
12 *
13 * DISCLAIMER
14 *
15 * Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
16 * versions in the future. If you wish to customize WooCommerce Square for your
17 * needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
18 *
19 * @author WooCommerce
20 * @copyright Copyright: (c) 2019, Automattic, Inc.
21 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
22 */
23
24 namespace WooCommerce\Square\Utilities;
25
26 defined( 'ABSPATH' ) || exit;
27
28 /**
29 * Helper for dealing with String values.
30 *
31 * @since 2.2.0
32 */
33 class Array_Utility {
34 /**
35 * Insert the given element after the given key in the array
36 *
37 * Sample usage:
38 *
39 * given
40 *
41 * array( 'item_1' => 'foo', 'item_2' => 'bar' )
42 *
43 * array_insert_after( $array, 'item_1', array( 'item_1.5' => 'w00t' ) )
44 *
45 * becomes
46 *
47 * array( 'item_1' => 'foo', 'item_1.5' => 'w00t', 'item_2' => 'bar' )
48 *
49 * @since 2.2.0
50 * @param array $array array to insert the given element into
51 * @param string $insert_key key to insert given element after
52 * @param array $element element to insert into array
53 * @return array
54 */
55 public static function array_insert_after( Array $array, $insert_key, Array $element ) {
56
57 $new_array = array();
58
59 foreach ( $array as $key => $value ) {
60
61 $new_array[ $key ] = $value;
62
63 if ( $insert_key == $key ) {
64
65 foreach ( $element as $k => $v ) {
66 $new_array[ $k ] = $v;
67 }
68 }
69 }
70
71 return $new_array;
72 }
73
74 /**
75 * Lists an array as text.
76 *
77 * Takes an array and returns a list like "one, two, three, and four"
78 * with a (mandatory) oxford comma.
79 *
80 * @since 5.2.0
81 *
82 * @param array $items items to list
83 * @param string|null $conjunction coordinating conjunction, like "or" or "and"
84 * @param string $separator list separator, like a comma
85 * @return string
86 */
87 public static function list_array_items( array $items, $conjunction = null, $separator = '' ) {
88
89 if ( ! is_string( $conjunction ) ) {
90 $conjunction = _x( 'and', 'coordinating conjunction for a list of items: a, b, and c', 'woocommerce-square' );
91 }
92
93 // append the conjunction to the last item
94 if ( count( $items ) > 1 ) {
95
96 $last_item = array_pop( $items );
97
98 array_push( $items, trim( "{$conjunction} {$last_item}" ) );
99
100 // only use a comma if needed and no separator was passed
101 if ( count( $items ) < 3 ) {
102 $separator = ' ';
103 } elseif ( ! is_string( $separator ) || '' === $separator ) {
104 $separator = ', ';
105 }
106 }
107
108 return implode( $separator, $items );
109 }
110 }
111