PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Helpers / Hooks.php
give / src / Helpers Last commit date
Form 5 months ago Frontend 2 years ago Gateways 4 years ago ArrayDataSet.php 1 year ago Call.php 3 years ago Date.php 4 years ago EnqueueScript.php 4 years ago Hooks.php 4 years ago Html.php 4 years ago IntlTelInput.php 2 years ago Language.php 7 months ago Table.php 4 years ago Utils.php 1 year ago
Hooks.php
109 lines
1 <?php
2
3 namespace Give\Helpers;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6 use Give\Log\Log;
7
8 class Hooks
9 {
10 /**
11 * A function which extends the WordPress add_action method to handle the instantiation of a class
12 * once the action is fired. This prevents the need to instantiate a class before adding it to hook.
13 *
14 * @since 2.8.0
15 *
16 * @param string $tag
17 * @param string $class
18 * @param string $method
19 * @param int $priority
20 * @param int $acceptedArgs
21 *
22 * @return void
23 */
24 public static function addAction($tag, $class, $method = '__invoke', $priority = 10, $acceptedArgs = 1)
25 {
26 if ( ! method_exists($class, $method)) {
27 throw new InvalidArgumentException("The method $method does not exist on $class");
28 }
29
30 add_action(
31 $tag,
32 static function () use ($tag, $class, $method) {
33 // Provide a way of disabling the hook
34 if (apply_filters("give_disable_hook-{$tag}", false) || apply_filters(
35 "give_disable_hook-{$tag}:{$class}@{$method}",
36 false
37 )) {
38 return;
39 }
40
41 $instance = give($class);
42
43 call_user_func_array([$instance, $method], func_get_args());
44 },
45 $priority,
46 $acceptedArgs
47 );
48 }
49
50 /**
51 * A function which extends the WordPress add_filter method to handle the instantiation of a class
52 * once the filter is fired. This prevents the need to instantiate a class before adding it to hook.
53 *
54 * @since 2.8.0
55 *
56 * @param string $tag
57 * @param string $class
58 * @param string $method
59 * @param int $priority
60 * @param int $acceptedArgs
61 *
62 * @return void
63 */
64 public static function addFilter($tag, $class, $method = '__invoke', $priority = 10, $acceptedArgs = 1)
65 {
66 if ( ! method_exists($class, $method)) {
67 throw new InvalidArgumentException("The method $method does not exist on $class");
68 }
69
70 add_filter(
71 $tag,
72 static function () use ($tag, $class, $method) {
73 // Provide a way of disabling the hook
74 if (apply_filters("give_disable_hook-{$tag}", false) || apply_filters(
75 "give_disable_hook-{$tag}:{$class}@{$method}",
76 false
77 )) {
78 return func_get_arg(0);
79 }
80
81 $instance = give($class);
82
83 return call_user_func_array([$instance, $method], func_get_args());
84 },
85 $priority,
86 $acceptedArgs
87 );
88 }
89
90 /**
91 * Calls the WordPress do_action filter and logs the execution.
92 *
93 * @since 2.19.6
94 *
95 * @param string $hookName The name of the action to be executed.
96 * @param mixed ...$args Optional. Additional arguments which are passed on to the functions hooked to the action. Default empty.
97 * @return void
98 */
99 public static function doAction($hookName, ...$args)
100 {
101 do_action($hookName, ...$args);
102
103 Log::debug(
104 "Hook Dispatched: $hookName",
105 compact('hookName', 'args')
106 );
107 }
108 }
109