Completed
Branch dependabot/npm_and_yarn/wordpr... (563a96)
by
unknown
57:01 queued 49:08
created
core/Factory.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -16,54 +16,54 @@
 block discarded – undo
16 16
 class Factory
17 17
 {
18 18
 
19
-    /**
20
-     * @param string $class_name
21
-     * @param array  $arguments
22
-     * @return mixed|null
23
-     * @throws \EE_Error
24
-     */
25
-    public static function create($class_name, $arguments = array())
26
-    {
27
-        if (empty($class_name)) {
28
-            throw new \EE_Error(
29
-                __('You must provide a class name in order to instantiate it.', 'event_espresso')
30
-            );
31
-        }
32
-        // if ( ! class_exists( $class_name ) ) {
33
-        //     throw new \EE_Error(
34
-        //         sprintf(
35
-        //             __('The "%1$s" class was not found. Please include the correct file or set an autoloader for it',
36
-        //                 'event_espresso'),
37
-        //             $class_name
38
-        //         )
39
-        //     );
40
-        // }
41
-        $object = null;
42
-        switch ($class_name) {
43
-            case 'EE_Request':
44
-                $object = new \EE_Request($_GET, $_POST, $_COOKIE);
45
-                break;
46
-            case 'Iframe':
47
-                $title = isset($arguments['title']) ? $arguments['title'] : null;
48
-                $content = isset($arguments['content']) ? $arguments['content'] : null;
49
-                $object = new Iframe($title, $content);
50
-                break;
51
-            default:
52
-                $object = new $class_name($arguments);
53
-        }
19
+	/**
20
+	 * @param string $class_name
21
+	 * @param array  $arguments
22
+	 * @return mixed|null
23
+	 * @throws \EE_Error
24
+	 */
25
+	public static function create($class_name, $arguments = array())
26
+	{
27
+		if (empty($class_name)) {
28
+			throw new \EE_Error(
29
+				__('You must provide a class name in order to instantiate it.', 'event_espresso')
30
+			);
31
+		}
32
+		// if ( ! class_exists( $class_name ) ) {
33
+		//     throw new \EE_Error(
34
+		//         sprintf(
35
+		//             __('The "%1$s" class was not found. Please include the correct file or set an autoloader for it',
36
+		//                 'event_espresso'),
37
+		//             $class_name
38
+		//         )
39
+		//     );
40
+		// }
41
+		$object = null;
42
+		switch ($class_name) {
43
+			case 'EE_Request':
44
+				$object = new \EE_Request($_GET, $_POST, $_COOKIE);
45
+				break;
46
+			case 'Iframe':
47
+				$title = isset($arguments['title']) ? $arguments['title'] : null;
48
+				$content = isset($arguments['content']) ? $arguments['content'] : null;
49
+				$object = new Iframe($title, $content);
50
+				break;
51
+			default:
52
+				$object = new $class_name($arguments);
53
+		}
54 54
 
55
-        // if ( ! $object instanceof $class_name ) {
56
-        //     throw new \EE_Error(
57
-        //         sprintf(
58
-        //             __(
59
-        //                 'An error occurred during class instantiation and the requested object could not be created. The result was: %1$s %2$s',
60
-        //                 'event_espresso'
61
-        //             ),
62
-        //             '<br />',
63
-        //             var_export($object, true)
64
-        //         )
65
-        //     );
66
-        // }
67
-        return $object;
68
-    }
55
+		// if ( ! $object instanceof $class_name ) {
56
+		//     throw new \EE_Error(
57
+		//         sprintf(
58
+		//             __(
59
+		//                 'An error occurred during class instantiation and the requested object could not be created. The result was: %1$s %2$s',
60
+		//                 'event_espresso'
61
+		//             ),
62
+		//             '<br />',
63
+		//             var_export($object, true)
64
+		//         )
65
+		//     );
66
+		// }
67
+		return $object;
68
+	}
69 69
 }
Please login to merge, or discard this patch.
core/admin/PostShortcodeTracking.php 1 patch
Indentation   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -12,138 +12,138 @@
 block discarded – undo
12 12
 class PostShortcodeTracking
13 13
 {
14 14
 
15
-    /**
16
-     * @deprecated 4.9.26
17
-     * @return    void
18
-     */
19
-    public static function set_hooks_admin()
20
-    {
21
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
22
-    }
23
-
24
-
25
-    /**
26
-     * @deprecated 4.9.26
27
-     * @param $post_ID
28
-     * @param $post
29
-     * @return void
30
-     */
31
-    public static function parse_post_content_on_save($post_ID, $post)
32
-    {
33
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
34
-    }
35
-
36
-
37
-    /**
38
-     * @deprecated 4.9.26
39
-     * @param $page_for_posts
40
-     * @return void
41
-     */
42
-    protected static function set_post_shortcodes_for_posts_page($page_for_posts)
43
-    {
44
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
45
-    }
46
-
47
-
48
-    /**
49
-     * @deprecated 4.9.26
50
-     * @param $page_for_posts
51
-     * @param $EES_Shortcode
52
-     * @param $post_ID
53
-     * @return void
54
-     */
55
-    protected static function set_post_shortcode_for_posts_page($page_for_posts, $EES_Shortcode, $post_ID)
56
-    {
57
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
58
-    }
59
-
60
-
61
-    /**
62
-     * @deprecated 4.9.26
63
-     * @param $ID
64
-     * @return void
65
-     */
66
-    public static function unset_post_shortcodes_on_delete($ID)
67
-    {
68
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
69
-    }
70
-
71
-
72
-    /**
73
-     * @deprecated 4.9.26
74
-     * @param      $ID
75
-     * @param      $shortcode_class
76
-     * @param      $shortcode_posts
77
-     * @param      $page_for_posts
78
-     * @param bool $update_post_shortcodes
79
-     * @return void
80
-     */
81
-    protected static function unset_posts_page_shortcode_for_post(
82
-        $ID,
83
-        $shortcode_class,
84
-        $shortcode_posts,
85
-        $page_for_posts,
86
-        $update_post_shortcodes = false
87
-    ) {
88
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
89
-    }
90
-
91
-
92
-    /**
93
-     * @deprecated 4.9.26
94
-     * @param string $page_for_posts
95
-     * @return void
96
-     */
97
-    public static function update_post_shortcodes($page_for_posts = '')
98
-    {
99
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
100
-    }
101
-
102
-
103
-    /**
104
-     * @deprecated 4.9.26
105
-     * @param $option
106
-     * @param $value
107
-     * @return void
108
-     */
109
-    public static function reset_page_for_posts_on_initial_set($option, $value)
110
-    {
111
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
112
-    }
113
-
114
-
115
-    /**
116
-     * @deprecated 4.9.26
117
-     * @param        $option
118
-     * @param string $old_value
119
-     * @param string $value
120
-     * @return void
121
-     */
122
-    public static function reset_page_for_posts_on_change($option, $old_value = '', $value = '')
123
-    {
124
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
125
-    }
126
-
127
-
128
-    /**
129
-     * @deprecated 4.9.26
130
-     * @param $option
131
-     * @return void
132
-     */
133
-    public static function reset_page_for_posts_on_delete($option)
134
-    {
135
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
136
-    }
137
-
138
-
139
-    /**
140
-     * @deprecated 4.9.26
141
-     * @param      $shortcodes
142
-     * @param bool $index_results
143
-     * @return void
144
-     */
145
-    public static function get_post_ids_for_shortcode($shortcodes, $index_results = true)
146
-    {
147
-        \EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
148
-    }
15
+	/**
16
+	 * @deprecated 4.9.26
17
+	 * @return    void
18
+	 */
19
+	public static function set_hooks_admin()
20
+	{
21
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
22
+	}
23
+
24
+
25
+	/**
26
+	 * @deprecated 4.9.26
27
+	 * @param $post_ID
28
+	 * @param $post
29
+	 * @return void
30
+	 */
31
+	public static function parse_post_content_on_save($post_ID, $post)
32
+	{
33
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
34
+	}
35
+
36
+
37
+	/**
38
+	 * @deprecated 4.9.26
39
+	 * @param $page_for_posts
40
+	 * @return void
41
+	 */
42
+	protected static function set_post_shortcodes_for_posts_page($page_for_posts)
43
+	{
44
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
45
+	}
46
+
47
+
48
+	/**
49
+	 * @deprecated 4.9.26
50
+	 * @param $page_for_posts
51
+	 * @param $EES_Shortcode
52
+	 * @param $post_ID
53
+	 * @return void
54
+	 */
55
+	protected static function set_post_shortcode_for_posts_page($page_for_posts, $EES_Shortcode, $post_ID)
56
+	{
57
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
58
+	}
59
+
60
+
61
+	/**
62
+	 * @deprecated 4.9.26
63
+	 * @param $ID
64
+	 * @return void
65
+	 */
66
+	public static function unset_post_shortcodes_on_delete($ID)
67
+	{
68
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
69
+	}
70
+
71
+
72
+	/**
73
+	 * @deprecated 4.9.26
74
+	 * @param      $ID
75
+	 * @param      $shortcode_class
76
+	 * @param      $shortcode_posts
77
+	 * @param      $page_for_posts
78
+	 * @param bool $update_post_shortcodes
79
+	 * @return void
80
+	 */
81
+	protected static function unset_posts_page_shortcode_for_post(
82
+		$ID,
83
+		$shortcode_class,
84
+		$shortcode_posts,
85
+		$page_for_posts,
86
+		$update_post_shortcodes = false
87
+	) {
88
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
89
+	}
90
+
91
+
92
+	/**
93
+	 * @deprecated 4.9.26
94
+	 * @param string $page_for_posts
95
+	 * @return void
96
+	 */
97
+	public static function update_post_shortcodes($page_for_posts = '')
98
+	{
99
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
100
+	}
101
+
102
+
103
+	/**
104
+	 * @deprecated 4.9.26
105
+	 * @param $option
106
+	 * @param $value
107
+	 * @return void
108
+	 */
109
+	public static function reset_page_for_posts_on_initial_set($option, $value)
110
+	{
111
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
112
+	}
113
+
114
+
115
+	/**
116
+	 * @deprecated 4.9.26
117
+	 * @param        $option
118
+	 * @param string $old_value
119
+	 * @param string $value
120
+	 * @return void
121
+	 */
122
+	public static function reset_page_for_posts_on_change($option, $old_value = '', $value = '')
123
+	{
124
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
125
+	}
126
+
127
+
128
+	/**
129
+	 * @deprecated 4.9.26
130
+	 * @param $option
131
+	 * @return void
132
+	 */
133
+	public static function reset_page_for_posts_on_delete($option)
134
+	{
135
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
136
+	}
137
+
138
+
139
+	/**
140
+	 * @deprecated 4.9.26
141
+	 * @param      $shortcodes
142
+	 * @param bool $index_results
143
+	 * @return void
144
+	 */
145
+	public static function get_post_ids_for_shortcode($shortcodes, $index_results = true)
146
+	{
147
+		\EE_Error::doing_it_wrong(__METHOD__, __('Usage is deprecated.', 'event_espresso'), '4.9.26');
148
+	}
149 149
 }
Please login to merge, or discard this patch.
core/domain/entities/Context.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -14,62 +14,62 @@
 block discarded – undo
14 14
 class Context implements ContextInterface
15 15
 {
16 16
 
17
-    /**
18
-     * @var string $slug
19
-     */
20
-    private $slug;
17
+	/**
18
+	 * @var string $slug
19
+	 */
20
+	private $slug;
21 21
 
22
-    /**
23
-     * @var string $description
24
-     */
25
-    private $description;
22
+	/**
23
+	 * @var string $description
24
+	 */
25
+	private $description;
26 26
 
27 27
 
28
-    /**
29
-     * Context constructor.
30
-     *
31
-     * @param string $slug
32
-     * @param string $description
33
-     */
34
-    public function __construct($slug, $description)
35
-    {
36
-        $this->setSlug($slug);
37
-        $this->setDescription($description);
38
-    }
28
+	/**
29
+	 * Context constructor.
30
+	 *
31
+	 * @param string $slug
32
+	 * @param string $description
33
+	 */
34
+	public function __construct($slug, $description)
35
+	{
36
+		$this->setSlug($slug);
37
+		$this->setDescription($description);
38
+	}
39 39
 
40 40
 
41
-    /**
42
-     * @return string
43
-     */
44
-    public function slug()
45
-    {
46
-        return $this->slug;
47
-    }
41
+	/**
42
+	 * @return string
43
+	 */
44
+	public function slug()
45
+	{
46
+		return $this->slug;
47
+	}
48 48
 
49 49
 
50
-    /**
51
-     * @param string $slug
52
-     */
53
-    private function setSlug($slug)
54
-    {
55
-        $this->slug = sanitize_key($slug);
56
-    }
50
+	/**
51
+	 * @param string $slug
52
+	 */
53
+	private function setSlug($slug)
54
+	{
55
+		$this->slug = sanitize_key($slug);
56
+	}
57 57
 
58 58
 
59
-    /**
60
-     * @return string
61
-     */
62
-    public function description()
63
-    {
64
-        return $this->description;
65
-    }
59
+	/**
60
+	 * @return string
61
+	 */
62
+	public function description()
63
+	{
64
+		return $this->description;
65
+	}
66 66
 
67 67
 
68
-    /**
69
-     * @param string $description
70
-     */
71
-    private function setDescription($description)
72
-    {
73
-        $this->description = sanitize_text_field($description);
74
-    }
68
+	/**
69
+	 * @param string $description
70
+	 */
71
+	private function setDescription($description)
72
+	{
73
+		$this->description = sanitize_text_field($description);
74
+	}
75 75
 }
Please login to merge, or discard this patch.
modules/invalid_checkout_access/InvalidCheckoutAccess.php 2 patches
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -13,178 +13,178 @@
 block discarded – undo
13 13
 class InvalidCheckoutAccess
