PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.13.2
GiveWP – Donation Plugin and Fundraising Platform v2.13.2
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 years ago Frontend 5 years ago Gateways 5 years ago ArrayDataSet.php 5 years ago Hooks.php 5 years ago Html.php 4 years ago Table.php 5 years ago Utils.php 6 years ago
Hooks.php
80 lines
1 <?php
2
3 namespace Give\Helpers;
4
5 use Give\Framework\Exceptions\Primitives\InvalidArgumentException;
6
7 class Hooks {
8 /**
9 * A function which extends the WordPress add_action method to handle the instantiation of a class
10 * once the action is fired. This prevents the need to instantiate a class before adding it to hook.
11 *
12 * @since 2.8.0
13 *
14 * @param string $tag
15 * @param string $class
16 * @param string $method
17 * @param int $priority
18 * @param int $acceptedArgs
19 *
20 * @return void
21 */
22 public static function addAction( $tag, $class, $method = '__invoke', $priority = 10, $acceptedArgs = 1 ) {
23 if ( ! method_exists( $class, $method ) ) {
24 throw new InvalidArgumentException( "The method $method does not exist on $class" );
25 }
26
27 add_action(
28 $tag,
29 static function () use ( $tag, $class, $method ) {
30 // Provide a way of disabling the hook
31 if ( apply_filters( "give_disable_hook-{$tag}", false ) || apply_filters( "give_disable_hook-{$tag}:{$class}@{$method}", false ) ) {
32 return;
33 }
34
35 $instance = give( $class );
36
37 call_user_func_array( [ $instance, $method ], func_get_args() );
38 },
39 $priority,
40 $acceptedArgs
41 );
42 }
43
44 /**
45 * A function which extends the WordPress add_filter method to handle the instantiation of a class
46 * once the filter is fired. This prevents the need to instantiate a class before adding it to hook.
47 *
48 * @since 2.8.0
49 *
50 * @param string $tag
51 * @param string $class
52 * @param string $method
53 * @param int $priority
54 * @param int $acceptedArgs
55 *
56 * @return void
57 */
58 public static function addFilter( $tag, $class, $method = '__invoke', $priority = 10, $acceptedArgs = 1 ) {
59 if ( ! method_exists( $class, $method ) ) {
60 throw new InvalidArgumentException( "The method $method does not exist on $class" );
61 }
62
63 add_filter(
64 $tag,
65 static function () use ( $tag, $class, $method ) {
66 // Provide a way of disabling the hook
67 if ( apply_filters( "give_disable_hook-{$tag}", false ) || apply_filters( "give_disable_hook-{$tag}:{$class}@{$method}", false ) ) {
68 return func_get_arg( 0 );
69 }
70
71 $instance = give( $class );
72
73 return call_user_func_array( [ $instance, $method ], func_get_args() );
74 },
75 $priority,
76 $acceptedArgs
77 );
78 }
79 }
80