Completed
Branch BUG/required-message-fields (8f9492)
by
unknown
10:53 queued 20s
created
core/db_models/strategies/EE_Restriction_Generator_Meta.strategy.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -52,21 +52,21 @@
 block discarded – undo
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
                     ],
Please login to merge, or discard this patch.
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -11,75 +11,75 @@
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
strategies/EE_Restriction_Generator_Taxonomy_Protected.strategy.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -45,14 +45,14 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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'
Please login to merge, or discard this patch.
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -11,71 +11,71 @@
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
core/db_models/strategies/EE_Restriction_Generator_Reg_Form.strategy.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
             );
Please login to merge, or discard this patch.
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -12,66 +12,66 @@
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
payment_methods/Bank/templates/bank_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
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
 );
Please login to merge, or discard this patch.
payment_methods/Check/templates/check_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
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
 );
Please login to merge, or discard this patch.
payment_methods/Invoice/EE_PMT_Invoice.pm.php 2 patches
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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;
Please login to merge, or discard this patch.
Indentation   +120 added lines, -120 removed lines patch added patch discarded remove patch
@@ -24,136 +24,136 @@
 block discarded – undo
24 24
  */
25 25
 class EE_PMT_Invoice extends EE_PMT_Base
26 26
 {
27
-    /**
28
-     *
29
-     * @param EE_Payment_Method $pm_instance
30
-     * @return EE_PMT_Invoice
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
+	 *
29
+	 * @param EE_Payment_Method $pm_instance
30
+	 * @return EE_PMT_Invoice
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 $transaction
48
-     * @return NULL
49
-     */
50
-    public function generate_new_billing_form(EE_Transaction $transaction = null)
51
-    {
52
-        return null;
53
-    }
45
+	/**
46
+	 * Creates the billing form for this payment method type
47
+	 * @param \EE_Transaction $transaction
48
+	 * @return NULL
49
+	 */
50
+	public function generate_new_billing_form(EE_Transaction $transaction = null)
51
+	{
52
+		return null;
53
+	}
54 54
 
55 55
 
56 56
 
57
-    /**
58
-     * Gets the form for all the settings related to this payment method type
59
-     * @return EE_Payment_Method_Form
60
-     */
61
-    public function generate_new_settings_form()
62
-    {
63
-        $pdf_payee_input_name = 'pdf_payee_name';
64
-        $confirmation_text_input_name = 'page_confirmation_text';
65
-        $form =  new EE_Payment_Method_Form(array(
57
+	/**
58
+	 * Gets the form for all the settings related to this payment method type
59
+	 * @return EE_Payment_Method_Form
60
+	 */
61
+	public function generate_new_settings_form()
62
+	{
63
+		$pdf_payee_input_name = 'pdf_payee_name';
64
+		$confirmation_text_input_name = 'page_confirmation_text';
65
+		$form =  new EE_Payment_Method_Form(array(
66 66
 //              'payment_method_type' => $this,
67
-                'extra_meta_inputs' => array(
68
-                    $pdf_payee_input_name => new EE_Text_Input(array(
69
-                        'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link())
70
-                    )),
71
-                    'pdf_payee_email' => new EE_Email_Input(array(
72
-                        'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()),
73
-                    )),
74
-                    'pdf_payee_tax_number' => new EE_Text_Input(array(
75
-                        'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()),
76
-                        )),
77
-                    'pdf_payee_address' => new EE_Text_Area_Input(array(
78
-                        'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()),
79
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
80
-                    )),
81
-                    'pdf_instructions' => new EE_Text_Area_Input(array(
82
-                        'html_label_text' =>  sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()),
83
-                        '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'),
84
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
85
-                    )),
86
-                    'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array(
87
-                        'html_label_text' =>  sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()),
88
-                        'default' =>  EE_Config::instance()->organization->logo_url,
89
-                        'html_help_text' =>  esc_html__("(Logo for the top left of the invoice)", 'event_espresso'),
90
-                    )),
91
-                    $confirmation_text_input_name => new EE_Text_Area_Input(array(
92
-                        'html_label_text' =>  sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()),
93
-                        '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'),
94
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
95
-                    )),
96
-                    'page_extra_info' => new EE_Text_Area_Input(array(
97
-                        'html_label_text' =>  sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()),
98
-                        'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
99
-                    )),
100
-                ),
101
-                'include' => array(
102
-                    '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',
103
-                    $pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image',
104
-                    $confirmation_text_input_name, 'page_extra_info'),
105
-            ));
106
-        $form->add_subsections(
107
-            array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
108
-            $pdf_payee_input_name
109
-        );
110
-        $form->add_subsections(
111
-            array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
112
-            $confirmation_text_input_name
113
-        );
114
-        return $form;
115
-    }
67
+				'extra_meta_inputs' => array(
68
+					$pdf_payee_input_name => new EE_Text_Input(array(
69
+						'html_label_text' => sprintf(esc_html__('Payee Name %s', 'event_espresso'), $this->get_help_tab_link())
70
+					)),
71
+					'pdf_payee_email' => new EE_Email_Input(array(
72
+						'html_label_text' => sprintf(esc_html__('Payee Email %s', 'event_espresso'), $this->get_help_tab_link()),
73
+					)),
74
+					'pdf_payee_tax_number' => new EE_Text_Input(array(
75
+						'html_label_text' => sprintf(esc_html__('Payee Tax Number %s', 'event_espresso'), $this->get_help_tab_link()),
76
+						)),
77
+					'pdf_payee_address' => new EE_Text_Area_Input(array(
78
+						'html_label_text' => sprintf(esc_html__('Payee Address %s', 'event_espresso'), $this->get_help_tab_link()),
79
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
80
+					)),
81
+					'pdf_instructions' => new EE_Text_Area_Input(array(
82
+						'html_label_text' =>  sprintf(esc_html__("Instructions %s", "event_espresso"), $this->get_help_tab_link()),
83
+						'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'),
84
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
85
+					)),
86
+					'pdf_logo_image' => new EE_Admin_File_Uploader_Input(array(
87
+						'html_label_text' =>  sprintf(esc_html__("Logo Image %s", "event_espresso"), $this->get_help_tab_link()),
88
+						'default' =>  EE_Config::instance()->organization->logo_url,
89
+						'html_help_text' =>  esc_html__("(Logo for the top left of the invoice)", 'event_espresso'),
90
+					)),
91
+					$confirmation_text_input_name => new EE_Text_Area_Input(array(
92
+						'html_label_text' =>  sprintf(esc_html__("Confirmation Text %s", "event_espresso"), $this->get_help_tab_link()),
93
+						'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'),
94
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
95
+					)),
96
+					'page_extra_info' => new EE_Text_Area_Input(array(
97
+						'html_label_text' =>  sprintf(esc_html__("Extra Info %s", "event_espresso"), $this->get_help_tab_link()),
98
+						'validation_strategies' => array( new EE_Full_HTML_Validation_Strategy() ),
99
+					)),
100
+				),
101
+				'include' => array(
102
+					'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',
103
+					$pdf_payee_input_name, 'pdf_payee_email', 'pdf_payee_tax_number', 'pdf_payee_address', 'pdf_instructions','pdf_logo_image',
104
+					$confirmation_text_input_name, 'page_extra_info'),
105
+			));
106
+		$form->add_subsections(
107
+			array( 'header1' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_display.template.php')),
108
+			$pdf_payee_input_name
109
+		);
110
+		$form->add_subsections(
111
+			array( 'header2' => new EE_Form_Section_HTML_From_Template('payment_methods/Invoice/templates/invoice_settings_header_gateway.template.php')),
112
+			$confirmation_text_input_name
113
+		);
114
+		return $form;
115
+	}
116 116
 