14 14
 {
15 15
 
16
-    /**
17
-     * key used for saving invalid checkout access data to the wp_options table
18
-     */
19
-    const OPTION_KEY = 'ee_invalid_checkout_access';
16
+	/**
17
+	 * key used for saving invalid checkout access data to the wp_options table
18
+	 */
19
+	const OPTION_KEY = 'ee_invalid_checkout_access';
20 20
 
21 21
 
22
-    /**
23
-     * _block_bots
24
-     * checks that the incoming request has either of the following set:
25
-     *  a uts (unix timestamp) which indicates that the request was redirected from the Ticket Selector
26
-     *  a REG URL Link, which indicates that the request is a return visit to SPCO for a valid TXN
27
-     * so if you're not coming from the Ticket Selector nor returning for a valid IP...
28
-     * then where you coming from man?
29
-     *
30
-     * @param \EE_Checkout $checkout
31
-     * @return bool true if access to registration checkout appears to be invalid
32
-     */
33
-    public function checkoutAccessIsInvalid(\EE_Checkout $checkout)
34
-    {
35
-        if (! ($checkout->uts || $checkout->reg_url_link)
36
-            && ! (defined('DOING_AJAX') && DOING_AJAX)
37
-            && \EE_Config::instance()->registration->track_invalid_checkout_access()
38
-        ) {
39
-            /** @var \EE_Request $request */
40
-            $request = \EE_Registry::instance()->load_core('EE_Request');
41
-            $ip_address = $request->ip_address();
42
-            $ee_bot_checkout = get_option(InvalidCheckoutAccess::OPTION_KEY);
43
-            if ($ee_bot_checkout === false) {
44
-                $ee_bot_checkout = array();
45
-                add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false);
46
-            }
47
-            if (! isset($ee_bot_checkout[ $ip_address ])) {
48
-                $ee_bot_checkout[ $ip_address ] = array();
49
-            }
50
-            $http_referer = isset($_SERVER['HTTP_REFERER'])
51
-                ? esc_attr($_SERVER['HTTP_REFERER'])
52
-                : 0;
53
-            if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) {
54
-                $ee_bot_checkout[ $ip_address ][ $http_referer ] = 0;
55
-            }
56
-            $ee_bot_checkout[ $ip_address ][ $http_referer ]++;
57
-            update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout);
58
-            if (WP_DEBUG) {
59
-                \EE_Error::add_error(
60
-                    esc_html__('Direct access to the registration checkout page is not allowed.', 'event_espresso'),
61
-                    __FILE__,
62
-                    __FUNCTION__,
63
-                    __LINE__
64
-                );
65
-            }
66
-            return true;
67
-        }
68
-        return false;
69
-    }
22
+	/**
23
+	 * _block_bots
24
+	 * checks that the incoming request has either of the following set:
25
+	 *  a uts (unix timestamp) which indicates that the request was redirected from the Ticket Selector
26
+	 *  a REG URL Link, which indicates that the request is a return visit to SPCO for a valid TXN
27
+	 * so if you're not coming from the Ticket Selector nor returning for a valid IP...
28
+	 * then where you coming from man?
29
+	 *
30
+	 * @param \EE_Checkout $checkout
31
+	 * @return bool true if access to registration checkout appears to be invalid
32
+	 */
33
+	public function checkoutAccessIsInvalid(\EE_Checkout $checkout)
34
+	{
35
+		if (! ($checkout->uts || $checkout->reg_url_link)
36
+			&& ! (defined('DOING_AJAX') && DOING_AJAX)
37
+			&& \EE_Config::instance()->registration->track_invalid_checkout_access()
38
+		) {
39
+			/** @var \EE_Request $request */
40
+			$request = \EE_Registry::instance()->load_core('EE_Request');
41
+			$ip_address = $request->ip_address();
42
+			$ee_bot_checkout = get_option(InvalidCheckoutAccess::OPTION_KEY);
43
+			if ($ee_bot_checkout === false) {
44
+				$ee_bot_checkout = array();
45
+				add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false);
46
+			}
47
+			if (! isset($ee_bot_checkout[ $ip_address ])) {
48
+				$ee_bot_checkout[ $ip_address ] = array();
49
+			}
50
+			$http_referer = isset($_SERVER['HTTP_REFERER'])
51
+				? esc_attr($_SERVER['HTTP_REFERER'])
52
+				: 0;
53
+			if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) {
54
+				$ee_bot_checkout[ $ip_address ][ $http_referer ] = 0;
55
+			}
56
+			$ee_bot_checkout[ $ip_address ][ $http_referer ]++;
57
+			update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout);
58
+			if (WP_DEBUG) {
59
+				\EE_Error::add_error(
60
+					esc_html__('Direct access to the registration checkout page is not allowed.', 'event_espresso'),
61
+					__FILE__,
62
+					__FUNCTION__,
63
+					__LINE__
64
+				);
65
+			}
66
+			return true;
67
+		}
68
+		return false;
69
+	}
70 70
 
71 71
 
72
-    /**
73
-     * _invalid_checkout_access_form
74
-     *
75
-     * @return \EE_Form_Section_Proper
76
-     * @throws \EE_Error
77
-     */
78
-    public function getForm()
79
-    {
80
-        return new \EE_Form_Section_Proper(
81
-            array(
82
-                'name'            => 'invalid_checkout_access',
83
-                'html_id'         => 'invalid_checkout_access',
84
-                'layout_strategy' => new \EE_Admin_Two_Column_Layout(),
85
-                'subsections'     => array(
86
-                    'invalid_checkout_access_hdr'   => new \EE_Form_Section_HTML(
87
-                        \EEH_HTML::h2(esc_html__('Invalid Checkout Access', 'event_espresso'))
88
-                    ),
89
-                    'ee_bot_checkout_data'          => new \EE_Text_Area_Input(
90
-                        array(
91
-                            'html_label_text' => esc_html__('Invalid Checkout Data', 'event_espresso'),
92
-                            'default'         => var_export(
93
-                                get_option(InvalidCheckoutAccess::OPTION_KEY, array()),
94
-                                true
95
-                            ),
96
-                            'required'        => false,
97
-                            'html_help_text'  => esc_html__(
98
-                                'Event Espresso blocks any attempt to directly access the registration checkout page, that is NOT from a Ticket Selector or for a return visit for a valid transaction. These are not valid requests accessing your checkout page, so we track the IP addresses, what web page they just came from, and the number of times that they have attempted to access your registration page. This information may help you with protecting your site by other means, such as firewalls, etc, but please note that IP addresses are almost guaranteed to be spoofed by malicious agents.',
99
-                                'event_espresso'
100
-                            ),
101
-                        )
102
-                    ),
103
-                    'track_invalid_checkout_access' => new \EE_Yes_No_Input(
104
-                        array(
105
-                            'html_label_text'         => __('Track Invalid Checkout Access?', 'event_espresso'),
106
-                            'html_help_text'          => esc_html__(
107
-                                'Controls whether or not invalid attempts to directly access the registration checkout page should be tracked. Setting this to "No" means that the above data will no longer be collected.',
108
-                                'event_espresso'
109
-                            ),
110
-                            'default'                 => \EE_Config::instance()
111
-                                ->registration
112
-                                ->track_invalid_checkout_access(),
113
-                            'display_html_label_text' => false,
114
-                        )
115
-                    ),
116
-                    'delete_invalid_checkout_data'  => new \EE_Yes_No_Input(
117
-                        array(
118
-                            'html_label_text'         => __('Reset Invalid Checkout Data', 'event_espresso'),
119
-                            'html_help_text'          => esc_html__(
120
-                                'Setting this to "Yes" will delete all existing invalid checkout access data.',
121
-                                'event_espresso'
122
-                            ),
123
-                            'default'                 => false,
124
-                            'display_html_label_text' => false,
125
-                        )
126
-                    ),
127
-                ),
128
-            )
129
-        );
130
-    }
72
+	/**
73
+	 * _invalid_checkout_access_form
74
+	 *
75
+	 * @return \EE_Form_Section_Proper
76
+	 * @throws \EE_Error
77
+	 */
78
+	public function getForm()
79
+	{
80
+		return new \EE_Form_Section_Proper(
81
+			array(
82
+				'name'            => 'invalid_checkout_access',
83
+				'html_id'         => 'invalid_checkout_access',
84
+				'layout_strategy' => new \EE_Admin_Two_Column_Layout(),
85
+				'subsections'     => array(
86
+					'invalid_checkout_access_hdr'   => new \EE_Form_Section_HTML(
87
+						\EEH_HTML::h2(esc_html__('Invalid Checkout Access', 'event_espresso'))
88
+					),
89
+					'ee_bot_checkout_data'          => new \EE_Text_Area_Input(
90
+						array(
91
+							'html_label_text' => esc_html__('Invalid Checkout Data', 'event_espresso'),
92
+							'default'         => var_export(
93
+								get_option(InvalidCheckoutAccess::OPTION_KEY, array()),
94
+								true
95
+							),
96
+							'required'        => false,
97
+							'html_help_text'  => esc_html__(
98
+								'Event Espresso blocks any attempt to directly access the registration checkout page, that is NOT from a Ticket Selector or for a return visit for a valid transaction. These are not valid requests accessing your checkout page, so we track the IP addresses, what web page they just came from, and the number of times that they have attempted to access your registration page. This information may help you with protecting your site by other means, such as firewalls, etc, but please note that IP addresses are almost guaranteed to be spoofed by malicious agents.',
99
+								'event_espresso'
100
+							),
101
+						)
102
+					),
103
+					'track_invalid_checkout_access' => new \EE_Yes_No_Input(
104
+						array(
105
+							'html_label_text'         => __('Track Invalid Checkout Access?', 'event_espresso'),
106
+							'html_help_text'          => esc_html__(
107
+								'Controls whether or not invalid attempts to directly access the registration checkout page should be tracked. Setting this to "No" means that the above data will no longer be collected.',
108
+								'event_espresso'
109
+							),
110
+							'default'                 => \EE_Config::instance()
111
+								->registration
112
+								->track_invalid_checkout_access(),
113
+							'display_html_label_text' => false,
114
+						)
115
+					),
116
+					'delete_invalid_checkout_data'  => new \EE_Yes_No_Input(
117
+						array(
118
+							'html_label_text'         => __('Reset Invalid Checkout Data', 'event_espresso'),
119
+							'html_help_text'          => esc_html__(
120
+								'Setting this to "Yes" will delete all existing invalid checkout access data.',
121
+								'event_espresso'
122
+							),
123
+							'default'                 => false,
124
+							'display_html_label_text' => false,
125
+						)
126
+					),
127
+				),
128
+			)
129
+		);
130
+	}
131 131
 
132 132
 
133
-    /**
134
-     * update_invalid_checkout_access_form
135
-     *
136
-     * @param \EE_Registration_Config $EE_Registration_Config
137
-     * @return \EE_Registration_Config
138
-     */
139
-    public function processForm(\EE_Registration_Config $EE_Registration_Config)
140
-    {
141
-        try {
142
-            $invalid_checkout_access_form = $this->getForm();
143
-            // if not displaying a form, then check for form submission
144
-            if ($invalid_checkout_access_form->was_submitted()) {
145
-                // capture form data
146
-                $invalid_checkout_access_form->receive_form_submission();
147
-                // validate form data
148
-                if ($invalid_checkout_access_form->is_valid()) {
149
-                    // grab validated data from form
150
-                    $valid_data = $invalid_checkout_access_form->valid_data();
151
-                    // ensure form inputs we want are set
152
-                    if (isset(
153
-                        $valid_data['track_invalid_checkout_access'],
154
-                        $valid_data['delete_invalid_checkout_data']
155
-                    )) {
156
-                        $EE_Registration_Config->set_track_invalid_checkout_access(
157
-                            $valid_data['track_invalid_checkout_access']
158
-                        );
159
-                        // if deleting, then update option with empty array
160
-                        if (filter_var($valid_data['delete_invalid_checkout_data'], FILTER_VALIDATE_BOOLEAN)) {
161
-                            update_option(InvalidCheckoutAccess::OPTION_KEY, array());
162
-                        }
163
-                    } else {
164
-                        \EE_Error::add_error(
165
-                            esc_html__(
166
-                                'Invalid or missing Invalid Checkout Access form data. Please refresh the form and try again.',
167
-                                'event_espresso'
168
-                            ),
169
-                            __FILE__,
170
-                            __FUNCTION__,
171
-                            __LINE__
172
-                        );
173
-                    }
174
-                } else {
175
-                    if ($invalid_checkout_access_form->submission_error_message() !== '') {
176
-                        \EE_Error::add_error(
177
-                            $invalid_checkout_access_form->submission_error_message(),
178
-                            __FILE__,
179
-                            __FUNCTION__,
180
-                            __LINE__
181
-                        );
182
-                    }
183
-                }
184
-            }
185
-        } catch (\EE_Error $e) {
186
-            $e->get_error();
187
-        }
188
-        return $EE_Registration_Config;
189
-    }
133
+	/**
134
+	 * update_invalid_checkout_access_form
135
+	 *
136
+	 * @param \EE_Registration_Config $EE_Registration_Config
137
+	 * @return \EE_Registration_Config
138
+	 */
139
+	public function processForm(\EE_Registration_Config $EE_Registration_Config)
140
+	{
141
+		try {
142
+			$invalid_checkout_access_form = $this->getForm();
143
+			// if not displaying a form, then check for form submission
144
+			if ($invalid_checkout_access_form->was_submitted()) {
145
+				// capture form data
146
+				$invalid_checkout_access_form->receive_form_submission();
147
+				// validate form data
148
+				if ($invalid_checkout_access_form->is_valid()) {
149
+					// grab validated data from form
150
+					$valid_data = $invalid_checkout_access_form->valid_data();
151
+					// ensure form inputs we want are set
152
+					if (isset(
153
+						$valid_data['track_invalid_checkout_access'],
154
+						$valid_data['delete_invalid_checkout_data']
155
+					)) {
156
+						$EE_Registration_Config->set_track_invalid_checkout_access(
157
+							$valid_data['track_invalid_checkout_access']
158
+						);
159
+						// if deleting, then update option with empty array
160
+						if (filter_var($valid_data['delete_invalid_checkout_data'], FILTER_VALIDATE_BOOLEAN)) {
161
+							update_option(InvalidCheckoutAccess::OPTION_KEY, array());
162
+						}
163
+					} else {
164
+						\EE_Error::add_error(
165
+							esc_html__(
166
+								'Invalid or missing Invalid Checkout Access form data. Please refresh the form and try again.',
167
+								'event_espresso'
168
+							),
169
+							__FILE__,
170
+							__FUNCTION__,
171
+							__LINE__
172
+						);
173
+					}
174
+				} else {
175
+					if ($invalid_checkout_access_form->submission_error_message() !== '') {
176
+						\EE_Error::add_error(
177
+							$invalid_checkout_access_form->submission_error_message(),
178
+							__FILE__,
179
+							__FUNCTION__,
180
+							__LINE__
181
+						);
182
+					}
183
+				}
184
+			}
185
+		} catch (\EE_Error $e) {
186
+			$e->get_error();
187
+		}
188
+		return $EE_Registration_Config;
189
+	}
190 190
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
      */
33 33
     public function checkoutAccessIsInvalid(\EE_Checkout $checkout)
