@@ -52,21 +52,21 @@ |
||
52 | 52 | 'FHEE__EE_Restriction_Generator_Meta___generate_restrictions__blacklisted_meta_keys', |
53 | 53 | [] |
54 | 54 | ); |
55 | - $conditions = [ |
|
55 | + $conditions = [ |
|
56 | 56 | $this->_key_field_name => ['NOT_LIKE', "\\\\_%"], |
57 | 57 | // each slash is escaped because we are using double quotes, and |
58 | 58 | // stripslashes will be called on this because the models assume this is from user input |
59 | 59 | $this->_value_field_name => ['NOT_REGEXP', '^[aOs]:[\d]:.*$'], |
60 | 60 | ]; |
61 | - if (! empty($blacklisted_meta_keys)) { |
|
62 | - $conditions[ $this->_key_field_name . '*blacklisted' ] = |
|
61 | + if ( ! empty($blacklisted_meta_keys)) { |
|
62 | + $conditions[$this->_key_field_name.'*blacklisted'] = |
|
63 | 63 | ['NOT_IN', $blacklisted_meta_keys]; |
64 | 64 | } |
65 | - if (! empty($whitelisted_meta_keys)) { |
|
65 | + if ( ! empty($whitelisted_meta_keys)) { |
|
66 | 66 | $conditions = [ |
67 | 67 | 'OR*whitelisted-or-normal' => [ |
68 | 68 | 'AND' => $conditions, |
69 | - $this->_key_field_name . '*whitelisted' => [ |
|
69 | + $this->_key_field_name.'*whitelisted' => [ |
|
70 | 70 | 'IN', |
71 | 71 | $whitelisted_meta_keys, |
72 | 72 | ], |
@@ -11,75 +11,75 @@ |
||
11 | 11 | */ |
12 | 12 | class EE_Restriction_Generator_Meta extends EE_Restriction_Generator_Base |
13 | 13 | { |
14 | - /** |
|
15 | - * @var string the name of the field containing the meta key |
|
16 | - */ |
|
17 | - protected $_key_field_name = null; |
|
14 | + /** |
|
15 | + * @var string the name of the field containing the meta key |
|
16 | + */ |
|
17 | + protected $_key_field_name = null; |
|
18 | 18 | |
19 | - /** |
|
20 | - * @var string the name of the field containing the meta value |
|
21 | - */ |
|
22 | - protected $_value_field_name = null; |
|
19 | + /** |
|
20 | + * @var string the name of the field containing the meta value |
|
21 | + */ |
|
22 | + protected $_value_field_name = null; |
|
23 | 23 | |
24 | 24 | |
25 | - /** |
|
26 | - * Accepts the name of the field that indicates whether or not an object is |
|
27 | - * a "system" one or not |
|
28 | - * |
|
29 | - * @param string $key_field_name |
|
30 | - * @param string $value_field_name |
|
31 | - */ |
|
32 | - public function __construct(string $key_field_name, string $value_field_name) |
|
33 | - { |
|
34 | - $this->_key_field_name = $key_field_name; |
|
35 | - $this->_value_field_name = $value_field_name; |
|
36 | - } |
|
25 | + /** |
|
26 | + * Accepts the name of the field that indicates whether or not an object is |
|
27 | + * a "system" one or not |
|
28 | + * |
|
29 | + * @param string $key_field_name |
|
30 | + * @param string $value_field_name |
|
31 | + */ |
|
32 | + public function __construct(string $key_field_name, string $value_field_name) |
|
33 | + { |
|
34 | + $this->_key_field_name = $key_field_name; |
|
35 | + $this->_value_field_name = $value_field_name; |
|
36 | + } |
|
37 | 37 | |
38 | 38 | |
39 | - /** |
|
40 | - * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
41 | - */ |
|
42 | - protected function _generate_restrictions(): array |
|
43 | - { |
|
44 | - $whitelisted_meta_keys = |
|
45 | - apply_filters( |
|
46 | - 'FHEE__EE_Restriction_Generator_Meta___generate_restrictions__whitelisted_meta_keys', |
|
47 | - [] |
|
48 | - ); |
|
49 | - $blacklisted_meta_keys = |
|
50 | - apply_filters( |
|
51 | - 'FHEE__EE_Restriction_Generator_Meta___generate_restrictions__blacklisted_meta_keys', |
|
52 | - [] |
|
53 | - ); |
|
54 | - $conditions = [ |
|
55 | - $this->_key_field_name => ['NOT_LIKE', "\\\\_%"], |
|
56 | - // each slash is escaped because we are using double quotes, and |
|
57 | - // stripslashes will be called on this because the models assume this is from user input |
|
58 | - $this->_value_field_name => ['NOT_REGEXP', '^[aOs]:[\d]:.*$'], |
|
59 | - ]; |
|
60 | - if (! empty($blacklisted_meta_keys)) { |
|
61 | - $conditions[ $this->_key_field_name . '*blacklisted' ] = |
|
62 | - ['NOT_IN', $blacklisted_meta_keys]; |
|
63 | - } |
|
64 | - if (! empty($whitelisted_meta_keys)) { |
|
65 | - $conditions = [ |
|
66 | - 'OR*whitelisted-or-normal' => [ |
|
67 | - 'AND' => $conditions, |
|
68 | - $this->_key_field_name . '*whitelisted' => [ |
|
69 | - 'IN', |
|
70 | - $whitelisted_meta_keys, |
|
71 | - ], |
|
72 | - ], |
|
73 | - ]; |
|
74 | - } |
|
75 | - return [ |
|
76 | - // only allow access to non-protected metas if they're an admin |
|
77 | - EE_Restriction_Generator_Base::get_default_restrictions_cap() => new EE_Return_None_Where_Conditions(), |
|
78 | - // don't allow access to protected metas to anyone. |
|
79 | - // If they want that, don't apply caps to the query |
|
80 | - 'apply-to-all-queries-using-caps' => new EE_Default_Where_Conditions( |
|
81 | - $conditions |
|
82 | - ), |
|
83 | - ]; |
|
84 | - } |
|
39 | + /** |
|
40 | + * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
41 | + */ |
|
42 | + protected function _generate_restrictions(): array |
|
43 | + { |
|
44 | + $whitelisted_meta_keys = |
|
45 | + apply_filters( |
|
46 | + 'FHEE__EE_Restriction_Generator_Meta___generate_restrictions__whitelisted_meta_keys', |
|
47 | + [] |
|
48 | + ); |
|
49 | + $blacklisted_meta_keys = |
|
50 | + apply_filters( |
|
51 | + 'FHEE__EE_Restriction_Generator_Meta___generate_restrictions__blacklisted_meta_keys', |
|
52 | + [] |
|
53 | + ); |
|
54 | + $conditions = [ |
|
55 | + $this->_key_field_name => ['NOT_LIKE', "\\\\_%"], |
|
56 | + // each slash is escaped because we are using double quotes, and |
|
57 | + // stripslashes will be called on this because the models assume this is from user input |
|
58 | + $this->_value_field_name => ['NOT_REGEXP', '^[aOs]:[\d]:.*$'], |
|
59 | + ]; |
|
60 | + if (! empty($blacklisted_meta_keys)) { |
|
61 | + $conditions[ $this->_key_field_name . '*blacklisted' ] = |
|
62 | + ['NOT_IN', $blacklisted_meta_keys]; |
|
63 | + } |
|
64 | + if (! empty($whitelisted_meta_keys)) { |
|
65 | + $conditions = [ |
|
66 | + 'OR*whitelisted-or-normal' => [ |
|
67 | + 'AND' => $conditions, |
|
68 | + $this->_key_field_name . '*whitelisted' => [ |
|
69 | + 'IN', |
|
70 | + $whitelisted_meta_keys, |
|
71 | + ], |
|
72 | + ], |
|
73 | + ]; |
|
74 | + } |
|
75 | + return [ |
|
76 | + // only allow access to non-protected metas if they're an admin |
|
77 | + EE_Restriction_Generator_Base::get_default_restrictions_cap() => new EE_Return_None_Where_Conditions(), |
|
78 | + // don't allow access to protected metas to anyone. |
|
79 | + // If they want that, don't apply caps to the query |
|
80 | + 'apply-to-all-queries-using-caps' => new EE_Default_Where_Conditions( |
|
81 | + $conditions |
|
82 | + ), |
|
83 | + ]; |
|
84 | + } |
|
85 | 85 | } |
@@ -45,14 +45,14 @@ discard block |
||
45 | 45 | protected function _generate_restrictions(): array |
46 | 46 | { |
47 | 47 | // if there are no standard caps for this model, then allow full access |
48 | - if (! $this->model()->cap_slug()) { |
|
48 | + if ( ! $this->model()->cap_slug()) { |
|
49 | 49 | return []; |
50 | 50 | } |
51 | 51 | |
52 | 52 | return [ |
53 | 53 | 'ee_manage_event_categories' => new EE_Default_Where_Conditions( |
54 | 54 | [ |
55 | - $this->_path_to_taxonomy_model . |
|
55 | + $this->_path_to_taxonomy_model. |
|
56 | 56 | 'taxonomy*no_ee_manage_event_categories' => [ |
57 | 57 | '!=', |
58 | 58 | 'espresso_event_categories', |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | ), |
62 | 62 | 'ee_manage_venue_categories' => new EE_Default_Where_Conditions( |
63 | 63 | [ |
64 | - $this->_path_to_taxonomy_model . |
|
64 | + $this->_path_to_taxonomy_model. |
|
65 | 65 | 'taxonomy*no_ee_manage_venue_categories' => [ |
66 | 66 | '!=', |
67 | 67 | 'espresso_venue_categories', |
@@ -70,7 +70,7 @@ discard block |
||
70 | 70 | ), |
71 | 71 | 'ee_manage_event_types' => new EE_Default_Where_Conditions( |
72 | 72 | [ |
73 | - $this->_path_to_taxonomy_model . |
|
73 | + $this->_path_to_taxonomy_model. |
|
74 | 74 | 'taxonomy*ee_manage_event_types' => [ |
75 | 75 | '!=', |
76 | 76 | 'espresso_event_types' |
@@ -11,71 +11,71 @@ |
||
11 | 11 | */ |
12 | 12 | class EE_Restriction_Generator_Taxonomy_Protected extends EE_Restriction_Generator_Base |
13 | 13 | { |
14 | - /** |
|
15 | - * Model chain/path to taxonomy model, |
|
16 | - * including the term_taxonomy model itself |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
20 | - protected $_path_to_taxonomy_model; |
|
14 | + /** |
|
15 | + * Model chain/path to taxonomy model, |
|
16 | + * including the term_taxonomy model itself |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | + protected $_path_to_taxonomy_model; |
|
21 | 21 | |
22 | 22 | |
23 | - /** |
|
24 | - * @param string $path_to_taxonomy_model Model chain/path to taxonomy |
|
25 | - * model, including the term_taxonomy |
|
26 | - * model itself |
|
27 | - */ |
|
28 | - public function __construct(string $path_to_taxonomy_model) |
|
29 | - { |
|
30 | - if ( |
|
31 | - $path_to_taxonomy_model !== '' && |
|
32 | - substr($path_to_taxonomy_model, -1, 1) != '.' |
|
33 | - ) { |
|
34 | - $path_to_taxonomy_model .= '.'; |
|
35 | - } |
|
36 | - $this->_path_to_taxonomy_model = $path_to_taxonomy_model; |
|
37 | - } |
|
23 | + /** |
|
24 | + * @param string $path_to_taxonomy_model Model chain/path to taxonomy |
|
25 | + * model, including the term_taxonomy |
|
26 | + * model itself |
|
27 | + */ |
|
28 | + public function __construct(string $path_to_taxonomy_model) |
|
29 | + { |
|
30 | + if ( |
|
31 | + $path_to_taxonomy_model !== '' && |
|
32 | + substr($path_to_taxonomy_model, -1, 1) != '.' |
|
33 | + ) { |
|
34 | + $path_to_taxonomy_model .= '.'; |
|
35 | + } |
|
36 | + $this->_path_to_taxonomy_model = $path_to_taxonomy_model; |
|
37 | + } |
|
38 | 38 | |
39 | 39 | |
40 | - /** |
|
41 | - * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
42 | - * @throws EE_Error |
|
43 | - */ |
|
44 | - protected function _generate_restrictions(): array |
|
45 | - { |
|
46 | - // if there are no standard caps for this model, then allow full access |
|
47 | - if (! $this->model()->cap_slug()) { |
|
48 | - return []; |
|
49 | - } |
|
40 | + /** |
|
41 | + * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
42 | + * @throws EE_Error |
|
43 | + */ |
|
44 | + protected function _generate_restrictions(): array |
|
45 | + { |
|
46 | + // if there are no standard caps for this model, then allow full access |
|
47 | + if (! $this->model()->cap_slug()) { |
|
48 | + return []; |
|
49 | + } |
|
50 | 50 | |
51 | - return [ |
|
52 | - 'ee_manage_event_categories' => new EE_Default_Where_Conditions( |
|
53 | - [ |
|
54 | - $this->_path_to_taxonomy_model . |
|
55 | - 'taxonomy*no_ee_manage_event_categories' => [ |
|
56 | - '!=', |
|
57 | - 'espresso_event_categories', |
|
58 | - ], |
|
59 | - ] |
|
60 | - ), |
|
61 | - 'ee_manage_venue_categories' => new EE_Default_Where_Conditions( |
|
62 | - [ |
|
63 | - $this->_path_to_taxonomy_model . |
|
64 | - 'taxonomy*no_ee_manage_venue_categories' => [ |
|
65 | - '!=', |
|
66 | - 'espresso_venue_categories', |
|
67 | - ], |
|
68 | - ] |
|
69 | - ), |
|
70 | - 'ee_manage_event_types' => new EE_Default_Where_Conditions( |
|
71 | - [ |
|
72 | - $this->_path_to_taxonomy_model . |
|
73 | - 'taxonomy*ee_manage_event_types' => [ |
|
74 | - '!=', |
|
75 | - 'espresso_event_types' |
|
76 | - ] |
|
77 | - ] |
|
78 | - ), |
|
79 | - ]; |
|
80 | - } |
|
51 | + return [ |
|
52 | + 'ee_manage_event_categories' => new EE_Default_Where_Conditions( |
|
53 | + [ |
|
54 | + $this->_path_to_taxonomy_model . |
|
55 | + 'taxonomy*no_ee_manage_event_categories' => [ |
|
56 | + '!=', |
|
57 | + 'espresso_event_categories', |
|
58 | + ], |
|
59 | + ] |
|
60 | + ), |
|
61 | + 'ee_manage_venue_categories' => new EE_Default_Where_Conditions( |
|
62 | + [ |
|
63 | + $this->_path_to_taxonomy_model . |
|
64 | + 'taxonomy*no_ee_manage_venue_categories' => [ |
|
65 | + '!=', |
|
66 | + 'espresso_venue_categories', |
|
67 | + ], |
|
68 | + ] |
|
69 | + ), |
|
70 | + 'ee_manage_event_types' => new EE_Default_Where_Conditions( |
|
71 | + [ |
|
72 | + $this->_path_to_taxonomy_model . |
|
73 | + 'taxonomy*ee_manage_event_types' => [ |
|
74 | + '!=', |
|
75 | + 'espresso_event_types' |
|
76 | + ] |
|
77 | + ] |
|
78 | + ), |
|
79 | + ]; |
|
80 | + } |
|
81 | 81 | } |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | { |
41 | 41 | // if there are no standard caps for this model, then for now |
42 | 42 | // all we know if they need the default cap to access this |
43 | - if (! $this->model()->cap_slug()) { |
|
43 | + if ( ! $this->model()->cap_slug()) { |
|
44 | 44 | return [ |
45 | 45 | EE_Restriction_Generator_Base::get_default_restrictions_cap( |
46 | 46 | ) => new EE_Return_None_Where_Conditions(), |
@@ -57,18 +57,18 @@ discard block |
||
57 | 57 | // there is also no "ee_delete_system_questions" cap. |
58 | 58 | // But folks shouldn't be deleting system questions anyway |
59 | 59 | if ($this->action() !== EEM_Base::caps_read) { |
60 | - $restrictions[ EE_Restriction_Generator_Base::get_cap_name( |
|
60 | + $restrictions[EE_Restriction_Generator_Base::get_cap_name( |
|
61 | 61 | $this->model(), |
62 | - $this->action() . '_system' |
|
63 | - ) ] = new EE_Default_Where_Conditions( |
|
62 | + $this->action().'_system' |
|
63 | + )] = new EE_Default_Where_Conditions( |
|
64 | 64 | [ |
65 | - 'OR*no_' . |
|
65 | + 'OR*no_'. |
|
66 | 66 | EE_Restriction_Generator_Base::get_cap_name( |
67 | 67 | $this->model(), |
68 | - $this->action() . '_system' |
|
68 | + $this->action().'_system' |
|
69 | 69 | ) => [ |
70 | 70 | $this->_system_field_name => ['IN', ['', 0]], |
71 | - $this->_system_field_name . '*' => ['IS_NULL'], |
|
71 | + $this->_system_field_name.'*' => ['IS_NULL'], |
|
72 | 72 | ], |
73 | 73 | ] |
74 | 74 | ); |
@@ -12,66 +12,66 @@ |
||
12 | 12 | */ |
13 | 13 | class EE_Restriction_Generator_Reg_Form extends EE_Restriction_Generator_Base |
14 | 14 | { |
15 | - /** |
|
16 | - * @var string the name of the field that indicates |
|
17 | - * whether or not this is a system thing |
|
18 | - */ |
|
19 | - protected $_system_field_name = null; |
|
15 | + /** |
|
16 | + * @var string the name of the field that indicates |
|
17 | + * whether or not this is a system thing |
|
18 | + */ |
|
19 | + protected $_system_field_name = null; |
|
20 | 20 | |
21 | 21 | |
22 | - /** |
|
23 | - * Accepts the name of the field that indicates |
|
24 | - * whether or not an object is a "system" one or not |
|
25 | - * |
|
26 | - * @param string $system_field_name |
|
27 | - */ |
|
28 | - public function __construct(string $system_field_name) |
|
29 | - { |
|
30 | - $this->_system_field_name = $system_field_name; |
|
31 | - } |
|
22 | + /** |
|
23 | + * Accepts the name of the field that indicates |
|
24 | + * whether or not an object is a "system" one or not |
|
25 | + * |
|
26 | + * @param string $system_field_name |
|
27 | + */ |
|
28 | + public function __construct(string $system_field_name) |
|
29 | + { |
|
30 | + $this->_system_field_name = $system_field_name; |
|
31 | + } |
|
32 | 32 | |
33 | 33 | |
34 | - /** |
|
35 | - * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
36 | - * @throws EE_Error |
|
37 | - */ |
|
38 | - protected function _generate_restrictions(): array |
|
39 | - { |
|
40 | - // if there are no standard caps for this model, then for now |
|
41 | - // all we know if they need the default cap to access this |
|
42 | - if (! $this->model()->cap_slug()) { |
|
43 | - return [ |
|
44 | - EE_Restriction_Generator_Base::get_default_restrictions_cap( |
|
45 | - ) => new EE_Return_None_Where_Conditions(), |
|
46 | - ]; |
|
47 | - } |
|
48 | - $restrictions = [ |
|
49 | - EE_Restriction_Generator_Base::get_cap_name( |
|
50 | - $this->model(), |
|
51 | - $this->action() |
|
52 | - ) => new EE_Return_None_Where_Conditions(), |
|
53 | - ]; |
|
54 | - // there is no "ee_read_system_questions" cap; |
|
55 | - // in order to read reg form items you only need "ee_read_{model_name}". |
|
56 | - // there is also no "ee_delete_system_questions" cap. |
|
57 | - // But folks shouldn't be deleting system questions anyway |
|
58 | - if ($this->action() !== EEM_Base::caps_read) { |
|
59 | - $restrictions[ EE_Restriction_Generator_Base::get_cap_name( |
|
60 | - $this->model(), |
|
61 | - $this->action() . '_system' |
|
62 | - ) ] = new EE_Default_Where_Conditions( |
|
63 | - [ |
|
64 | - 'OR*no_' . |
|
65 | - EE_Restriction_Generator_Base::get_cap_name( |
|
66 | - $this->model(), |
|
67 | - $this->action() . '_system' |
|
68 | - ) => [ |
|
69 | - $this->_system_field_name => ['IN', ['', 0]], |
|
70 | - $this->_system_field_name . '*' => ['IS_NULL'], |
|
71 | - ], |
|
72 | - ] |
|
73 | - ); |
|
74 | - } |
|
75 | - return $restrictions; |
|
76 | - } |
|
34 | + /** |
|
35 | + * @return EE_Default_Where_Conditions[]|EE_Return_None_Where_Conditions[] |
|
36 | + * @throws EE_Error |
|
37 | + */ |
|
38 | + protected function _generate_restrictions(): array |
|
39 | + { |
|
40 | + // if there are no standard caps for this model, then for now |
|
41 | + // all we know if they need the default cap to access this |
|
42 | + if (! $this->model()->cap_slug()) { |
|
43 | + return [ |
|
44 | + EE_Restriction_Generator_Base::get_default_restrictions_cap( |
|
45 | + ) => new EE_Return_None_Where_Conditions(), |
|
46 | + ]; |
|
47 | + } |
|
48 | + $restrictions = [ |
|
49 | + EE_Restriction_Generator_Base::get_cap_name( |
|
50 | + $this->model(), |
|
51 | + $this->action() |
|
52 | + ) => new EE_Return_None_Where_Conditions(), |
|
53 | + ]; |
|
54 | + // there is no "ee_read_system_questions" cap; |
|
55 | + // in order to read reg form items you only need "ee_read_{model_name}". |
|
56 | + // there is also no "ee_delete_system_questions" cap. |
|
57 | + // But folks shouldn't be deleting system questions anyway |
|
58 | + if ($this->action() !== EEM_Base::caps_read) { |
|
59 | + $restrictions[ EE_Restriction_Generator_Base::get_cap_name( |
|
60 | + $this->model(), |
|
61 | + $this->action() . '_system' |
|
62 | + ) ] = new EE_Default_Where_Conditions( |
|
63 | + [ |
|
64 | + 'OR*no_' . |
|
65 | + EE_Restriction_Generator_Base::get_cap_name( |
|
66 | + $this->model(), |
|
67 | + $this->action() . '_system' |
|
68 | + ) => [ |
|
69 | + $this->_system_field_name => ['IN', ['', 0]], |
|
70 | + $this->_system_field_name . '*' => ['IS_NULL'], |
|
71 | + ], |
|
72 | + ] |
|
73 | + ); |
|
74 | + } |
|
75 | + return $restrictions; |
|
76 | + } |
|
77 | 77 | } |
@@ -1,6 +1,6 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | esc_html_e( |
4 | - 'Bank is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a bank transfer.', |
|
5 | - 'event_espresso' |
|
4 | + 'Bank is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a bank transfer.', |
|
5 | + 'event_espresso' |
|
6 | 6 | ); |
@@ -1,6 +1,6 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | esc_html_e( |
4 | - 'Check is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a check.', |
|
5 | - 'event_espresso' |
|
4 | + 'Check is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay with a check.', |
|
5 | + 'event_espresso' |
|
6 | 6 | ); |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | '<br />' |
41 | 41 | ); |
42 | 42 | parent::__construct($pm_instance); |
43 | - $this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png'; |
|
43 | + $this->_default_button_url = $this->file_url().'lib/invoice-logo.png'; |
|
44 | 44 | } |
45 | 45 | |
46 | 46 | |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | { |
66 | 66 | $pdf_payee_input_name = 'pdf_payee_name'; |
67 | 67 | $confirmation_text_input_name = 'page_confirmation_text'; |
68 | - $form = new EE_Payment_Method_Form(array( |
|
68 | + $form = new EE_Payment_Method_Form(array( |
|
69 | 69 | // 'payment_method_type' => $this, |
70 | 70 | 'extra_meta_inputs' => array( |
71 | 71 | $pdf_payee_input_name => new EE_Text_Input(array( |
@@ -79,12 +79,12 @@ discard block |
||
79 | 79 | )), |
80 | 80 | 'pdf_payee_address' => new EE_Text_Area_Input(array( |
81 | 81 | 'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()), |
82 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
82 | + 'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()), |
|
83 | 83 | )), |
84 | 84 | 'pdf_instructions' => new EE_Text_Area_Input(array( |
85 | 85 | 'html_label_text' => sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()), |
86 | 86 | 'default' => esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'), |
87 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
87 | + 'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()), |
|
88 | 88 | )), |
89 | 89 | 'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array( |
90 | 90 | 'html_label_text' => sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()), |
@@ -94,24 +94,24 @@ discard block |
||
94 | 94 | $confirmation_text_input_name => new EE_Text_Area_Input(array( |
95 | 95 | 'html_label_text' => sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()), |
96 | 96 | 'default' => esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'), |
97 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
97 | + 'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()), |
|
98 | 98 | )), |
99 | 99 | 'page_extra_info' => new EE_Text_Area_Input(array( |
100 | 100 | 'html_label_text' => sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()), |
101 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
101 | + 'validation_strategies' => array(new EE_Full_HTML_Validation_Strategy()), |
|
102 | 102 | )), |
103 | 103 | ), |
104 | 104 | 'include' => array( |
105 | - 'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order', |
|
106 | - $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image', |
|
105 | + 'PMD_ID', 'PMD_name', 'PMD_desc', 'PMD_admin_name', 'PMD_admin_desc', 'PMD_type', 'PMD_slug', 'PMD_open_by_default', 'PMD_button_url', 'PMD_scope', 'Currency', 'PMD_order', |
|
106 | + $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions', 'pdf_logo_image', |
|
107 | 107 | $confirmation_text_input_name, 'page_extra_info'), |
108 | 108 | )); |
109 | 109 | $form->add_subsections( |
110 | - array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')), |
|
110 | + array('header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')), |
|
111 | 111 | $pdf_payee_input_name |
112 | 112 | ); |
113 | 113 | $form->add_subsections( |
114 | - array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')), |
|
114 | + array('header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')), |
|
115 | 115 | $confirmation_text_input_name |
116 | 116 | ); |
117 | 117 | return $form; |
@@ -24,143 +24,143 @@ |
||
24 | 24 | */ |
25 | 25 | class EE_PMT_Invoice extends EE_PMT_Base |
26 | 26 | { |
27 | - /** |
|
28 | - * @param EE_Payment_Method|null $pm_instance |
|
29 | - * @throws ReflectionException |
|
30 | - * @throws EE_Error |
|
31 | - */ |
|
32 | - public function __construct($pm_instance = null) |
|
33 | - { |
|
34 | - $this->_pretty_name = esc_html__("Invoice", 'event_espresso'); |
|
35 | - $this->_default_description = sprintf( |
|
36 | - esc_html__('After clicking "Finalize Registration", you will be given instructions on how to access your invoice and complete your payment.%sPlease note that event spaces will not be reserved until payment is received in full, and any remaining tickets could be sold to others in the meantime.', 'event_espresso'), |
|
37 | - '<br />' |
|
38 | - ); |
|
39 | - parent::__construct($pm_instance); |
|
40 | - $this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png'; |
|
41 | - } |
|
27 | + /** |
|
28 | + * @param EE_Payment_Method|null $pm_instance |
|
29 | + * @throws ReflectionException |
|
30 | + * @throws EE_Error |
|
31 | + */ |
|
32 | + public function __construct($pm_instance = null) |
|
33 | + { |
|
34 | + $this->_pretty_name = esc_html__("Invoice", 'event_espresso'); |
|
35 | + $this->_default_description = sprintf( |
|
36 | + esc_html__('After clicking "Finalize Registration", you will be given instructions on how to access your invoice and complete your payment.%sPlease note that event spaces will not be reserved until payment is received in full, and any remaining tickets could be sold to others in the meantime.', 'event_espresso'), |
|
37 | + '<br />' |
|
38 | + ); |
|
39 | + parent::__construct($pm_instance); |
|
40 | + $this->_default_button_url = $this->file_url() . 'lib/invoice-logo.png'; |
|
41 | + } |
|
42 | 42 | |
43 | 43 | |
44 | 44 | |
45 | - /** |
|
46 | - * Creates the billing form for this payment method type |
|
47 | - * @param EE_Transaction|null $transaction |
|
48 | - * @return EE_Billing_Info_Form|null |
|
49 | - * @throws EE_Error |
|
50 | - * @throws ReflectionException |
|
51 | - */ |
|
52 | - public function generate_new_billing_form(EE_Transaction $transaction = null) |
|
53 | - { return null; |
|
54 | - } |
|
45 | + /** |
|
46 | + * Creates the billing form for this payment method type |
|
47 | + * @param EE_Transaction|null $transaction |
|
48 | + * @return EE_Billing_Info_Form|null |
|
49 | + * @throws EE_Error |
|
50 | + * @throws ReflectionException |
|
51 | + */ |
|
52 | + public function generate_new_billing_form(EE_Transaction $transaction = null) |
|
53 | + { return null; |
|
54 | + } |
|
55 | 55 | |
56 | 56 | |
57 | 57 | |
58 | - /** |
|
59 | - * Gets the form for all the settings related to this payment method type |
|
60 | - * |
|
61 | - * @return EE_Payment_Method_Form |
|
62 | - * @throws EE_Error |
|
63 | - * @throws ReflectionException |
|
64 | - */ |
|
65 | - public function generate_new_settings_form() |
|
66 | - { |
|
67 | - $pdf_payee_input_name = 'pdf_payee_name'; |
|
68 | - $confirmation_text_input_name = 'page_confirmation_text'; |
|
69 | - $form = new EE_Payment_Method_Form(array( |
|
58 | + /** |
|
59 | + * Gets the form for all the settings related to this payment method type |
|
60 | + * |
|
61 | + * @return EE_Payment_Method_Form |
|
62 | + * @throws EE_Error |
|
63 | + * @throws ReflectionException |
|
64 | + */ |
|
65 | + public function generate_new_settings_form() |
|
66 | + { |
|
67 | + $pdf_payee_input_name = 'pdf_payee_name'; |
|
68 | + $confirmation_text_input_name = 'page_confirmation_text'; |
|
69 | + $form = new EE_Payment_Method_Form(array( |
|
70 | 70 | // 'payment_method_type' => $this, |
71 | - 'extra_meta_inputs' => array( |
|
72 | - $pdf_payee_input_name => new EE_Text_Input(array( |
|
73 | - 'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link()) |
|
74 | - )), |
|
75 | - 'pdf_payee_email' => new EE_Email_Input(array( |
|
76 | - 'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()), |
|
77 | - )), |
|
78 | - 'pdf_payee_tax_number' => new EE_Text_Input(array( |
|
79 | - 'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()), |
|
80 | - )), |
|
81 | - 'pdf_payee_address' => new EE_Text_Area_Input(array( |
|
82 | - 'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()), |
|
83 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
84 | - )), |
|
85 | - 'pdf_instructions' => new EE_Text_Area_Input(array( |
|
86 | - 'html_label_text' => sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()), |
|
87 | - 'default' => esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'), |
|
88 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
89 | - )), |
|
90 | - 'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array( |
|
91 | - 'html_label_text' => sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()), |
|
92 | - 'default' => EE_Config::instance()->organization->logo_url, |
|
93 | - 'html_help_text' => esc_html__("(Logo for the top left of the invoice)", 'event_espresso'), |
|
94 | - )), |
|
95 | - $confirmation_text_input_name => new EE_Text_Area_Input(array( |
|
96 | - 'html_label_text' => sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()), |
|
97 | - 'default' => esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'), |
|
98 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
99 | - )), |
|
100 | - 'page_extra_info' => new EE_Text_Area_Input(array( |
|
101 | - 'html_label_text' => sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()), |
|
102 | - 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
103 | - )), |
|
104 | - ), |
|
105 | - 'include' => array( |
|
106 | - 'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order', |
|
107 | - $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image', |
|
108 | - $confirmation_text_input_name, 'page_extra_info'), |
|
109 | - )); |
|
110 | - $form->add_subsections( |
|
111 | - array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')), |
|
112 | - $pdf_payee_input_name |
|
113 | - ); |
|
114 | - $form->add_subsections( |
|
115 | - array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')), |
|
116 | - $confirmation_text_input_name |
|
117 | - ); |
|
118 | - return $form; |
|
119 | - } |
|
71 | + 'extra_meta_inputs' => array( |
|
72 | + $pdf_payee_input_name => new EE_Text_Input(array( |
|
73 | + 'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link()) |
|
74 | + )), |
|
75 | + 'pdf_payee_email' => new EE_Email_Input(array( |
|
76 | + 'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()), |
|
77 | + )), |
|
78 | + 'pdf_payee_tax_number' => new EE_Text_Input(array( |
|
79 | + 'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()), |
|
80 | + )), |
|
81 | + 'pdf_payee_address' => new EE_Text_Area_Input(array( |
|
82 | + 'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()), |
|
83 | + 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
84 | + )), |
|
85 | + 'pdf_instructions' => new EE_Text_Area_Input(array( |
|
86 | + 'html_label_text' => sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()), |
|
87 | + 'default' => esc_html__("Please send this invoice with payment attached to the address above, or use the payment link below. Payment must be received within 48 hours of event date.", 'event_espresso'), |
|
88 | + 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
89 | + )), |
|
90 | + 'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array( |
|
91 | + 'html_label_text' => sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()), |
|
92 | + 'default' => EE_Config::instance()->organization->logo_url, |
|
93 | + 'html_help_text' => esc_html__("(Logo for the top left of the invoice)", 'event_espresso'), |
|
94 | + )), |
|
95 | + $confirmation_text_input_name => new EE_Text_Area_Input(array( |
|
96 | + 'html_label_text' => sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()), |
|
97 | + 'default' => esc_html__("Payment must be received within 48 hours of event date. Details about where to send the payment are included on the invoice.", 'event_espresso'), |
|
98 | + 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
99 | + )), |
|
100 | + 'page_extra_info' => new EE_Text_Area_Input(array( |
|
101 | + 'html_label_text' => sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()), |
|
102 | + 'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ), |
|
103 | + )), |
|
104 | + ), |
|
105 | + 'include' => array( |
|
106 | + 'PMD_ID', 'PMD_name','PMD_desc','PMD_admin_name','PMD_admin_desc', 'PMD_type','PMD_slug', 'PMD_open_by_default','PMD_button_url','PMD_scope','Currency','PMD_order', |
|
107 | + $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image', |
|
108 | + $confirmation_text_input_name, 'page_extra_info'), |
|
109 | + )); |
|
110 | + $form->add_subsections( |
|
111 | + array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')), |
|
112 | + $pdf_payee_input_name |
|
113 | + ); |
|
114 | + $form->add_subsections( |
|
115 | + array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')), |
|
116 | + $confirmation_text_input_name |
|
117 | + ); |
|
118 | + return $form; |
|
119 | + } |
|
120 | 120 | |
121 | 121 | |
122 | 122 | |
123 | - /** |
|
124 | - * Adds the help tab |
|
125 | - * |
|
126 | - * @return array |
|
127 | - * @see EE_PMT_Base::help_tabs_config() |
|
128 | - */ |
|
129 | - public function help_tabs_config() |
|
130 | - { |
|
131 | - return array( |
|
132 | - $this->get_help_tab_name() => array( |
|
133 | - 'title' => esc_html__('Invoice Settings', 'event_espresso'), |
|
134 | - 'filename' => 'payment_methods_overview_invoice' |
|
135 | - ), |
|
136 | - ); |
|
137 | - } |
|
123 | + /** |
|
124 | + * Adds the help tab |
|
125 | + * |
|
126 | + * @return array |
|
127 | + * @see EE_PMT_Base::help_tabs_config() |
|
128 | + */ |
|
129 | + public function help_tabs_config() |
|
130 | + { |
|
131 | + return array( |
|
132 | + $this->get_help_tab_name() => array( |
|
133 | + 'title' => esc_html__('Invoice Settings', 'event_espresso'), |
|
134 | + 'filename' => 'payment_methods_overview_invoice' |
|
135 | + ), |
|
136 | + ); |
|
137 | + } |
|
138 | 138 | |
139 | 139 | |
140 | - /** |
|
141 | - * For adding any html output above the payment overview. |
|
142 | - * Many gateways won't want ot display anything, so this function just returns an empty string. |
|
143 | - * Other gateways may want to override this, such as offline gateways. |
|
144 | - * |
|
145 | - * @param EE_Payment $payment |
|
146 | - * @return string |
|
147 | - * @throws EE_Error |
|
148 | - * @throws ReflectionException |
|
149 | - */ |
|
150 | - public function payment_overview_content(EE_Payment $payment) |
|
151 | - { |
|
152 | - return EEH_Template::locate_template( |
|
153 | - 'payment_methods/Invoice/templates/invoice_payment_details_content.template.php', |
|
154 | - array_merge( |
|
155 | - array( |
|
156 | - 'payment_method' => $this->_pm_instance, |
|
157 | - 'payment' => $payment, |
|
158 | - 'page_confirmation_text' => '', |
|
159 | - 'page_extra_info' => '', |
|
160 | - 'invoice_url' => $payment->transaction()->primary_registration()->invoice_url('html') |
|
161 | - ), |
|
162 | - $this->_pm_instance->all_extra_meta_array() |
|
163 | - ) |
|
164 | - ); |
|
165 | - } |
|
140 | + /** |
|
141 | + * For adding any html output above the payment overview. |
|
142 | + * Many gateways won't want ot display anything, so this function just returns an empty string. |
|
143 | + * Other gateways may want to override this, such as offline gateways. |
|
144 | + * |
|
145 | + * @param EE_Payment $payment |
|
146 | + * @return string |
|
147 | + * @throws EE_Error |
|
148 | + * @throws ReflectionException |
|
149 | + */ |
|
150 | + public function payment_overview_content(EE_Payment $payment) |
|
151 | + { |
|
152 | + return EEH_Template::locate_template( |
|
153 | + 'payment_methods/Invoice/templates/invoice_payment_details_content.template.php', |
|
154 | + array_merge( |
|
155 | + array( |
|
156 | + 'payment_method' => $this->_pm_instance, |
|
157 | + 'payment' => $payment, |
|
158 | + 'page_confirmation_text' => '', |
|
159 | + 'page_extra_info' => '', |
|
160 | + 'invoice_url' => $payment->transaction()->primary_registration()->invoice_url('html') |
|
161 | + ), |
|
162 | + $this->_pm_instance->all_extra_meta_array() |
|
163 | + ) |
|
164 | + ); |
|
165 | + } |
|
166 | 166 | } |
@@ -1,6 +1,6 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | esc_html_e( |
4 | - 'Invoice is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay their invoice.', |
|
5 | - 'event_espresso' |
|
4 | + 'Invoice is an offline payment method for accepting payments. Payments are processed manually by providing your registrants/attendees with information on how to pay their invoice.', |
|
5 | + 'event_espresso' |
|
6 | 6 | ); |
@@ -129,7 +129,7 @@ discard block |
||
129 | 129 | */ |
130 | 130 | public function messages_autoload_paths($dir_ref) |
131 | 131 | { |
132 | - $dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/'; |
|
132 | + $dir_ref[] = EE_CAF_LIBRARIES.'shortcodes/'; |
|
133 | 133 | |
134 | 134 | return $dir_ref; |
135 | 135 | } |
@@ -245,32 +245,32 @@ discard block |
||
245 | 245 | ) { |
246 | 246 | |
247 | 247 | // we're only modifying templates for the default template pack |
248 | - if (! $template_pack instanceof EE_Messages_Template_Pack_Default) { |
|
248 | + if ( ! $template_pack instanceof EE_Messages_Template_Pack_Default) { |
|
249 | 249 | return $contents; |
250 | 250 | } |
251 | 251 | |
252 | 252 | // the template file name we're replacing contents for. |
253 | - $template_file_prefix = $field . '_' . $context; |
|
254 | - $msg_prefix = $messenger->name . '_' . $message_type->name . '_'; |
|
253 | + $template_file_prefix = $field.'_'.$context; |
|
254 | + $msg_prefix = $messenger->name.'_'.$message_type->name.'_'; |
|
255 | 255 | |
256 | - $base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/'; |
|
256 | + $base_path = EE_CAF_LIBRARIES.'messages/defaults/default/'; |
|
257 | 257 | |
258 | 258 | if ($messenger->name == 'email' && $message_type->name == 'registration') { |
259 | 259 | switch ($template_file_prefix) { |
260 | 260 | case 'question_list_admin': |
261 | 261 | case 'question_list_attendee': |
262 | 262 | case 'question_list_primary_attendee': |
263 | - $path = $base_path . $msg_prefix . 'question_list.template.php'; |
|
263 | + $path = $base_path.$msg_prefix.'question_list.template.php'; |
|
264 | 264 | $contents = EEH_Template::display_template($path, array(), true); |
265 | 265 | break; |
266 | 266 | |
267 | 267 | case 'attendee_list_primary_attendee': |
268 | - $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
268 | + $path = $base_path.$msg_prefix.'attendee_list.template.php'; |
|
269 | 269 | $contents = EEH_Template::display_template($path, array(), true); |
270 | 270 | break; |
271 | 271 | |
272 | 272 | case 'attendee_list_admin': |
273 | - $path = $base_path . $msg_prefix . 'attendee_list_admin.template.php'; |
|
273 | + $path = $base_path.$msg_prefix.'attendee_list_admin.template.php'; |
|
274 | 274 | $contents = EEH_Template::display_template( |
275 | 275 | $path, |
276 | 276 | array(), |
@@ -283,31 +283,31 @@ discard block |
||
283 | 283 | break; |
284 | 284 | |
285 | 285 | case 'event_list_attendee': |
286 | - $path = $base_path . $msg_prefix . 'event_list_attendee.template.php'; |
|
286 | + $path = $base_path.$msg_prefix.'event_list_attendee.template.php'; |
|
287 | 287 | $contents = EEH_Template::display_template($path, array(), true); |
288 | 288 | break; |
289 | 289 | } |
290 | 290 | } elseif ($messenger->name == 'email' && $message_type->name == 'newsletter') { |
291 | 291 | switch ($template_file_prefix) { |
292 | 292 | case 'content_attendee': |
293 | - $path = $base_path . $msg_prefix . 'content.template.php'; |
|
293 | + $path = $base_path.$msg_prefix.'content.template.php'; |
|
294 | 294 | $contents = EEH_Template::display_template($path, array(), true); |
295 | 295 | break; |
296 | 296 | |
297 | 297 | case 'newsletter_content_attendee': |
298 | - $path = $base_path . $msg_prefix . 'newsletter_content.template.php'; |
|
298 | + $path = $base_path.$msg_prefix.'newsletter_content.template.php'; |
|
299 | 299 | $contents = EEH_Template::display_template($path, array(), true); |
300 | 300 | break; |
301 | 301 | |
302 | 302 | case 'newsletter_subject_attendee': |
303 | - $path = $base_path . $msg_prefix . 'subject.template.php'; |
|
303 | + $path = $base_path.$msg_prefix.'subject.template.php'; |
|
304 | 304 | $contents = EEH_Template::display_template($path, array(), true); |
305 | 305 | break; |
306 | 306 | } |
307 | 307 | } elseif ($messenger->name == 'html' && $message_type->name == 'receipt') { |
308 | 308 | switch ($template_file_prefix) { |
309 | 309 | case 'attendee_list_purchaser': |
310 | - $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
310 | + $path = $base_path.$msg_prefix.'attendee_list.template.php'; |
|
311 | 311 | $contents = EEH_Template::display_template($path, array(), true); |
312 | 312 | break; |
313 | 313 | } |
@@ -338,8 +338,8 @@ discard block |
||
338 | 338 | if ($msg instanceof EE_message_type && in_array($msg->name, $include_with)) { |
339 | 339 | $contexts = array_keys($msg->get_contexts()); |
340 | 340 | foreach ($contexts as $context) { |
341 | - $valid_shortcodes[ $context ][] = 'question_list'; |
|
342 | - $valid_shortcodes[ $context ][] = 'question'; |
|
341 | + $valid_shortcodes[$context][] = 'question_list'; |
|
342 | + $valid_shortcodes[$context][] = 'question'; |
|
343 | 343 | } |
344 | 344 | } |
345 | 345 | |
@@ -383,7 +383,7 @@ discard block |
||
383 | 383 | $extra_data |
384 | 384 | ) && isset($extra_data['data']) ? $extra_data['data'] : $aee; |
385 | 385 | |
386 | - if (! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) { |
|
386 | + if ( ! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) { |
|
387 | 387 | return $parsed; |
388 | 388 | } |
389 | 389 | |
@@ -392,9 +392,9 @@ discard block |
||
392 | 392 | if ( |
393 | 393 | $question instanceof EE_Question |
394 | 394 | && trim($question->display_text()) == trim($shortcode) |
395 | - && isset($aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]) |
|
395 | + && isset($aee->registrations[$registration->ID()]['ans_objs'][$ansid]) |
|
396 | 396 | ) { |
397 | - return $aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]->get_pretty( |
|
397 | + return $aee->registrations[$registration->ID()]['ans_objs'][$ansid]->get_pretty( |
|
398 | 398 | 'ANS_value', |
399 | 399 | 'no_wpautop' |
400 | 400 | ); |
@@ -455,7 +455,7 @@ discard block |
||
455 | 455 | public function additional_datetime_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
456 | 456 | { |
457 | 457 | |
458 | - if (! $data instanceof EE_Datetime) { |
|
458 | + if ( ! $data instanceof EE_Datetime) { |
|
459 | 459 | return ''; // get out because we can only parse with the datetime object. |
460 | 460 | } |
461 | 461 | |
@@ -508,7 +508,7 @@ discard block |
||
508 | 508 | $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
509 | 509 | $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
510 | 510 | |
511 | - if (! $recipient instanceof EE_Messages_Addressee) { |
|
511 | + if ( ! $recipient instanceof EE_Messages_Addressee) { |
|
512 | 512 | return $parsed; |
513 | 513 | } |
514 | 514 | |
@@ -516,7 +516,7 @@ discard block |
||
516 | 516 | case '[RECIPIENT_QUESTION_LIST]': |
517 | 517 | $att = $recipient->att_obj; |
518 | 518 | $registrations_on_attendee = $att instanceof EE_Attendee |
519 | - ? $recipient->attendees[ $att->ID() ]['reg_objs'] |
|
519 | + ? $recipient->attendees[$att->ID()]['reg_objs'] |
|
520 | 520 | : array(); |
521 | 521 | $registrations_on_attendee = empty($registrations_on_attendee) && $recipient->reg_obj instanceof EE_Registration ? array($recipient->reg_obj) : $registrations_on_attendee; |
522 | 522 | $answers = array(); |
@@ -530,12 +530,12 @@ discard block |
||
530 | 530 | if ($data['data'] instanceof EE_Messages_Addressee) { |
531 | 531 | foreach ($registrations_on_attendee as $reg) { |
532 | 532 | if ($reg instanceof EE_Registration) { |
533 | - $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
534 | - ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
533 | + $anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) |
|
534 | + ? $recipient->registrations[$reg->ID()]['ans_objs'] |
|
535 | 535 | : array(); |
536 | 536 | foreach ($anss as $ans) { |
537 | 537 | if ($ans instanceof EE_Answer) { |
538 | - $answers[ $ans->ID() ] = $ans; |
|
538 | + $answers[$ans->ID()] = $ans; |
|
539 | 539 | } |
540 | 540 | } |
541 | 541 | } |
@@ -547,12 +547,12 @@ discard block |
||
547 | 547 | $event = $data['data']; |
548 | 548 | foreach ($registrations_on_attendee as $reg) { |
549 | 549 | if ($reg instanceof EE_Registration && $reg->event_ID() == $event->ID()) { |
550 | - $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
551 | - ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
550 | + $anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) |
|
551 | + ? $recipient->registrations[$reg->ID()]['ans_objs'] |
|
552 | 552 | : array(); |
553 | 553 | foreach ($anss as $ans) { |
554 | 554 | if ($ans instanceof EE_Answer) { |
555 | - $answers[ $ans->ID() ] = $ans; |
|
555 | + $answers[$ans->ID()] = $ans; |
|
556 | 556 | } |
557 | 557 | } |
558 | 558 | } |
@@ -563,7 +563,7 @@ discard block |
||
563 | 563 | |
564 | 564 | // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
565 | 565 | // object on it. |
566 | - if (! isset($extra_data['data'])) { |
|
566 | + if ( ! isset($extra_data['data'])) { |
|
567 | 567 | $extra_data['data'] = $recipient; |
568 | 568 | } |
569 | 569 | |
@@ -620,18 +620,18 @@ discard block |
||
620 | 620 | $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
621 | 621 | $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
622 | 622 | |
623 | - if (! $recipient instanceof EE_Messages_Addressee) { |
|
623 | + if ( ! $recipient instanceof EE_Messages_Addressee) { |
|
624 | 624 | return $parsed; |
625 | 625 | } |
626 | 626 | |
627 | 627 | switch ($shortcode) { |
628 | 628 | case '[PRIMARY_REGISTRANT_QUESTION_LIST]': |
629 | - if (! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) { |
|
629 | + if ( ! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) { |
|
630 | 630 | return ''; |
631 | 631 | } |
632 | 632 | $registration = $recipient->primary_reg_obj; |
633 | - $answers = isset($recipient->registrations[ $registration->ID() ]['ans_objs']) |
|
634 | - ? $recipient->registrations[ $registration->ID() ]['ans_objs'] |
|
633 | + $answers = isset($recipient->registrations[$registration->ID()]['ans_objs']) |
|
634 | + ? $recipient->registrations[$registration->ID()]['ans_objs'] |
|
635 | 635 | : array(); |
636 | 636 | if (empty($answers)) { |
637 | 637 | return ''; |
@@ -640,11 +640,11 @@ discard block |
||
640 | 640 | ? $data['template']['question_list'] |
641 | 641 | : $extra_data['template']['question_list']; |
642 | 642 | $valid_shortcodes = array('question'); |
643 | - $answers = $recipient->registrations[ $registration->ID() ]['ans_objs']; |
|
643 | + $answers = $recipient->registrations[$registration->ID()]['ans_objs']; |
|
644 | 644 | $questions = isset($recipient->questions) ? $recipient->questions : array(); |
645 | 645 | // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
646 | 646 | // object on it. |
647 | - if (! isset($extra_data['data'])) { |
|
647 | + if ( ! isset($extra_data['data'])) { |
|
648 | 648 | $extra_data['data'] = $recipient; |
649 | 649 | } |
650 | 650 | return $this->_parse_question_list_for_primary_or_recipient_registration( |
@@ -677,7 +677,7 @@ discard block |
||
677 | 677 | $setup_args = array( |
678 | 678 | 'mtfilename' => 'EE_Newsletter_message_type.class.php', |
679 | 679 | 'autoloadpaths' => array( |
680 | - EE_CAF_LIBRARIES . 'messages/message_type/newsletter/', |
|
680 | + EE_CAF_LIBRARIES.'messages/message_type/newsletter/', |
|
681 | 681 | ), |
682 | 682 | 'messengers_to_activate_with' => array('email'), |
683 | 683 | 'messengers_to_validate_with' => array('email'), |
@@ -688,7 +688,7 @@ discard block |
||
688 | 688 | // register payment reminder message type |
689 | 689 | $setup_args = array( |
690 | 690 | 'mtfilename' => 'EE_Payment_Reminder_message_type.class.php', |
691 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'), |
|
691 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/payment_reminder/'), |
|
692 | 692 | 'messengers_to_activate_with' => array('email'), |
693 | 693 | 'messengers_to_validate_with' => array('email'), |
694 | 694 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -698,7 +698,7 @@ discard block |
||
698 | 698 | // register payment declined message type |
699 | 699 | $setup_args = array( |
700 | 700 | 'mtfilename' => 'EE_Payment_Declined_message_type.class.php', |
701 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'), |
|
701 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/payment_declined/'), |
|
702 | 702 | 'messengers_to_activate_with' => array('email'), |
703 | 703 | 'messengers_to_validate_with' => array('email'), |
704 | 704 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -708,7 +708,7 @@ discard block |
||
708 | 708 | // register registration declined message type |
709 | 709 | $setup_args = array( |
710 | 710 | 'mtfilename' => 'EE_Declined_Registration_message_type.class.php', |
711 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'), |
|
711 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/declined_registration/'), |
|
712 | 712 | 'messengers_to_activate_with' => array('email'), |
713 | 713 | 'messengers_to_validate_with' => array('email'), |
714 | 714 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -718,7 +718,7 @@ discard block |
||
718 | 718 | // register registration cancelled message type |
719 | 719 | $setup_args = array( |
720 | 720 | 'mtfilename' => 'EE_Cancelled_Registration_message_type.class.php', |
721 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'), |
|
721 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/cancelled_registration/'), |
|
722 | 722 | 'messengers_to_activate_with' => array('email'), |
723 | 723 | 'messengers_to_validate_with' => array('email'), |
724 | 724 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -729,7 +729,7 @@ discard block |
||
729 | 729 | // register payment failed message type |
730 | 730 | $setup_args = array( |
731 | 731 | 'mtfilename' => 'EE_Payment_Failed_message_type.class.php', |
732 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'), |
|
732 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/payment_failed/'), |
|
733 | 733 | 'messengers_to_activate_with' => array('email'), |
734 | 734 | 'messengers_to_validate_with' => array('email'), |
735 | 735 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -739,7 +739,7 @@ discard block |
||
739 | 739 | // register payment declined message type |
740 | 740 | $setup_args = array( |
741 | 741 | 'mtfilename' => 'EE_Payment_Cancelled_message_type.class.php', |
742 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'), |
|
742 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES.'messages/message_type/payment_cancelled/'), |
|
743 | 743 | 'messengers_to_activate_with' => array('email'), |
744 | 744 | 'messengers_to_validate_with' => array('email'), |
745 | 745 | 'messengers_supporting_default_template_pack_with' => array('email'), |
@@ -759,7 +759,7 @@ discard block |
||
759 | 759 | { |
760 | 760 | $setup_args = array( |
761 | 761 | 'autoloadpaths' => array( |
762 | - EE_CAF_LIBRARIES . 'shortcodes/', |
|
762 | + EE_CAF_LIBRARIES.'shortcodes/', |
|
763 | 763 | ), |
764 | 764 | 'msgr_validator_callback' => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'), |
765 | 765 | 'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'), |
@@ -793,7 +793,7 @@ discard block |
||
793 | 793 | foreach ($answers as $answer) { |
794 | 794 | if ($answer instanceof EE_Answer) { |
795 | 795 | // first see if the question is in our $questions array. If not then try to get from answer object. |
796 | - $question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null; |
|
796 | + $question = isset($questions[$answer->ID()]) ? $questions[$answer->ID()] : null; |
|
797 | 797 | $question = ! $question instanceof EE_Question ? $answer->question() : $question; |
798 | 798 | if ( |
799 | 799 | ! $question instanceof EE_Question |
@@ -10,806 +10,806 @@ |
||
10 | 10 | */ |
11 | 11 | class EE_Caf_Messages |
12 | 12 | { |
13 | - /** |
|
14 | - * constructor. |
|
15 | - */ |
|
16 | - public function __construct() |
|
17 | - { |
|
18 | - $this->_caf_hooks(); |
|
19 | - } |
|
20 | - |
|
21 | - |
|
22 | - /** |
|
23 | - * Contains all the hooks filters for setting up caffeinated messages functionality. |
|
24 | - * |
|
25 | - * @since 4.3.2 |
|
26 | - * |
|
27 | - * @return void |
|
28 | - */ |
|
29 | - private function _caf_hooks() |
|
30 | - { |
|
31 | - add_filter('FHEE__EED_Messages___set_messages_paths___MSG_PATHS', array($this, 'messages_autoload_paths'), 5); |
|
32 | - add_filter( |
|
33 | - 'FHEE__EE_Email_messenger__get_validator_config', |
|
34 | - array($this, 'email_messenger_validator_config'), |
|
35 | - 5, |
|
36 | - 2 |
|
37 | - ); |
|
38 | - add_filter( |
|
39 | - 'FHEE__EE_Email_messenger__get_template_fields', |
|
40 | - array($this, 'email_messenger_template_fields'), |
|
41 | - 5, |
|
42 | - 2 |
|
43 | - ); |
|
44 | - add_filter( |
|
45 | - 'FHEE__EE_Html_messenger__get_template_fields', |
|
46 | - array($this, 'html_messenger_template_fields'), |
|
47 | - 5, |
|
48 | - 2 |
|
49 | - ); |
|
50 | - add_filter( |
|
51 | - 'FHEE__EE_Html_messenger__get_validator_config', |
|
52 | - array($this, 'html_messenger_validator_config'), |
|
53 | - 5, |
|
54 | - 2 |
|
55 | - ); |
|
56 | - add_filter('FHEE__EE_Pdf_messenger__get_template_fields', array($this, 'pdf_messenger_template_fields'), 5, 2); |
|
57 | - add_filter( |
|
58 | - 'FHEE__EE_Pdf_messenger__get_validator_config', |
|
59 | - array($this, 'pdf_messenger_validator_config'), |
|
60 | - 5, |
|
61 | - 2 |
|
62 | - ); |
|
63 | - add_filter( |
|
64 | - 'FHEE__EE_Messages_Template_Pack__get_specific_template__contents', |
|
65 | - array($this, 'new_default_templates'), |
|
66 | - 5, |
|
67 | - 7 |
|
68 | - ); |
|
69 | - add_filter( |
|
70 | - 'FHEE__EE_Messages_Base__get_valid_shortcodes', |
|
71 | - array($this, 'message_types_valid_shortcodes'), |
|
72 | - 5, |
|
73 | - 2 |
|
74 | - ); |
|
75 | - |
|
76 | - // shortcode parsers |
|
77 | - add_filter('FHEE__EE_Attendee_Shortcodes__shortcodes', array($this, 'additional_attendee_shortcodes'), 5, 2); |
|
78 | - add_filter('FHEE__EE_Attendee_Shortcodes__parser_after', array($this, 'additional_attendee_parser'), 5, 5); |
|
79 | - add_filter( |
|
80 | - 'FHEE__EE_Recipient_List_Shortcodes__shortcodes', |
|
81 | - array($this, 'additional_recipient_details_shortcodes'), |
|
82 | - 5, |
|
83 | - 2 |
|
84 | - ); |
|
85 | - add_filter( |
|
86 | - 'FHEE__EE_Recipient_List_Shortcodes__parser_after', |
|
87 | - array($this, 'additional_recipient_details_parser'), |
|
88 | - 5, |
|
89 | - 5 |
|
90 | - ); |
|
91 | - add_filter( |
|
92 | - 'FHEE__EE_Primary_Registration_List_Shortcodes__shortcodes', |
|
93 | - array($this, 'additional_primary_registration_details_shortcodes'), |
|
94 | - 5, |
|
95 | - 2 |
|
96 | - ); |
|
97 | - add_filter( |
|
98 | - 'FHEE__EE_Primary_Registration_List_Shortcodes__parser_after', |
|
99 | - array($this, 'additional_primary_registration_details_parser'), |
|
100 | - 5, |
|
101 | - 5 |
|
102 | - ); |
|
103 | - |
|
104 | - /** |
|
105 | - * @since 4.2.0 |
|
106 | - */ |
|
107 | - add_filter('FHEE__EE_Datetime_Shortcodes__shortcodes', array($this, 'additional_datetime_shortcodes'), 10, 2); |
|
108 | - add_filter('FHEE__EE_Datetime_Shortcodes__parser_after', array($this, 'additional_datetime_parser'), 10, 5); |
|
109 | - |
|
110 | - /** |
|
111 | - * @since 4.3.0 |
|
112 | - */ |
|
113 | - // eat our own dog food! |
|
114 | - add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_message_types')); |
|
115 | - add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_shortcodes')); |
|
116 | - do_action('EE_Brewing_Regular___messages_caf'); |
|
117 | - } |
|
118 | - |
|
119 | - |
|
120 | - /** |
|
121 | - * This just allows us to add additional paths to the autoloader (EED_Messages::autoload_messages()) for the |
|
122 | - * messages system. |
|
123 | - * |
|
124 | - * @param array $dir_ref original array of paths |
|
125 | - * |
|
126 | - * @return array appended paths |
|
127 | - */ |
|
128 | - public function messages_autoload_paths($dir_ref) |
|
129 | - { |
|
130 | - $dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/'; |
|
131 | - |
|
132 | - return $dir_ref; |
|
133 | - } |
|
134 | - |
|
135 | - |
|
136 | - public function email_messenger_validator_config($validator_config, EE_Email_messenger $messenger) |
|
137 | - { |
|
138 | - $validator_config['attendee_list'] = array( |
|
139 | - 'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'), |
|
140 | - 'required' => array('[ATTENDEE_LIST]'), |
|
141 | - ); |
|
142 | - $validator_config['question_list'] = array( |
|
143 | - 'shortcodes' => array('question'), |
|
144 | - 'required' => array('[QUESTION_LIST]'), |
|
145 | - ); |
|
146 | - |
|
147 | - return $validator_config; |
|
148 | - } |
|
149 | - |
|
150 | - |
|
151 | - public function html_messenger_validator_config($validator_config, EE_Html_messenger $messenger) |
|
152 | - { |
|
153 | - $validator_config['attendee_list'] = array( |
|
154 | - 'shortcodes' => array('attendee', 'question_list'), |
|
155 | - 'required' => array('[ATTENDEE_LIST]'), |
|
156 | - ); |
|
157 | - $validator_config['question_list'] = array( |
|
158 | - 'shortcodes' => array('question'), |
|
159 | - 'required' => array('[QUESTION_LIST]'), |
|
160 | - ); |
|
161 | - |
|
162 | - return $validator_config; |
|
163 | - } |
|
164 | - |
|
165 | - |
|
166 | - public function pdf_messenger_validator_config($validator_config, EE_Pdf_messenger $messenger) |
|
167 | - { |
|
168 | - $validator_config['attendee_list'] = array( |
|
169 | - 'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'), |
|
170 | - 'required' => array('[ATTENDEE_LIST]'), |
|
171 | - ); |
|
172 | - $validator_config['question_list'] = array( |
|
173 | - 'shortcodes' => array('question'), |
|
174 | - 'required' => array('[QUESTION_LIST]'), |
|
175 | - ); |
|
176 | - |
|
177 | - return $validator_config; |
|
178 | - } |
|
179 | - |
|
180 | - |
|
181 | - public function email_messenger_template_fields($template_fields, EE_Email_messenger $messenger) |
|
182 | - { |
|
183 | - $template_fields['extra']['content']['question_list'] = array( |
|
184 | - 'input' => 'textarea', |
|
185 | - 'label' => '[QUESTION_LIST]', |
|
186 | - 'type' => 'string', |
|
187 | - 'required' => false, |
|
188 | - 'validation' => true, |
|
189 | - 'format' => '%s', |
|
190 | - 'css_class' => 'large-text', |
|
191 | - 'rows' => '5', |
|
192 | - 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
193 | - ); |
|
194 | - |
|
195 | - return $template_fields; |
|
196 | - } |
|
197 | - |
|
198 | - |
|
199 | - public function html_messenger_template_fields($template_fields, EE_Html_messenger $messenger) |
|
200 | - { |
|
201 | - $template_fields['extra']['content']['question_list'] = array( |
|
202 | - 'input' => 'textarea', |
|
203 | - 'label' => '[QUESTION_LIST]', |
|
204 | - 'type' => 'string', |
|
205 | - 'required' => false, |
|
206 | - 'validation' => true, |
|
207 | - 'format' => '%s', |
|
208 | - 'css_class' => 'large-text', |
|
209 | - 'rows' => '5', |
|
210 | - 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
211 | - ); |
|
212 | - |
|
213 | - return $template_fields; |
|
214 | - } |
|
215 | - |
|
216 | - |
|
217 | - public function pdf_messenger_template_fields($template_fields, EE_Pdf_messenger $messenger) |
|
218 | - { |
|
219 | - $template_fields['extra']['content']['question_list'] = array( |
|
220 | - 'input' => 'textarea', |
|
221 | - 'label' => '[QUESTION_LIST]', |
|
222 | - 'type' => 'string', |
|
223 | - 'required' => false, |
|
224 | - 'validation' => true, |
|
225 | - 'format' => '%s', |
|
226 | - 'css_class' => 'large-text', |
|
227 | - 'rows' => '5', |
|
228 | - 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
229 | - ); |
|
230 | - |
|
231 | - return $template_fields; |
|
232 | - } |
|
233 | - |
|
234 | - |
|
235 | - public function new_default_templates( |
|
236 | - $contents, |
|
237 | - $actual_path, |
|
238 | - EE_messenger $messenger, |
|
239 | - EE_message_type $message_type, |
|
240 | - $field, |
|
241 | - $context, |
|
242 | - EE_Messages_Template_Pack $template_pack |
|
243 | - ) { |
|
244 | - |
|
245 | - // we're only modifying templates for the default template pack |
|
246 | - if (! $template_pack instanceof EE_Messages_Template_Pack_Default) { |
|
247 | - return $contents; |
|
248 | - } |
|
249 | - |
|
250 | - // the template file name we're replacing contents for. |
|
251 | - $template_file_prefix = $field . '_' . $context; |
|
252 | - $msg_prefix = $messenger->name . '_' . $message_type->name . '_'; |
|
253 | - |
|
254 | - $base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/'; |
|
255 | - |
|
256 | - if ($messenger->name == 'email' && $message_type->name == 'registration') { |
|
257 | - switch ($template_file_prefix) { |
|
258 | - case 'question_list_admin': |
|
259 | - case 'question_list_attendee': |
|
260 | - case 'question_list_primary_attendee': |
|
261 | - $path = $base_path . $msg_prefix . 'question_list.template.php'; |
|
262 | - $contents = EEH_Template::display_template($path, array(), true); |
|
263 | - break; |
|
264 | - |
|
265 | - case 'attendee_list_primary_attendee': |
|
266 | - $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
267 | - $contents = EEH_Template::display_template($path, array(), true); |
|
268 | - break; |
|
269 | - |
|
270 | - case 'attendee_list_admin': |
|
271 | - $path = $base_path . $msg_prefix . 'attendee_list_admin.template.php'; |
|
272 | - $contents = EEH_Template::display_template( |
|
273 | - $path, |
|
274 | - array(), |
|
275 | - true |
|
276 | - ); |
|
277 | - break; |
|
278 | - |
|
279 | - case 'attendee_list_attendee': |
|
280 | - $contents = ''; |
|
281 | - break; |
|
282 | - |
|
283 | - case 'event_list_attendee': |
|
284 | - $path = $base_path . $msg_prefix . 'event_list_attendee.template.php'; |
|
285 | - $contents = EEH_Template::display_template($path, array(), true); |
|
286 | - break; |
|
287 | - } |
|
288 | - } elseif ($messenger->name == 'email' && $message_type->name == 'newsletter') { |
|
289 | - switch ($template_file_prefix) { |
|
290 | - case 'content_attendee': |
|
291 | - $path = $base_path . $msg_prefix . 'content.template.php'; |
|
292 | - $contents = EEH_Template::display_template($path, array(), true); |
|
293 | - break; |
|
294 | - |
|
295 | - case 'newsletter_content_attendee': |
|
296 | - $path = $base_path . $msg_prefix . 'newsletter_content.template.php'; |
|
297 | - $contents = EEH_Template::display_template($path, array(), true); |
|
298 | - break; |
|
299 | - |
|
300 | - case 'newsletter_subject_attendee': |
|
301 | - $path = $base_path . $msg_prefix . 'subject.template.php'; |
|
302 | - $contents = EEH_Template::display_template($path, array(), true); |
|
303 | - break; |
|
304 | - } |
|
305 | - } elseif ($messenger->name == 'html' && $message_type->name == 'receipt') { |
|
306 | - switch ($template_file_prefix) { |
|
307 | - case 'attendee_list_purchaser': |
|
308 | - $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
309 | - $contents = EEH_Template::display_template($path, array(), true); |
|
310 | - break; |
|
311 | - } |
|
312 | - } |
|
313 | - |
|
314 | - return $contents; |
|
315 | - } |
|
316 | - |
|
317 | - |
|
318 | - public function message_types_valid_shortcodes($valid_shortcodes, EE_Messages_Base $msg) |
|
319 | - { |
|
320 | - // make sure question_list and question are ONLY added for the core message types. Any other message types will have to explicitly set question_list as a valid shortcode. |
|
321 | - $include_with = array( |
|
322 | - 'registration', |
|
323 | - 'cancelled_registration', |
|
324 | - 'declined_registration', |
|
325 | - 'not_approved_registration', |
|
326 | - 'payment_declined', |
|
327 | - 'payment_failed', |
|
328 | - 'payment_cancelled', |
|
329 | - 'payment', |
|
330 | - 'payment_reminder', |
|
331 | - 'pending_approval', |
|
332 | - 'registration_summary', |
|
333 | - 'invoice', |
|
334 | - 'receipt', |
|
335 | - ); |
|
336 | - if ($msg instanceof EE_message_type && in_array($msg->name, $include_with)) { |
|
337 | - $contexts = array_keys($msg->get_contexts()); |
|
338 | - foreach ($contexts as $context) { |
|
339 | - $valid_shortcodes[ $context ][] = 'question_list'; |
|
340 | - $valid_shortcodes[ $context ][] = 'question'; |
|
341 | - } |
|
342 | - } |
|
343 | - |
|
344 | - return $valid_shortcodes; |
|
345 | - } |
|
346 | - |
|
347 | - |
|
348 | - public function additional_attendee_shortcodes($shortcodes, $shortcode_parser) |
|
349 | - { |
|
350 | - $shortcodes['[ANSWER_*]'] = esc_html__( |
|
351 | - 'This is a special dynamic shortcode. Right after the "*", add the exact text of a existing question, and if there is an answer for that question for this registrant, that will take the place of this shortcode.', |
|
352 | - 'event_espresso' |
|
353 | - ); |
|
354 | - |
|
355 | - return $shortcodes; |
|
356 | - } |
|
357 | - |
|
358 | - |
|
359 | - public function additional_attendee_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
360 | - { |
|
361 | - |
|
362 | - if ( |
|
363 | - strpos($shortcode, '[ANSWER_*') === false |
|
364 | - || ! isset($extra_data['data']->questions) |
|
365 | - || ! isset($extra_data['data']->registrations) |
|
366 | - ) { |
|
367 | - return $parsed; |
|
368 | - } |
|
369 | - |
|
370 | - // let's get the question from the code. |
|
371 | - $shortcode = str_replace('[ANSWER_*', '', $shortcode); |
|
372 | - $shortcode = trim(str_replace(']', '', $shortcode)); |
|
373 | - |
|
374 | - $registration = $data instanceof EE_Registration ? $data : null; |
|
375 | - $registration = ! $registration instanceof EE_Registration && is_array( |
|
376 | - $extra_data |
|
377 | - ) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Registration ? $extra_data['data'] : $registration; |
|
378 | - |
|
379 | - $aee = $data instanceof EE_Messages_Addressee ? $data : null; |
|
380 | - $aee = ! $aee instanceof EE_Messages_Addressee && is_array( |
|
381 | - $extra_data |
|
382 | - ) && isset($extra_data['data']) ? $extra_data['data'] : $aee; |
|
383 | - |
|
384 | - if (! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) { |
|
385 | - return $parsed; |
|
386 | - } |
|
387 | - |
|
388 | - // now let's figure out which question has this text. |
|
389 | - foreach ($aee->questions as $ansid => $question) { |
|
390 | - if ( |
|
391 | - $question instanceof EE_Question |
|
392 | - && trim($question->display_text()) == trim($shortcode) |
|
393 | - && isset($aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]) |
|
394 | - ) { |
|
395 | - return $aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]->get_pretty( |
|
396 | - 'ANS_value', |
|
397 | - 'no_wpautop' |
|
398 | - ); |
|
399 | - } |
|
400 | - } |
|
401 | - |
|
402 | - // nothing! |
|
403 | - return $parsed; |
|
404 | - } |
|
405 | - |
|
406 | - |
|
407 | - /** |
|
408 | - * Callback for additional shortcodes filter for adding additional datetime shortcodes. |
|
409 | - * |
|
410 | - * @since 4.2 |
|
411 | - * |
|
412 | - * @param array $shortcodes array of shortcodes and |
|
413 | - * descriptions |
|
414 | - * @param EE_Datetime_Shortcodes $shortcode_parser EE_Shortcodes object |
|
415 | - * |
|
416 | - * @return array array of shortcodes and |
|
417 | - * descriptions |
|
418 | - */ |
|
419 | - public function additional_datetime_shortcodes($shortcodes, $shortcode_parser) |
|
420 | - { |
|
421 | - $shortcodes['[DTT_NAME]'] = esc_html__( |
|
422 | - 'This will be parsed to the Title given for a Datetime', |
|
423 | - 'event_espresso' |
|
424 | - ); |
|
425 | - $shortcodes['[DTT_DESCRIPTION]'] = esc_html__( |
|
426 | - 'This will be parsed to the description for a Datetime', |
|
427 | - 'event_espresso' |
|
428 | - ); |
|
429 | - $shortcodes['[DTT_NAME_OR_DATES]'] = esc_html__( |
|
430 | - 'When parsed, if the Datetime has a name, it is used, otherwise a formatted string including the start date and end date will be used.', |
|
431 | - 'event_espresso' |
|
432 | - ); |
|
433 | - |
|
434 | - return $shortcodes; |
|
435 | - } |
|
436 | - |
|
437 | - |
|
438 | - /** |
|
439 | - * Callback for additional shortcodes parser filter used for adding parser for new |
|
440 | - * Datetime shortcodes |
|
441 | - * |
|
442 | - * @since 4.2 |
|
443 | - * |
|
444 | - * @param string $parsed The finished parsed string for the given shortcode. |
|
445 | - * @param string $shortcode The shortcode being parsed. |
|
446 | - * @param object $data The incoming data object for the Shortcode Parser. |
|
447 | - * @param object $extra_data The incoming extra date object for the Shortcode |
|
448 | - * Parser. |
|
449 | - * @param EE_Datetime_Shortcodes $shortcode_parser |
|
450 | - * |
|
451 | - * @return string The new parsed string. |
|
452 | - */ |
|
453 | - public function additional_datetime_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
454 | - { |
|
455 | - |
|
456 | - if (! $data instanceof EE_Datetime) { |
|
457 | - return ''; // get out because we can only parse with the datetime object. |
|
458 | - } |
|
459 | - |
|
460 | - switch ($shortcode) { |
|
461 | - case '[DTT_NAME]': |
|
462 | - return $data->name(); |
|
463 | - break; |
|
464 | - case '[DTT_DESCRIPTION]': |
|
465 | - return $data->description(); |
|
466 | - break; |
|
467 | - case '[DTT_NAME_OR_DATES]': |
|
468 | - return $data->get_dtt_display_name(true); |
|
469 | - break; |
|
470 | - default: |
|
471 | - return $parsed; |
|
472 | - break; |
|
473 | - } |
|
474 | - } |
|
475 | - |
|
476 | - |
|
477 | - public function additional_recipient_details_shortcodes($shortcodes, $shortcode_parser) |
|
478 | - { |
|
479 | - $shortcodes['[RECIPIENT_QUESTION_LIST]'] = esc_html__( |
|
480 | - 'This is used to indicate where you want the list of questions and answers to show for the person receiving the message.', |
|
481 | - 'event_espresso' |
|
482 | - ); |
|
483 | - |
|
484 | - return $shortcodes; |
|
485 | - } |
|
486 | - |
|
487 | - |
|
488 | - /** |
|
489 | - * Callback for FHEE__EE_Recipient_List_Shortcodes__parser_after filter (dynamic filter). |
|
490 | - * |
|
491 | - * @param string $parsed The original parsed content for the shortcode |
|
492 | - * @param string $shortcode The shortcode being parsed |
|
493 | - * @param array $data The shortcode parser data array |
|
494 | - * @param array $extra_data The shortcode parser extra data array |
|
495 | - * @param \EE_Shortcodes $shortcode_parser Shortcode parser. |
|
496 | - * |
|
497 | - * @return string |
|
498 | - */ |
|
499 | - public function additional_recipient_details_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
500 | - { |
|
501 | - |
|
502 | - if (array($data) && ! isset($data['data'])) { |
|
503 | - return $parsed; |
|
504 | - } |
|
505 | - |
|
506 | - $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
|
507 | - $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
|
508 | - |
|
509 | - if (! $recipient instanceof EE_Messages_Addressee) { |
|
510 | - return $parsed; |
|
511 | - } |
|
512 | - |
|
513 | - switch ($shortcode) { |
|
514 | - case '[RECIPIENT_QUESTION_LIST]': |
|
515 | - $att = $recipient->att_obj; |
|
516 | - $registrations_on_attendee = $att instanceof EE_Attendee |
|
517 | - ? $recipient->attendees[ $att->ID() ]['reg_objs'] |
|
518 | - : array(); |
|
519 | - $registrations_on_attendee = empty($registrations_on_attendee) && $recipient->reg_obj instanceof EE_Registration ? array($recipient->reg_obj) : $registrations_on_attendee; |
|
520 | - $answers = array(); |
|
521 | - |
|
522 | - $template = is_array($data['template']) && isset($data['template']['question_list']) |
|
523 | - ? $data['template']['question_list'] |
|
524 | - : $extra_data['template']['question_list']; |
|
525 | - $valid_shortcodes = array('question'); |
|
526 | - |
|
527 | - // if the context is main_content then get all answers for all registrations on this attendee |
|
528 | - if ($data['data'] instanceof EE_Messages_Addressee) { |
|
529 | - foreach ($registrations_on_attendee as $reg) { |
|
530 | - if ($reg instanceof EE_Registration) { |
|
531 | - $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
532 | - ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
533 | - : array(); |
|
534 | - foreach ($anss as $ans) { |
|
535 | - if ($ans instanceof EE_Answer) { |
|
536 | - $answers[ $ans->ID() ] = $ans; |
|
537 | - } |
|
538 | - } |
|
539 | - } |
|
540 | - } |
|
541 | - } |
|
542 | - |
|
543 | - // if the context is the event list parser, then let's return just the answers for all registrations attached to the recipient for that event. |
|
544 | - if ($data['data'] instanceof EE_Event) { |
|
545 | - $event = $data['data']; |
|
546 | - foreach ($registrations_on_attendee as $reg) { |
|
547 | - if ($reg instanceof EE_Registration && $reg->event_ID() == $event->ID()) { |
|
548 | - $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
549 | - ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
550 | - : array(); |
|
551 | - foreach ($anss as $ans) { |
|
552 | - if ($ans instanceof EE_Answer) { |
|
553 | - $answers[ $ans->ID() ] = $ans; |
|
554 | - } |
|
555 | - } |
|
556 | - } |
|
557 | - } |
|
558 | - } |
|
559 | - |
|
560 | - $questions = $questions = isset($recipient->questions) ? $recipient->questions : array(); |
|
561 | - |
|
562 | - // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
|
563 | - // object on it. |
|
564 | - if (! isset($extra_data['data'])) { |
|
565 | - $extra_data['data'] = $recipient; |
|
566 | - } |
|
567 | - |
|
568 | - return $this->_parse_question_list_for_primary_or_recipient_registration( |
|
569 | - $shortcode_parser, |
|
570 | - $questions, |
|
571 | - $answers, |
|
572 | - $template, |
|
573 | - $valid_shortcodes, |
|
574 | - $extra_data |
|
575 | - ); |
|
576 | - break; |
|
577 | - |
|
578 | - default: |
|
579 | - return $parsed; |
|
580 | - break; |
|
581 | - } |
|
582 | - } |
|
583 | - |
|
584 | - |
|
585 | - public function additional_primary_registration_details_shortcodes($shortcodes, $shortcode_parser) |
|
586 | - { |
|
587 | - $shortcodes['[PRIMARY_REGISTRANT_QUESTION_LIST]'] = esc_html__( |
|
588 | - 'This is used to indicate the questions and answers for the primary_registrant. It should be placed in the "[attendee_list]" field', |
|
589 | - 'event_espresso' |
|
590 | - ); |
|
591 | - |
|
592 | - return $shortcodes; |
|
593 | - } |
|
594 | - |
|
595 | - |
|
596 | - /** |
|
597 | - * Callback for FHEE__EE_Primary_Registration_List_Shortcodes__parser_after filter (dynamic filter). |
|
598 | - * |
|
599 | - * @param string $parsed The original parsed content for the shortcode |
|
600 | - * @param string $shortcode The shortcode being parsed |
|
601 | - * @param array $data The shortcode parser data array |
|
602 | - * @param array $extra_data The shortcode parser extra data array |
|
603 | - * @param \EE_Shortcodes $shortcode_parser Shortcode parser. |
|
604 | - * |
|
605 | - * @return string |
|
606 | - */ |
|
607 | - public function additional_primary_registration_details_parser( |
|
608 | - $parsed, |
|
609 | - $shortcode, |
|
610 | - $data, |
|
611 | - $extra_data, |
|
612 | - $shortcode_parser |
|
613 | - ) { |
|
614 | - if (array($data) && ! isset($data['data'])) { |
|
615 | - return $parsed; |
|
616 | - } |
|
617 | - |
|
618 | - $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
|
619 | - $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
|
620 | - |
|
621 | - if (! $recipient instanceof EE_Messages_Addressee) { |
|
622 | - return $parsed; |
|
623 | - } |
|
624 | - |
|
625 | - switch ($shortcode) { |
|
626 | - case '[PRIMARY_REGISTRANT_QUESTION_LIST]': |
|
627 | - if (! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) { |
|
628 | - return ''; |
|
629 | - } |
|
630 | - $registration = $recipient->primary_reg_obj; |
|
631 | - $answers = isset($recipient->registrations[ $registration->ID() ]['ans_objs']) |
|
632 | - ? $recipient->registrations[ $registration->ID() ]['ans_objs'] |
|
633 | - : array(); |
|
634 | - if (empty($answers)) { |
|
635 | - return ''; |
|
636 | - } |
|
637 | - $template = is_array($data['template']) && isset($data['template']['question_list']) |
|
638 | - ? $data['template']['question_list'] |
|
639 | - : $extra_data['template']['question_list']; |
|
640 | - $valid_shortcodes = array('question'); |
|
641 | - $answers = $recipient->registrations[ $registration->ID() ]['ans_objs']; |
|
642 | - $questions = isset($recipient->questions) ? $recipient->questions : array(); |
|
643 | - // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
|
644 | - // object on it. |
|
645 | - if (! isset($extra_data['data'])) { |
|
646 | - $extra_data['data'] = $recipient; |
|
647 | - } |
|
648 | - return $this->_parse_question_list_for_primary_or_recipient_registration( |
|
649 | - $shortcode_parser, |
|
650 | - $questions, |
|
651 | - $answers, |
|
652 | - $template, |
|
653 | - $valid_shortcodes, |
|
654 | - $extra_data |
|
655 | - ); |
|
656 | - break; |
|
657 | - |
|
658 | - default: |
|
659 | - return $parsed; |
|
660 | - break; |
|
661 | - } |
|
662 | - } |
|
663 | - |
|
664 | - |
|
665 | - /** |
|
666 | - * Takes care of registering the message types that are only available in caffeinated EE. |
|
667 | - * |
|
668 | - * @since 4.3.2 |
|
669 | - * |
|
670 | - * @return void |
|
671 | - */ |
|
672 | - public function register_caf_message_types() |
|
673 | - { |
|
674 | - // register newsletter message type |
|
675 | - $setup_args = array( |
|
676 | - 'mtfilename' => 'EE_Newsletter_message_type.class.php', |
|
677 | - 'autoloadpaths' => array( |
|
678 | - EE_CAF_LIBRARIES . 'messages/message_type/newsletter/', |
|
679 | - ), |
|
680 | - 'messengers_to_activate_with' => array('email'), |
|
681 | - 'messengers_to_validate_with' => array('email'), |
|
682 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
683 | - ); |
|
684 | - EE_Register_Message_Type::register('newsletter', $setup_args); |
|
685 | - |
|
686 | - // register payment reminder message type |
|
687 | - $setup_args = array( |
|
688 | - 'mtfilename' => 'EE_Payment_Reminder_message_type.class.php', |
|
689 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'), |
|
690 | - 'messengers_to_activate_with' => array('email'), |
|
691 | - 'messengers_to_validate_with' => array('email'), |
|
692 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
693 | - ); |
|
694 | - EE_Register_Message_Type::register('payment_reminder', $setup_args); |
|
695 | - |
|
696 | - // register payment declined message type |
|
697 | - $setup_args = array( |
|
698 | - 'mtfilename' => 'EE_Payment_Declined_message_type.class.php', |
|
699 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'), |
|
700 | - 'messengers_to_activate_with' => array('email'), |
|
701 | - 'messengers_to_validate_with' => array('email'), |
|
702 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
703 | - ); |
|
704 | - EE_Register_Message_Type::register('payment_declined', $setup_args); |
|
705 | - |
|
706 | - // register registration declined message type |
|
707 | - $setup_args = array( |
|
708 | - 'mtfilename' => 'EE_Declined_Registration_message_type.class.php', |
|
709 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'), |
|
710 | - 'messengers_to_activate_with' => array('email'), |
|
711 | - 'messengers_to_validate_with' => array('email'), |
|
712 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
713 | - ); |
|
714 | - EE_Register_Message_Type::register('declined_registration', $setup_args); |
|
715 | - |
|
716 | - // register registration cancelled message type |
|
717 | - $setup_args = array( |
|
718 | - 'mtfilename' => 'EE_Cancelled_Registration_message_type.class.php', |
|
719 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'), |
|
720 | - 'messengers_to_activate_with' => array('email'), |
|
721 | - 'messengers_to_validate_with' => array('email'), |
|
722 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
723 | - ); |
|
724 | - EE_Register_Message_Type::register('cancelled_registration', $setup_args); |
|
725 | - |
|
726 | - |
|
727 | - // register payment failed message type |
|
728 | - $setup_args = array( |
|
729 | - 'mtfilename' => 'EE_Payment_Failed_message_type.class.php', |
|
730 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'), |
|
731 | - 'messengers_to_activate_with' => array('email'), |
|
732 | - 'messengers_to_validate_with' => array('email'), |
|
733 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
734 | - ); |
|
735 | - EE_Register_Message_Type::register('payment_failed', $setup_args); |
|
736 | - |
|
737 | - // register payment declined message type |
|
738 | - $setup_args = array( |
|
739 | - 'mtfilename' => 'EE_Payment_Cancelled_message_type.class.php', |
|
740 | - 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'), |
|
741 | - 'messengers_to_activate_with' => array('email'), |
|
742 | - 'messengers_to_validate_with' => array('email'), |
|
743 | - 'messengers_supporting_default_template_pack_with' => array('email'), |
|
744 | - ); |
|
745 | - EE_Register_Message_Type::register('payment_cancelled', $setup_args); |
|
746 | - } |
|
747 | - |
|
748 | - |
|
749 | - /** |
|
750 | - * Takes care of registering the shortcode libraries implemented with caffeinated EE and set up related items. |
|
751 | - * |
|
752 | - * @since 4.3.2 |
|
753 | - * |
|
754 | - * @return void |
|
755 | - */ |
|
756 | - public function register_caf_shortcodes() |
|
757 | - { |
|
758 | - $setup_args = array( |
|
759 | - 'autoloadpaths' => array( |
|
760 | - EE_CAF_LIBRARIES . 'shortcodes/', |
|
761 | - ), |
|
762 | - 'msgr_validator_callback' => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'), |
|
763 | - 'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'), |
|
764 | - 'list_type_shortcodes' => array('[NEWSLETTER_CONTENT]'), |
|
765 | - ); |
|
766 | - EE_Register_Messages_Shortcode_Library::register('newsletter', $setup_args); |
|
767 | - } |
|
768 | - |
|
769 | - |
|
770 | - /** |
|
771 | - * Parses a question list shortcode using given data and template |
|
772 | - * |
|
773 | - * @param \EE_Shortcodes $shortcode_parser |
|
774 | - * @param EE_Question[] $questions An array of questions indexed by answer id. |
|
775 | - * @param EE_Answer[] $answers An array of answer objects |
|
776 | - * @param string $template Template content to be parsed. |
|
777 | - * @param array $valid_shortcodes Valid shortcodes for the template being parsed. |
|
778 | - * @param array $extra_data Extra data that might be used when parsing the template. |
|
779 | - */ |
|
780 | - protected function _parse_question_list_for_primary_or_recipient_registration( |
|
781 | - $shortcode_parser, |
|
782 | - $questions, |
|
783 | - $answers, |
|
784 | - $template, |
|
785 | - $valid_shortcodes, |
|
786 | - $extra_data |
|
787 | - ) { |
|
788 | - $question_list = ''; |
|
789 | - /** @var EEH_Parse_Shortcodes $shortcode_helper */ |
|
790 | - $shortcode_helper = $shortcode_parser->get_shortcode_helper(); |
|
791 | - foreach ($answers as $answer) { |
|
792 | - if ($answer instanceof EE_Answer) { |
|
793 | - // first see if the question is in our $questions array. If not then try to get from answer object. |
|
794 | - $question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null; |
|
795 | - $question = ! $question instanceof EE_Question ? $answer->question() : $question; |
|
796 | - if ( |
|
797 | - ! $question instanceof EE_Question |
|
798 | - || ( |
|
799 | - $question instanceof EE_Question |
|
800 | - && $question->admin_only() |
|
801 | - ) |
|
802 | - ) { |
|
803 | - continue; |
|
804 | - } |
|
805 | - $question_list .= $shortcode_helper->parse_question_list_template( |
|
806 | - $template, |
|
807 | - $answer, |
|
808 | - $valid_shortcodes, |
|
809 | - $extra_data |
|
810 | - ); |
|
811 | - } |
|
812 | - } |
|
813 | - return $question_list; |
|
814 | - } |
|
13 | + /** |
|
14 | + * constructor. |
|
15 | + */ |
|
16 | + public function __construct() |
|
17 | + { |
|
18 | + $this->_caf_hooks(); |
|
19 | + } |
|
20 | + |
|
21 | + |
|
22 | + /** |
|
23 | + * Contains all the hooks filters for setting up caffeinated messages functionality. |
|
24 | + * |
|
25 | + * @since 4.3.2 |
|
26 | + * |
|
27 | + * @return void |
|
28 | + */ |
|
29 | + private function _caf_hooks() |
|
30 | + { |
|
31 | + add_filter('FHEE__EED_Messages___set_messages_paths___MSG_PATHS', array($this, 'messages_autoload_paths'), 5); |
|
32 | + add_filter( |
|
33 | + 'FHEE__EE_Email_messenger__get_validator_config', |
|
34 | + array($this, 'email_messenger_validator_config'), |
|
35 | + 5, |
|
36 | + 2 |
|
37 | + ); |
|
38 | + add_filter( |
|
39 | + 'FHEE__EE_Email_messenger__get_template_fields', |
|
40 | + array($this, 'email_messenger_template_fields'), |
|
41 | + 5, |
|
42 | + 2 |
|
43 | + ); |
|
44 | + add_filter( |
|
45 | + 'FHEE__EE_Html_messenger__get_template_fields', |
|
46 | + array($this, 'html_messenger_template_fields'), |
|
47 | + 5, |
|
48 | + 2 |
|
49 | + ); |
|
50 | + add_filter( |
|
51 | + 'FHEE__EE_Html_messenger__get_validator_config', |
|
52 | + array($this, 'html_messenger_validator_config'), |
|
53 | + 5, |
|
54 | + 2 |
|
55 | + ); |
|
56 | + add_filter('FHEE__EE_Pdf_messenger__get_template_fields', array($this, 'pdf_messenger_template_fields'), 5, 2); |
|
57 | + add_filter( |
|
58 | + 'FHEE__EE_Pdf_messenger__get_validator_config', |
|
59 | + array($this, 'pdf_messenger_validator_config'), |
|
60 | + 5, |
|
61 | + 2 |
|
62 | + ); |
|
63 | + add_filter( |
|
64 | + 'FHEE__EE_Messages_Template_Pack__get_specific_template__contents', |
|
65 | + array($this, 'new_default_templates'), |
|
66 | + 5, |
|
67 | + 7 |
|
68 | + ); |
|
69 | + add_filter( |
|
70 | + 'FHEE__EE_Messages_Base__get_valid_shortcodes', |
|
71 | + array($this, 'message_types_valid_shortcodes'), |
|
72 | + 5, |
|
73 | + 2 |
|
74 | + ); |
|
75 | + |
|
76 | + // shortcode parsers |
|
77 | + add_filter('FHEE__EE_Attendee_Shortcodes__shortcodes', array($this, 'additional_attendee_shortcodes'), 5, 2); |
|
78 | + add_filter('FHEE__EE_Attendee_Shortcodes__parser_after', array($this, 'additional_attendee_parser'), 5, 5); |
|
79 | + add_filter( |
|
80 | + 'FHEE__EE_Recipient_List_Shortcodes__shortcodes', |
|
81 | + array($this, 'additional_recipient_details_shortcodes'), |
|
82 | + 5, |
|
83 | + 2 |
|
84 | + ); |
|
85 | + add_filter( |
|
86 | + 'FHEE__EE_Recipient_List_Shortcodes__parser_after', |
|
87 | + array($this, 'additional_recipient_details_parser'), |
|
88 | + 5, |
|
89 | + 5 |
|
90 | + ); |
|
91 | + add_filter( |
|
92 | + 'FHEE__EE_Primary_Registration_List_Shortcodes__shortcodes', |
|
93 | + array($this, 'additional_primary_registration_details_shortcodes'), |
|
94 | + 5, |
|
95 | + 2 |
|
96 | + ); |
|
97 | + add_filter( |
|
98 | + 'FHEE__EE_Primary_Registration_List_Shortcodes__parser_after', |
|
99 | + array($this, 'additional_primary_registration_details_parser'), |
|
100 | + 5, |
|
101 | + 5 |
|
102 | + ); |
|
103 | + |
|
104 | + /** |
|
105 | + * @since 4.2.0 |
|
106 | + */ |
|
107 | + add_filter('FHEE__EE_Datetime_Shortcodes__shortcodes', array($this, 'additional_datetime_shortcodes'), 10, 2); |
|
108 | + add_filter('FHEE__EE_Datetime_Shortcodes__parser_after', array($this, 'additional_datetime_parser'), 10, 5); |
|
109 | + |
|
110 | + /** |
|
111 | + * @since 4.3.0 |
|
112 | + */ |
|
113 | + // eat our own dog food! |
|
114 | + add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_message_types')); |
|
115 | + add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_shortcodes')); |
|
116 | + do_action('EE_Brewing_Regular___messages_caf'); |
|
117 | + } |
|
118 | + |
|
119 | + |
|
120 | + /** |
|
121 | + * This just allows us to add additional paths to the autoloader (EED_Messages::autoload_messages()) for the |
|
122 | + * messages system. |
|
123 | + * |
|
124 | + * @param array $dir_ref original array of paths |
|
125 | + * |
|
126 | + * @return array appended paths |
|
127 | + */ |
|
128 | + public function messages_autoload_paths($dir_ref) |
|
129 | + { |
|
130 | + $dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/'; |
|
131 | + |
|
132 | + return $dir_ref; |
|
133 | + } |
|
134 | + |
|
135 | + |
|
136 | + public function email_messenger_validator_config($validator_config, EE_Email_messenger $messenger) |
|
137 | + { |
|
138 | + $validator_config['attendee_list'] = array( |
|
139 | + 'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'), |
|
140 | + 'required' => array('[ATTENDEE_LIST]'), |
|
141 | + ); |
|
142 | + $validator_config['question_list'] = array( |
|
143 | + 'shortcodes' => array('question'), |
|
144 | + 'required' => array('[QUESTION_LIST]'), |
|
145 | + ); |
|
146 | + |
|
147 | + return $validator_config; |
|
148 | + } |
|
149 | + |
|
150 | + |
|
151 | + public function html_messenger_validator_config($validator_config, EE_Html_messenger $messenger) |
|
152 | + { |
|
153 | + $validator_config['attendee_list'] = array( |
|
154 | + 'shortcodes' => array('attendee', 'question_list'), |
|
155 | + 'required' => array('[ATTENDEE_LIST]'), |
|
156 | + ); |
|
157 | + $validator_config['question_list'] = array( |
|
158 | + 'shortcodes' => array('question'), |
|
159 | + 'required' => array('[QUESTION_LIST]'), |
|
160 | + ); |
|
161 | + |
|
162 | + return $validator_config; |
|
163 | + } |
|
164 | + |
|
165 | + |
|
166 | + public function pdf_messenger_validator_config($validator_config, EE_Pdf_messenger $messenger) |
|
167 | + { |
|
168 | + $validator_config['attendee_list'] = array( |
|
169 | + 'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'), |
|
170 | + 'required' => array('[ATTENDEE_LIST]'), |
|
171 | + ); |
|
172 | + $validator_config['question_list'] = array( |
|
173 | + 'shortcodes' => array('question'), |
|
174 | + 'required' => array('[QUESTION_LIST]'), |
|
175 | + ); |
|
176 | + |
|
177 | + return $validator_config; |
|
178 | + } |
|
179 | + |
|
180 | + |
|
181 | + public function email_messenger_template_fields($template_fields, EE_Email_messenger $messenger) |
|
182 | + { |
|
183 | + $template_fields['extra']['content']['question_list'] = array( |
|
184 | + 'input' => 'textarea', |
|
185 | + 'label' => '[QUESTION_LIST]', |
|
186 | + 'type' => 'string', |
|
187 | + 'required' => false, |
|
188 | + 'validation' => true, |
|
189 | + 'format' => '%s', |
|
190 | + 'css_class' => 'large-text', |
|
191 | + 'rows' => '5', |
|
192 | + 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
193 | + ); |
|
194 | + |
|
195 | + return $template_fields; |
|
196 | + } |
|
197 | + |
|
198 | + |
|
199 | + public function html_messenger_template_fields($template_fields, EE_Html_messenger $messenger) |
|
200 | + { |
|
201 | + $template_fields['extra']['content']['question_list'] = array( |
|
202 | + 'input' => 'textarea', |
|
203 | + 'label' => '[QUESTION_LIST]', |
|
204 | + 'type' => 'string', |
|
205 | + 'required' => false, |
|
206 | + 'validation' => true, |
|
207 | + 'format' => '%s', |
|
208 | + 'css_class' => 'large-text', |
|
209 | + 'rows' => '5', |
|
210 | + 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
211 | + ); |
|
212 | + |
|
213 | + return $template_fields; |
|
214 | + } |
|
215 | + |
|
216 | + |
|
217 | + public function pdf_messenger_template_fields($template_fields, EE_Pdf_messenger $messenger) |
|
218 | + { |
|
219 | + $template_fields['extra']['content']['question_list'] = array( |
|
220 | + 'input' => 'textarea', |
|
221 | + 'label' => '[QUESTION_LIST]', |
|
222 | + 'type' => 'string', |
|
223 | + 'required' => false, |
|
224 | + 'validation' => true, |
|
225 | + 'format' => '%s', |
|
226 | + 'css_class' => 'large-text', |
|
227 | + 'rows' => '5', |
|
228 | + 'shortcodes_required' => array('[QUESTION_LIST]'), |
|
229 | + ); |
|
230 | + |
|
231 | + return $template_fields; |
|
232 | + } |
|
233 | + |
|
234 | + |
|
235 | + public function new_default_templates( |
|
236 | + $contents, |
|
237 | + $actual_path, |
|
238 | + EE_messenger $messenger, |
|
239 | + EE_message_type $message_type, |
|
240 | + $field, |
|
241 | + $context, |
|
242 | + EE_Messages_Template_Pack $template_pack |
|
243 | + ) { |
|
244 | + |
|
245 | + // we're only modifying templates for the default template pack |
|
246 | + if (! $template_pack instanceof EE_Messages_Template_Pack_Default) { |
|
247 | + return $contents; |
|
248 | + } |
|
249 | + |
|
250 | + // the template file name we're replacing contents for. |
|
251 | + $template_file_prefix = $field . '_' . $context; |
|
252 | + $msg_prefix = $messenger->name . '_' . $message_type->name . '_'; |
|
253 | + |
|
254 | + $base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/'; |
|
255 | + |
|
256 | + if ($messenger->name == 'email' && $message_type->name == 'registration') { |
|
257 | + switch ($template_file_prefix) { |
|
258 | + case 'question_list_admin': |
|
259 | + case 'question_list_attendee': |
|
260 | + case 'question_list_primary_attendee': |
|
261 | + $path = $base_path . $msg_prefix . 'question_list.template.php'; |
|
262 | + $contents = EEH_Template::display_template($path, array(), true); |
|
263 | + break; |
|
264 | + |
|
265 | + case 'attendee_list_primary_attendee': |
|
266 | + $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
267 | + $contents = EEH_Template::display_template($path, array(), true); |
|
268 | + break; |
|
269 | + |
|
270 | + case 'attendee_list_admin': |
|
271 | + $path = $base_path . $msg_prefix . 'attendee_list_admin.template.php'; |
|
272 | + $contents = EEH_Template::display_template( |
|
273 | + $path, |
|
274 | + array(), |
|
275 | + true |
|
276 | + ); |
|
277 | + break; |
|
278 | + |
|
279 | + case 'attendee_list_attendee': |
|
280 | + $contents = ''; |
|
281 | + break; |
|
282 | + |
|
283 | + case 'event_list_attendee': |
|
284 | + $path = $base_path . $msg_prefix . 'event_list_attendee.template.php'; |
|
285 | + $contents = EEH_Template::display_template($path, array(), true); |
|
286 | + break; |
|
287 | + } |
|
288 | + } elseif ($messenger->name == 'email' && $message_type->name == 'newsletter') { |
|
289 | + switch ($template_file_prefix) { |
|
290 | + case 'content_attendee': |
|
291 | + $path = $base_path . $msg_prefix . 'content.template.php'; |
|
292 | + $contents = EEH_Template::display_template($path, array(), true); |
|
293 | + break; |
|
294 | + |
|
295 | + case 'newsletter_content_attendee': |
|
296 | + $path = $base_path . $msg_prefix . 'newsletter_content.template.php'; |
|
297 | + $contents = EEH_Template::display_template($path, array(), true); |
|
298 | + break; |
|
299 | + |
|
300 | + case 'newsletter_subject_attendee': |
|
301 | + $path = $base_path . $msg_prefix . 'subject.template.php'; |
|
302 | + $contents = EEH_Template::display_template($path, array(), true); |
|
303 | + break; |
|
304 | + } |
|
305 | + } elseif ($messenger->name == 'html' && $message_type->name == 'receipt') { |
|
306 | + switch ($template_file_prefix) { |
|
307 | + case 'attendee_list_purchaser': |
|
308 | + $path = $base_path . $msg_prefix . 'attendee_list.template.php'; |
|
309 | + $contents = EEH_Template::display_template($path, array(), true); |
|
310 | + break; |
|
311 | + } |
|
312 | + } |
|
313 | + |
|
314 | + return $contents; |
|
315 | + } |
|
316 | + |
|
317 | + |
|
318 | + public function message_types_valid_shortcodes($valid_shortcodes, EE_Messages_Base $msg) |
|
319 | + { |
|
320 | + // make sure question_list and question are ONLY added for the core message types. Any other message types will have to explicitly set question_list as a valid shortcode. |
|
321 | + $include_with = array( |
|
322 | + 'registration', |
|
323 | + 'cancelled_registration', |
|
324 | + 'declined_registration', |
|
325 | + 'not_approved_registration', |
|
326 | + 'payment_declined', |
|
327 | + 'payment_failed', |
|
328 | + 'payment_cancelled', |
|
329 | + 'payment', |
|
330 | + 'payment_reminder', |
|
331 | + 'pending_approval', |
|
332 | + 'registration_summary', |
|
333 | + 'invoice', |
|
334 | + 'receipt', |
|
335 | + ); |
|
336 | + if ($msg instanceof EE_message_type && in_array($msg->name, $include_with)) { |
|
337 | + $contexts = array_keys($msg->get_contexts()); |
|
338 | + foreach ($contexts as $context) { |
|
339 | + $valid_shortcodes[ $context ][] = 'question_list'; |
|
340 | + $valid_shortcodes[ $context ][] = 'question'; |
|
341 | + } |
|
342 | + } |
|
343 | + |
|
344 | + return $valid_shortcodes; |
|
345 | + } |
|
346 | + |
|
347 | + |
|
348 | + public function additional_attendee_shortcodes($shortcodes, $shortcode_parser) |
|
349 | + { |
|
350 | + $shortcodes['[ANSWER_*]'] = esc_html__( |
|
351 | + 'This is a special dynamic shortcode. Right after the "*", add the exact text of a existing question, and if there is an answer for that question for this registrant, that will take the place of this shortcode.', |
|
352 | + 'event_espresso' |
|
353 | + ); |
|
354 | + |
|
355 | + return $shortcodes; |
|
356 | + } |
|
357 | + |
|
358 | + |
|
359 | + public function additional_attendee_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
360 | + { |
|
361 | + |
|
362 | + if ( |
|
363 | + strpos($shortcode, '[ANSWER_*') === false |
|
364 | + || ! isset($extra_data['data']->questions) |
|
365 | + || ! isset($extra_data['data']->registrations) |
|
366 | + ) { |
|
367 | + return $parsed; |
|
368 | + } |
|
369 | + |
|
370 | + // let's get the question from the code. |
|
371 | + $shortcode = str_replace('[ANSWER_*', '', $shortcode); |
|
372 | + $shortcode = trim(str_replace(']', '', $shortcode)); |
|
373 | + |
|
374 | + $registration = $data instanceof EE_Registration ? $data : null; |
|
375 | + $registration = ! $registration instanceof EE_Registration && is_array( |
|
376 | + $extra_data |
|
377 | + ) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Registration ? $extra_data['data'] : $registration; |
|
378 | + |
|
379 | + $aee = $data instanceof EE_Messages_Addressee ? $data : null; |
|
380 | + $aee = ! $aee instanceof EE_Messages_Addressee && is_array( |
|
381 | + $extra_data |
|
382 | + ) && isset($extra_data['data']) ? $extra_data['data'] : $aee; |
|
383 | + |
|
384 | + if (! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) { |
|
385 | + return $parsed; |
|
386 | + } |
|
387 | + |
|
388 | + // now let's figure out which question has this text. |
|
389 | + foreach ($aee->questions as $ansid => $question) { |
|
390 | + if ( |
|
391 | + $question instanceof EE_Question |
|
392 | + && trim($question->display_text()) == trim($shortcode) |
|
393 | + && isset($aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]) |
|
394 | + ) { |
|
395 | + return $aee->registrations[ $registration->ID() ]['ans_objs'][ $ansid ]->get_pretty( |
|
396 | + 'ANS_value', |
|
397 | + 'no_wpautop' |
|
398 | + ); |
|
399 | + } |
|
400 | + } |
|
401 | + |
|
402 | + // nothing! |
|
403 | + return $parsed; |
|
404 | + } |
|
405 | + |
|
406 | + |
|
407 | + /** |
|
408 | + * Callback for additional shortcodes filter for adding additional datetime shortcodes. |
|
409 | + * |
|
410 | + * @since 4.2 |
|
411 | + * |
|
412 | + * @param array $shortcodes array of shortcodes and |
|
413 | + * descriptions |
|
414 | + * @param EE_Datetime_Shortcodes $shortcode_parser EE_Shortcodes object |
|
415 | + * |
|
416 | + * @return array array of shortcodes and |
|
417 | + * descriptions |
|
418 | + */ |
|
419 | + public function additional_datetime_shortcodes($shortcodes, $shortcode_parser) |
|
420 | + { |
|
421 | + $shortcodes['[DTT_NAME]'] = esc_html__( |
|
422 | + 'This will be parsed to the Title given for a Datetime', |
|
423 | + 'event_espresso' |
|
424 | + ); |
|
425 | + $shortcodes['[DTT_DESCRIPTION]'] = esc_html__( |
|
426 | + 'This will be parsed to the description for a Datetime', |
|
427 | + 'event_espresso' |
|
428 | + ); |
|
429 | + $shortcodes['[DTT_NAME_OR_DATES]'] = esc_html__( |
|
430 | + 'When parsed, if the Datetime has a name, it is used, otherwise a formatted string including the start date and end date will be used.', |
|
431 | + 'event_espresso' |
|
432 | + ); |
|
433 | + |
|
434 | + return $shortcodes; |
|
435 | + } |
|
436 | + |
|
437 | + |
|
438 | + /** |
|
439 | + * Callback for additional shortcodes parser filter used for adding parser for new |
|
440 | + * Datetime shortcodes |
|
441 | + * |
|
442 | + * @since 4.2 |
|
443 | + * |
|
444 | + * @param string $parsed The finished parsed string for the given shortcode. |
|
445 | + * @param string $shortcode The shortcode being parsed. |
|
446 | + * @param object $data The incoming data object for the Shortcode Parser. |
|
447 | + * @param object $extra_data The incoming extra date object for the Shortcode |
|
448 | + * Parser. |
|
449 | + * @param EE_Datetime_Shortcodes $shortcode_parser |
|
450 | + * |
|
451 | + * @return string The new parsed string. |
|
452 | + */ |
|
453 | + public function additional_datetime_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
454 | + { |
|
455 | + |
|
456 | + if (! $data instanceof EE_Datetime) { |
|
457 | + return ''; // get out because we can only parse with the datetime object. |
|
458 | + } |
|
459 | + |
|
460 | + switch ($shortcode) { |
|
461 | + case '[DTT_NAME]': |
|
462 | + return $data->name(); |
|
463 | + break; |
|
464 | + case '[DTT_DESCRIPTION]': |
|
465 | + return $data->description(); |
|
466 | + break; |
|
467 | + case '[DTT_NAME_OR_DATES]': |
|
468 | + return $data->get_dtt_display_name(true); |
|
469 | + break; |
|
470 | + default: |
|
471 | + return $parsed; |
|
472 | + break; |
|
473 | + } |
|
474 | + } |
|
475 | + |
|
476 | + |
|
477 | + public function additional_recipient_details_shortcodes($shortcodes, $shortcode_parser) |
|
478 | + { |
|
479 | + $shortcodes['[RECIPIENT_QUESTION_LIST]'] = esc_html__( |
|
480 | + 'This is used to indicate where you want the list of questions and answers to show for the person receiving the message.', |
|
481 | + 'event_espresso' |
|
482 | + ); |
|
483 | + |
|
484 | + return $shortcodes; |
|
485 | + } |
|
486 | + |
|
487 | + |
|
488 | + /** |
|
489 | + * Callback for FHEE__EE_Recipient_List_Shortcodes__parser_after filter (dynamic filter). |
|
490 | + * |
|
491 | + * @param string $parsed The original parsed content for the shortcode |
|
492 | + * @param string $shortcode The shortcode being parsed |
|
493 | + * @param array $data The shortcode parser data array |
|
494 | + * @param array $extra_data The shortcode parser extra data array |
|
495 | + * @param \EE_Shortcodes $shortcode_parser Shortcode parser. |
|
496 | + * |
|
497 | + * @return string |
|
498 | + */ |
|
499 | + public function additional_recipient_details_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser) |
|
500 | + { |
|
501 | + |
|
502 | + if (array($data) && ! isset($data['data'])) { |
|
503 | + return $parsed; |
|
504 | + } |
|
505 | + |
|
506 | + $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
|
507 | + $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
|
508 | + |
|
509 | + if (! $recipient instanceof EE_Messages_Addressee) { |
|
510 | + return $parsed; |
|
511 | + } |
|
512 | + |
|
513 | + switch ($shortcode) { |
|
514 | + case '[RECIPIENT_QUESTION_LIST]': |
|
515 | + $att = $recipient->att_obj; |
|
516 | + $registrations_on_attendee = $att instanceof EE_Attendee |
|
517 | + ? $recipient->attendees[ $att->ID() ]['reg_objs'] |
|
518 | + : array(); |
|
519 | + $registrations_on_attendee = empty($registrations_on_attendee) && $recipient->reg_obj instanceof EE_Registration ? array($recipient->reg_obj) : $registrations_on_attendee; |
|
520 | + $answers = array(); |
|
521 | + |
|
522 | + $template = is_array($data['template']) && isset($data['template']['question_list']) |
|
523 | + ? $data['template']['question_list'] |
|
524 | + : $extra_data['template']['question_list']; |
|
525 | + $valid_shortcodes = array('question'); |
|
526 | + |
|
527 | + // if the context is main_content then get all answers for all registrations on this attendee |
|
528 | + if ($data['data'] instanceof EE_Messages_Addressee) { |
|
529 | + foreach ($registrations_on_attendee as $reg) { |
|
530 | + if ($reg instanceof EE_Registration) { |
|
531 | + $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
532 | + ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
533 | + : array(); |
|
534 | + foreach ($anss as $ans) { |
|
535 | + if ($ans instanceof EE_Answer) { |
|
536 | + $answers[ $ans->ID() ] = $ans; |
|
537 | + } |
|
538 | + } |
|
539 | + } |
|
540 | + } |
|
541 | + } |
|
542 | + |
|
543 | + // if the context is the event list parser, then let's return just the answers for all registrations attached to the recipient for that event. |
|
544 | + if ($data['data'] instanceof EE_Event) { |
|
545 | + $event = $data['data']; |
|
546 | + foreach ($registrations_on_attendee as $reg) { |
|
547 | + if ($reg instanceof EE_Registration && $reg->event_ID() == $event->ID()) { |
|
548 | + $anss = ! empty($recipient->registrations[ $reg->ID() ]['ans_objs']) |
|
549 | + ? $recipient->registrations[ $reg->ID() ]['ans_objs'] |
|
550 | + : array(); |
|
551 | + foreach ($anss as $ans) { |
|
552 | + if ($ans instanceof EE_Answer) { |
|
553 | + $answers[ $ans->ID() ] = $ans; |
|
554 | + } |
|
555 | + } |
|
556 | + } |
|
557 | + } |
|
558 | + } |
|
559 | + |
|
560 | + $questions = $questions = isset($recipient->questions) ? $recipient->questions : array(); |
|
561 | + |
|
562 | + // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
|
563 | + // object on it. |
|
564 | + if (! isset($extra_data['data'])) { |
|
565 | + $extra_data['data'] = $recipient; |
|
566 | + } |
|
567 | + |
|
568 | + return $this->_parse_question_list_for_primary_or_recipient_registration( |
|
569 | + $shortcode_parser, |
|
570 | + $questions, |
|
571 | + $answers, |
|
572 | + $template, |
|
573 | + $valid_shortcodes, |
|
574 | + $extra_data |
|
575 | + ); |
|
576 | + break; |
|
577 | + |
|
578 | + default: |
|
579 | + return $parsed; |
|
580 | + break; |
|
581 | + } |
|
582 | + } |
|
583 | + |
|
584 | + |
|
585 | + public function additional_primary_registration_details_shortcodes($shortcodes, $shortcode_parser) |
|
586 | + { |
|
587 | + $shortcodes['[PRIMARY_REGISTRANT_QUESTION_LIST]'] = esc_html__( |
|
588 | + 'This is used to indicate the questions and answers for the primary_registrant. It should be placed in the "[attendee_list]" field', |
|
589 | + 'event_espresso' |
|
590 | + ); |
|
591 | + |
|
592 | + return $shortcodes; |
|
593 | + } |
|
594 | + |
|
595 | + |
|
596 | + /** |
|
597 | + * Callback for FHEE__EE_Primary_Registration_List_Shortcodes__parser_after filter (dynamic filter). |
|
598 | + * |
|
599 | + * @param string $parsed The original parsed content for the shortcode |
|
600 | + * @param string $shortcode The shortcode being parsed |
|
601 | + * @param array $data The shortcode parser data array |
|
602 | + * @param array $extra_data The shortcode parser extra data array |
|
603 | + * @param \EE_Shortcodes $shortcode_parser Shortcode parser. |
|
604 | + * |
|
605 | + * @return string |
|
606 | + */ |
|
607 | + public function additional_primary_registration_details_parser( |
|
608 | + $parsed, |
|
609 | + $shortcode, |
|
610 | + $data, |
|
611 | + $extra_data, |
|
612 | + $shortcode_parser |
|
613 | + ) { |
|
614 | + if (array($data) && ! isset($data['data'])) { |
|
615 | + return $parsed; |
|
616 | + } |
|
617 | + |
|
618 | + $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null; |
|
619 | + $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient; |
|
620 | + |
|
621 | + if (! $recipient instanceof EE_Messages_Addressee) { |
|
622 | + return $parsed; |
|
623 | + } |
|
624 | + |
|
625 | + switch ($shortcode) { |
|
626 | + case '[PRIMARY_REGISTRANT_QUESTION_LIST]': |
|
627 | + if (! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) { |
|
628 | + return ''; |
|
629 | + } |
|
630 | + $registration = $recipient->primary_reg_obj; |
|
631 | + $answers = isset($recipient->registrations[ $registration->ID() ]['ans_objs']) |
|
632 | + ? $recipient->registrations[ $registration->ID() ]['ans_objs'] |
|
633 | + : array(); |
|
634 | + if (empty($answers)) { |
|
635 | + return ''; |
|
636 | + } |
|
637 | + $template = is_array($data['template']) && isset($data['template']['question_list']) |
|
638 | + ? $data['template']['question_list'] |
|
639 | + : $extra_data['template']['question_list']; |
|
640 | + $valid_shortcodes = array('question'); |
|
641 | + $answers = $recipient->registrations[ $registration->ID() ]['ans_objs']; |
|
642 | + $questions = isset($recipient->questions) ? $recipient->questions : array(); |
|
643 | + // if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee |
|
644 | + // object on it. |
|
645 | + if (! isset($extra_data['data'])) { |
|
646 | + $extra_data['data'] = $recipient; |
|
647 | + } |
|
648 | + return $this->_parse_question_list_for_primary_or_recipient_registration( |
|
649 | + $shortcode_parser, |
|
650 | + $questions, |
|
651 | + $answers, |
|
652 | + $template, |
|
653 | + $valid_shortcodes, |
|
654 | + $extra_data |
|
655 | + ); |
|
656 | + break; |
|
657 | + |
|
658 | + default: |
|
659 | + return $parsed; |
|
660 | + break; |
|
661 | + } |
|
662 | + } |
|
663 | + |
|
664 | + |
|
665 | + /** |
|
666 | + * Takes care of registering the message types that are only available in caffeinated EE. |
|
667 | + * |
|
668 | + * @since 4.3.2 |
|
669 | + * |
|
670 | + * @return void |
|
671 | + */ |
|
672 | + public function register_caf_message_types() |
|
673 | + { |
|
674 | + // register newsletter message type |
|
675 | + $setup_args = array( |
|
676 | + 'mtfilename' => 'EE_Newsletter_message_type.class.php', |
|
677 | + 'autoloadpaths' => array( |
|
678 | + EE_CAF_LIBRARIES . 'messages/message_type/newsletter/', |
|
679 | + ), |
|
680 | + 'messengers_to_activate_with' => array('email'), |
|
681 | + 'messengers_to_validate_with' => array('email'), |
|
682 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
683 | + ); |
|
684 | + EE_Register_Message_Type::register('newsletter', $setup_args); |
|
685 | + |
|
686 | + // register payment reminder message type |
|
687 | + $setup_args = array( |
|
688 | + 'mtfilename' => 'EE_Payment_Reminder_message_type.class.php', |
|
689 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'), |
|
690 | + 'messengers_to_activate_with' => array('email'), |
|
691 | + 'messengers_to_validate_with' => array('email'), |
|
692 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
693 | + ); |
|
694 | + EE_Register_Message_Type::register('payment_reminder', $setup_args); |
|
695 | + |
|
696 | + // register payment declined message type |
|
697 | + $setup_args = array( |
|
698 | + 'mtfilename' => 'EE_Payment_Declined_message_type.class.php', |
|
699 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'), |
|
700 | + 'messengers_to_activate_with' => array('email'), |
|
701 | + 'messengers_to_validate_with' => array('email'), |
|
702 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
703 | + ); |
|
704 | + EE_Register_Message_Type::register('payment_declined', $setup_args); |
|
705 | + |
|
706 | + // register registration declined message type |
|
707 | + $setup_args = array( |
|
708 | + 'mtfilename' => 'EE_Declined_Registration_message_type.class.php', |
|
709 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'), |
|
710 | + 'messengers_to_activate_with' => array('email'), |
|
711 | + 'messengers_to_validate_with' => array('email'), |
|
712 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
713 | + ); |
|
714 | + EE_Register_Message_Type::register('declined_registration', $setup_args); |
|
715 | + |
|
716 | + // register registration cancelled message type |
|
717 | + $setup_args = array( |
|
718 | + 'mtfilename' => 'EE_Cancelled_Registration_message_type.class.php', |
|
719 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'), |
|
720 | + 'messengers_to_activate_with' => array('email'), |
|
721 | + 'messengers_to_validate_with' => array('email'), |
|
722 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
723 | + ); |
|
724 | + EE_Register_Message_Type::register('cancelled_registration', $setup_args); |
|
725 | + |
|
726 | + |
|
727 | + // register payment failed message type |
|
728 | + $setup_args = array( |
|
729 | + 'mtfilename' => 'EE_Payment_Failed_message_type.class.php', |
|
730 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'), |
|
731 | + 'messengers_to_activate_with' => array('email'), |
|
732 | + 'messengers_to_validate_with' => array('email'), |
|
733 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
734 | + ); |
|
735 | + EE_Register_Message_Type::register('payment_failed', $setup_args); |
|
736 | + |
|
737 | + // register payment declined message type |
|
738 | + $setup_args = array( |
|
739 | + 'mtfilename' => 'EE_Payment_Cancelled_message_type.class.php', |
|
740 | + 'autoloadpaths' => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'), |
|
741 | + 'messengers_to_activate_with' => array('email'), |
|
742 | + 'messengers_to_validate_with' => array('email'), |
|
743 | + 'messengers_supporting_default_template_pack_with' => array('email'), |
|
744 | + ); |
|
745 | + EE_Register_Message_Type::register('payment_cancelled', $setup_args); |
|
746 | + } |
|
747 | + |
|
748 | + |
|
749 | + /** |
|
750 | + * Takes care of registering the shortcode libraries implemented with caffeinated EE and set up related items. |
|
751 | + * |
|
752 | + * @since 4.3.2 |
|
753 | + * |
|
754 | + * @return void |
|
755 | + */ |
|
756 | + public function register_caf_shortcodes() |
|
757 | + { |
|
758 | + $setup_args = array( |
|
759 | + 'autoloadpaths' => array( |
|
760 | + EE_CAF_LIBRARIES . 'shortcodes/', |
|
761 | + ), |
|
762 | + 'msgr_validator_callback' => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'), |
|
763 | + 'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'), |
|
764 | + 'list_type_shortcodes' => array('[NEWSLETTER_CONTENT]'), |
|
765 | + ); |
|
766 | + EE_Register_Messages_Shortcode_Library::register('newsletter', $setup_args); |
|
767 | + } |
|
768 | + |
|
769 | + |
|
770 | + /** |
|
771 | + * Parses a question list shortcode using given data and template |
|
772 | + * |
|
773 | + * @param \EE_Shortcodes $shortcode_parser |
|
774 | + * @param EE_Question[] $questions An array of questions indexed by answer id. |
|
775 | + * @param EE_Answer[] $answers An array of answer objects |
|
776 | + * @param string $template Template content to be parsed. |
|
777 | + * @param array $valid_shortcodes Valid shortcodes for the template being parsed. |
|
778 | + * @param array $extra_data Extra data that might be used when parsing the template. |
|
779 | + */ |
|
780 | + protected function _parse_question_list_for_primary_or_recipient_registration( |
|
781 | + $shortcode_parser, |
|
782 | + $questions, |
|
783 | + $answers, |
|
784 | + $template, |
|
785 | + $valid_shortcodes, |
|
786 | + $extra_data |
|
787 | + ) { |
|
788 | + $question_list = ''; |
|
789 | + /** @var EEH_Parse_Shortcodes $shortcode_helper */ |
|
790 | + $shortcode_helper = $shortcode_parser->get_shortcode_helper(); |
|
791 | + foreach ($answers as $answer) { |
|
792 | + if ($answer instanceof EE_Answer) { |
|
793 | + // first see if the question is in our $questions array. If not then try to get from answer object. |
|
794 | + $question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null; |
|
795 | + $question = ! $question instanceof EE_Question ? $answer->question() : $question; |
|
796 | + if ( |
|
797 | + ! $question instanceof EE_Question |
|
798 | + || ( |
|
799 | + $question instanceof EE_Question |
|
800 | + && $question->admin_only() |
|
801 | + ) |
|
802 | + ) { |
|
803 | + continue; |
|
804 | + } |
|
805 | + $question_list .= $shortcode_helper->parse_question_list_template( |
|
806 | + $template, |
|
807 | + $answer, |
|
808 | + $valid_shortcodes, |
|
809 | + $extra_data |
|
810 | + ); |
|
811 | + } |
|
812 | + } |
|
813 | + return $question_list; |
|
814 | + } |
|
815 | 815 | } |
@@ -1,10 +1,10 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | printf( |
4 | - esc_html__( |
|
5 | - 'PayPal Pro (Website Payments Pro) is an on-site payment method for accepting credit and debit cards and is available to event organizers in the United States, United Kingdom, and Canada. An account with PayPal is required to accept payments. Need a PayPal Pro account? Call 1-855-456-1338 or %1$sclick here to sign up for a merchant account%2$s.', |
|
6 | - 'event_espresso' |
|
7 | - ), |
|
8 | - '<a href="https://eventespresso.com/go/paypalpro/" target="_blank">', |
|
9 | - '</a>' |
|
4 | + esc_html__( |
|
5 | + 'PayPal Pro (Website Payments Pro) is an on-site payment method for accepting credit and debit cards and is available to event organizers in the United States, United Kingdom, and Canada. An account with PayPal is required to accept payments. Need a PayPal Pro account? Call 1-855-456-1338 or %1$sclick here to sign up for a merchant account%2$s.', |
|
6 | + 'event_espresso' |
|
7 | + ), |
|
8 | + '<a href="https://eventespresso.com/go/paypalpro/" target="_blank">', |
|
9 | + '</a>' |
|
10 | 10 | ); |