117 117
 
118 118
 
119
-    /**
120
-     * Adds the help tab
121
-     * @see EE_PMT_Base::help_tabs_config()
122
-     * @return array
123
-     */
124
-    public function help_tabs_config()
125
-    {
126
-        return array(
127
-            $this->get_help_tab_name() => array(
128
-                'title' => esc_html__('Invoice Settings', 'event_espresso'),
129
-                'filename' => 'payment_methods_overview_invoice'
130
-            ),
131
-        );
132
-    }
119
+	/**
120
+	 * Adds the help tab
121
+	 * @see EE_PMT_Base::help_tabs_config()
122
+	 * @return array
123
+	 */
124
+	public function help_tabs_config()
125
+	{
126
+		return array(
127
+			$this->get_help_tab_name() => array(
128
+				'title' => esc_html__('Invoice Settings', 'event_espresso'),
129
+				'filename' => 'payment_methods_overview_invoice'
130
+			),
131
+		);
132
+	}
133 133
 
134 134
 
135
-    /**
136
-     * For adding any html output above the payment overview.
137
-     * Many gateways won't want ot display anything, so this function just returns an empty string.
138
-     * Other gateways may want to override this, such as offline gateways.
139
-     *
140
-     * @param \EE_Payment $payment
141
-     * @return string
142
-     */
143
-    public function payment_overview_content(EE_Payment $payment)
144
-    {
145
-        return EEH_Template::locate_template(
146
-            'payment_methods/Invoice/templates/invoice_payment_details_content.template.php',
147
-            array_merge(
148
-                array(
149
-                    'payment_method'            => $this->_pm_instance,
150
-                    'payment'                       => $payment,
151
-                    'page_confirmation_text'                    => '',
152
-                    'page_extra_info'   => '',
153
-                    'invoice_url'                   => $payment->transaction()->primary_registration()->invoice_url('html')
154
-                ),
155
-                $this->_pm_instance->all_extra_meta_array()
156
-            )
157
-        );
158
-    }
135
+	/**
136
+	 * For adding any html output above the payment overview.
137
+	 * Many gateways won't want ot display anything, so this function just returns an empty string.
138
+	 * Other gateways may want to override this, such as offline gateways.
139
+	 *
140
+	 * @param \EE_Payment $payment
141
+	 * @return string
142
+	 */
143
+	public function payment_overview_content(EE_Payment $payment)
144
+	{
145
+		return EEH_Template::locate_template(
146
+			'payment_methods/Invoice/templates/invoice_payment_details_content.template.php',
147
+			array_merge(
148
+				array(
149
+					'payment_method'            => $this->_pm_instance,
150
+					'payment'                       => $payment,
151
+					'page_confirmation_text'                    => '',
152
+					'page_extra_info'   => '',
153
+					'invoice_url'                   => $payment->transaction()->primary_registration()->invoice_url('html')
154
+				),
155
+				$this->_pm_instance->all_extra_meta_array()
156
+			)
157
+		);
158
+	}
159 159
 }