34 34
     {
35
-        if (! ($checkout->uts || $checkout->reg_url_link)
35
+        if ( ! ($checkout->uts || $checkout->reg_url_link)
36 36
             && ! (defined('DOING_AJAX') && DOING_AJAX)
37 37
             && \EE_Config::instance()->registration->track_invalid_checkout_access()
38 38
         ) {
@@ -44,16 +44,16 @@  discard block
 block discarded – undo
44 44
                 $ee_bot_checkout = array();
45 45
                 add_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout, '', false);
46 46
             }
47
-            if (! isset($ee_bot_checkout[ $ip_address ])) {
48
-                $ee_bot_checkout[ $ip_address ] = array();
47
+            if ( ! isset($ee_bot_checkout[$ip_address])) {
48
+                $ee_bot_checkout[$ip_address] = array();
49 49
             }
50 50
             $http_referer = isset($_SERVER['HTTP_REFERER'])
51 51
                 ? esc_attr($_SERVER['HTTP_REFERER'])
52 52
                 : 0;
53
-            if (! isset($ee_bot_checkout[ $ip_address ][ $http_referer ])) {
54
-                $ee_bot_checkout[ $ip_address ][ $http_referer ] = 0;
53
+            if ( ! isset($ee_bot_checkout[$ip_address][$http_referer])) {
54
+                $ee_bot_checkout[$ip_address][$http_referer] = 0;
55 55
             }
56
-            $ee_bot_checkout[ $ip_address ][ $http_referer ]++;
56
+            $ee_bot_checkout[$ip_address][$http_referer]++;
57 57
             update_option(InvalidCheckoutAccess::OPTION_KEY, $ee_bot_checkout);
58 58
             if (WP_DEBUG) {
59 59
                 \EE_Error::add_error(
Please login to merge, or discard this patch.
modules/ticket_selector/DatetimeSelector.php 2 patches
Indentation   +167 added lines, -167 removed lines patch added patch discarded remove patch
@@ -12,171 +12,171 @@
 block discarded – undo
12 12
 class DatetimeSelector
13 13
 {
14 14
 
15
-    /**
16
-     * @var \EE_Event $event
17
-     */
18
-    protected $event;
19
-
20
-    /**
21
-     * @var \EE_Ticket[] $tickets
22
-     */
23
-    protected $tickets;
24
-
25
-    /**
26
-     * @var \EE_Datetime[] $datetimes
27
-     */
28
-    protected $datetimes;
29
-
30
-    /**
31
-     * @var \EE_Datetime[] $unique_dates
32
-     */
33
-    protected $unique_dates;
34
-
35
-    /**
36
-     * @var \EE_Ticket_Selector_Config $template_settings
37
-     */
38
-    protected $template_settings;
39
-
40
-    /**
41
-     * @var boolean $active
42
-     */
43
-    protected $active = false;
44
-
45
-
46
-    /**
47
-     * DatetimeSelector constructor.
48
-     *
49
-     * @param \EE_Event                  $event
50
-     * @param \EE_Ticket[]               $tickets
51
-     * @param \EE_Ticket_Selector_Config $template_settings
52
-     * @param string                     $date_format
53
-     * @param string                     $time_format
54
-     * @throws \EE_Error
55
-     */
56
-    public function __construct(
57
-        \EE_Event $event,
58
-        array $tickets,
59
-        \EE_Ticket_Selector_Config $template_settings,
60
-        $date_format = 'Y-m-d',
61
-        $time_format = 'g:i a'
62
-    ) {
63
-        $this->event = $event;
64
-        $this->tickets = $tickets;
65
-        $this->template_settings = $template_settings;
66
-        $this->datetimes = $this->getAllDatetimesForAllTicket($tickets);
67
-        $this->unique_dates = $this->getUniqueDatetimeOptions($date_format, $time_format);
68
-        $this->active = $this->template_settings->showDatetimeSelector($this->unique_dates);
69
-    }
70
-
71
-
72
-    /**
73
-     * @param \EE_Ticket[] $tickets
74
-     * @return array
75
-     * @throws \EE_Error
76
-     */
77
-    protected function getAllDatetimesForAllTicket($tickets = array())
78
-    {
79
-        $datetimes = array();
80
-        foreach ($tickets as $ticket) {
81
-            $datetimes = $this->getTicketDatetimes($ticket, $datetimes);
82
-        }
83
-        return $datetimes;
84
-    }
85
-
86
-
87
-    /**
88
-     * @param \EE_Ticket      $ticket
89
-     * @param  \EE_Datetime[] $datetimes
90
-     * @return \EE_Datetime[]
91
-     * @throws \EE_Error
92
-     */
93
-    protected function getTicketDatetimes(\EE_Ticket $ticket, $datetimes = array())
94
-    {
95
-        $ticket_datetimes = $ticket->datetimes(
96
-            array(
97
-                'order_by'                 => array(
98
-                    'DTT_order'     => 'ASC',
99
-                    'DTT_EVT_start' => 'ASC',
100
-                ),
101
-                'default_where_conditions' => 'none',
102
-            )
103
-        );
104
-        foreach ($ticket_datetimes as $ticket_datetime) {
105
-            if (! $ticket_datetime instanceof \EE_Datetime) {
106
-                continue;
107
-            }
108
-            $datetimes[ $ticket_datetime->ID() ] = $ticket_datetime;
109
-        }
110
-        return $datetimes;
111
-    }
112
-
113
-
114
-    /**
115
-     * @param \EE_Ticket $ticket
116
-     * @return string
117
-     * @throws \EE_Error
118
-     */
119
-    public function getTicketDatetimeClasses(\EE_Ticket $ticket)
120
-    {
121
-        if (! $this->active) {
122
-            return '';
123
-        }
124
-        $ticket_datetimes = $this->getTicketDatetimes($ticket);
125
-        $classes = '';
126
-        foreach ($this->datetimes as $datetime) {
127
-            if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) {
128
-                continue;
129
-            }
130
-            $classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_');
131
-        }
132
-        return $classes;
133
-    }
134
-
135
-
136
-    /**
137
-     * @param string $date_format
138
-     * @param string $time_format
139
-     * @return array
140
-     * @throws \EE_Error
141
-     */
142
-    public function getUniqueDatetimeOptions($date_format = 'Y-m-d', $time_format = 'g:i a')
143
-    {
144
-        $datetime_options = array();
145
-        foreach ($this->datetimes as $datetime) {
146
-            if (! $datetime instanceof \EE_Datetime) {
147
-                continue;
148
-            }
149
-            $datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] =
150
-                $datetime->date_and_time_range($date_format, $time_format, ' - ');
151
-        }
152
-        return $datetime_options;
153
-    }
154
-
155
-
156
-    /**
157
-     * @return string
158
-     * @throws \EE_Error
159
-     */
160
-    public function getDatetimeSelector()
161
-    {
162
-        if (! $this->active) {
163
-            return '';
164
-        }
165
-        $dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input(
166
-            $this->unique_dates,
167
-            array(
168
-                'html_id'               => 'datetime-selector-' . $this->event->ID(),
169
-                'html_name'             => 'datetime_selector_' . $this->event->ID(),
170
-                'html_class'            => 'datetime-selector',
171
-                'select_button_text'    => '<span class="dashicons dashicons-calendar-alt"></span> '
172
-                                           . esc_html__('Filter by Date', 'event_espresso'),
173
-                'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"',
174
-            )
175
-        );
176
-        return \EEH_HTML::div(
177
-            $dropdown_selector->get_html_for_input(),
178
-            '',
179
-            'datetime_selector-dv'
180
-        );
181
-    }
15
+	/**
16
+	 * @var \EE_Event $event
17
+	 */
18
+	protected $event;
19
+
20
+	/**
21
+	 * @var \EE_Ticket[] $tickets
22
+	 */
23
+	protected $tickets;
24
+
25
+	/**
26
+	 * @var \EE_Datetime[] $datetimes
27
+	 */
28
+	protected $datetimes;
29
+
30
+	/**
31
+	 * @var \EE_Datetime[] $unique_dates
32
+	 */
33
+	protected $unique_dates;
34
+
35
+	/**
36
+	 * @var \EE_Ticket_Selector_Config $template_settings
37
+	 */
38
+	protected $template_settings;
39
+
40
+	/**
41
+	 * @var boolean $active
42
+	 */
43
+	protected $active = false;
44
+
45
+
46
+	/**
47
+	 * DatetimeSelector constructor.
48
+	 *
49
+	 * @param \EE_Event                  $event
50
+	 * @param \EE_Ticket[]               $tickets
51
+	 * @param \EE_Ticket_Selector_Config $template_settings
52
+	 * @param string                     $date_format
53
+	 * @param string                     $time_format
54
+	 * @throws \EE_Error
55
+	 */
56
+	public function __construct(
57
+		\EE_Event $event,
58
+		array $tickets,
59
+		\EE_Ticket_Selector_Config $template_settings,
60
+		$date_format = 'Y-m-d',
61
+		$time_format = 'g:i a'
62
+	) {
63
+		$this->event = $event;
64
+		$this->tickets = $tickets;
65
+		$this->template_settings = $template_settings;
66
+		$this->datetimes = $this->getAllDatetimesForAllTicket($tickets);
67
+		$this->unique_dates = $this->getUniqueDatetimeOptions($date_format, $time_format);
68
+		$this->active = $this->template_settings->showDatetimeSelector($this->unique_dates);
69
+	}
70
+
71
+
72
+	/**
73
+	 * @param \EE_Ticket[] $tickets
74
+	 * @return array
75
+	 * @throws \EE_Error
76
+	 */
77
+	protected function getAllDatetimesForAllTicket($tickets = array())
78
+	{
79
+		$datetimes = array();
80
+		foreach ($tickets as $ticket) {
81
+			$datetimes = $this->getTicketDatetimes($ticket, $datetimes);
82
+		}
83
+		return $datetimes;
84
+	}
85
+
86
+
87
+	/**
88
+	 * @param \EE_Ticket      $ticket
89
+	 * @param  \EE_Datetime[] $datetimes
90
+	 * @return \EE_Datetime[]
91
+	 * @throws \EE_Error
92
+	 */
93
+	protected function getTicketDatetimes(\EE_Ticket $ticket, $datetimes = array())
94
+	{
95
+		$ticket_datetimes = $ticket->datetimes(
96
+			array(
97
+				'order_by'                 => array(
98
+					'DTT_order'     => 'ASC',
99
+					'DTT_EVT_start' => 'ASC',
100
+				),
101
+				'default_where_conditions' => 'none',
102
+			)
103
+		);
104
+		foreach ($ticket_datetimes as $ticket_datetime) {
105
+			if (! $ticket_datetime instanceof \EE_Datetime) {
106
+				continue;
107
+			}
108
+			$datetimes[ $ticket_datetime->ID() ] = $ticket_datetime;
109
+		}
110
+		return $datetimes;
111
+	}
112
+
113
+
114
+	/**
115
+	 * @param \EE_Ticket $ticket
116
+	 * @return string
117
+	 * @throws \EE_Error
118
+	 */
119
+	public function getTicketDatetimeClasses(\EE_Ticket $ticket)
120
+	{
121
+		if (! $this->active) {
122
+			return '';
123
+		}
124
+		$ticket_datetimes = $this->getTicketDatetimes($ticket);
125
+		$classes = '';
126
+		foreach ($this->datetimes as $datetime) {
127
+			if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) {
128
+				continue;
129
+			}
130
+			$classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_');
131
+		}
132
+		return $classes;
133
+	}
134
+
135
+
136
+	/**
137
+	 * @param string $date_format
138
+	 * @param string $time_format
139
+	 * @return array
140
+	 * @throws \EE_Error
141
+	 */
142
+	public function getUniqueDatetimeOptions($date_format = 'Y-m-d', $time_format = 'g:i a')
143
+	{
144
+		$datetime_options = array();
145
+		foreach ($this->datetimes as $datetime) {
146
+			if (! $datetime instanceof \EE_Datetime) {
147
+				continue;
148
+			}
149
+			$datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] =
150
+				$datetime->date_and_time_range($date_format, $time_format, ' - ');
151
+		}
152
+		return $datetime_options;
153
+	}
154
+
155
+
156
+	/**
157
+	 * @return string
158
+	 * @throws \EE_Error
159
+	 */
160
+	public function getDatetimeSelector()
161
+	{
162
+		if (! $this->active) {
163
+			return '';
164
+		}
165
+		$dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input(
166
+			$this->unique_dates,
167
+			array(
168
+				'html_id'               => 'datetime-selector-' . $this->event->ID(),
169
+				'html_name'             => 'datetime_selector_' . $this->event->ID(),
170
+				'html_class'            => 'datetime-selector',
171
+				'select_button_text'    => '<span class="dashicons dashicons-calendar-alt"></span> '
172
+										   . esc_html__('Filter by Date', 'event_espresso'),
173
+				'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"',
174
+			)
175
+		);
176
+		return \EEH_HTML::div(
177
+			$dropdown_selector->get_html_for_input(),
178
+			'',
179
+			'datetime_selector-dv'
180
+		);
181
+	}
182 182
 }
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -102,10 +102,10 @@  discard block
 block discarded – undo
102 102
             )
103 103
         );
104 104
         foreach ($ticket_datetimes as $ticket_datetime) {
105
-            if (! $ticket_datetime instanceof \EE_Datetime) {
105
+            if ( ! $ticket_datetime instanceof \EE_Datetime) {
106 106
                 continue;
107 107
             }
108
-            $datetimes[ $ticket_datetime->ID() ] = $ticket_datetime;
108
+            $datetimes[$ticket_datetime->ID()] = $ticket_datetime;
109 109
         }
110 110
         return $datetimes;
111 111
     }
@@ -118,16 +118,16 @@  discard block
 block discarded – undo
118 118
      */
119 119
     public function getTicketDatetimeClasses(\EE_Ticket $ticket)