Please login to merge, or discard this patch.
payment_methods/Invoice/templates/invoice_intro.template.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
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
 );
Please login to merge, or discard this patch.
admin/extend/messages/Custom_Messages_Template_List_Table.class.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
      */
100 100
     public function column_name($item)
101 101
     {
102
-        return '<p>' . $item->name() . '</p>';
102
+        return '<p>'.$item->name().'</p>';
103 103
     }
104 104
 
105 105
 
@@ -137,7 +137,7 @@  discard block
 block discarded – undo
137 137
     protected function _add_view_counts()
138 138
     {
139 139
         foreach ($this->_views as $view => $args) {
140
-            $this->_views[ $view ]['count'] = $this->get_admin_page()->get_message_templates(
140
+            $this->_views[$view]['count'] = $this->get_admin_page()->get_message_templates(
141 141
                 $this->_per_page,
142 142
                 $view,
143 143
                 true,
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
                                       . '" title="'
220 220
                                       . esc_attr__('Restore Message Template', 'event_espresso')
221 221
                                       . '">'
222
-                                      . esc_html__('Restore', 'event_espresso') . '</a>';
222
+                                      . esc_html__('Restore', 'event_espresso').'</a>';
223 223
             }
224 224
 
225 225
             if (
Please login to merge, or discard this patch.
Indentation   +232 added lines, -232 removed lines patch added patch discarded remove patch
@@ -11,259 +11,259 @@
 block discarded – undo
11 11
  */
12 12
 class Custom_Messages_Template_List_Table extends Messages_Template_List_Table
13 13
 {
14
-    /**
15
-     * Setup initial data.
16
-     */
17
-    protected function _setup_data()
18
-    {
19
-        $this->_data = $this->get_admin_page()->get_message_templates(
20
-            $this->_per_page,
21
-            $this->_view,
22
-            false,
23
-            false,
24
-            false
25
-        );
26
-        $this->_all_data_count = $this->get_admin_page()->get_message_templates(
27
-            $this->_per_page,
28
-            $this->_view,
29
-            true,
30
-            true,
31
-            false
32
-        );
33
-    }
14
+	/**
15
+	 * Setup initial data.
16
+	 */
17
+	protected function _setup_data()
18
+	{
19
+		$this->_data = $this->get_admin_page()->get_message_templates(
20
+			$this->_per_page,
21
+			$this->_view,
22
+			false,
23
+			false,
24
+			false
25
+		);
26
+		$this->_all_data_count = $this->get_admin_page()->get_message_templates(
27
+			$this->_per_page,
28
+			$this->_view,
29
+			true,
30
+			true,
31
+			false
32
+		);
33
+	}
34 34
 
35 35
 
36
-    /**
37
-     * Set initial properties
38
-     */
39
-    protected function _set_properties()
40
-    {
41
-        parent::_set_properties();
42
-        $this->_wp_list_args = array(
43
-            'singular' => esc_html__('Message Template Group', 'event_espresso'),
44
-            'plural'   => esc_html__('Message Template', 'event_espresso'),
45
-            'ajax'     => true, // for now,
46
-            'screen'   => $this->get_admin_page()->get_current_screen()->id,
47
-        );
36
+	/**
37
+	 * Set initial properties
38
+	 */
39
+	protected function _set_properties()
40
+	{
41
+		parent::_set_properties();
42
+		$this->_wp_list_args = array(
43
+			'singular' => esc_html__('Message Template Group', 'event_espresso'),
44
+			'plural'   => esc_html__('Message Template', 'event_espresso'),
45
+			'ajax'     => true, // for now,
46
+			'screen'   => $this->get_admin_page()->get_current_screen()->id,
47
+		);
48 48
 
49
-        $this->_columns = array_merge(
50
-            array(
51
-                'cb'   => '<input type="checkbox" />',
52
-                'name' => esc_html__('Template Name', 'event_espresso'),
53
-            ),
54
-            $this->_columns,
55
-            array(
56
-                'events'  => esc_html__('Events', 'event_espresso'),
57
-                'actions' => '',
58
-            )
59
-        );
60
-    }
49
+		$this->_columns = array_merge(
50
+			array(
51
+				'cb'   => '<input type="checkbox" />',
52
+				'name' => esc_html__('Template Name', 'event_espresso'),
53
+			),
54
+			$this->_columns,
55
+			array(
56
+				'events'  => esc_html__('Events', 'event_espresso'),
57
+				'actions' => '',
58
+			)
59
+		);
60
+	}
61 61
 
62 62
 
63
-    /**
64
-     * Custom message for when there are no items found.
65
-     *
66
-     * @since 4.3.0
67
-     */
68
-    public function no_items()
69
-    {
70
-        if ($this->_view !== 'trashed') {
71
-            printf(
72
-                esc_html__(
73
-                    '%sNo Custom Templates found.%s To create your first custom message template, go to the "Default Message Templates" tab and click the "Create Custom" button next to the template you want to use as a base for the new one.',
74
-                    'event_espresso'
75
-                ),
76
-                '<strong>',
77
-                '</strong>'
78
-            );
79
-        } else {
80
-            parent::no_items();
81
-        }
82
-    }
63
+	/**
64
+	 * Custom message for when there are no items found.
65
+	 *
66
+	 * @since 4.3.0
67
+	 */
68
+	public function no_items()
69
+	{
70
+		if ($this->_view !== 'trashed') {
71
+			printf(
72
+				esc_html__(
73
+					'%sNo Custom Templates found.%s To create your first custom message template, go to the "Default Message Templates" tab and click the "Create Custom" button next to the template you want to use as a base for the new one.',
74
+					'event_espresso'
75
+				),
76
+				'<strong>',
77
+				'</strong>'
78
+			);
79
+		} else {
80
+			parent::no_items();
81
+		}
82
+	}
83 83
 
84 84
 
85
-    /**
86
-     * @param EE_Message_Template_Group $item
87
-     * @return string
88
-     */
89
-    public function column_cb($item)
90
-    {
91
-        return sprintf('<input type="checkbox" name="checkbox[%s]" value="1" />', $item->GRP_ID());
92
-    }
85
+	/**
86
+	 * @param EE_Message_Template_Group $item
87
+	 * @return string
88
+	 */
89
+	public function column_cb($item)
90
+	{
91
+		return sprintf('<input type="checkbox" name="checkbox[%s]" value="1" />', $item->GRP_ID());
92
+	}
93 93
 
94 94
 
95
-    /**
96
-     * @param EE_Message_Template_Group $item
97
-     * @return string
98
-     */
99
-    public function column_name($item)
100
-    {
101
-        return '<p>' . $item->name() . '</p>';
102
-    }
95
+	/**
96
+	 * @param EE_Message_Template_Group $item
97
+	 * @return string
98
+	 */
99
+	public function column_name($item)
100
+	{
101
+		return '<p>' . $item->name() . '</p>';
102
+	}
103 103
 
104 104
 
105
-    /**
106
-     * @param EE_Message_Template_Group $item
107
-     * @return string
108
-     */
109
-    public function column_actions($item)
110
-    {
111
-        if (
112
-            EE_Registry::instance()->CAP->current_user_can(
113
-                'ee_edit_messages',
114
-                'espresso_messages_add_new_message_template'
115
-            )
116
-        ) {
117
-            $create_args = array(
118
-                'GRP_ID'       => $item->ID(),
119
-                'messenger'    => $item->messenger(),
120
-                'message_type' => $item->message_type(),
121
-                'action'       => 'add_new_message_template',
122
-            );
123
-            $create_link = EE_Admin_Page::add_query_args_and_nonce($create_args, EE_MSG_ADMIN_URL);
124
-            return sprintf(
125
-                '<p><a href="%s" class="button button--secondary">%s</a></p>',
126
-                $create_link,
127
-                esc_html__('Create Custom', 'event_espresso')
128
-            );
129
-        }
130
-        return '';
131
-    }
105
+	/**
106
+	 * @param EE_Message_Template_Group $item
107
+	 * @return string
108
+	 */
109
+	public function column_actions($item)
110
+	{
111
+		if (
112
+			EE_Registry::instance()->CAP->current_user_can(
113
+				'ee_edit_messages',
114
+				'espresso_messages_add_new_message_template'
115
+			)
116
+		) {
117
+			$create_args = array(
118
+				'GRP_ID'       => $item->ID(),
119
+				'messenger'    => $item->messenger(),
120
+				'message_type' => $item->message_type(),
121
+				'action'       => 'add_new_message_template',
122
+			);
123
+			$create_link = EE_Admin_Page::add_query_args_and_nonce($create_args, EE_MSG_ADMIN_URL);
124
+			return sprintf(
125
+				'<p><a href="%s" class="button button--secondary">%s</a></p>',
126
+				$create_link,
127
+				esc_html__('Create Custom', 'event_espresso')
128
+			);
129
+		}
130
+		return '';
131
+	}
132 132
 
133
-    /**
134
-     * Set the view counts on the _views property
135
-     */
136
-    protected function _add_view_counts()
137
-    {
138
-        foreach ($this->_views as $view => $args) {
139
-            $this->_views[ $view ]['count'] = $this->get_admin_page()->get_message_templates(
140
-                $this->_per_page,
141
-                $view,
142
-                true,
143
-                true,
144
-                false
145
-            );
146
-        }
147
-    }
133
+	/**
134
+	 * Set the view counts on the _views property
135
+	 */
136
+	protected function _add_view_counts()
137
+	{
138
+		foreach ($this->_views as $view => $args) {
139
+			$this->_views[ $view ]['count'] = $this->get_admin_page()->get_message_templates(
140
+				$this->_per_page,
141
+				$view,
142
+				true,
143
+				true,
144
+				false
145
+			);
146
+		}
147
+	}
148 148
 
149 149
 
150
-    /**
151
-     * column_events
152
-     * This provides a count of events using this custom template
153
-     *
154
-     * @param  EE_Message_Template_Group $item message_template group data
155
-     * @return string column output
156
-     */
157
-    public function column_events($item)
158
-    {
159
-        return $item->count_events();
160
-    }
150
+	/**
151
+	 * column_events
152
+	 * This provides a count of events using this custom template
153
+	 *
154
+	 * @param  EE_Message_Template_Group $item message_template group data
155
+	 * @return string column output
156
+	 */
157
+	public function column_events($item)
158
+	{
159
+		return $item->count_events();
160
+	}
161 161
 
162 162
 
163
-    /**
164
-     * Add additional actions for custom message template list view.
165
-     *
166
-     * @param EE_Message_Template_Group $item
167
-     * @return array
168
-     * @throws EE_Error
169
-     */
170
-    protected function _get_actions_for_messenger_column(EE_Message_Template_Group $item)
171
-    {
172
-        $actions = parent::_get_actions_for_messenger_column($item);
163
+	/**
164
+	 * Add additional actions for custom message template list view.
165
+	 *
166
+	 * @param EE_Message_Template_Group $item
167
+	 * @return array
168
+	 * @throws EE_Error
169
+	 */
170
+	protected function _get_actions_for_messenger_column(EE_Message_Template_Group $item)
171
+	{
172
+		$actions = parent::_get_actions_for_messenger_column($item);
173 173
 
174
-        // add additional actions for trash/restore etc.
175
-        $trash_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
176
-            'action'   => 'trash_message_template',
177
-            'id'       => $item->GRP_ID(),
178
-            'noheader' => true,
179
-        ), EE_MSG_ADMIN_URL);
180
-        // restore link
181
-        $restore_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
182
-            'action'   => 'restore_message_template',
183
-            'id'       => $item->GRP_ID(),
184
-            'noheader' => true,
185
-        ), EE_MSG_ADMIN_URL);
186
-        // delete price link
187
-        $delete_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
188
-            'action'   => 'delete_message_template',
189
-            'id'       => $item->GRP_ID(),
190
-            'noheader' => true,
191
-        ), EE_MSG_ADMIN_URL);
174
+		// add additional actions for trash/restore etc.
175
+		$trash_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
176
+			'action'   => 'trash_message_template',
177
+			'id'       => $item->GRP_ID(),
178
+			'noheader' => true,
179
+		), EE_MSG_ADMIN_URL);
180
+		// restore link
181
+		$restore_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
182
+			'action'   => 'restore_message_template',
183
+			'id'       => $item->GRP_ID(),
184
+			'noheader' => true,
185
+		), EE_MSG_ADMIN_URL);
186
+		// delete price link
187
+		$delete_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array(
188
+			'action'   => 'delete_message_template',
189
+			'id'       => $item->GRP_ID(),
190
+			'noheader' => true,
191
+		), EE_MSG_ADMIN_URL);
192 192
 