120 120
     {
121
-        if (! $this->active) {
121
+        if ( ! $this->active) {
122 122
             return '';
123 123
         }
124 124
         $ticket_datetimes = $this->getTicketDatetimes($ticket);
125 125
         $classes = '';
126 126
         foreach ($this->datetimes as $datetime) {
127
-            if (! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) {
127
+            if ( ! $datetime instanceof \EE_Datetime || ! in_array($datetime, $ticket_datetimes, true)) {
128 128
                 continue;
129 129
             }
130
-            $classes .= ' ee-ticket-datetimes-' . $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_');
130
+            $classes .= ' ee-ticket-datetimes-'.$datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_');
131 131
         }
132 132
         return $classes;
133 133
     }
@@ -143,10 +143,10 @@  discard block
 block discarded – undo
143 143
     {
144 144
         $datetime_options = array();
145 145
         foreach ($this->datetimes as $datetime) {
146
-            if (! $datetime instanceof \EE_Datetime) {
146
+            if ( ! $datetime instanceof \EE_Datetime) {
147 147
                 continue;
148 148
             }
149
-            $datetime_options[ $datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_') ] =
149
+            $datetime_options[$datetime->date_and_time_range('Y_m_d', 'H_i', '-', '_')] =
150 150
                 $datetime->date_and_time_range($date_format, $time_format, ' - ');
151 151
         }
152 152
         return $datetime_options;
@@ -159,18 +159,18 @@  discard block
 block discarded – undo
159 159
      */
160 160
     public function getDatetimeSelector()
161 161
     {
162
-        if (! $this->active) {
162
+        if ( ! $this->active) {
163 163
             return '';
164 164
         }
165 165
         $dropdown_selector = new \EE_Checkbox_Dropdown_Selector_Input(
166 166
             $this->unique_dates,
167 167
             array(
168
-                'html_id'               => 'datetime-selector-' . $this->event->ID(),
169
-                'html_name'             => 'datetime_selector_' . $this->event->ID(),
168
+                'html_id'               => 'datetime-selector-'.$this->event->ID(),
169
+                'html_name'             => 'datetime_selector_'.$this->event->ID(),
170 170
                 'html_class'            => 'datetime-selector',
171 171
                 'select_button_text'    => '<span class="dashicons dashicons-calendar-alt"></span> '
172 172
                                            . esc_html__('Filter by Date', 'event_espresso'),
173
-                'other_html_attributes' => ' data-tkt_slctr_evt="' . $this->event->ID() . '"',
173
+                'other_html_attributes' => ' data-tkt_slctr_evt="'.$this->event->ID().'"',
174 174
             )
175 175
         );
176 176
         return \EEH_HTML::div(
Please login to merge, or discard this patch.
caffeinated/modules/recaptcha/ReCaptcha/Response.php 2 patches
Indentation   +61 added lines, -61 removed lines patch added patch discarded remove patch
@@ -28,74 +28,74 @@
 block discarded – undo
28 28
  */
29 29
 class Response
30 30
 {
31
-    /**
32
-     * Succes or failure.
33
-     *
34
-     * @var boolean
35
-     */
36
-    private $success = false;
31
+	/**
32
+	 * Succes or failure.
33
+	 *
34
+	 * @var boolean
35
+	 */
36
+	private $success = false;
37 37
 
38
-    /**
39
-     * Error code strings.
40
-     *
41
-     * @var array
42
-     */
43
-    private $errorCodes = array();
38
+	/**
39
+	 * Error code strings.
40
+	 *
41
+	 * @var array
42
+	 */
43
+	private $errorCodes = array();
44 44
 
45
-    /**
46
-     * Build the response from the expected JSON returned by the service.
47
-     *
48
-     * @param string $json
49
-     * @return \ReCaptcha\Response
50
-     */
51
-    public static function fromJson($json)
52
-    {
53
-        $responseData = json_decode($json, true);
45
+	/**
46
+	 * Build the response from the expected JSON returned by the service.
47
+	 *
48
+	 * @param string $json
49
+	 * @return \ReCaptcha\Response
50
+	 */
51
+	public static function fromJson($json)
52
+	{
53
+		$responseData = json_decode($json, true);
54 54
 
55
-        if (! $responseData) {
56
-            return new Response(false, array('invalid-json'));
57
-        }
55
+		if (! $responseData) {
56
+			return new Response(false, array('invalid-json'));
57
+		}
58 58
 
59
-        if (isset($responseData['success']) && $responseData['success'] == true) {
60
-            return new Response(true);
61
-        }
59
+		if (isset($responseData['success']) && $responseData['success'] == true) {
60
+			return new Response(true);
61
+		}
62 62
 
63
-        if (isset($responseData['error-codes']) && is_array($responseData['error-codes'])) {
64
-            return new Response(false, $responseData['error-codes']);
65
-        }
63
+		if (isset($responseData['error-codes']) && is_array($responseData['error-codes'])) {
64
+			return new Response(false, $responseData['error-codes']);
65
+		}
66 66
 
67
-        return new Response(false);
68
-    }
67
+		return new Response(false);
68
+	}
69 69
 
70
-    /**
71
-     * Constructor.
72
-     *
73
-     * @param boolean $success
74
-     * @param array   $errorCodes
75
-     */
76
-    public function __construct($success, array $errorCodes = array())
77
-    {
78
-        $this->success = $success;
79
-        $this->errorCodes = $errorCodes;
80
-    }
70
+	/**
71
+	 * Constructor.
72
+	 *
73
+	 * @param boolean $success
74
+	 * @param array   $errorCodes
75
+	 */
76
+	public function __construct($success, array $errorCodes = array())
77
+	{
78
+		$this->success = $success;
79
+		$this->errorCodes = $errorCodes;
80
+	}
81 81
 
82
-    /**
83
-     * Is success?
84
-     *
85
-     * @return boolean
86
-     */
87
-    public function isSuccess()
88
-    {
89
-        return $this->success;
90
-    }
82
+	/**
83
+	 * Is success?
84
+	 *
85
+	 * @return boolean
86
+	 */
87
+	public function isSuccess()
88
+	{
89
+		return $this->success;
90
+	}
91 91
 
92
-    /**
93
-     * Get error codes.
94
-     *
95
-     * @return array
96
-     */
97
-    public function getErrorCodes()
98
-    {
99
-        return $this->errorCodes;
100
-    }
92
+	/**
93
+	 * Get error codes.
94
+	 *
95
+	 * @return array
96
+	 */
97
+	public function getErrorCodes()
98
+	{
99
+		return $this->errorCodes;
100
+	}
101 101
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@
 block discarded – undo
52 52
     {
53 53
         $responseData = json_decode($json, true);
54 54
 
55
-        if (! $responseData) {
55
+        if ( ! $responseData) {
56 56
             return new Response(false, array('invalid-json'));
57 57
         }
58 58
 
Please login to merge, or discard this patch.
core/exceptions/ExceptionStackTraceDisplay.php 2 patches
Indentation   +285 added lines, -285 removed lines patch added patch discarded remove patch
@@ -19,52 +19,52 @@  discard block
 block discarded – undo
19 19
 {
20 20
 
21 21
 
22
-    /**
23
-     * @param Exception $exception
24
-     * @throws Exception
25
-     */
26
-    public function __construct(Exception $exception)
27
-    {
28
-        if (WP_DEBUG && ! defined('EE_TESTS_DIR')) {
29
-            $this->displayException($exception);
30
-        } else {
31
-            throw $exception;
32
-        }
33
-    }
22
+	/**
23
+	 * @param Exception $exception
24
+	 * @throws Exception
25
+	 */
26
+	public function __construct(Exception $exception)
27
+	{
28
+		if (WP_DEBUG && ! defined('EE_TESTS_DIR')) {
29
+			$this->displayException($exception);
30
+		} else {
31
+			throw $exception;
32
+		}
33
+	}
34 34
 
35 35
 
36
-    /**
37
-     * @access protected
38
-     * @param Exception $exception
39
-     * @throws ReflectionException
40
-     */
41
-    protected function displayException(Exception $exception)
42
-    {
43
-        $error_code = '';
44
-        $trace_details = '';
45
-        $time = time();
46
-        $trace = $exception->getTrace();
47
-        // get separate user and developer messages if they exist
48
-        $msg = explode('||', $exception->getMessage());
49
-        $user_msg = $msg[0];
50
-        $dev_msg = isset($msg[1]) ? $msg[1] : $msg[0];
51
-        $msg = WP_DEBUG ? $dev_msg : $user_msg;
52
-        // start gathering output
53
-        $output = $this->exceptionStyles();
54
-        $output .= '
36
+	/**
37
+	 * @access protected
38
+	 * @param Exception $exception
39
+	 * @throws ReflectionException
40
+	 */
41
+	protected function displayException(Exception $exception)
42
+	{
43
+		$error_code = '';
44
+		$trace_details = '';
45
+		$time = time();
46
+		$trace = $exception->getTrace();
47
+		// get separate user and developer messages if they exist
48
+		$msg = explode('||', $exception->getMessage());
49
+		$user_msg = $msg[0];
50
+		$dev_msg = isset($msg[1]) ? $msg[1] : $msg[0];
51
+		$msg = WP_DEBUG ? $dev_msg : $user_msg;
52
+		// start gathering output
53
+		$output = $this->exceptionStyles();
54
+		$output .= '
55 55
 <div id="ee-error-message" class="error">';
56
-        if (! WP_DEBUG) {
57
-            $output .= '
56
+		if (! WP_DEBUG) {
57
+			$output .= '
58 58
 	<p>';
59
-        }
60
-        // process trace info
61
-        if (empty($trace)) {
62
-            $trace_details .= __(
63
-                'Sorry, but no trace information was available for this exception.',
64
-                'event_espresso'
65
-            );
66
-        } else {
67
-            $trace_details .= '
59
+		}
60
+		// process trace info
61
+		if (empty($trace)) {
62
+			$trace_details .= __(
63
+				'Sorry, but no trace information was available for this exception.',
64
+				'event_espresso'
65
+			);
66
+		} else {
67
+			$trace_details .= '
68 68
 			<div id="ee-trace-details">
69 69
 			<table width="100%" border="0" cellpadding="5" cellspacing="0">
70 70
 				<tr>
@@ -72,263 +72,263 @@  discard block
 block discarded – undo
72 72
 					<th scope="col" align="right" style="width:3.5%;">Line</th>
73 73
 					<th scope="col" align="left" style="width:40%;">File</th>
74 74
 					<th scope="col" align="left">' . __('Class', 'event_espresso') . '->'
75
-                              . __(
76
-                                  'Method( arguments )',
77
-                                  'event_espresso'
78
-                              ) . '</th>
75
+							  . __(
76
+								  'Method( arguments )',
77
+								  'event_espresso'
78
+							  ) . '</th>
79 79
 				</tr>';
80
-            $last_on_stack = count($trace) - 1;
81
-            // reverse array so that stack is in proper chronological order
82
-            $sorted_trace = array_reverse($trace);
83
-            foreach ($sorted_trace as $nmbr => $trace) {
84
-                $file = isset($trace['file']) ? $trace['file'] : '';
85
-                $class = isset($trace['class']) ? $trace['class'] : '';
86
-                $type = isset($trace['type']) ? $trace['type'] : '';
87
-                $function = isset($trace['function']) ? $trace['function'] : '';
88
-                $args = isset($trace['args']) ? $this->_convert_args_to_string($trace['args']) : '';
89
-                $args = isset($trace['args']) && count($trace['args']) > 4 ? ' <br />' . $args . '<br />' : $args;
90
-                $line = isset($trace['line']) ? $trace['line'] : '';
91
-                $zebra = $nmbr % 2 !== 0 ? ' odd' : '';
92
-                if (empty($file) && ! empty($class)) {
93
-                    $a = new ReflectionClass($class);
94
-                    $file = $a->getFileName();
95
-                    if (empty($line) && ! empty($function)) {
96
-                        try {
97
-                            // if $function is a closure, this throws an exception
98
-                            $b = new ReflectionMethod($class, $function);
99
-                            $line = $b->getStartLine();
100
-                        } catch (Exception $closure_exception) {
101
-                            $line = 'unknown';
102
-                        }
103
-                    }
104
-                }
105
-                if ($nmbr === $last_on_stack) {
106
-                    $file = $exception->getFile() !== '' ? $exception->getFile() : $file;
107
-                    $line = $exception->getLine() !== '' ? $exception->getLine() : $line;
108
-                    $error_code = $this->generate_error_code($file, $trace['function'], $line);
109
-                }
110
-                $file = \EEH_File::standardise_directory_separators($file);
111
-                $nmbr = ! empty($nmbr) ? $nmbr : '&nbsp;';
112
-                $line = ! empty($line) ? $line : '&nbsp;';
113
-                $file = ! empty($file) ? $file : '&nbsp;';
114
-                $class_display = ! empty($class) ? $class : '';
115
-                $type = ! empty($type) ? $type : '';
116
-                $function = ! empty($function) ? $function : '';
117
-                $args = ! empty($args) ? '( ' . $args . ' )' : '()';
118
-                $trace_details .= '
80
+			$last_on_stack = count($trace) - 1;
81
+			// reverse array so that stack is in proper chronological order
82
+			$sorted_trace = array_reverse($trace);
83
+			foreach ($sorted_trace as $nmbr => $trace) {
84
+				$file = isset($trace['file']) ? $trace['file'] : '';
85
+				$class = isset($trace['class']) ? $trace['class'] : '';
86
+				$type = isset($trace['type']) ? $trace['type'] : '';
87
+				$function = isset($trace['function']) ? $trace['function'] : '';
88
+				$args = isset($trace['args']) ? $this->_convert_args_to_string($trace['args']) : '';
89
+				$args = isset($trace['args']) && count($trace['args']) > 4 ? ' <br />' . $args . '<br />' : $args;
90
+				$line = isset($trace['line']) ? $trace['line'] : '';
91
+				$zebra = $nmbr % 2 !== 0 ? ' odd' : '';
92
+				if (empty($file) && ! empty($class)) {
93
+					$a = new ReflectionClass($class);
94
+					$file = $a->getFileName();
95
+					if (empty($line) && ! empty($function)) {
96
+						try {
97
+							// if $function is a closure, this throws an exception
98
+							$b = new ReflectionMethod($class, $function);
99
+							$line = $b->getStartLine();
100
+						} catch (Exception $closure_exception) {
101
+							$line = 'unknown';
102
+						}
103
+					}
104
+				}
105
+				if ($nmbr === $last_on_stack) {
106
+					$file = $exception->getFile() !== '' ? $exception->getFile() : $file;
107
+					$line = $exception->getLine() !== '' ? $exception->getLine() : $line;
108
+					$error_code = $this->generate_error_code($file, $trace['function'], $line);
109
+				}
110
+				$file = \EEH_File::standardise_directory_separators($file);
111
+				$nmbr = ! empty($nmbr) ? $nmbr : '&nbsp;';
112
+				$line = ! empty($line) ? $line : '&nbsp;';
113
+				$file = ! empty($file) ? $file : '&nbsp;';
114
+				$class_display = ! empty($class) ? $class : '';
115
+				$type = ! empty($type) ? $type : '';
116
+				$function = ! empty($function) ? $function : '';
117
+				$args = ! empty($args) ? '( ' . $args . ' )' : '()';
118
+				$trace_details .= '
119 119
 					<tr>
120 120
 						<td align="right" valign="top" class="'
121
-                                  . $zebra
122
-                                  . '">'
123
-                                  . $nmbr
124
-                                  . '</td>
121
+								  . $zebra
122
+								  . '">'
123
+								  . $nmbr
124
+								  . '</td>
125 125
 						<td align="right" valign="top" class="'
126
-                                  . $zebra
127
-                                  . '">'
128
-                                  . $line
129
-                                  . '</td>
126
+								  . $zebra
127
+								  . '">'
128
+								  . $line
129
+								  . '</td>
130 130
 						<td align="left" valign="top" class="'
131
-                                  . $zebra
132
-                                  . '">'
133
-                                  . $file
134
-                                  . '</td>
131
+								  . $zebra
132
+								  . '">'
133
+								  . $file
134
+								  . '</td>
135 135
 						<td align="left" valign="top" class="'
136
-                                  . $zebra
137
-                                  . '">'
138
-                                  . $class_display
139
-                                  . $type
140
-                                  . $function
141
-                                  . $args
142
-                                  . '</td>
136
+								  . $zebra
137
+								  . '">'
138
+								  . $class_display
139
+								  . $type
140
+								  . $function
141
+								  . $args
142
+								  . '</td>
143 143
 					</tr>';
144
-            }
145
-            $trace_details .= '
144
+			}
145
+			$trace_details .= '
146 146
 			 </table>
147 147
 			</div>';
148
-        }
149
-        $code = $exception->getCode() ? $exception->getCode() : $error_code;
150
-        // add generic non-identifying messages for non-privileged users
151
-        if (! WP_DEBUG) {
152
-            $output .= '<span class="ee-error-user-msg-spn">'
153
-                       . trim($msg)
154
-                       . '</span> &nbsp; <sup>'
155
-                       . $code
156
-                       . '</sup><br />';
157
-        } else {
158
-            // or helpful developer messages if debugging is on
159
-            $output .= '
148
+		}
149
+		$code = $exception->getCode() ? $exception->getCode() : $error_code;
150
+		// add generic non-identifying messages for non-privileged users
151
+		if (! WP_DEBUG) {
152
+			$output .= '<span class="ee-error-user-msg-spn">'
153
+					   . trim($msg)
154
+					   . '</span> &nbsp; <sup>'
155
+					   . $code
156
+					   . '</sup><br />';
157
+		} else {
158
+			// or helpful developer messages if debugging is on
159
+			$output .= '
160 160
 		<div class="ee-error-dev-msg-dv">
161 161
 			<p class="ee-error-dev-msg-pg">
162 162
 				'
163
-                       . sprintf(
164
-                           __('%1$sAn %2$s was thrown!%3$s code: %4$s', 'event_espresso'),
165
-                           '<strong class="ee-error-dev-msg-str">',
166
-                           get_class($exception),
167
-                           '</strong>  &nbsp; <span>',
168
-                           $code . '</span>'
169
-                       )
170
-                       . '<br />
163
+					   . sprintf(
164
+						   __('%1$sAn %2$s was thrown!%3$s code: %4$s', 'event_espresso'),
165
+						   '<strong class="ee-error-dev-msg-str">',
166
+						   get_class($exception),
167
+						   '</strong>  &nbsp; <span>',
168
+						   $code . '</span>'
169
+					   )
170
+					   . '<br />
171 171
 				<span class="big-text">"'
172
-                       . trim($msg)
173
-                       . '"</span><br/>
172
+					   . trim($msg)
173
+					   . '"</span><br/>
174 174
 				<a id="display-ee-error-trace-1'
175
-                       . $time
176
-                       . '" class="display-ee-error-trace-lnk small-text" rel="ee-error-trace-1'
177
-                       . $time
178
-                       . '">
175
+					   . $time
176
+					   . '" class="display-ee-error-trace-lnk small-text" rel="ee-error-trace-1'
177
+					   . $time
178
+					   . '">
179 179
 					'
180
-                       . __('click to view backtrace and class/method details', 'event_espresso')
181
-                       . '
180
+					   . __('click to view backtrace and class/method details', 'event_espresso')
181
+					   . '
182 182
 				</a><br />
183 183
 				'
184
-                       . $exception->getFile()
185
-                       . sprintf(
186
-                           __('%1$s( line no: %2$s )%3$s', 'event_espresso'),
187
-                           ' &nbsp; <span class="small-text lt-grey-text">',
188
-                           $exception->getLine(),
189
-                           '</span>'
190
-                       )
191
-                       . '
184
+					   . $exception->getFile()
185
+					   . sprintf(
186
+						   __('%1$s( line no: %2$s )%3$s', 'event_espresso'),
187
+						   ' &nbsp; <span class="small-text lt-grey-text">',
188
+						   $exception->getLine(),
189
+						   '</span>'
190
+					   )
191
+					   . '
192 192
 			</p>
193 193
 			<div id="ee-error-trace-1'
194
-                       . $time
195
-                       . '-dv" class="ee-error-trace-dv" style="display: none;">
194
+					   . $time
195
+					   . '-dv" class="ee-error-trace-dv" style="display: none;">
196 196
 				'
197
-                       . $trace_details;
198
-            if (! empty($class)) {
199
-                $output .= '
197
+					   . $trace_details;
198
+			if (! empty($class)) {
199
+				$output .= '
200 200
 				<div style="padding:3px; margin:0 0 1em; border:1px solid #999; background:#fff; border-radius:3px;">
201 201
 					<div style="padding:1em 2em; border:1px solid #999; background:#fcfcfc;">
202 202
 						<h3>' . __('Class Details', 'event_espresso') . '</h3>';
203
-                $a = new ReflectionClass($class);
204
-                $output .= '
203
+				$a = new ReflectionClass($class);
204
+				$output .= '
205 205
 						<pre>' . $a . '</pre>
206 206
 					</div>
207 207
 				</div>';
208
-            }
209
-            $output .= '
208
+			}
209
+			$output .= '
210 210
 			</div>
211 211
 		</div>
212 212
 		<br />';
213
-        }
214
-        // remove last linebreak
215
-        $output = substr($output, 0, -6);
216
-        if (! WP_DEBUG) {
217
-            $output .= '
213
+		}
214
+		// remove last linebreak
215
+		$output = substr($output, 0, -6);
216
+		if (! WP_DEBUG) {
217
+			$output .= '
218 218
 	</p>';
219
-        }
220
-        $output .= '
219
+		}
220
+		$output .= '
221 221
 </div>';
222
-        $output .= $this->printScripts(true);
223
-        if (defined('DOING_AJAX')) {
224
-            echo wp_json_encode(array('error' => $output));
225
-            exit();
226
-        }
227
-        echo $output;
228
-    }
222
+		$output .= $this->printScripts(true);
223
+		if (defined('DOING_AJAX')) {
224
+			echo wp_json_encode(array('error' => $output));
225
+			exit();
226
+		}
227
+		echo $output;
228
+	}
229 229
 
230 230
 
231
-    // phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
232
-    // phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
231
+	// phpcs:disable PSR1.Methods.CamelCapsMethodName.NotCamelCaps
232
+	// phpcs:disable PSR2.Methods.MethodDeclaration.Underscore
233 233
 
234
-    /**
235
-     * generate string from exception trace args
236
-     *
237
-     * @param array $arguments
238
-     * @param int   $indent
239
-     * @param bool  $array
240
-     * @return string
241
-     */
242
-    private function _convert_args_to_string($arguments = array(), $indent = 0, $array = false)
243
-    {
244
-        $args = array();
245
-        $args_count = count($arguments);
246
-        if ($args_count > 2) {
247
-            $indent++;
248
-            $args[] = '<br />';
249
-        }
250
-        $x = 0;
251
-        foreach ($arguments as $arg) {
252
-            $x++;
253
-            for ($i = 0; $i < $indent; $i++) {
254
-                $args[] = ' &nbsp;&nbsp; ';
255
-            }
256
-            if (is_string($arg)) {
257
-                if (! $array && strlen($arg) > 75) {
258
-                    $args[] = '<br />';
259
-                    for ($i = 0; $i <= $indent; $i++) {
260
-                        $args[] = ' &nbsp;&nbsp; ';
261
-                    }
262
-                    $args[] = "'" . $arg . "'<br />";
263
-                } else {
264
-                    $args[] = " '" . $arg . "'";
265
-                }
266
-            } elseif (is_array($arg)) {
267
-                $arg_count = count($arg);
268
-                if ($arg_count > 2) {
269
-                    $indent++;
270
-                    $args[] = ' array(' . $this->_convert_args_to_string($arg, $indent, true) . ')';
271
-                    $indent--;
272
-                } elseif ($arg_count === 0) {
273
-                    $args[] = ' array()';
274
-                } else {
275
-                    $args[] = ' array( ' . $this->_convert_args_to_string($arg) . ' )';
276
-                }
277
-            } elseif ($arg === null) {
278
-                $args[] = ' null';
279
-            } elseif (is_bool($arg)) {
280
-                $args[] = $arg ? ' true' : ' false';
281
-            } elseif (is_object($arg)) {
282
-                $args[] = get_class($arg);
283
-            } elseif (is_resource($arg)) {
284
-                $args[] = get_resource_type($arg);
285
-            } else {
286
-                $args[] = $arg;
287
-            }
288
-            if ($x === $args_count) {
289
-                if ($args_count > 2) {
290
-                    $args[] = '<br />';
291
-                    $indent--;
292
-                    for ($i = 1; $i < $indent; $i++) {
293
-                        $args[] = ' &nbsp;&nbsp; ';
294
-                    }
295
-                }
296
-            } else {
297
-                $args[] = $args_count > 2 ? ',<br />' : ', ';
298
-            }
299
-        }
300
-        return implode('', $args);
301
-    }
234
+	/**
235
+	 * generate string from exception trace args
236
+	 *
237
+	 * @param array $arguments
238
+	 * @param int   $indent
239
+	 * @param bool  $array
240
+	 * @return string
241
+	 */
242
+	private function _convert_args_to_string($arguments = array(), $indent = 0, $array = false)
243
+	{
244
+		$args = array();
245
+		$args_count = count($arguments);
246
+		if ($args_count > 2) {
247
+			$indent++;
248
+			$args[] = '<br />';
249
+		}
250
+		$x = 0;
251
+		foreach ($arguments as $arg) {
252
+			$x++;
253
+			for ($i = 0; $i < $indent; $i++) {
254
+				$args[] = ' &nbsp;&nbsp; ';
255
+			}
256
+			if (is_string($arg)) {
257
+				if (! $array && strlen($arg) > 75) {
258
+					$args[] = '<br />';
259
+					for ($i = 0; $i <= $indent; $i++) {
260
+						$args[] = ' &nbsp;&nbsp; ';
261
+					}
262
+					$args[] = "'" . $arg . "'<br />";
263
+				} else {
264
+					$args[] = " '" . $arg . "'";
265
+				}
266
+			} elseif (is_array($arg)) {
267
+				$arg_count = count($arg);
268
+				if ($arg_count > 2) {
269
+					$indent++;
270
+					$args[] = ' array(' . $this->_convert_args_to_string($arg, $indent, true) . ')';
271
+					$indent--;
272
+				} elseif ($arg_count === 0) {
273
+					$args[] = ' array()';
274
+				} else {
275
+					$args[] = ' array( ' . $this->_convert_args_to_string($arg) . ' )';
276
+				}
277
+			} elseif ($arg === null) {
278
+				$args[] = ' null';
279
+			} elseif (is_bool($arg)) {
280
+				$args[] = $arg ? ' true' : ' false';
281
+			} elseif (is_object($arg)) {
282
+				$args[] = get_class($arg);
283
+			} elseif (is_resource($arg)) {
284
+				$args[] = get_resource_type($arg);
285
+			} else {
286
+				$args[] = $arg;
287
+			}
288
+			if ($x === $args_count) {
289
+				if ($args_count > 2) {
290
+					$args[] = '<br />';
291
+					$indent--;
292
+					for ($i = 1; $i < $indent; $i++) {
293
+						$args[] = ' &nbsp;&nbsp; ';
294
+					}
295
+				}
296
+			} else {
297
+				$args[] = $args_count > 2 ? ',<br />' : ', ';
298
+			}
299
+		}
300
+		return implode('', $args);
301
+	}
302 302
 
303 303
 
304
-    /**
305
-     * create error code from filepath, function name,
306
-     * and line number where exception or error was thrown
307
-     *
308
-     * @access protected
309
-     * @param string $file
310
-     * @param string $func
311
-     * @param string $line
312
-     * @return string
313
-     */
314
-    protected function generate_error_code($file = '', $func = '', $line = '')
315
-    {
316
-        $file_bits = explode('.', basename($file));
317
-        $error_code = ! empty($file_bits[0]) ? $file_bits[0] : '';
318
-        $error_code .= ! empty($func) ? ' - ' . $func : '';
319
-        $error_code .= ! empty($line) ? ' - ' . $line : '';
320
-        return $error_code;
321
-    }
304
+	/**
305
+	 * create error code from filepath, function name,
306
+	 * and line number where exception or error was thrown
307
+	 *
308
+	 * @access protected
309
+	 * @param string $file
310
+	 * @param string $func
311
+	 * @param string $line
312
+	 * @return string
313
+	 */
314
+	protected function generate_error_code($file = '', $func = '', $line = '')
315
+	{
316
+		$file_bits = explode('.', basename($file));
317
+		$error_code = ! empty($file_bits[0]) ? $file_bits[0] : '';
318
+		$error_code .= ! empty($func) ? ' - ' . $func : '';
319
+		$error_code .= ! empty($line) ? ' - ' . $line : '';
320
+		return $error_code;
321
+	}
322 322
 
323 323
 
324
-    /**
325
-     * _exception_styles
326
-     *
327
-     * @return string
328
-     */
329
-    private function exceptionStyles()
330
-    {
331
-        return '
324
+	/**
325
+	 * _exception_styles
326
+	 *
327
+	 * @return string
328
+	 */
329
+	private function exceptionStyles()
330
+	{
331
+		return '
332 332
 <style type="text/css">
333 333
 	#ee-error-message {
334 334
 		max-width:90% !important;
@@ -385,29 +385,29 @@  discard block
 block discarded – undo
385 385
 		color: #999;
386 386
 	}
387 387
 </style>';
388
-    }
388
+	}
389 389
 
390 390
 
391
-    /**
392
-     * _print_scripts
393
-     *
394
-     * @param bool $force_print
395
-     * @return string
396
-     */
397
-    private function printScripts($force_print = false)
398
-    {
399
-        if (! $force_print && (did_action('admin_enqueue_scripts') || did_action('wp_enqueue_scripts'))) {
400
-            if (wp_script_is('ee_error_js', 'enqueued')) {
401
-                return '';
402
-            }
403
-            if (wp_script_is('ee_error_js', 'registered')) {
404
-                wp_enqueue_style('espresso_default');
405
-                wp_enqueue_style('espresso_custom_css');
406
-                wp_enqueue_script('ee_error_js');
407
-                wp_localize_script('ee_error_js', 'ee_settings', array('wp_debug' => WP_DEBUG));
408
-            }
409
-        } else {
410
-            return '
391
+	/**
392
+	 * _print_scripts
393
+	 *
394
+	 * @param bool $force_print
395
+	 * @return string
396
+	 */
397
+	private function printScripts($force_print = false)
398
+	{
399
+		if (! $force_print && (did_action('admin_enqueue_scripts') || did_action('wp_enqueue_scripts'))) {
400
+			if (wp_script_is('ee_error_js', 'enqueued')) {
401
+				return '';
402
+			}
403
+			if (wp_script_is('ee_error_js', 'registered')) {
404
+				wp_enqueue_style('espresso_default');
405
+				wp_enqueue_style('espresso_custom_css');
406
+				wp_enqueue_script('ee_error_js');
407
+				wp_localize_script('ee_error_js', 'ee_settings', array('wp_debug' => WP_DEBUG));
408
+			}
409
+		} else {
410
+			return '
411 411
 <script>
412 412
 /* <![CDATA[ */
413 413
 var ee_settings = {"wp_debug":"' . WP_DEBUG . '"};
@@ -417,7 +417,7 @@  discard block
 block discarded – undo
417 417
 <script src="' . EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js' . '?ver=' . espresso_version() . '" type="text/javascript"></script>
418 418
 <script src="' . EE_GLOBAL_ASSETS_URL . 'scripts/EE_Error.js' . '?ver=' . espresso_version() . '" type="text/javascript"></script>
419 419
 ';
420
-        }
421
-        return '';
422
-    }
420
+		}
421
+		return '';
422
+	}
423 423
 }
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -53,7 +53,7 @@  discard block
 block discarded – undo
53 53
         $output = $this->exceptionStyles();
54 54
         $output .= '
55 55
 <div id="ee-error-message" class="error">';
56
-        if (! WP_DEBUG) {
56
+        if ( ! WP_DEBUG) {
57 57
             $output .= '
58 58
 	<p>';
59 59
         }
@@ -71,11 +71,11 @@  discard block
 block discarded – undo
71 71
 					<th scope="col" align="right" style="width:2.5%;">#</th>
72 72
 					<th scope="col" align="right" style="width:3.5%;">Line</th>
73 73
 					<th scope="col" align="left" style="width:40%;">File</th>
74
-					<th scope="col" align="left">' . __('Class', 'event_espresso') . '->'
74
+					<th scope="col" align="left">' . __('Class', 'event_espresso').'->'
75 75
                               . __(
76 76
                                   'Method( arguments )',
77 77
                                   'event_espresso'
78
-                              ) . '</th>
78
+                              ).'</th>
79 79
 				</tr>';
80 80
             $last_on_stack = count($trace) - 1;
81 81
             // reverse array so that stack is in proper chronological order
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
                 $type = isset($trace['type']) ? $trace['type'] : '';
87 87
                 $function = isset($trace['function']) ? $trace['function'] : '';
88 88
                 $args = isset($trace['args']) ? $this->_convert_args_to_string($trace['args']) : '';
89
-                $args = isset($trace['args']) && count($trace['args']) > 4 ? ' <br />' . $args . '<br />' : $args;
89
+                $args = isset($trace['args']) && count($trace['args']) > 4 ? ' <br />'.$args.'<br />' : $args;
90 90
                 $line = isset($trace['line']) ? $trace['line'] : '';
91 91
                 $zebra = $nmbr % 2 !== 0 ? ' odd' : '';
92 92
                 if (empty($file) && ! empty($class)) {
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
                 $class_display = ! empty($class) ? $class : '';
115 115
                 $type = ! empty($type) ? $type : '';
116 116
                 $function = ! empty($function) ? $function : '';
117
-                $args = ! empty($args) ? '( ' . $args . ' )' : '()';
117
+                $args = ! empty($args) ? '( '.$args.' )' : '()';
118 118
                 $trace_details .= '
119 119
 					<tr>
120 120
 						<td align="right" valign="top" class="'
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
         }
149 149
         $code = $exception->getCode() ? $exception->getCode() : $error_code;
150 150
         // add generic non-identifying messages for non-privileged users
151
-        if (! WP_DEBUG) {
151
+        if ( ! WP_DEBUG) {
152 152
             $output .= '<span class="ee-error-user-msg-spn">'
153 153
                        . trim($msg)
154 154
                        . '</span> &nbsp; <sup>'
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
                            '<strong class="ee-error-dev-msg-str">',
166 166
                            get_class($exception),
167 167
                            '</strong>  &nbsp; <span>',
168
-                           $code . '</span>'
168
+                           $code.'</span>'
169 169
                        )
170 170
                        . '<br />
171 171
 				<span class="big-text">"'
@@ -195,14 +195,14 @@  discard block
 block discarded – undo
195 195
                        . '-dv" class="ee-error-trace-dv" style="display: none;">
196 196
 				'
197 197
                        . $trace_details;
198
-            if (! empty($class)) {
198
+            if ( ! empty($class)) {
199 199
                 $output .= '
200 200
 				<div style="padding:3px; margin:0 0 1em; border:1px solid #999; background:#fff; border-radius:3px;">
201 201
 					<div style="padding:1em 2em; border:1px solid #999; background:#fcfcfc;">
202
-						<h3>' . __('Class Details', 'event_espresso') . '</h3>';
202
+						<h3>' . __('Class Details', 'event_espresso').'</h3>';
203 203
                 $a = new ReflectionClass($class);
204 204
                 $output .= '
205
-						<pre>' . $a . '</pre>
205
+						<pre>' . $a.'</pre>
206 206
 					</div>
207 207
 				</div>';
208 208
             }
@@ -213,7 +213,7 @@  discard block
 block discarded – undo
213 213
         }
214 214
         // remove last linebreak
215 215
         $output = substr($output, 0, -6);
216
-        if (! WP_DEBUG) {
216
+        if ( ! WP_DEBUG) {
217 217
             $output .= '
218 218
 	</p>';
219 219
         }
@@ -254,25 +254,25 @@  discard block
 block discarded – undo
254 254
                 $args[] = ' &nbsp;&nbsp; ';
255 255
             }
256 256
             if (is_string($arg)) {
257
-                if (! $array && strlen($arg) > 75) {
257
+                if ( ! $array && strlen($arg) > 75) {
258 258
                     $args[] = '<br />';
259 259
                     for ($i = 0; $i <= $indent; $i++) {
260 260
                         $args[] = ' &nbsp;&nbsp; ';
261 261
                     }
262
-                    $args[] = "'" . $arg . "'<br />";
262
+                    $args[] = "'".$arg."'<br />";
263 263
                 } else {
264
-                    $args[] = " '" . $arg . "'";
264
+                    $args[] = " '".$arg."'";
265 265
                 }
266 266
             } elseif (is_array($arg)) {
267 267
                 $arg_count = count($arg);
268 268
                 if ($arg_count > 2) {
269 269
                     $indent++;
270
-                    $args[] = ' array(' . $this->_convert_args_to_string($arg, $indent, true) . ')';
270
+                    $args[] = ' array('.$this->_convert_args_to_string($arg, $indent, true).')';
271 271
                     $indent--;
272 272
                 } elseif ($arg_count === 0) {
273 273
                     $args[] = ' array()';
274 274
                 } else {
275
-                    $args[] = ' array( ' . $this->_convert_args_to_string($arg) . ' )';
275
+                    $args[] = ' array( '.$this->_convert_args_to_string($arg).' )';
276 276
                 }
277 277
             } elseif ($arg === null) {
278 278
                 $args[] = ' null';
@@ -315,8 +315,8 @@  discard block
 block discarded – undo
315 315
     {
316 316
         $file_bits = explode('.', basename($file));
317 317
         $error_code = ! empty($file_bits[0]) ? $file_bits[0] : '';
318
-        $error_code .= ! empty($func) ? ' - ' . $func : '';
319
-        $error_code .= ! empty($line) ? ' - ' . $line : '';
318
+        $error_code .= ! empty($func) ? ' - '.$func : '';
319
+        $error_code .= ! empty($line) ? ' - '.$line : '';
320 320
         return $error_code;
321 321
     }
322 322
 
@@ -396,7 +396,7 @@  discard block
 block discarded – undo
396 396
      */
397 397
     private function printScripts($force_print = false)
398 398
     {
399
-        if (! $force_print && (did_action('admin_enqueue_scripts') || did_action('wp_enqueue_scripts'))) {
399
+        if ( ! $force_print && (did_action('admin_enqueue_scripts') || did_action('wp_enqueue_scripts'))) {
400 400
             if (wp_script_is('ee_error_js', 'enqueued')) {
401 401
                 return '';
402 402
             }
@@ -410,12 +410,12 @@  discard block
 block discarded – undo
410 410
             return '
411 411
 <script>
412 412
 /* <![CDATA[ */
413
-var ee_settings = {"wp_debug":"' . WP_DEBUG . '"};
413
+var ee_settings = {"wp_debug":"' . WP_DEBUG.'"};
414 414
 /* ]]> */
415 415
 </script>
416
-<script src="' . includes_url() . 'js/jquery/jquery.js" type="text/javascript"></script>
417
-<script src="' . EE_GLOBAL_ASSETS_URL . 'scripts/espresso_core.js' . '?ver=' . espresso_version() . '" type="text/javascript"></script>
418
-<script src="' . EE_GLOBAL_ASSETS_URL . 'scripts/EE_Error.js' . '?ver=' . espresso_version() . '" type="text/javascript"></script>
416
+<script src="' . includes_url().'js/jquery/jquery.js" type="text/javascript"></script>
417
+<script src="' . EE_GLOBAL_ASSETS_URL.'scripts/espresso_core.js'.'?ver='.espresso_version().'" type="text/javascript"></script>
418
+<script src="' . EE_GLOBAL_ASSETS_URL.'scripts/EE_Error.js'.'?ver='.espresso_version().'" type="text/javascript"></script>
419 419
 ';
420 420
         }
421 421
         return '';
Please login to merge, or discard this patch.
core/services/cache/PostRelatedCacheManager.php 2 patches
Indentation   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -13,121 +13,121 @@
 block discarded – undo
13 13
 class PostRelatedCacheManager extends BasicCacheManager
14 14
 {
15 15
 
16
-    /**
17
-     * @type string
18
-     */
19
-    const POST_CACHE_PREFIX = 'ee_cache_post_';
20
-
21
-    /**
22
-     * wp-option option_name for tracking post related cache
23
-     *
24
-     * @type string
25
-     */
26
-    const POST_CACHE_OPTIONS_KEY = 'ee_post_cache';
27
-
28
-
29
-    /**
30
-     * PostRelatedCacheManager constructor.
31
-     *
32
-     * @param CacheStorageInterface $cache_storage
33
-     */
34
-    public function __construct(CacheStorageInterface $cache_storage)
35
-    {
36
-        parent::__construct($cache_storage);
37
-        add_action('save_post', array($this, 'clearPostRelatedCache'));
38
-    }
39
-
40
-
41
-    /**
42
-     * returns a string that will be prepended to all cache identifiers
43
-     *
44
-     * @return string
45
-     */
46
-    public function cachePrefix()
47
-    {
48
-        return PostRelatedCacheManager::POST_CACHE_PREFIX;
49
-    }
50
-
51
-
52
-    /**
53
-     * @return array
54
-     */
55
-    protected function getPostRelatedCache()
56
-    {
57
-        $post_related_cache = get_option(PostRelatedCacheManager::POST_CACHE_OPTIONS_KEY, array());
58
-        // verify that cached data was not truncated or corrupted and no longer an array
59
-        if (! is_array($post_related_cache)) {
60
-            // uh-oh... let's get rid of any transients using our cache prefix
61
-            $this->clear(PostRelatedCacheManager::CACHE_PREFIX);
62
-            // then update the post related cache tracking option
63
-            $post_related_cache = array();
64
-            $this->updatePostRelatedCache($post_related_cache);
65
-        }
66
-        return $post_related_cache;
67
-    }
68
-
69
-
70
-    /**
71
-     * @param array $post_related_cache
72
-     */
73
-    protected function updatePostRelatedCache(array $post_related_cache = array())
74
-    {
75
-        update_option(PostRelatedCacheManager::POST_CACHE_OPTIONS_KEY, $post_related_cache);
76
-    }
77
-
78
-
79
-    /**
80
-     * If you are caching content that pertains to a Post of any type,
81
-     * then it is recommended to pass the post id and cache id prefix to this method
82
-     * so that it can be added to the post related cache tracking.
83
-     * Then, whenever that post is updated, the cache will automatically be deleted,
84
-     * which helps to ensure that outdated cache content will not be served
85
-     *
86
-     * @param int    $post_ID    [required]
87
-     * @param string $id_prefix  [required] Appended to all cache IDs. Can be helpful in finding specific cache types.
88
-     *                           May also be helpful to include an additional specific identifier,
89
-     *                           such as a post ID as part of the $id_prefix so that individual caches
90
-     *                           can be found and/or cleared. ex: "venue-28", or "shortcode-156".
91
-     *                           BasicCacheManager::CACHE_PREFIX will also be prepended to the cache id.
92
-     */
93
-    public function clearPostRelatedCacheOnUpdate($post_ID, $id_prefix)
94
-    {
95
-        $post_related_cache = $this->getPostRelatedCache();
96
-        // if post is not already being tracked
97
-        if (! isset($post_related_cache[ $post_ID ])) {
98
-            // add array to add cache ids to
99
-            $post_related_cache[ $post_ID ] = array();
100
-        }
101
-        if (! in_array($id_prefix, $post_related_cache[ $post_ID ], true)) {
102
-            // add cache id to be tracked
103
-            $post_related_cache[ $post_ID ][] = $id_prefix;
104
-            $this->updatePostRelatedCache($post_related_cache);
105
-        }
106
-    }
107
-
108
-
109
-    /**
110
-     * callback hooked into the WordPress "save_post" action
111
-     * deletes any cache content associated with the post
112
-     *
113
-     * @param int $post_ID [required]
114
-     */
115
-    public function clearPostRelatedCache($post_ID)
116
-    {
117
-        $post_related_cache = $this->getPostRelatedCache();
118
-        // if post is not being tracked
119
-        if (! isset($post_related_cache[ $post_ID ])) {
120
-            // let's clean up some of the duplicate IDs that were getting added
121
-            foreach ($post_related_cache as $other_post_ID => $cache_IDs) {
122
-                // remove duplicates
123
-                $post_related_cache[ $other_post_ID ] = array_unique($post_related_cache[ $other_post_ID ]);
124
-            }
125
-            $this->updatePostRelatedCache($post_related_cache);
126
-            return;
127
-        }
128
-        // get cache id prefixes for post, and delete their corresponding transients
129
-        $this->clear($post_related_cache[ $post_ID ]);
130
-        unset($post_related_cache[ $post_ID ]);
131
-        $this->updatePostRelatedCache($post_related_cache);
132
-    }
16
+	/**
17
+	 * @type string
18
+	 */
19
+	const POST_CACHE_PREFIX = 'ee_cache_post_';
20
+
21
+	/**
22
+	 * wp-option option_name for tracking post related cache
23
+	 *
24
+	 * @type string
25
+	 */
26
+	const POST_CACHE_OPTIONS_KEY = 'ee_post_cache';
27
+
28
+
29
+	/**
30
+	 * PostRelatedCacheManager constructor.
31
+	 *
32
+	 * @param CacheStorageInterface $cache_storage
33
+	 */
34
+	public function __construct(CacheStorageInterface $cache_storage)
35
+	{
36
+		parent::__construct($cache_storage);
37
+		add_action('save_post', array($this, 'clearPostRelatedCache'));
38
+	}
39
+
40
+
41
+	/**
42
+	 * returns a string that will be prepended to all cache identifiers
43
+	 *
44
+	 * @return string
45
+	 */
46
+	public function cachePrefix()
47
+	{
48
+		return PostRelatedCacheManager::POST_CACHE_PREFIX;
49
+	}
50
+
51
+
52
+	/**
53
+	 * @return array
54
+	 */
55
+	protected function getPostRelatedCache()
56
+	{
57
+		$post_related_cache = get_option(PostRelatedCacheManager::POST_CACHE_OPTIONS_KEY, array());
58
+		// verify that cached data was not truncated or corrupted and no longer an array
59
+		if (! is_array($post_related_cache)) {
60
+			// uh-oh... let's get rid of any transients using our cache prefix
61
+			$this->clear(PostRelatedCacheManager::CACHE_PREFIX);
62
+			// then update the post related cache tracking option
63
+			$post_related_cache = array();
64
+			$this->updatePostRelatedCache($post_related_cache);
65
+		}
66
+		return $post_related_cache;
67
+	}
68
+
69
+
70
+	/**
71
+	 * @param array $post_related_cache
72
+	 */
73
+	protected function updatePostRelatedCache(array $post_related_cache = array())
74
+	{
75
+		update_option(PostRelatedCacheManager::POST_CACHE_OPTIONS_KEY, $post_related_cache);
76
+	}
77
+
78
+
79
+	/**
80
+	 * If you are caching content that pertains to a Post of any type,
81
+	 * then it is recommended to pass the post id and cache id prefix to this method
82
+	 * so that it can be added to the post related cache tracking.
83
+	 * Then, whenever that post is updated, the cache will automatically be deleted,
84
+	 * which helps to ensure that outdated cache content will not be served
85
+	 *
86
+	 * @param int    $post_ID    [required]
87
+	 * @param string $id_prefix  [required] Appended to all cache IDs. Can be helpful in finding specific cache types.
88
+	 *                           May also be helpful to include an additional specific identifier,
89
+	 *                           such as a post ID as part of the $id_prefix so that individual caches
90
+	 *                           can be found and/or cleared. ex: "venue-28", or "shortcode-156".
91
+	 *                           BasicCacheManager::CACHE_PREFIX will also be prepended to the cache id.
92
+	 */
93
+	public function clearPostRelatedCacheOnUpdate($post_ID, $id_prefix)
94
+	{
95
+		$post_related_cache = $this->getPostRelatedCache();
96
+		// if post is not already being tracked
97
+		if (! isset($post_related_cache[ $post_ID ])) {
98
+			// add array to add cache ids to
99
+			$post_related_cache[ $post_ID ] = array();
100
+		}
101
+		if (! in_array($id_prefix, $post_related_cache[ $post_ID ], true)) {
102
+			// add cache id to be tracked
103
+			$post_related_cache[ $post_ID ][] = $id_prefix;
104
+			$this->updatePostRelatedCache($post_related_cache);
105
+		}
106
+	}
107
+
108
+
109
+	/**
110
+	 * callback hooked into the WordPress "save_post" action
111
+	 * deletes any cache content associated with the post
112
+	 *
113
+	 * @param int $post_ID [required]
114
+	 */
115
+	public function clearPostRelatedCache($post_ID)
116
+	{
117
+		$post_related_cache = $this->getPostRelatedCache();
118
+		// if post is not being tracked
119
+		if (! isset($post_related_cache[ $post_ID ])) {
120
+			// let's clean up some of the duplicate IDs that were getting added
121
+			foreach ($post_related_cache as $other_post_ID => $cache_IDs) {
122
+				// remove duplicates
123
+				$post_related_cache[ $other_post_ID ] = array_unique($post_related_cache[ $other_post_ID ]);
124
+			}
125
+			$this->updatePostRelatedCache($post_related_cache);
126
+			return;
127
+		}
128
+		// get cache id prefixes for post, and delete their corresponding transients
129
+		$this->clear($post_related_cache[ $post_ID ]);
130
+		unset($post_related_cache[ $post_ID ]);
131
+		$this->updatePostRelatedCache($post_related_cache);
132
+	}
133 133
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
     {
57 57
         $post_related_cache = get_option(PostRelatedCacheManager::POST_CACHE_OPTIONS_KEY, array());
58 58
         // verify that cached data was not truncated or corrupted and no longer an array
59
-        if (! is_array($post_related_cache)) {
59
+        if ( ! is_array($post_related_cache)) {
60 60
             // uh-oh... let's get rid of any transients using our cache prefix
61 61
             $this->clear(PostRelatedCacheManager::CACHE_PREFIX);
62 62
             // then update the post related cache tracking option
@@ -94,13 +94,13 @@  discard block
 block discarded – undo
94 94
     {
95 95
         $post_related_cache = $this->getPostRelatedCache();
96 96
         // if post is not already being tracked
97
-        if (! isset($post_related_cache[ $post_ID ])) {
97
+        if ( ! isset($post_related_cache[$post_ID])) {
98 98
             // add array to add cache ids to
99
-            $post_related_cache[ $post_ID ] = array();
99
+            $post_related_cache[$post_ID] = array();
100 100
         }
101
-        if (! in_array($id_prefix, $post_related_cache[ $post_ID ], true)) {
101
+        if ( ! in_array($id_prefix, $post_related_cache[$post_ID], true)) {
102 102
             // add cache id to be tracked
103
-            $post_related_cache[ $post_ID ][] = $id_prefix;
103
+            $post_related_cache[$post_ID][] = $id_prefix;
104 104
             $this->updatePostRelatedCache($post_related_cache);
105 105
         }
106 106
     }
@@ -116,18 +116,18 @@  discard block
 block discarded – undo
116 116
     {
117 117
         $post_related_cache = $this->getPostRelatedCache();
118 118
         // if post is not being tracked
119
-        if (! isset($post_related_cache[ $post_ID ])) {
119
+        if ( ! isset($post_related_cache[$post_ID])) {
120 120
             // let's clean up some of the duplicate IDs that were getting added
121 121
             foreach ($post_related_cache as $other_post_ID => $cache_IDs) {
122 122
                 // remove duplicates
123
-                $post_related_cache[ $other_post_ID ] = array_unique($post_related_cache[ $other_post_ID ]);
123
+                $post_related_cache[$other_post_ID] = array_unique($post_related_cache[$other_post_ID]);
124 124
             }
125 125
             $this->updatePostRelatedCache($post_related_cache);
126 126
             return;
127 127
         }
128 128
         // get cache id prefixes for post, and delete their corresponding transients
129
-        $this->clear($post_related_cache[ $post_ID ]);
130
-        unset($post_related_cache[ $post_ID ]);
129
+        $this->clear($post_related_cache[$post_ID]);
130
+        unset($post_related_cache[$post_ID]);
131 131
         $this->updatePostRelatedCache($post_related_cache);
132 132
     }
133 133
 }
Please login to merge, or discard this patch.
core/services/cache/TransientCacheStorage.php 2 patches
Indentation   +362 added lines, -362 removed lines patch added patch discarded remove patch
@@ -16,366 +16,366 @@
 block discarded – undo
16 16
 class TransientCacheStorage implements CacheStorageInterface
17 17
 {
18 18
 
19
-    /**
20
-     * wp-option option_name for tracking transients
21
-     *
22
-     * @type string
23
-     */
24
-    const TRANSIENT_SCHEDULE_OPTIONS_KEY = 'ee_transient_schedule';
25
-
26
-    /**
27
-     * @var int $current_time
28
-     */
29
-    private $current_time;
30
-
31
-    /**
32
-     * how often to perform transient cleanup
33
-     *
34
-     * @var string $transient_cleanup_frequency
35
-     */
36
-    private $transient_cleanup_frequency;
37
-
38
-    /**
39
-     * options for how often to perform transient cleanup
40
-     *
41
-     * @var array $transient_cleanup_frequency_options
42
-     */
43
-    private $transient_cleanup_frequency_options = array();
44
-
45
-    /**
46
-     * @var array $transients
47
-     */
48
-    private $transients;
49
-
50
-
51
-    /**
52
-     * TransientCacheStorage constructor.
53
-     */
54
-    public function __construct()
55
-    {
56
-        $this->transient_cleanup_frequency = $this->setTransientCleanupFrequency();
57
-        // round current time down to closest 5 minutes to simplify scheduling
58
-        $this->current_time = $this->roundTimestamp(time(), '5-minutes', false);
59
-        $this->transients = (array) get_option(TransientCacheStorage::TRANSIENT_SCHEDULE_OPTIONS_KEY, array());
60
-        if (! (defined('DOING_AJAX') && DOING_AJAX) && $this->transient_cleanup_frequency !== 'off') {
61
-            add_action('shutdown', array($this, 'checkTransientCleanupSchedule'), 999);
62
-        }
63
-    }
64
-
65
-
66
-    /**
67
-     * Sets how often transient cleanup occurs
68
-     *
69
-     * @return string
70
-     */
71
-    private function setTransientCleanupFrequency()
72
-    {
73
-        // sets how often transients are cleaned up
74
-        $this->transient_cleanup_frequency_options = apply_filters(
75
-            'FHEE__TransientCacheStorage__transient_cleanup_schedule_options',
76
-            array(
77
-                'off',
78
-                '15-minutes',
79
-                'hour',
80
-                '12-hours',
81
-                'day',
82
-            )
83
-        );
84
-        $transient_cleanup_frequency = apply_filters(
85
-            'FHEE__TransientCacheStorage__transient_cleanup_schedule',
86
-            'hour'
87
-        );
88
-        return in_array(
89
-            $transient_cleanup_frequency,
90
-            $this->transient_cleanup_frequency_options,
91
-            true
92
-        )
93
-            ? $transient_cleanup_frequency
94
-            : 'hour';
95
-    }
96
-
97
-
98
-    /**
99
-     * we need to be able to round timestamps off to match the set transient cleanup frequency
100
-     * so if a transient is set to expire at 1:17 pm for example, and our cleanup schedule is every hour,
101
-     * then that timestamp needs to be rounded up to 2:00 pm so that it is removed
102
-     * during the next scheduled cleanup after its expiration.
103
-     * We also round off the current time timestamp to the closest 5 minutes
104
-     * just to make the timestamps a little easier to round which helps with debugging.
105
-     *
106
-     * @param int    $timestamp [required]
107
-     * @param string $cleanup_frequency
108
-     * @param bool   $round_up
109
-     * @return int
110
-     */
111
-    private function roundTimestamp($timestamp, $cleanup_frequency = 'hour', $round_up = true)
112
-    {
113
-        $cleanup_frequency = $cleanup_frequency ? $cleanup_frequency : $this->transient_cleanup_frequency;
114
-        // in order to round the time to the closest xx minutes (or hours),
115
-        // we take the minutes (or hours) portion of the timestamp and divide it by xx,
116
-        // round down to a whole number, then multiply by xx to bring us almost back up to where we were
117
-        // why round down ? so the minutes (or hours) don't go over 60 (or 24)
118
-        // and bump the hour, which could bump the day, which could bump the month, etc,
119
-        // which would be bad because we don't always want to round up,
120
-        // but when we do we can easily achieve that by simply adding the desired offset,
121
-        $minutes = '00';
122
-        $hours = 'H';
123
-        switch ($cleanup_frequency) {
124
-            case '5-minutes':
125
-                $minutes = floor((int) date('i', $timestamp) / 5) * 5;
126
-                $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
127
-                $offset = MINUTE_IN_SECONDS * 5;
128
-                break;
129
-            case '15-minutes':
130
-                $minutes = floor((int) date('i', $timestamp) / 15) * 15;
131
-                $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
132
-                $offset = MINUTE_IN_SECONDS * 15;
133
-                break;
134
-            case '12-hours':
135
-                $hours = floor((int) date('H', $timestamp) / 12) * 12;
136
-                $hours = str_pad($hours, 2, '0', STR_PAD_LEFT);
137
-                $offset = HOUR_IN_SECONDS * 12;
138
-                break;
139
-            case 'day':
140
-                $hours = '03'; // run cleanup at 3:00 am (or first site hit after that)
141
-                $offset = DAY_IN_SECONDS;
142
-                break;
143
-            case 'hour':
144
-            default:
145
-                $offset = HOUR_IN_SECONDS;
146
-                break;
147
-        }
148
-        $rounded_timestamp = (int) strtotime(date("Y-m-d {$hours}:{$minutes}:00", $timestamp));
149
-        $rounded_timestamp += $round_up ? $offset : 0;
150
-        return apply_filters(
151
-            'FHEE__TransientCacheStorage__roundTimestamp__timestamp',
152
-            $rounded_timestamp,
153
-            $timestamp,
154
-            $cleanup_frequency,
155
-            $round_up
156
-        );
157
-    }
158
-
159
-
160
-    /**
161
-     * Saves supplied data to a transient
162
-     * if an expiration is set, then it automatically schedules the transient for cleanup
163
-     *
164
-     * @param string $transient_key [required]
165
-     * @param string $data          [required]
166
-     * @param int    $expiration    number of seconds until the cache expires
167
-     * @return bool
168
-     */
169
-    public function add($transient_key, $data, $expiration = 0)
170
-    {
171
-        $expiration = (int) abs($expiration);
172
-        $saved = set_transient($transient_key, $data, $expiration);
173
-        if ($saved && $expiration) {
174
-            $this->scheduleTransientCleanup($transient_key, $expiration);
175
-        }
176
-        return $saved;
177
-    }
178
-
179
-
180
-    /**
181
-     * retrieves transient data
182
-     * automatically triggers early cache refresh for standard cache items
183
-     * in order to avoid cache stampedes on busy sites.
184
-     * For non-standard cache items like PHP Session data where early refreshing is not wanted,
185
-     * the $standard_cache parameter should be set to false when retrieving data
186
-     *
187
-     * @param string $transient_key [required]
188
-     * @param bool   $standard_cache
189
-     * @return mixed|null
190
-     */
191
-    public function get($transient_key, $standard_cache = true)
192
-    {
193
-        if (isset($this->transients[ $transient_key ])) {
194
-            // to avoid cache stampedes (AKA:dogpiles) for standard cache items,
195
-            // check if known cache expires within the next minute,
196
-            // and if so, remove it from our tracking and and return nothing.
197
-            // this should trigger the cache content to be regenerated during this request,
198
-            // while allowing any following requests to still access the existing cache
199
-            // until it gets replaced with the refreshed content
200
-            if ($standard_cache
201
-                && $this->transients[ $transient_key ] - time() <= MINUTE_IN_SECONDS
202
-            ) {
203
-                unset($this->transients[ $transient_key ]);
204
-                $this->updateTransients();
205
-                return null;
206
-            }
207
-
208
-            // for non standard cache items, remove the key from our tracking,
209
-            // but proceed to retrieve the transient so that it also gets removed from the db
210
-            if ($this->transients[ $transient_key ] <= time()) {
211
-                unset($this->transients[ $transient_key ]);
212
-                $this->updateTransients();
213
-            }
214
-        }
215
-
216
-        $content = get_transient($transient_key);
217
-        return $content !== false ? $content : null;
218
-    }
219
-
220
-
221
-    /**
222
-     * delete a single transient and remove tracking
223
-     *
224
-     * @param string $transient_key [required] full or partial transient key to be deleted
225
-     */
226
-    public function delete($transient_key)
227
-    {
228
-        $this->deleteMany(array($transient_key));
229
-    }
230
-
231
-
232
-    /**
233
-     * delete multiple transients and remove tracking
234
-     *
235
-     * @param array $transient_keys [required] array of full or partial transient keys to be deleted
236
-     * @param bool  $force_delete   [optional] if true, then will not check incoming keys against those being tracked
237
-     *                              and proceed directly to deleting those entries from the cache storage
238
-     */
239
-    public function deleteMany(array $transient_keys, $force_delete = false)
240
-    {
241
-        $full_transient_keys = $force_delete ? $transient_keys : array();
242
-        if (empty($full_transient_keys)) {
243
-            foreach ($this->transients as $transient_key => $expiration) {
244
-                foreach ($transient_keys as $transient_key_to_delete) {
245
-                    if (strpos($transient_key, $transient_key_to_delete) !== false) {
246
-                        $full_transient_keys[] = $transient_key;
247
-                    }
248
-                }
249
-            }
250
-        }
251
-        if ($this->deleteTransientKeys($full_transient_keys)) {
252
-            $this->updateTransients();
253
-        }
254
-    }
255
-
256
-
257
-    /**
258
-     * sorts transients numerically by timestamp
259
-     * then saves the transient schedule to a WP option
260
-     */
261
-    private function updateTransients()
262
-    {
263
-        asort($this->transients, SORT_NUMERIC);
264
-        update_option(
265
-            TransientCacheStorage::TRANSIENT_SCHEDULE_OPTIONS_KEY,
266
-            $this->transients
267
-        );
268
-    }
269
-
270
-
271
-    /**
272
-     * schedules a transient for cleanup by adding it to the transient tracking
273
-     *
274
-     * @param string $transient_key [required]
275
-     * @param int    $expiration    [required]
276
-     */
277
-    private function scheduleTransientCleanup($transient_key, $expiration)
278
-    {
279
-        // make sure a valid future timestamp is set
280
-        $expiration += $expiration < time() ? time() : 0;
281
-        // and round to the closest 15 minutes
282
-        $expiration = $this->roundTimestamp($expiration);
283
-        // save transients to clear using their ID as the key to avoid duplicates
284
-        $this->transients[ $transient_key ] = $expiration;
285
-        $this->updateTransients();
286
-    }
287
-
288
-
289
-    /**
290
-     * Since our tracked transients are sorted by their timestamps
291
-     * we can grab the first transient and see when it is scheduled for cleanup.
292
-     * If that timestamp is less than or equal to the current time,
293
-     * then cleanup is triggered
294
-     */
295
-    public function checkTransientCleanupSchedule()
296
-    {
297
-        if (empty($this->transients)) {
298
-            return;
299
-        }
300
-        // when do we run the next cleanup job?
301
-        reset($this->transients);
302
-        $next_scheduled_cleanup = current($this->transients);
303
-        // if the next cleanup job is scheduled for the current hour
304
-        if ($next_scheduled_cleanup <= $this->current_time) {
305
-            if ($this->cleanupExpiredTransients()) {
306
-                $this->updateTransients();
307
-            }
308
-        }
309
-    }
310
-
311
-
312
-    /**
313
-     * loops through the array of tracked transients,
314
-     * compiles a list of those that have expired, and sends that list off for deletion.
315
-     * Also removes any bad records from the transients array
316
-     *
317
-     * @return bool
318
-     */
319
-    private function cleanupExpiredTransients()
320
-    {
321
-        $update = false;
322
-        // filter the query limit. Set to 0 to turn off garbage collection
323
-        $limit = (int) abs(
324
-            apply_filters(
325
-                'FHEE__TransientCacheStorage__clearExpiredTransients__limit',
326
-                50
327
-            )
328
-        );
329
-        // non-zero LIMIT means take out the trash
330
-        if ($limit) {
331
-            $transient_keys = array();
332
-            foreach ($this->transients as $transient_key => $expiration) {
333
-                if ($expiration > $this->current_time) {
334
-                    continue;
335
-                }
336
-                if (! $expiration || ! $transient_key) {
337
-                    unset($this->transients[ $transient_key ]);
338
-                    $update = true;
339
-                    continue;
340
-                }
341
-                $transient_keys[] = $transient_key;
342
-            }
343
-            // delete expired keys, but maintain value of $update if nothing is deleted
344
-            $update = $this->deleteTransientKeys($transient_keys, $limit) ? true : $update;
345
-            do_action('FHEE__TransientCacheStorage__clearExpiredTransients__end', $this);
346
-        }
347
-        return $update;
348
-    }
349
-
350
-
351
-    /**
352
-     * calls delete_transient() on each transient key provided, up to the specified limit
353
-     *
354
-     * @param array $transient_keys [required]
355
-     * @param int   $limit
356
-     * @return bool
357
-     */
358
-    private function deleteTransientKeys(array $transient_keys, $limit = 50)
359
-    {
360
-        if (empty($transient_keys)) {
361
-            return false;
362
-        }
363
-        $counter = 0;
364
-        foreach ($transient_keys as $transient_key) {
365
-            if ($counter === $limit) {
366
-                break;
367
-            }
368
-            // remove any transient prefixes
369
-            $transient_key = strpos($transient_key, '_transient_timeout_') === 0
370
-                ? str_replace('_transient_timeout_', '', $transient_key)
371
-                : $transient_key;
372
-            $transient_key = strpos($transient_key, '_transient_') === 0
373
-                ? str_replace('_transient_', '', $transient_key)
374
-                : $transient_key;
375
-            delete_transient($transient_key);
376
-            unset($this->transients[ $transient_key ]);
377
-            $counter++;
378
-        }
379
-        return $counter > 0;
380
-    }
19
+	/**
20
+	 * wp-option option_name for tracking transients
21
+	 *
22
+	 * @type string
23
+	 */
24
+	const TRANSIENT_SCHEDULE_OPTIONS_KEY = 'ee_transient_schedule';
25
+
26
+	/**
27
+	 * @var int $current_time
28
+	 */
29
+	private $current_time;
30
+
31
+	/**
32
+	 * how often to perform transient cleanup
33
+	 *
34
+	 * @var string $transient_cleanup_frequency
35
+	 */
36
+	private $transient_cleanup_frequency;
37
+
38
+	/**
39
+	 * options for how often to perform transient cleanup
40
+	 *
41
+	 * @var array $transient_cleanup_frequency_options
42
+	 */
43
+	private $transient_cleanup_frequency_options = array();
44
+
45
+	/**
46
+	 * @var array $transients
47
+	 */
48
+	private $transients;
49
+
50
+
51
+	/**
52
+	 * TransientCacheStorage constructor.
53
+	 */
54
+	public function __construct()
55
+	{
56
+		$this->transient_cleanup_frequency = $this->setTransientCleanupFrequency();
57
+		// round current time down to closest 5 minutes to simplify scheduling
58
+		$this->current_time = $this->roundTimestamp(time(), '5-minutes', false);
59
+		$this->transients = (array) get_option(TransientCacheStorage::TRANSIENT_SCHEDULE_OPTIONS_KEY, array());
60
+		if (! (defined('DOING_AJAX') && DOING_AJAX) && $this->transient_cleanup_frequency !== 'off') {
61
+			add_action('shutdown', array($this, 'checkTransientCleanupSchedule'), 999);
62
+		}
63
+	}
64
+
65
+
66
+	/**
67
+	 * Sets how often transient cleanup occurs
68
+	 *
69
+	 * @return string
70
+	 */
71
+	private function setTransientCleanupFrequency()
72
+	{
73
+		// sets how often transients are cleaned up
74
+		$this->transient_cleanup_frequency_options = apply_filters(
75
+			'FHEE__TransientCacheStorage__transient_cleanup_schedule_options',
76
+			array(
77
+				'off',
78
+				'15-minutes',
79
+				'hour',
80
+				'12-hours',
81
+				'day',
82
+			)
83
+		);
84
+		$transient_cleanup_frequency = apply_filters(
85
+			'FHEE__TransientCacheStorage__transient_cleanup_schedule',
86
+			'hour'
87
+		);
88
+		return in_array(
89
+			$transient_cleanup_frequency,
90
+			$this->transient_cleanup_frequency_options,
91
+			true
92
+		)
93
+			? $transient_cleanup_frequency
94
+			: 'hour';
95
+	}
96
+
97
+
98
+	/**
99
+	 * we need to be able to round timestamps off to match the set transient cleanup frequency
100
+	 * so if a transient is set to expire at 1:17 pm for example, and our cleanup schedule is every hour,
101
+	 * then that timestamp needs to be rounded up to 2:00 pm so that it is removed
102
+	 * during the next scheduled cleanup after its expiration.
103
+	 * We also round off the current time timestamp to the closest 5 minutes
104
+	 * just to make the timestamps a little easier to round which helps with debugging.
105
+	 *
106
+	 * @param int    $timestamp [required]
107
+	 * @param string $cleanup_frequency
108
+	 * @param bool   $round_up
109
+	 * @return int
110
+	 */
111
+	private function roundTimestamp($timestamp, $cleanup_frequency = 'hour', $round_up = true)
112
+	{
113
+		$cleanup_frequency = $cleanup_frequency ? $cleanup_frequency : $this->transient_cleanup_frequency;
114
+		// in order to round the time to the closest xx minutes (or hours),
115
+		// we take the minutes (or hours) portion of the timestamp and divide it by xx,
116
+		// round down to a whole number, then multiply by xx to bring us almost back up to where we were
117
+		// why round down ? so the minutes (or hours) don't go over 60 (or 24)
118
+		// and bump the hour, which could bump the day, which could bump the month, etc,
119
+		// which would be bad because we don't always want to round up,
120
+		// but when we do we can easily achieve that by simply adding the desired offset,
121
+		$minutes = '00';
122
+		$hours = 'H';
123
+		switch ($cleanup_frequency) {
124
+			case '5-minutes':
125
+				$minutes = floor((int) date('i', $timestamp) / 5) * 5;
126
+				$minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
127
+				$offset = MINUTE_IN_SECONDS * 5;
128
+				break;
129
+			case '15-minutes':
130
+				$minutes = floor((int) date('i', $timestamp) / 15) * 15;
131
+				$minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
132
+				$offset = MINUTE_IN_SECONDS * 15;
133
+				break;
134
+			case '12-hours':
135
+				$hours = floor((int) date('H', $timestamp) / 12) * 12;
136
+				$hours = str_pad($hours, 2, '0', STR_PAD_LEFT);
137
+				$offset = HOUR_IN_SECONDS * 12;
138
+				break;
139
+			case 'day':
140
+				$hours = '03'; // run cleanup at 3:00 am (or first site hit after that)
141
+				$offset = DAY_IN_SECONDS;
142
+				break;
143
+			case 'hour':
144
+			default:
145
+				$offset = HOUR_IN_SECONDS;
146
+				break;
147
+		}
148
+		$rounded_timestamp = (int) strtotime(date("Y-m-d {$hours}:{$minutes}:00", $timestamp));
149
+		$rounded_timestamp += $round_up ? $offset : 0;
150
+		return apply_filters(
151
+			'FHEE__TransientCacheStorage__roundTimestamp__timestamp',
152
+			$rounded_timestamp,
153
+			$timestamp,
154
+			$cleanup_frequency,
155
+			$round_up
156
+		);
157
+	}
158
+
159
+
160
+	/**
161
+	 * Saves supplied data to a transient
162
+	 * if an expiration is set, then it automatically schedules the transient for cleanup
163
+	 *
164
+	 * @param string $transient_key [required]
165
+	 * @param string $data          [required]
166
+	 * @param int    $expiration    number of seconds until the cache expires
167
+	 * @return bool
168
+	 */
169
+	public function add($transient_key, $data, $expiration = 0)
170
+	{
171
+		$expiration = (int) abs($expiration);
172
+		$saved = set_transient($transient_key, $data, $expiration);
173
+		if ($saved && $expiration) {
174
+			$this->scheduleTransientCleanup($transient_key, $expiration);
175
+		}
176
+		return $saved;
177
+	}
178
+
179
+
180
+	/**
181
+	 * retrieves transient data
182
+	 * automatically triggers early cache refresh for standard cache items
183
+	 * in order to avoid cache stampedes on busy sites.
184
+	 * For non-standard cache items like PHP Session data where early refreshing is not wanted,
185
+	 * the $standard_cache parameter should be set to false when retrieving data
186
+	 *
187
+	 * @param string $transient_key [required]
188
+	 * @param bool   $standard_cache
189
+	 * @return mixed|null
190
+	 */
191
+	public function get($transient_key, $standard_cache = true)
192
+	{
193
+		if (isset($this->transients[ $transient_key ])) {
194
+			// to avoid cache stampedes (AKA:dogpiles) for standard cache items,
195
+			// check if known cache expires within the next minute,
196
+			// and if so, remove it from our tracking and and return nothing.
197
+			// this should trigger the cache content to be regenerated during this request,
198
+			// while allowing any following requests to still access the existing cache
199
+			// until it gets replaced with the refreshed content
200
+			if ($standard_cache
201
+				&& $this->transients[ $transient_key ] - time() <= MINUTE_IN_SECONDS
202
+			) {
203
+				unset($this->transients[ $transient_key ]);
204
+				$this->updateTransients();
205
+				return null;
206
+			}
207
+
208
+			// for non standard cache items, remove the key from our tracking,
209
+			// but proceed to retrieve the transient so that it also gets removed from the db
210
+			if ($this->transients[ $transient_key ] <= time()) {
211
+				unset($this->transients[ $transient_key ]);
212
+				$this->updateTransients();
213
+			}
214
+		}
215
+
216
+		$content = get_transient($transient_key);
217
+		return $content !== false ? $content : null;
218
+	}
219
+
220
+
221
+	/**
222
+	 * delete a single transient and remove tracking
223
+	 *
224
+	 * @param string $transient_key [required] full or partial transient key to be deleted
225
+	 */
226
+	public function delete($transient_key)
227
+	{
228
+		$this->deleteMany(array($transient_key));
229
+	}
230
+
231
+
232
+	/**
233
+	 * delete multiple transients and remove tracking
234
+	 *
235
+	 * @param array $transient_keys [required] array of full or partial transient keys to be deleted
236
+	 * @param bool  $force_delete   [optional] if true, then will not check incoming keys against those being tracked
237
+	 *                              and proceed directly to deleting those entries from the cache storage
238
+	 */
239
+	public function deleteMany(array $transient_keys, $force_delete = false)
240
+	{
241
+		$full_transient_keys = $force_delete ? $transient_keys : array();
242
+		if (empty($full_transient_keys)) {
243
+			foreach ($this->transients as $transient_key => $expiration) {
244
+				foreach ($transient_keys as $transient_key_to_delete) {
245
+					if (strpos($transient_key, $transient_key_to_delete) !== false) {
246
+						$full_transient_keys[] = $transient_key;
247
+					}
248
+				}
249
+			}
250
+		}
251
+		if ($this->deleteTransientKeys($full_transient_keys)) {
252
+			$this->updateTransients();
253
+		}
254
+	}
255
+
256
+
257
+	/**
258
+	 * sorts transients numerically by timestamp
259
+	 * then saves the transient schedule to a WP option
260
+	 */
261
+	private function updateTransients()
262
+	{
263
+		asort($this->transients, SORT_NUMERIC);
264
+		update_option(
265
+			TransientCacheStorage::TRANSIENT_SCHEDULE_OPTIONS_KEY,
266
+			$this->transients
267
+		);
268
+	}
269
+
270
+
271
+	/**
272
+	 * schedules a transient for cleanup by adding it to the transient tracking
273
+	 *
274
+	 * @param string $transient_key [required]
275
+	 * @param int    $expiration    [required]
276
+	 */
277
+	private function scheduleTransientCleanup($transient_key, $expiration)
278
+	{
279
+		// make sure a valid future timestamp is set
280
+		$expiration += $expiration < time() ? time() : 0;
281
+		// and round to the closest 15 minutes
282
+		$expiration = $this->roundTimestamp($expiration);
283
+		// save transients to clear using their ID as the key to avoid duplicates
284
+		$this->transients[ $transient_key ] = $expiration;
285
+		$this->updateTransients();
286
+	}
287
+
288
+
289
+	/**
290
+	 * Since our tracked transients are sorted by their timestamps
291
+	 * we can grab the first transient and see when it is scheduled for cleanup.
292
+	 * If that timestamp is less than or equal to the current time,
293
+	 * then cleanup is triggered
294
+	 */
295
+	public function checkTransientCleanupSchedule()
296
+	{
297
+		if (empty($this->transients)) {
298
+			return;
299
+		}
300
+		// when do we run the next cleanup job?
301
+		reset($this->transients);
302
+		$next_scheduled_cleanup = current($this->transients);
303
+		// if the next cleanup job is scheduled for the current hour
304
+		if ($next_scheduled_cleanup <= $this->current_time) {
305
+			if ($this->cleanupExpiredTransients()) {
306
+				$this->updateTransients();
307
+			}
308
+		}
309
+	}
310
+
311
+
312
+	/**
313
+	 * loops through the array of tracked transients,
314
+	 * compiles a list of those that have expired, and sends that list off for deletion.
315
+	 * Also removes any bad records from the transients array
316
+	 *
317
+	 * @return bool
318
+	 */
319
+	private function cleanupExpiredTransients()
320
+	{
321
+		$update = false;
322
+		// filter the query limit. Set to 0 to turn off garbage collection
323
+		$limit = (int) abs(
324
+			apply_filters(
325
+				'FHEE__TransientCacheStorage__clearExpiredTransients__limit',
326
+				50
327
+			)
328
+		);
329
+		// non-zero LIMIT means take out the trash
330
+		if ($limit) {
331
+			$transient_keys = array();
332
+			foreach ($this->transients as $transient_key => $expiration) {
333
+				if ($expiration > $this->current_time) {
334
+					continue;
335
+				}
336
+				if (! $expiration || ! $transient_key) {
337
+					unset($this->transients[ $transient_key ]);
338
+					$update = true;
339
+					continue;
340
+				}
341
+				$transient_keys[] = $transient_key;
342
+			}
343
+			// delete expired keys, but maintain value of $update if nothing is deleted
344
+			$update = $this->deleteTransientKeys($transient_keys, $limit) ? true : $update;
345
+			do_action('FHEE__TransientCacheStorage__clearExpiredTransients__end', $this);
346
+		}
347
+		return $update;
348
+	}
349
+
350
+
351
+	/**
352
+	 * calls delete_transient() on each transient key provided, up to the specified limit
353
+	 *
354
+	 * @param array $transient_keys [required]
355
+	 * @param int   $limit
356
+	 * @return bool
357
+	 */
358
+	private function deleteTransientKeys(array $transient_keys, $limit = 50)
359
+	{
360
+		if (empty($transient_keys)) {
361
+			return false;
362
+		}
363
+		$counter = 0;
364
+		foreach ($transient_keys as $transient_key) {
365
+			if ($counter === $limit) {
366
+				break;
367
+			}
368
+			// remove any transient prefixes
369
+			$transient_key = strpos($transient_key, '_transient_timeout_') === 0
370
+				? str_replace('_transient_timeout_', '', $transient_key)
371
+				: $transient_key;
372
+			$transient_key = strpos($transient_key, '_transient_') === 0
373
+				? str_replace('_transient_', '', $transient_key)
374
+				: $transient_key;
375
+			delete_transient($transient_key);
376
+			unset($this->transients[ $transient_key ]);
377
+			$counter++;
378
+		}
379
+		return $counter > 0;
380
+	}
381 381
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
         // round current time down to closest 5 minutes to simplify scheduling
58 58
         $this->current_time = $this->roundTimestamp(time(), '5-minutes', false);
59 59
         $this->transients = (array) get_option(TransientCacheStorage::TRANSIENT_SCHEDULE_OPTIONS_KEY, array());
60
-        if (! (defined('DOING_AJAX') && DOING_AJAX) && $this->transient_cleanup_frequency !== 'off') {
60
+        if ( ! (defined('DOING_AJAX') && DOING_AJAX) && $this->transient_cleanup_frequency !== 'off') {
61 61
             add_action('shutdown', array($this, 'checkTransientCleanupSchedule'), 999);
62 62
         }
63 63
     }
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
      */
191 191
     public function get($transient_key, $standard_cache = true)
192 192
     {
193
-        if (isset($this->transients[ $transient_key ])) {
193
+        if (isset($this->transients[$transient_key])) {
194 194
             // to avoid cache stampedes (AKA:dogpiles) for standard cache items,
195 195
             // check if known cache expires within the next minute,
196 196
             // and if so, remove it from our tracking and and return nothing.
@@ -198,17 +198,17 @@  discard block
 block discarded – undo
198 198
             // while allowing any following requests to still access the existing cache
199 199
             // until it gets replaced with the refreshed content
200 200
             if ($standard_cache
201
-                && $this->transients[ $transient_key ] - time() <= MINUTE_IN_SECONDS
201
+                && $this->transients[$transient_key] - time() <= MINUTE_IN_SECONDS
202 202
             ) {
203
-                unset($this->transients[ $transient_key ]);
203
+                unset($this->transients[$transient_key]);
204 204
                 $this->updateTransients();
205 205
                 return null;
206 206
             }
207 207
 
208 208
             // for non standard cache items, remove the key from our tracking,
209 209
             // but proceed to retrieve the transient so that it also gets removed from the db
210
-            if ($this->transients[ $transient_key ] <= time()) {
211
-                unset($this->transients[ $transient_key ]);
210
+            if ($this->transients[$transient_key] <= time()) {
211
+                unset($this->transients[$transient_key]);
212 212
                 $this->updateTransients();
213 213
             }
214 214
         }
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
         // and round to the closest 15 minutes
282 282
         $expiration = $this->roundTimestamp($expiration);
283 283
         // save transients to clear using their ID as the key to avoid duplicates
284
-        $this->transients[ $transient_key ] = $expiration;
284
+        $this->transients[$transient_key] = $expiration;
285 285
         $this->updateTransients();
286 286
     }
287 287
 
@@ -333,8 +333,8 @@  discard block
 block discarded – undo
333 333
                 if ($expiration > $this->current_time) {
334 334
                     continue;
335 335
                 }
336
-                if (! $expiration || ! $transient_key) {
337
-                    unset($this->transients[ $transient_key ]);
336
+                if ( ! $expiration || ! $transient_key) {
337
+                    unset($this->transients[$transient_key]);
338 338
                     $update = true;
339 339
                     continue;
340 340
                 }
@@ -373,7 +373,7 @@  discard block
 block discarded – undo
373 373
                 ? str_replace('_transient_', '', $transient_key)
374 374
                 : $transient_key;
375 375
             delete_transient($transient_key);
376
-            unset($this->transients[ $transient_key ]);
376
+            unset($this->transients[$transient_key]);
377 377
             $counter++;
378 378
         }
379 379
         return $counter > 0;
Please login to merge, or discard this patch.