193
-        if (
194
-            ! $item->get('MTP_deleted')
195
-            && EE_Registry::instance()->CAP->current_user_can(
196
-                'ee_delete_message',
197
-                'espresso_messages_trash_message_template',
198
-                $item->ID()
199
-            )
200
-        ) {
201
-            $actions['trash'] = '<a href="'
202
-                                . $trash_lnk_url
203
-                                . '" title="'
204
-                                . esc_attr__('Move Template Group to Trash', 'event_espresso')
205
-                                . '">'
206
-                                . esc_html__('Move to Trash', 'event_espresso')
207
-                                . '</a>';
208
-        } else {
209
-            if (
210
-                EE_Registry::instance()->CAP->current_user_can(
211
-                    'ee_delete_message',
212
-                    'espresso_messages_restore_message_template',
213
-                    $item->ID()
214
-                )
215
-            ) {
216
-                $actions['restore'] = '<a href="'
217
-                                      . $restore_lnk_url
218
-                                      . '" title="'
219
-                                      . esc_attr__('Restore Message Template', 'event_espresso')
220
-                                      . '">'
221
-                                      . esc_html__('Restore', 'event_espresso') . '</a>';
222
-            }
193
+		if (
194
+			! $item->get('MTP_deleted')
195
+			&& EE_Registry::instance()->CAP->current_user_can(
196
+				'ee_delete_message',
197
+				'espresso_messages_trash_message_template',
198
+				$item->ID()
199
+			)
200
+		) {
201
+			$actions['trash'] = '<a href="'
202
+								. $trash_lnk_url
203
+								. '" title="'
204
+								. esc_attr__('Move Template Group to Trash', 'event_espresso')
205
+								. '">'
206
+								. esc_html__('Move to Trash', 'event_espresso')
207
+								. '</a>';
208
+		} else {
209
+			if (
210
+				EE_Registry::instance()->CAP->current_user_can(
211
+					'ee_delete_message',
212
+					'espresso_messages_restore_message_template',
213
+					$item->ID()
214
+				)
215
+			) {
216
+				$actions['restore'] = '<a href="'
217
+									  . $restore_lnk_url
218
+									  . '" title="'
219
+									  . esc_attr__('Restore Message Template', 'event_espresso')
220
+									  . '">'
221
+									  . esc_html__('Restore', 'event_espresso') . '</a>';
222
+			}
223 223
 
224
-            if (
225
-                $this->_view === 'trashed'
226
-                && EE_Registry::instance()->CAP->current_user_can(
227
-                    'ee_delete_message',
228
-                    'espresso_messages_delete_message_template',
229
-                    $item->ID()
230
-                )
231
-            ) {
232
-                $actions['delete'] = '<a href="'
233
-                                     . $delete_lnk_url
234
-                                     . '" title="'
235
-                                     . esc_attr__('Delete Template Group Permanently', 'event_espresso')
236
-                                     . '">'
237
-                                     . esc_html__('Delete Permanently', 'event_espresso')
238
-                                     . '</a>';
239
-            }
240
-        }
241
-        return $actions;
242
-    }
224
+			if (
225
+				$this->_view === 'trashed'
226
+				&& EE_Registry::instance()->CAP->current_user_can(
227
+					'ee_delete_message',
228
+					'espresso_messages_delete_message_template',
229
+					$item->ID()
230
+				)
231
+			) {
232
+				$actions['delete'] = '<a href="'
233
+									 . $delete_lnk_url
234
+									 . '" title="'
235
+									 . esc_attr__('Delete Template Group Permanently', 'event_espresso')
236
+									 . '">'
237
+									 . esc_html__('Delete Permanently', 'event_espresso')
238
+									 . '</a>';
239
+			}
240
+		}
241
+		return $actions;
242
+	}
243 243
 
244 244
 
245
-    /**
246
-     * Generate dropdown filter select input for messengers
247
-     *
248
-     * @param bool $global
249
-     * @return string
250
-     * @throws EE_Error
251
-     */
252
-    protected function _get_messengers_dropdown_filter($global = true)
253
-    {
254
-        return parent::_get_messengers_dropdown_filter(false);
255
-    }
245
+	/**
246
+	 * Generate dropdown filter select input for messengers
247
+	 *
248
+	 * @param bool $global
249
+	 * @return string
250
+	 * @throws EE_Error
251
+	 */
252
+	protected function _get_messengers_dropdown_filter($global = true)
253
+	{
254
+		return parent::_get_messengers_dropdown_filter(false);
255
+	}
256 256
 
257 257
 
258
-    /**
259
-     * Generate dropdown filter select input for message types
260
-     *
261
-     * @param bool $global
262
-     * @return string
263
-     * @throws EE_Error
264
-     */
265
-    protected function _get_message_types_dropdown_filter($global = true)
266
-    {
267
-        return parent::_get_message_types_dropdown_filter(false);
268
-    }
258
+	/**
259
+	 * Generate dropdown filter select input for message types
260
+	 *
261
+	 * @param bool $global
262
+	 * @return string
263
+	 * @throws EE_Error
264
+	 */
265
+	protected function _get_message_types_dropdown_filter($global = true)
266
+	{
267
+		return parent::_get_message_types_dropdown_filter(false);
268
+	}
269 269
 }
Please login to merge, or discard this patch.
caffeinated/EE_Caf_Messages.class.php 2 patches
Spacing   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
Please login to merge, or discard this patch.
Indentation   +802 added lines, -802 removed lines patch added patch discarded remove patch
@@ -10,806 +10,806 @@
 block discarded – undo
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
 }
Please login to merge, or discard this patch.