@@ -19,2626 +19,2626 @@ discard block  | 
                                                    ||
| 19 | 19 | class Messages_Admin_Page extends EE_Admin_Page  | 
                                                        
| 20 | 20 |  { | 
                                                        
| 21 | 21 | |
| 22 | - /**  | 
                                                        |
| 23 | - * @type EE_Message_Resource_Manager $_message_resource_manager  | 
                                                        |
| 24 | - */  | 
                                                        |
| 25 | - protected $_message_resource_manager;  | 
                                                        |
| 26 | -  | 
                                                        |
| 27 | - /**  | 
                                                        |
| 28 | - * @type string $_active_message_type_name  | 
                                                        |
| 29 | - */  | 
                                                        |
| 30 | - protected $_active_message_type_name = '';  | 
                                                        |
| 31 | -  | 
                                                        |
| 32 | - /**  | 
                                                        |
| 33 | - * @type EE_messenger $_active_messenger  | 
                                                        |
| 34 | - */  | 
                                                        |
| 35 | - protected $_active_messenger;  | 
                                                        |
| 36 | - protected $_activate_state;  | 
                                                        |
| 37 | - protected $_activate_meta_box_type;  | 
                                                        |
| 38 | - protected $_current_message_meta_box;  | 
                                                        |
| 39 | - protected $_current_message_meta_box_object;  | 
                                                        |
| 40 | - protected $_context_switcher;  | 
                                                        |
| 41 | - protected $_shortcodes = array();  | 
                                                        |
| 42 | - protected $_active_messengers = array();  | 
                                                        |
| 43 | - protected $_active_message_types = array();  | 
                                                        |
| 44 | -  | 
                                                        |
| 45 | - /**  | 
                                                        |
| 46 | - * @var EE_Message_Template_Group $_message_template_group  | 
                                                        |
| 47 | - */  | 
                                                        |
| 48 | - protected $_message_template_group;  | 
                                                        |
| 49 | - protected $_m_mt_settings = array();  | 
                                                        |
| 50 | -  | 
                                                        |
| 51 | -  | 
                                                        |
| 52 | - /**  | 
                                                        |
| 53 | - * This is set via the _set_message_template_group method and holds whatever the template pack for the group is.  | 
                                                        |
| 54 | - * IF there is no group then it gets automatically set to the Default template pack.  | 
                                                        |
| 55 | - *  | 
                                                        |
| 56 | - * @since 4.5.0  | 
                                                        |
| 57 | - *  | 
                                                        |
| 58 | - * @var EE_Messages_Template_Pack  | 
                                                        |
| 59 | - */  | 
                                                        |
| 60 | - protected $_template_pack;  | 
                                                        |
| 61 | -  | 
                                                        |
| 62 | -  | 
                                                        |
| 63 | - /**  | 
                                                        |
| 64 | - * This is set via the _set_message_template_group method and holds whatever the template pack variation for the  | 
                                                        |
| 65 | - * group is. If there is no group then it automatically gets set to default.  | 
                                                        |
| 66 | - *  | 
                                                        |
| 67 | - * @since 4.5.0  | 
                                                        |
| 68 | - *  | 
                                                        |
| 69 | - * @var string  | 
                                                        |
| 70 | - */  | 
                                                        |
| 71 | - protected $_variation;  | 
                                                        |
| 72 | -  | 
                                                        |
| 73 | -  | 
                                                        |
| 74 | - /**  | 
                                                        |
| 75 | - * @param bool $routing  | 
                                                        |
| 76 | - * @throws EE_Error  | 
                                                        |
| 77 | - */  | 
                                                        |
| 78 | - public function __construct($routing = true)  | 
                                                        |
| 79 | -    { | 
                                                        |
| 80 | - // make sure messages autoloader is running  | 
                                                        |
| 81 | - EED_Messages::set_autoloaders();  | 
                                                        |
| 82 | - parent::__construct($routing);  | 
                                                        |
| 83 | - }  | 
                                                        |
| 84 | -  | 
                                                        |
| 85 | -  | 
                                                        |
| 86 | - protected function _init_page_props()  | 
                                                        |
| 87 | -    { | 
                                                        |
| 88 | - $this->page_slug = EE_MSG_PG_SLUG;  | 
                                                        |
| 89 | -        $this->page_label = esc_html__('Messages Settings', 'event_espresso'); | 
                                                        |
| 90 | - $this->_admin_base_url = EE_MSG_ADMIN_URL;  | 
                                                        |
| 91 | - $this->_admin_base_path = EE_MSG_ADMIN;  | 
                                                        |
| 92 | -  | 
                                                        |
| 93 | - $this->_activate_state = isset($this->_req_data['activate_state']) ? (array) $this->_req_data['activate_state']  | 
                                                        |
| 94 | - : array();  | 
                                                        |
| 95 | -  | 
                                                        |
| 96 | - $this->_active_messenger = isset($this->_req_data['messenger']) ? $this->_req_data['messenger'] : null;  | 
                                                        |
| 97 | - $this->_load_message_resource_manager();  | 
                                                        |
| 98 | - }  | 
                                                        |
| 99 | -  | 
                                                        |
| 100 | -  | 
                                                        |
| 101 | - /**  | 
                                                        |
| 102 | - * loads messenger objects into the $_active_messengers property (so we can access the needed methods)  | 
                                                        |
| 103 | - *  | 
                                                        |
| 104 | - * @throws EE_Error  | 
                                                        |
| 105 | - * @throws InvalidDataTypeException  | 
                                                        |
| 106 | - * @throws InvalidInterfaceException  | 
                                                        |
| 107 | - * @throws InvalidArgumentException  | 
                                                        |
| 108 | - * @throws ReflectionException  | 
                                                        |
| 109 | - */  | 
                                                        |
| 110 | - protected function _load_message_resource_manager()  | 
                                                        |
| 111 | -    { | 
                                                        |
| 112 | -        $this->_message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager'); | 
                                                        |
| 113 | - }  | 
                                                        |
| 114 | -  | 
                                                        |
| 115 | -  | 
                                                        |
| 116 | - /**  | 
                                                        |
| 117 | - * @deprecated 4.9.9.rc.014  | 
                                                        |
| 118 | - * @return array  | 
                                                        |
| 119 | - * @throws EE_Error  | 
                                                        |
| 120 | - * @throws InvalidArgumentException  | 
                                                        |
| 121 | - * @throws InvalidDataTypeException  | 
                                                        |
| 122 | - * @throws InvalidInterfaceException  | 
                                                        |
| 123 | - */  | 
                                                        |
| 124 | - public function get_messengers_for_list_table()  | 
                                                        |
| 125 | -    { | 
                                                        |
| 126 | - EE_Error::doing_it_wrong(  | 
                                                        |
| 127 | - __METHOD__,  | 
                                                        |
| 128 | - sprintf(  | 
                                                        |
| 129 | - esc_html__(  | 
                                                        |
| 130 | - 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a messenger filter dropdown which is now generated differently via %s',  | 
                                                        |
| 131 | - 'event_espresso'  | 
                                                        |
| 132 | - ),  | 
                                                        |
| 133 | - 'Messages_Admin_Page::get_messengers_select_input()'  | 
                                                        |
| 134 | - ),  | 
                                                        |
| 135 | - '4.9.9.rc.014'  | 
                                                        |
| 136 | - );  | 
                                                        |
| 137 | -  | 
                                                        |
| 138 | - $m_values = array();  | 
                                                        |
| 139 | -        $active_messengers = EEM_Message::instance()->get_all(array('group_by' => 'MSG_messenger')); | 
                                                        |
| 140 | - // setup messengers for selects  | 
                                                        |
| 141 | - $i = 1;  | 
                                                        |
| 142 | -        foreach ($active_messengers as $active_messenger) { | 
                                                        |
| 143 | -            if ($active_messenger instanceof EE_Message) { | 
                                                        |
| 144 | - $m_values[ $i ]['id'] = $active_messenger->messenger();  | 
                                                        |
| 145 | - $m_values[ $i ]['text'] = ucwords($active_messenger->messenger_label());  | 
                                                        |
| 146 | - $i++;  | 
                                                        |
| 147 | - }  | 
                                                        |
| 148 | - }  | 
                                                        |
| 149 | -  | 
                                                        |
| 150 | - return $m_values;  | 
                                                        |
| 151 | - }  | 
                                                        |
| 152 | -  | 
                                                        |
| 153 | -  | 
                                                        |
| 154 | - /**  | 
                                                        |
| 155 | - * @deprecated 4.9.9.rc.014  | 
                                                        |
| 156 | - * @return array  | 
                                                        |
| 157 | - * @throws EE_Error  | 
                                                        |
| 158 | - * @throws InvalidArgumentException  | 
                                                        |
| 159 | - * @throws InvalidDataTypeException  | 
                                                        |
| 160 | - * @throws InvalidInterfaceException  | 
                                                        |
| 161 | - */  | 
                                                        |
| 162 | - public function get_message_types_for_list_table()  | 
                                                        |
| 163 | -    { | 
                                                        |
| 164 | - EE_Error::doing_it_wrong(  | 
                                                        |
| 165 | - __METHOD__,  | 
                                                        |
| 166 | - sprintf(  | 
                                                        |
| 167 | - esc_html__(  | 
                                                        |
| 168 | - 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a message type filter dropdown which is now generated differently via %s',  | 
                                                        |
| 169 | - 'event_espresso'  | 
                                                        |
| 170 | - ),  | 
                                                        |
| 171 | - 'Messages_Admin_Page::get_message_types_select_input()'  | 
                                                        |
| 172 | - ),  | 
                                                        |
| 173 | - '4.9.9.rc.014'  | 
                                                        |
| 174 | - );  | 
                                                        |
| 175 | -  | 
                                                        |
| 176 | - $mt_values = array();  | 
                                                        |
| 177 | -        $active_messages = EEM_Message::instance()->get_all(array('group_by' => 'MSG_message_type')); | 
                                                        |
| 178 | - $i = 1;  | 
                                                        |
| 179 | -        foreach ($active_messages as $active_message) { | 
                                                        |
| 180 | -            if ($active_message instanceof EE_Message) { | 
                                                        |
| 181 | - $mt_values[ $i ]['id'] = $active_message->message_type();  | 
                                                        |
| 182 | - $mt_values[ $i ]['text'] = ucwords($active_message->message_type_label());  | 
                                                        |
| 183 | - $i++;  | 
                                                        |
| 184 | - }  | 
                                                        |
| 185 | - }  | 
                                                        |
| 186 | -  | 
                                                        |
| 187 | - return $mt_values;  | 
                                                        |
| 188 | - }  | 
                                                        |
| 189 | -  | 
                                                        |
| 190 | -  | 
                                                        |
| 191 | - /**  | 
                                                        |
| 192 | - * @deprecated 4.9.9.rc.014  | 
                                                        |
| 193 | - * @return array  | 
                                                        |
| 194 | - * @throws EE_Error  | 
                                                        |
| 195 | - * @throws InvalidArgumentException  | 
                                                        |
| 196 | - * @throws InvalidDataTypeException  | 
                                                        |
| 197 | - * @throws InvalidInterfaceException  | 
                                                        |
| 198 | - */  | 
                                                        |
| 199 | - public function get_contexts_for_message_types_for_list_table()  | 
                                                        |
| 200 | -    { | 
                                                        |
| 201 | - EE_Error::doing_it_wrong(  | 
                                                        |
| 202 | - __METHOD__,  | 
                                                        |
| 203 | - sprintf(  | 
                                                        |
| 204 | - esc_html__(  | 
                                                        |
| 205 | - 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a message type context filter dropdown which is now generated differently via %s',  | 
                                                        |
| 206 | - 'event_espresso'  | 
                                                        |
| 207 | - ),  | 
                                                        |
| 208 | - 'Messages_Admin_Page::get_contexts_for_message_types_select_input()'  | 
                                                        |
| 209 | - ),  | 
                                                        |
| 210 | - '4.9.9.rc.014'  | 
                                                        |
| 211 | - );  | 
                                                        |
| 212 | -  | 
                                                        |
| 213 | - $contexts = array();  | 
                                                        |
| 214 | -        $active_message_contexts = EEM_Message::instance()->get_all(array('group_by' => 'MSG_context')); | 
                                                        |
| 215 | -        foreach ($active_message_contexts as $active_message) { | 
                                                        |
| 216 | -            if ($active_message instanceof EE_Message) { | 
                                                        |
| 217 | - $message_type = $active_message->message_type_object();  | 
                                                        |
| 218 | -                if ($message_type instanceof EE_message_type) { | 
                                                        |
| 219 | - $message_type_contexts = $message_type->get_contexts();  | 
                                                        |
| 220 | -                    foreach ($message_type_contexts as $context => $context_details) { | 
                                                        |
| 221 | - $contexts[ $context ] = $context_details['label'];  | 
                                                        |
| 222 | - }  | 
                                                        |
| 223 | - }  | 
                                                        |
| 224 | - }  | 
                                                        |
| 225 | - }  | 
                                                        |
| 226 | -  | 
                                                        |
| 227 | - return $contexts;  | 
                                                        |
| 228 | - }  | 
                                                        |
| 229 | -  | 
                                                        |
| 230 | -  | 
                                                        |
| 231 | - /**  | 
                                                        |
| 232 | - * Generate select input with provided messenger options array.  | 
                                                        |
| 233 | - *  | 
                                                        |
| 234 | - * @param array $messenger_options Array of messengers indexed by messenger slug and values are the messenger  | 
                                                        |
| 235 | - * labels.  | 
                                                        |
| 236 | - * @return string  | 
                                                        |
| 237 | - * @throws EE_Error  | 
                                                        |
| 238 | - */  | 
                                                        |
| 239 | - public function get_messengers_select_input($messenger_options)  | 
                                                        |
| 240 | -    { | 
                                                        |
| 241 | - // if empty or just one value then just return an empty string  | 
                                                        |
| 242 | - if (empty($messenger_options)  | 
                                                        |
| 243 | - || ! is_array($messenger_options)  | 
                                                        |
| 244 | - || count($messenger_options) === 1  | 
                                                        |
| 245 | -        ) { | 
                                                        |
| 246 | - return '';  | 
                                                        |
| 247 | - }  | 
                                                        |
| 248 | - // merge in default  | 
                                                        |
| 249 | - $messenger_options = array_merge(  | 
                                                        |
| 250 | -            array('none_selected' => esc_html__('Show All Messengers', 'event_espresso')), | 
                                                        |
| 251 | - $messenger_options  | 
                                                        |
| 252 | - );  | 
                                                        |
| 253 | - $input = new EE_Select_Input(  | 
                                                        |
| 254 | - $messenger_options,  | 
                                                        |
| 255 | - array(  | 
                                                        |
| 256 | - 'html_name' => 'ee_messenger_filter_by',  | 
                                                        |
| 257 | - 'html_id' => 'ee_messenger_filter_by',  | 
                                                        |
| 258 | - 'html_class' => 'wide',  | 
                                                        |
| 259 | - 'default' => isset($this->_req_data['ee_messenger_filter_by'])  | 
                                                        |
| 260 | - ? sanitize_title($this->_req_data['ee_messenger_filter_by'])  | 
                                                        |
| 261 | - : 'none_selected',  | 
                                                        |
| 262 | - )  | 
                                                        |
| 263 | - );  | 
                                                        |
| 264 | -  | 
                                                        |
| 265 | - return $input->get_html_for_input();  | 
                                                        |
| 266 | - }  | 
                                                        |
| 267 | -  | 
                                                        |
| 268 | -  | 
                                                        |
| 269 | - /**  | 
                                                        |
| 270 | - * Generate select input with provided message type options array.  | 
                                                        |
| 271 | - *  | 
                                                        |
| 272 | - * @param array $message_type_options Array of message types indexed by message type slug, and values are the  | 
                                                        |
| 273 | - * message type labels  | 
                                                        |
| 274 | - * @return string  | 
                                                        |
| 275 | - * @throws EE_Error  | 
                                                        |
| 276 | - */  | 
                                                        |
| 277 | - public function get_message_types_select_input($message_type_options)  | 
                                                        |
| 278 | -    { | 
                                                        |
| 279 | - // if empty or count of options is 1 then just return an empty string  | 
                                                        |
| 280 | - if (empty($message_type_options)  | 
                                                        |
| 281 | - || ! is_array($message_type_options)  | 
                                                        |
| 282 | - || count($message_type_options) === 1  | 
                                                        |
| 283 | -        ) { | 
                                                        |
| 284 | - return '';  | 
                                                        |
| 285 | - }  | 
                                                        |
| 286 | - // merge in default  | 
                                                        |
| 287 | - $message_type_options = array_merge(  | 
                                                        |
| 288 | -            array('none_selected' => esc_html__('Show All Message Types', 'event_espresso')), | 
                                                        |
| 289 | - $message_type_options  | 
                                                        |
| 290 | - );  | 
                                                        |
| 291 | - $input = new EE_Select_Input(  | 
                                                        |
| 292 | - $message_type_options,  | 
                                                        |
| 293 | - array(  | 
                                                        |
| 294 | - 'html_name' => 'ee_message_type_filter_by',  | 
                                                        |
| 295 | - 'html_id' => 'ee_message_type_filter_by',  | 
                                                        |
| 296 | - 'html_class' => 'wide',  | 
                                                        |
| 297 | - 'default' => isset($this->_req_data['ee_message_type_filter_by'])  | 
                                                        |
| 298 | - ? sanitize_title($this->_req_data['ee_message_type_filter_by'])  | 
                                                        |
| 299 | - : 'none_selected',  | 
                                                        |
| 300 | - )  | 
                                                        |
| 301 | - );  | 
                                                        |
| 302 | -  | 
                                                        |
| 303 | - return $input->get_html_for_input();  | 
                                                        |
| 304 | - }  | 
                                                        |
| 305 | -  | 
                                                        |
| 306 | -  | 
                                                        |
| 307 | - /**  | 
                                                        |
| 308 | - * Generate select input with provide message type contexts array.  | 
                                                        |
| 309 | - *  | 
                                                        |
| 310 | - * @param array $context_options Array of message type contexts indexed by context slug, and values are the  | 
                                                        |
| 311 | - * context label.  | 
                                                        |
| 312 | - * @return string  | 
                                                        |
| 313 | - * @throws EE_Error  | 
                                                        |
| 314 | - */  | 
                                                        |
| 315 | - public function get_contexts_for_message_types_select_input($context_options)  | 
                                                        |
| 316 | -    { | 
                                                        |
| 317 | - // if empty or count of options is one then just return empty string  | 
                                                        |
| 318 | - if (empty($context_options)  | 
                                                        |
| 319 | - || ! is_array($context_options)  | 
                                                        |
| 320 | - || count($context_options) === 1  | 
                                                        |
| 321 | -        ) { | 
                                                        |
| 322 | - return '';  | 
                                                        |
| 323 | - }  | 
                                                        |
| 324 | - // merge in default  | 
                                                        |
| 325 | - $context_options = array_merge(  | 
                                                        |
| 326 | -            array('none_selected' => esc_html__('Show all Contexts', 'event_espresso')), | 
                                                        |
| 327 | - $context_options  | 
                                                        |
| 328 | - );  | 
                                                        |
| 329 | - $input = new EE_Select_Input(  | 
                                                        |
| 330 | - $context_options,  | 
                                                        |
| 331 | - array(  | 
                                                        |
| 332 | - 'html_name' => 'ee_context_filter_by',  | 
                                                        |
| 333 | - 'html_id' => 'ee_context_filter_by',  | 
                                                        |
| 334 | - 'html_class' => 'wide',  | 
                                                        |
| 335 | - 'default' => isset($this->_req_data['ee_context_filter_by'])  | 
                                                        |
| 336 | - ? sanitize_title($this->_req_data['ee_context_filter_by'])  | 
                                                        |
| 337 | - : 'none_selected',  | 
                                                        |
| 338 | - )  | 
                                                        |
| 339 | - );  | 
                                                        |
| 340 | -  | 
                                                        |
| 341 | - return $input->get_html_for_input();  | 
                                                        |
| 342 | - }  | 
                                                        |
| 343 | -  | 
                                                        |
| 344 | -  | 
                                                        |
| 345 | - protected function _ajax_hooks()  | 
                                                        |
| 346 | -    { | 
                                                        |
| 347 | -        add_action('wp_ajax_activate_messenger', array($this, 'activate_messenger_toggle')); | 
                                                        |
| 348 | -        add_action('wp_ajax_activate_mt', array($this, 'activate_mt_toggle')); | 
                                                        |
| 349 | -        add_action('wp_ajax_ee_msgs_save_settings', array($this, 'save_settings')); | 
                                                        |
| 350 | -        add_action('wp_ajax_ee_msgs_update_mt_form', array($this, 'update_mt_form')); | 
                                                        |
| 351 | -        add_action('wp_ajax_switch_template_pack', array($this, 'switch_template_pack')); | 
                                                        |
| 352 | -        add_action('wp_ajax_toggle_context_template', array($this, 'toggle_context_template')); | 
                                                        |
| 353 | - }  | 
                                                        |
| 354 | -  | 
                                                        |
| 355 | -  | 
                                                        |
| 356 | - protected function _define_page_props()  | 
                                                        |
| 357 | -    { | 
                                                        |
| 358 | - $this->_admin_page_title = $this->page_label;  | 
                                                        |
| 359 | - $this->_labels = array(  | 
                                                        |
| 360 | - 'buttons' => array(  | 
                                                        |
| 361 | -                'add'    => esc_html__('Add New Message Template', 'event_espresso'), | 
                                                        |
| 362 | -                'edit'   => esc_html__('Edit Message Template', 'event_espresso'), | 
                                                        |
| 363 | -                'delete' => esc_html__('Delete Message Template', 'event_espresso'), | 
                                                        |
| 364 | - ),  | 
                                                        |
| 365 | -            'publishbox' => esc_html__('Update Actions', 'event_espresso'), | 
                                                        |
| 366 | - );  | 
                                                        |
| 367 | - }  | 
                                                        |
| 368 | -  | 
                                                        |
| 369 | -  | 
                                                        |
| 370 | - /**  | 
                                                        |
| 371 | - * an array for storing key => value pairs of request actions and their corresponding methods  | 
                                                        |
| 372 | - *  | 
                                                        |
| 373 | - * @access protected  | 
                                                        |
| 374 | - * @return void  | 
                                                        |
| 375 | - */  | 
                                                        |
| 376 | - protected function _set_page_routes()  | 
                                                        |
| 377 | -    { | 
                                                        |
| 378 | - $grp_id = ! empty($this->_req_data['GRP_ID']) && ! is_array($this->_req_data['GRP_ID'])  | 
                                                        |
| 379 | - ? $this->_req_data['GRP_ID']  | 
                                                        |
| 380 | - : 0;  | 
                                                        |
| 381 | - $grp_id = empty($grp_id) && ! empty($this->_req_data['id'])  | 
                                                        |
| 382 | - ? $this->_req_data['id']  | 
                                                        |
| 383 | - : $grp_id;  | 
                                                        |
| 384 | - $msg_id = ! empty($this->_req_data['MSG_ID']) && ! is_array($this->_req_data['MSG_ID'])  | 
                                                        |
| 385 | - ? $this->_req_data['MSG_ID']  | 
                                                        |
| 386 | - : 0;  | 
                                                        |
| 387 | -  | 
                                                        |
| 388 | - $this->_page_routes = array(  | 
                                                        |
| 389 | - 'default' => array(  | 
                                                        |
| 390 | - 'func' => '_message_queue_list_table',  | 
                                                        |
| 391 | - 'capability' => 'ee_read_global_messages',  | 
                                                        |
| 392 | - ),  | 
                                                        |
| 393 | - 'global_mtps' => array(  | 
                                                        |
| 394 | - 'func' => '_ee_default_messages_overview_list_table',  | 
                                                        |
| 395 | - 'capability' => 'ee_read_global_messages',  | 
                                                        |
| 396 | - ),  | 
                                                        |
| 397 | - 'custom_mtps' => array(  | 
                                                        |
| 398 | - 'func' => '_custom_mtps_preview',  | 
                                                        |
| 399 | - 'capability' => 'ee_read_messages',  | 
                                                        |
| 400 | - ),  | 
                                                        |
| 401 | - 'add_new_message_template' => array(  | 
                                                        |
| 402 | - 'func' => '_add_message_template',  | 
                                                        |
| 403 | - 'capability' => 'ee_edit_messages',  | 
                                                        |
| 404 | - 'noheader' => true,  | 
                                                        |
| 405 | - ),  | 
                                                        |
| 406 | - 'edit_message_template' => array(  | 
                                                        |
| 407 | - 'func' => '_edit_message_template',  | 
                                                        |
| 408 | - 'capability' => 'ee_edit_message',  | 
                                                        |
| 409 | - 'obj_id' => $grp_id,  | 
                                                        |
| 410 | - ),  | 
                                                        |
| 411 | - 'preview_message' => array(  | 
                                                        |
| 412 | - 'func' => '_preview_message',  | 
                                                        |
| 413 | - 'capability' => 'ee_read_message',  | 
                                                        |
| 414 | - 'obj_id' => $grp_id,  | 
                                                        |
| 415 | - 'noheader' => true,  | 
                                                        |
| 416 | - 'headers_sent_route' => 'display_preview_message',  | 
                                                        |
| 417 | - ),  | 
                                                        |
| 418 | - 'display_preview_message' => array(  | 
                                                        |
| 419 | - 'func' => '_display_preview_message',  | 
                                                        |
| 420 | - 'capability' => 'ee_read_message',  | 
                                                        |
| 421 | - 'obj_id' => $grp_id,  | 
                                                        |
| 422 | - ),  | 
                                                        |
| 423 | - 'insert_message_template' => array(  | 
                                                        |
| 424 | - 'func' => '_insert_or_update_message_template',  | 
                                                        |
| 425 | - 'capability' => 'ee_edit_messages',  | 
                                                        |
| 426 | -                'args'       => array('new_template' => true), | 
                                                        |
| 427 | - 'noheader' => true,  | 
                                                        |
| 428 | - ),  | 
                                                        |
| 429 | - 'update_message_template' => array(  | 
                                                        |
| 430 | - 'func' => '_insert_or_update_message_template',  | 
                                                        |
| 431 | - 'capability' => 'ee_edit_message',  | 
                                                        |
| 432 | - 'obj_id' => $grp_id,  | 
                                                        |
| 433 | -                'args'       => array('new_template' => false), | 
                                                        |
| 434 | - 'noheader' => true,  | 
                                                        |
| 435 | - ),  | 
                                                        |
| 436 | - 'trash_message_template' => array(  | 
                                                        |
| 437 | - 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 438 | - 'capability' => 'ee_delete_message',  | 
                                                        |
| 439 | - 'obj_id' => $grp_id,  | 
                                                        |
| 440 | -                'args'       => array('trash' => true, 'all' => true), | 
                                                        |
| 441 | - 'noheader' => true,  | 
                                                        |
| 442 | - ),  | 
                                                        |
| 443 | - 'trash_message_template_context' => array(  | 
                                                        |
| 444 | - 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 445 | - 'capability' => 'ee_delete_message',  | 
                                                        |
| 446 | - 'obj_id' => $grp_id,  | 
                                                        |
| 447 | -                'args'       => array('trash' => true), | 
                                                        |
| 448 | - 'noheader' => true,  | 
                                                        |
| 449 | - ),  | 
                                                        |
| 450 | - 'restore_message_template' => array(  | 
                                                        |
| 451 | - 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 452 | - 'capability' => 'ee_delete_message',  | 
                                                        |
| 453 | - 'obj_id' => $grp_id,  | 
                                                        |
| 454 | -                'args'       => array('trash' => false, 'all' => true), | 
                                                        |
| 455 | - 'noheader' => true,  | 
                                                        |
| 456 | - ),  | 
                                                        |
| 457 | - 'restore_message_template_context' => array(  | 
                                                        |
| 458 | - 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 459 | - 'capability' => 'ee_delete_message',  | 
                                                        |
| 460 | - 'obj_id' => $grp_id,  | 
                                                        |
| 461 | -                'args'       => array('trash' => false), | 
                                                        |
| 462 | - 'noheader' => true,  | 
                                                        |
| 463 | - ),  | 
                                                        |
| 464 | - 'delete_message_template' => array(  | 
                                                        |
| 465 | - 'func' => '_delete_message_template',  | 
                                                        |
| 466 | - 'capability' => 'ee_delete_message',  | 
                                                        |
| 467 | - 'obj_id' => $grp_id,  | 
                                                        |
| 468 | - 'noheader' => true,  | 
                                                        |
| 469 | - ),  | 
                                                        |
| 470 | - 'reset_to_default' => array(  | 
                                                        |
| 471 | - 'func' => '_reset_to_default_template',  | 
                                                        |
| 472 | - 'capability' => 'ee_edit_message',  | 
                                                        |
| 473 | - 'obj_id' => $grp_id,  | 
                                                        |
| 474 | - 'noheader' => true,  | 
                                                        |
| 475 | - ),  | 
                                                        |
| 476 | - 'settings' => array(  | 
                                                        |
| 477 | - 'func' => '_settings',  | 
                                                        |
| 478 | - 'capability' => 'manage_options',  | 
                                                        |
| 479 | - ),  | 
                                                        |
| 480 | - 'update_global_settings' => array(  | 
                                                        |
| 481 | - 'func' => '_update_global_settings',  | 
                                                        |
| 482 | - 'capability' => 'manage_options',  | 
                                                        |
| 483 | - 'noheader' => true,  | 
                                                        |
| 484 | - ),  | 
                                                        |
| 485 | - 'generate_now' => array(  | 
                                                        |
| 486 | - 'func' => '_generate_now',  | 
                                                        |
| 487 | - 'capability' => 'ee_send_message',  | 
                                                        |
| 488 | - 'noheader' => true,  | 
                                                        |
| 489 | - ),  | 
                                                        |
| 490 | - 'generate_and_send_now' => array(  | 
                                                        |
| 491 | - 'func' => '_generate_and_send_now',  | 
                                                        |
| 492 | - 'capability' => 'ee_send_message',  | 
                                                        |
| 493 | - 'noheader' => true,  | 
                                                        |
| 494 | - ),  | 
                                                        |
| 495 | - 'queue_for_resending' => array(  | 
                                                        |
| 496 | - 'func' => '_queue_for_resending',  | 
                                                        |
| 497 | - 'capability' => 'ee_send_message',  | 
                                                        |
| 498 | - 'noheader' => true,  | 
                                                        |
| 499 | - ),  | 
                                                        |
| 500 | - 'send_now' => array(  | 
                                                        |
| 501 | - 'func' => '_send_now',  | 
                                                        |
| 502 | - 'capability' => 'ee_send_message',  | 
                                                        |
| 503 | - 'noheader' => true,  | 
                                                        |
| 504 | - ),  | 
                                                        |
| 505 | - 'delete_ee_message' => array(  | 
                                                        |
| 506 | - 'func' => '_delete_ee_messages',  | 
                                                        |
| 507 | - 'capability' => 'ee_delete_messages',  | 
                                                        |
| 508 | - 'noheader' => true,  | 
                                                        |
| 509 | - ),  | 
                                                        |
| 510 | - 'delete_ee_messages' => array(  | 
                                                        |
| 511 | - 'func' => '_delete_ee_messages',  | 
                                                        |
| 512 | - 'capability' => 'ee_delete_messages',  | 
                                                        |
| 513 | - 'noheader' => true,  | 
                                                        |
| 514 | - 'obj_id' => $msg_id,  | 
                                                        |
| 515 | - ),  | 
                                                        |
| 516 | - );  | 
                                                        |
| 517 | - }  | 
                                                        |
| 518 | -  | 
                                                        |
| 519 | -  | 
                                                        |
| 520 | - protected function _set_page_config()  | 
                                                        |
| 521 | -    { | 
                                                        |
| 522 | - $this->_page_config = array(  | 
                                                        |
| 523 | - 'default' => array(  | 
                                                        |
| 524 | - 'nav' => array(  | 
                                                        |
| 525 | -                    'label' => esc_html__('Message Activity', 'event_espresso'), | 
                                                        |
| 526 | - 'order' => 10,  | 
                                                        |
| 527 | - ),  | 
                                                        |
| 528 | - 'list_table' => 'EE_Message_List_Table',  | 
                                                        |
| 529 | - // 'qtips' => array( 'EE_Message_List_Table_Tips' ),  | 
                                                        |
| 530 | - 'require_nonce' => false,  | 
                                                        |
| 531 | - ),  | 
                                                        |
| 532 | - 'global_mtps' => array(  | 
                                                        |
| 533 | - 'nav' => array(  | 
                                                        |
| 534 | -                    'label' => esc_html__('Default Message Templates', 'event_espresso'), | 
                                                        |
| 535 | - 'order' => 20,  | 
                                                        |
| 536 | - ),  | 
                                                        |
| 537 | - 'list_table' => 'Messages_Template_List_Table',  | 
                                                        |
| 538 | - 'help_tabs' => array(  | 
                                                        |
| 539 | - 'messages_overview_help_tab' => array(  | 
                                                        |
| 540 | -                        'title'    => esc_html__('Messages Overview', 'event_espresso'), | 
                                                        |
| 541 | - 'filename' => 'messages_overview',  | 
                                                        |
| 542 | - ),  | 
                                                        |
| 543 | - 'messages_overview_messages_table_column_headings_help_tab' => array(  | 
                                                        |
| 544 | -                        'title'    => esc_html__('Messages Table Column Headings', 'event_espresso'), | 
                                                        |
| 545 | - 'filename' => 'messages_overview_table_column_headings',  | 
                                                        |
| 546 | - ),  | 
                                                        |
| 547 | - 'messages_overview_messages_filters_help_tab' => array(  | 
                                                        |
| 548 | -                        'title'    => esc_html__('Message Filters', 'event_espresso'), | 
                                                        |
| 549 | - 'filename' => 'messages_overview_filters',  | 
                                                        |
| 550 | - ),  | 
                                                        |
| 551 | - 'messages_overview_messages_views_help_tab' => array(  | 
                                                        |
| 552 | -                        'title'    => esc_html__('Message Views', 'event_espresso'), | 
                                                        |
| 553 | - 'filename' => 'messages_overview_views',  | 
                                                        |
| 554 | - ),  | 
                                                        |
| 555 | - 'message_overview_message_types_help_tab' => array(  | 
                                                        |
| 556 | -                        'title'    => esc_html__('Message Types', 'event_espresso'), | 
                                                        |
| 557 | - 'filename' => 'messages_overview_types',  | 
                                                        |
| 558 | - ),  | 
                                                        |
| 559 | - 'messages_overview_messengers_help_tab' => array(  | 
                                                        |
| 560 | -                        'title'    => esc_html__('Messengers', 'event_espresso'), | 
                                                        |
| 561 | - 'filename' => 'messages_overview_messengers',  | 
                                                        |
| 562 | - ),  | 
                                                        |
| 563 | - ),  | 
                                                        |
| 564 | -                'help_tour'     => array('Messages_Overview_Help_Tour'), | 
                                                        |
| 565 | - 'require_nonce' => false,  | 
                                                        |
| 566 | - ),  | 
                                                        |
| 567 | - 'custom_mtps' => array(  | 
                                                        |
| 568 | - 'nav' => array(  | 
                                                        |
| 569 | -                    'label' => esc_html__('Custom Message Templates', 'event_espresso'), | 
                                                        |
| 570 | - 'order' => 30,  | 
                                                        |
| 571 | - ),  | 
                                                        |
| 572 | - 'help_tabs' => array(),  | 
                                                        |
| 573 | - 'help_tour' => array(),  | 
                                                        |
| 574 | - 'require_nonce' => false,  | 
                                                        |
| 575 | - ),  | 
                                                        |
| 576 | - 'add_new_message_template' => array(  | 
                                                        |
| 577 | - 'nav' => array(  | 
                                                        |
| 578 | -                    'label'      => esc_html__('Add New Message Templates', 'event_espresso'), | 
                                                        |
| 579 | - 'order' => 5,  | 
                                                        |
| 580 | - 'persistent' => false,  | 
                                                        |
| 581 | - ),  | 
                                                        |
| 582 | - 'require_nonce' => false,  | 
                                                        |
| 583 | - ),  | 
                                                        |
| 584 | - 'edit_message_template' => array(  | 
                                                        |
| 585 | - 'labels' => array(  | 
                                                        |
| 586 | - 'buttons' => array(  | 
                                                        |
| 587 | -                        'reset' => esc_html__('Reset Templates', 'event_espresso'), | 
                                                        |
| 588 | - ),  | 
                                                        |
| 589 | -                    'publishbox' => esc_html__('Update Actions', 'event_espresso'), | 
                                                        |
| 590 | - ),  | 
                                                        |
| 591 | - 'nav' => array(  | 
                                                        |
| 592 | -                    'label'      => esc_html__('Edit Message Templates', 'event_espresso'), | 
                                                        |
| 593 | - 'order' => 5,  | 
                                                        |
| 594 | - 'persistent' => false,  | 
                                                        |
| 595 | - 'url' => '',  | 
                                                        |
| 596 | - ),  | 
                                                        |
| 597 | -                'metaboxes'     => array('_publish_post_box', '_register_edit_meta_boxes'), | 
                                                        |
| 598 | - 'has_metaboxes' => true,  | 
                                                        |
| 599 | -                'help_tour'     => array('Message_Templates_Edit_Help_Tour'), | 
                                                        |
| 600 | - 'help_tabs' => array(  | 
                                                        |
| 601 | - 'edit_message_template' => array(  | 
                                                        |
| 602 | -                        'title'    => esc_html__('Message Template Editor', 'event_espresso'), | 
                                                        |
| 603 | - 'callback' => 'edit_message_template_help_tab',  | 
                                                        |
| 604 | - ),  | 
                                                        |
| 605 | - 'message_templates_help_tab' => array(  | 
                                                        |
| 606 | -                        'title'    => esc_html__('Message Templates', 'event_espresso'), | 
                                                        |
| 607 | - 'filename' => 'messages_templates',  | 
                                                        |
| 608 | - ),  | 
                                                        |
| 609 | - 'message_template_shortcodes' => array(  | 
                                                        |
| 610 | -                        'title'    => esc_html__('Message Shortcodes', 'event_espresso'), | 
                                                        |
| 611 | - 'callback' => 'message_template_shortcodes_help_tab',  | 
                                                        |
| 612 | - ),  | 
                                                        |
| 613 | - 'message_preview_help_tab' => array(  | 
                                                        |
| 614 | -                        'title'    => esc_html__('Message Preview', 'event_espresso'), | 
                                                        |
| 615 | - 'filename' => 'messages_preview',  | 
                                                        |
| 616 | - ),  | 
                                                        |
| 617 | - 'messages_overview_other_help_tab' => array(  | 
                                                        |
| 618 | -                        'title'    => esc_html__('Messages Other', 'event_espresso'), | 
                                                        |
| 619 | - 'filename' => 'messages_overview_other',  | 
                                                        |
| 620 | - ),  | 
                                                        |
| 621 | - ),  | 
                                                        |
| 622 | - 'require_nonce' => false,  | 
                                                        |
| 623 | - ),  | 
                                                        |
| 624 | - 'display_preview_message' => array(  | 
                                                        |
| 625 | - 'nav' => array(  | 
                                                        |
| 626 | -                    'label'      => esc_html__('Message Preview', 'event_espresso'), | 
                                                        |
| 627 | - 'order' => 5,  | 
                                                        |
| 628 | - 'url' => '',  | 
                                                        |
| 629 | - 'persistent' => false,  | 
                                                        |
| 630 | - ),  | 
                                                        |
| 631 | - 'help_tabs' => array(  | 
                                                        |
| 632 | - 'preview_message' => array(  | 
                                                        |
| 633 | -                        'title'    => esc_html__('About Previews', 'event_espresso'), | 
                                                        |
| 634 | - 'callback' => 'preview_message_help_tab',  | 
                                                        |
| 635 | - ),  | 
                                                        |
| 636 | - ),  | 
                                                        |
| 637 | - 'require_nonce' => false,  | 
                                                        |
| 638 | - ),  | 
                                                        |
| 639 | - 'settings' => array(  | 
                                                        |
| 640 | - 'nav' => array(  | 
                                                        |
| 641 | -                    'label' => esc_html__('Settings', 'event_espresso'), | 
                                                        |
| 642 | - 'order' => 40,  | 
                                                        |
| 643 | - ),  | 
                                                        |
| 644 | -                'metaboxes'     => array('_messages_settings_metaboxes'), | 
                                                        |
| 645 | - 'help_tabs' => array(  | 
                                                        |
| 646 | - 'messages_settings_help_tab' => array(  | 
                                                        |
| 647 | -                        'title'    => esc_html__('Messages Settings', 'event_espresso'), | 
                                                        |
| 648 | - 'filename' => 'messages_settings',  | 
                                                        |
| 649 | - ),  | 
                                                        |
| 650 | - 'messages_settings_message_types_help_tab' => array(  | 
                                                        |
| 651 | -                        'title'    => esc_html__('Activating / Deactivating Message Types', 'event_espresso'), | 
                                                        |
| 652 | - 'filename' => 'messages_settings_message_types',  | 
                                                        |
| 653 | - ),  | 
                                                        |
| 654 | - 'messages_settings_messengers_help_tab' => array(  | 
                                                        |
| 655 | -                        'title'    => esc_html__('Activating / Deactivating Messengers', 'event_espresso'), | 
                                                        |
| 656 | - 'filename' => 'messages_settings_messengers',  | 
                                                        |
| 657 | - ),  | 
                                                        |
| 658 | - ),  | 
                                                        |
| 659 | -                'help_tour'     => array('Messages_Settings_Help_Tour'), | 
                                                        |
| 660 | - 'require_nonce' => false,  | 
                                                        |
| 661 | - ),  | 
                                                        |
| 662 | - );  | 
                                                        |
| 663 | - }  | 
                                                        |
| 664 | -  | 
                                                        |
| 665 | -  | 
                                                        |
| 666 | - protected function _add_screen_options()  | 
                                                        |
| 667 | -    { | 
                                                        |
| 668 | - // todo  | 
                                                        |
| 669 | - }  | 
                                                        |
| 670 | -  | 
                                                        |
| 671 | -  | 
                                                        |
| 672 | - protected function _add_screen_options_global_mtps()  | 
                                                        |
| 673 | -    { | 
                                                        |
| 674 | - /**  | 
                                                        |
| 675 | - * Note: the reason for the value swap here on $this->_admin_page_title is because $this->_per_page_screen_options  | 
                                                        |
| 676 | - * uses the $_admin_page_title property and we want different outputs in the different spots.  | 
                                                        |
| 677 | - */  | 
                                                        |
| 678 | - $page_title = $this->_admin_page_title;  | 
                                                        |
| 679 | -        $this->_admin_page_title = esc_html__('Global Message Templates', 'event_espresso'); | 
                                                        |
| 680 | - $this->_per_page_screen_option();  | 
                                                        |
| 681 | - $this->_admin_page_title = $page_title;  | 
                                                        |
| 682 | - }  | 
                                                        |
| 683 | -  | 
                                                        |
| 684 | -  | 
                                                        |
| 685 | - protected function _add_screen_options_default()  | 
                                                        |
| 686 | -    { | 
                                                        |
| 687 | -        $this->_admin_page_title = esc_html__('Message Activity', 'event_espresso'); | 
                                                        |
| 688 | - $this->_per_page_screen_option();  | 
                                                        |
| 689 | - }  | 
                                                        |
| 690 | -  | 
                                                        |
| 691 | -  | 
                                                        |
| 692 | - // none of the below group are currently used for Messages  | 
                                                        |
| 693 | - protected function _add_feature_pointers()  | 
                                                        |
| 694 | -    { | 
                                                        |
| 695 | - }  | 
                                                        |
| 696 | -  | 
                                                        |
| 697 | - public function admin_init()  | 
                                                        |
| 698 | -    { | 
                                                        |
| 699 | - }  | 
                                                        |
| 700 | -  | 
                                                        |
| 701 | - public function admin_notices()  | 
                                                        |
| 702 | -    { | 
                                                        |
| 703 | - }  | 
                                                        |
| 704 | -  | 
                                                        |
| 705 | - public function admin_footer_scripts()  | 
                                                        |
| 706 | -    { | 
                                                        |
| 707 | - }  | 
                                                        |
| 708 | -  | 
                                                        |
| 709 | -  | 
                                                        |
| 710 | - public function messages_help_tab()  | 
                                                        |
| 711 | -    { | 
                                                        |
| 712 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_help_tab.template.php');  | 
                                                        |
| 713 | - }  | 
                                                        |
| 714 | -  | 
                                                        |
| 715 | -  | 
                                                        |
| 716 | - public function messengers_help_tab()  | 
                                                        |
| 717 | -    { | 
                                                        |
| 718 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messenger_help_tab.template.php');  | 
                                                        |
| 719 | - }  | 
                                                        |
| 720 | -  | 
                                                        |
| 721 | -  | 
                                                        |
| 722 | - public function message_types_help_tab()  | 
                                                        |
| 723 | -    { | 
                                                        |
| 724 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_type_help_tab.template.php');  | 
                                                        |
| 725 | - }  | 
                                                        |
| 726 | -  | 
                                                        |
| 727 | -  | 
                                                        |
| 728 | - public function messages_overview_help_tab()  | 
                                                        |
| 729 | -    { | 
                                                        |
| 730 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_overview_help_tab.template.php');  | 
                                                        |
| 731 | - }  | 
                                                        |
| 732 | -  | 
                                                        |
| 733 | -  | 
                                                        |
| 734 | - public function message_templates_help_tab()  | 
                                                        |
| 735 | -    { | 
                                                        |
| 736 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_templates_help_tab.template.php');  | 
                                                        |
| 737 | - }  | 
                                                        |
| 738 | -  | 
                                                        |
| 739 | -  | 
                                                        |
| 740 | - public function edit_message_template_help_tab()  | 
                                                        |
| 741 | -    { | 
                                                        |
| 742 | - $args['img1'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/editor.png' . '" alt="'  | 
                                                        |
| 743 | -                        . esc_attr__('Editor Title', 'event_espresso') | 
                                                        |
| 744 | - . '" />';  | 
                                                        |
| 745 | - $args['img2'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/switch-context.png' . '" alt="'  | 
                                                        |
| 746 | -                        . esc_attr__('Context Switcher and Preview', 'event_espresso') | 
                                                        |
| 747 | - . '" />';  | 
                                                        |
| 748 | - $args['img3'] = '<img class="left" src="' . EE_MSG_ASSETS_URL . 'images/form-fields.png' . '" alt="'  | 
                                                        |
| 749 | -                        . esc_attr__('Message Template Form Fields', 'event_espresso') | 
                                                        |
| 750 | - . '" />';  | 
                                                        |
| 751 | - $args['img4'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/shortcodes-metabox.png' . '" alt="'  | 
                                                        |
| 752 | -                        . esc_attr__('Shortcodes Metabox', 'event_espresso') | 
                                                        |
| 753 | - . '" />';  | 
                                                        |
| 754 | - $args['img5'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/publish-meta-box.png' . '" alt="'  | 
                                                        |
| 755 | -                        . esc_attr__('Publish Metabox', 'event_espresso') | 
                                                        |
| 756 | - . '" />';  | 
                                                        |
| 757 | - EEH_Template::display_template(  | 
                                                        |
| 758 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_templates_editor_help_tab.template.php',  | 
                                                        |
| 759 | - $args  | 
                                                        |
| 760 | - );  | 
                                                        |
| 761 | - }  | 
                                                        |
| 762 | -  | 
                                                        |
| 763 | -  | 
                                                        |
| 764 | - public function message_template_shortcodes_help_tab()  | 
                                                        |
| 765 | -    { | 
                                                        |
| 766 | - $this->_set_shortcodes();  | 
                                                        |
| 767 | - $args['shortcodes'] = $this->_shortcodes;  | 
                                                        |
| 768 | - EEH_Template::display_template(  | 
                                                        |
| 769 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_shortcodes_help_tab.template.php',  | 
                                                        |
| 770 | - $args  | 
                                                        |
| 771 | - );  | 
                                                        |
| 772 | - }  | 
                                                        |
| 773 | -  | 
                                                        |
| 774 | -  | 
                                                        |
| 775 | - public function preview_message_help_tab()  | 
                                                        |
| 776 | -    { | 
                                                        |
| 777 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_preview_help_tab.template.php');  | 
                                                        |
| 778 | - }  | 
                                                        |
| 779 | -  | 
                                                        |
| 780 | -  | 
                                                        |
| 781 | - public function settings_help_tab()  | 
                                                        |
| 782 | -    { | 
                                                        |
| 783 | - $args['img1'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png'  | 
                                                        |
| 784 | -                        . '" alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 785 | - $args['img2'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'  | 
                                                        |
| 786 | -                        . '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 787 | - $args['img3'] = '<div class="switch">'  | 
                                                        |
| 788 | - . '<input class="ee-on-off-toggle ee-toggle-round-flat"'  | 
                                                        |
| 789 | - . ' type="checkbox" checked="checked">'  | 
                                                        |
| 790 | - . '<label for="ee-on-off-toggle-on"></label>'  | 
                                                        |
| 791 | - . '</div>';  | 
                                                        |
| 792 | - $args['img4'] = '<div class="switch">'  | 
                                                        |
| 793 | - . '<input class="ee-on-off-toggle ee-toggle-round-flat"'  | 
                                                        |
| 794 | - . ' type="checkbox">'  | 
                                                        |
| 795 | - . '<label for="ee-on-off-toggle-on"></label>'  | 
                                                        |
| 796 | - . '</div>';  | 
                                                        |
| 797 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_settings_help_tab.template.php', $args);  | 
                                                        |
| 798 | - }  | 
                                                        |
| 799 | -  | 
                                                        |
| 800 | -  | 
                                                        |
| 801 | - public function load_scripts_styles()  | 
                                                        |
| 802 | -    { | 
                                                        |
| 803 | -        wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL . 'ee_message_admin.css', EVENT_ESPRESSO_VERSION); | 
                                                        |
| 804 | -        wp_enqueue_style('espresso_ee_msg'); | 
                                                        |
| 805 | -  | 
                                                        |
| 806 | - wp_register_script(  | 
                                                        |
| 807 | - 'ee-messages-settings',  | 
                                                        |
| 808 | - EE_MSG_ASSETS_URL . 'ee-messages-settings.js',  | 
                                                        |
| 809 | -            array('jquery-ui-droppable', 'ee-serialize-full-array'), | 
                                                        |
| 810 | - EVENT_ESPRESSO_VERSION,  | 
                                                        |
| 811 | - true  | 
                                                        |
| 812 | - );  | 
                                                        |
| 813 | - wp_register_script(  | 
                                                        |
| 814 | - 'ee-msg-list-table-js',  | 
                                                        |
| 815 | - EE_MSG_ASSETS_URL . 'ee_message_admin_list_table.js',  | 
                                                        |
| 816 | -            array('ee-dialog'), | 
                                                        |
| 817 | - EVENT_ESPRESSO_VERSION  | 
                                                        |
| 818 | - );  | 
                                                        |
| 819 | - }  | 
                                                        |
| 820 | -  | 
                                                        |
| 821 | -  | 
                                                        |
| 822 | - public function load_scripts_styles_default()  | 
                                                        |
| 823 | -    { | 
                                                        |
| 824 | -        wp_enqueue_script('ee-msg-list-table-js'); | 
                                                        |
| 825 | - }  | 
                                                        |
| 826 | -  | 
                                                        |
| 827 | -  | 
                                                        |
| 828 | - public function wp_editor_css($mce_css)  | 
                                                        |
| 829 | -    { | 
                                                        |
| 830 | - // if we're on the edit_message_template route  | 
                                                        |
| 831 | -        if ($this->_req_action === 'edit_message_template' && $this->_active_messenger instanceof EE_messenger) { | 
                                                        |
| 832 | - $message_type_name = $this->_active_message_type_name;  | 
                                                        |
| 833 | -  | 
                                                        |
| 834 | - // we're going to REPLACE the existing mce css  | 
                                                        |
| 835 | - // we need to get the css file location from the active messenger  | 
                                                        |
| 836 | - $mce_css = $this->_active_messenger->get_variation(  | 
                                                        |
| 837 | - $this->_template_pack,  | 
                                                        |
| 838 | - $message_type_name,  | 
                                                        |
| 839 | - true,  | 
                                                        |
| 840 | - 'wpeditor',  | 
                                                        |
| 841 | - $this->_variation  | 
                                                        |
| 842 | - );  | 
                                                        |
| 843 | - }  | 
                                                        |
| 844 | -  | 
                                                        |
| 845 | - return $mce_css;  | 
                                                        |
| 846 | - }  | 
                                                        |
| 847 | -  | 
                                                        |
| 848 | -  | 
                                                        |
| 849 | - public function load_scripts_styles_edit_message_template()  | 
                                                        |
| 850 | -    { | 
                                                        |
| 851 | -  | 
                                                        |
| 852 | - $this->_set_shortcodes();  | 
                                                        |
| 853 | -  | 
                                                        |
| 854 | - EE_Registry::$i18n_js_strings['confirm_default_reset'] = sprintf(  | 
                                                        |
| 855 | - esc_html__(  | 
                                                        |
| 856 | - 'Are you sure you want to reset the %s %s message templates? Remember continuing will reset the templates for all contexts in this messenger and message type group.',  | 
                                                        |
| 857 | - 'event_espresso'  | 
                                                        |
| 858 | - ),  | 
                                                        |
| 859 | - $this->_message_template_group->messenger_obj()->label['singular'],  | 
                                                        |
| 860 | - $this->_message_template_group->message_type_obj()->label['singular']  | 
                                                        |
| 861 | - );  | 
                                                        |
| 862 | - EE_Registry::$i18n_js_strings['confirm_switch_template_pack'] = esc_html__(  | 
                                                        |
| 863 | - 'Switching the template pack for a messages template will reset the content for the template so the new layout is loaded. Any custom content in the existing template will be lost. Are you sure you wish to do this?',  | 
                                                        |
| 864 | - 'event_espresso'  | 
                                                        |
| 865 | - );  | 
                                                        |
| 866 | - EE_Registry::$i18n_js_strings['server_error'] = esc_html__(  | 
                                                        |
| 867 | - 'An unknown error occurred on the server while attempting to process your request. Please refresh the page and try again or contact support.',  | 
                                                        |
| 868 | - 'event_espresso'  | 
                                                        |
| 869 | - );  | 
                                                        |
| 870 | -  | 
                                                        |
| 871 | - wp_register_script(  | 
                                                        |
| 872 | - 'ee_msgs_edit_js',  | 
                                                        |
| 873 | - EE_MSG_ASSETS_URL . 'ee_message_editor.js',  | 
                                                        |
| 874 | -            array('jquery'), | 
                                                        |
| 875 | - EVENT_ESPRESSO_VERSION  | 
                                                        |
| 876 | - );  | 
                                                        |
| 877 | -  | 
                                                        |
| 878 | -        wp_enqueue_script('ee_admin_js'); | 
                                                        |
| 879 | -        wp_enqueue_script('ee_msgs_edit_js'); | 
                                                        |
| 880 | -  | 
                                                        |
| 881 | - // add in special css for tiny_mce  | 
                                                        |
| 882 | -        add_filter('mce_css', array($this, 'wp_editor_css')); | 
                                                        |
| 883 | - }  | 
                                                        |
| 884 | -  | 
                                                        |
| 885 | -  | 
                                                        |
| 886 | - public function load_scripts_styles_display_preview_message()  | 
                                                        |
| 887 | -    { | 
                                                        |
| 888 | -  | 
                                                        |
| 889 | - $this->_set_message_template_group();  | 
                                                        |
| 890 | -  | 
                                                        |
| 891 | -        if (isset($this->_req_data['messenger'])) { | 
                                                        |
| 892 | - $this->_active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 893 | - $this->_req_data['messenger']  | 
                                                        |
| 894 | - );  | 
                                                        |
| 895 | - }  | 
                                                        |
| 896 | -  | 
                                                        |
| 897 | - $message_type_name = isset($this->_req_data['message_type']) ? $this->_req_data['message_type'] : '';  | 
                                                        |
| 898 | -  | 
                                                        |
| 899 | -  | 
                                                        |
| 900 | - wp_enqueue_style(  | 
                                                        |
| 901 | - 'espresso_preview_css',  | 
                                                        |
| 902 | - $this->_active_messenger->get_variation(  | 
                                                        |
| 903 | - $this->_template_pack,  | 
                                                        |
| 904 | - $message_type_name,  | 
                                                        |
| 905 | - true,  | 
                                                        |
| 906 | - 'preview',  | 
                                                        |
| 907 | - $this->_variation  | 
                                                        |
| 908 | - )  | 
                                                        |
| 909 | - );  | 
                                                        |
| 910 | - }  | 
                                                        |
| 911 | -  | 
                                                        |
| 912 | -  | 
                                                        |
| 913 | - public function load_scripts_styles_settings()  | 
                                                        |
| 914 | -    { | 
                                                        |
| 915 | - wp_register_style(  | 
                                                        |
| 916 | - 'ee-message-settings',  | 
                                                        |
| 917 | - EE_MSG_ASSETS_URL . 'ee_message_settings.css',  | 
                                                        |
| 918 | - array(),  | 
                                                        |
| 919 | - EVENT_ESPRESSO_VERSION  | 
                                                        |
| 920 | - );  | 
                                                        |
| 921 | -        wp_enqueue_style('ee-text-links'); | 
                                                        |
| 922 | -        wp_enqueue_style('ee-message-settings'); | 
                                                        |
| 923 | -        wp_enqueue_script('ee-messages-settings'); | 
                                                        |
| 924 | - }  | 
                                                        |
| 925 | -  | 
                                                        |
| 926 | -  | 
                                                        |
| 927 | - /**  | 
                                                        |
| 928 | - * set views array for List Table  | 
                                                        |
| 929 | - */  | 
                                                        |
| 930 | - public function _set_list_table_views_global_mtps()  | 
                                                        |
| 931 | -    { | 
                                                        |
| 932 | - $this->_views = array(  | 
                                                        |
| 933 | - 'in_use' => array(  | 
                                                        |
| 934 | - 'slug' => 'in_use',  | 
                                                        |
| 935 | -                'label' => esc_html__('In Use', 'event_espresso'), | 
                                                        |
| 936 | - 'count' => 0,  | 
                                                        |
| 937 | - ),  | 
                                                        |
| 938 | - );  | 
                                                        |
| 939 | - }  | 
                                                        |
| 940 | -  | 
                                                        |
| 941 | -  | 
                                                        |
| 942 | - /**  | 
                                                        |
| 943 | - * Set views array for the Custom Template List Table  | 
                                                        |
| 944 | - */  | 
                                                        |
| 945 | - public function _set_list_table_views_custom_mtps()  | 
                                                        |
| 946 | -    { | 
                                                        |
| 947 | - $this->_set_list_table_views_global_mtps();  | 
                                                        |
| 948 | - $this->_views['in_use']['bulk_action'] = array(  | 
                                                        |
| 949 | -            'trash_message_template' => esc_html__('Move to Trash', 'event_espresso'), | 
                                                        |
| 950 | - );  | 
                                                        |
| 951 | - }  | 
                                                        |
| 952 | -  | 
                                                        |
| 953 | -  | 
                                                        |
| 954 | - /**  | 
                                                        |
| 955 | - * set views array for message queue list table  | 
                                                        |
| 956 | - *  | 
                                                        |
| 957 | - * @throws InvalidDataTypeException  | 
                                                        |
| 958 | - * @throws InvalidInterfaceException  | 
                                                        |
| 959 | - * @throws InvalidArgumentException  | 
                                                        |
| 960 | - * @throws EE_Error  | 
                                                        |
| 961 | - * @throws ReflectionException  | 
                                                        |
| 962 | - */  | 
                                                        |
| 963 | - public function _set_list_table_views_default()  | 
                                                        |
| 964 | -    { | 
                                                        |
| 965 | -        EE_Registry::instance()->load_helper('Template'); | 
                                                        |
| 966 | -  | 
                                                        |
| 967 | - $common_bulk_actions = EE_Registry::instance()->CAP->current_user_can(  | 
                                                        |
| 968 | - 'ee_send_message',  | 
                                                        |
| 969 | - 'message_list_table_bulk_actions'  | 
                                                        |
| 970 | - )  | 
                                                        |
| 971 | - ? array(  | 
                                                        |
| 972 | -                'generate_now'          => esc_html__('Generate Now', 'event_espresso'), | 
                                                        |
| 973 | -                'generate_and_send_now' => esc_html__('Generate and Send Now', 'event_espresso'), | 
                                                        |
| 974 | -                'queue_for_resending'   => esc_html__('Queue for Resending', 'event_espresso'), | 
                                                        |
| 975 | -                'send_now'              => esc_html__('Send Now', 'event_espresso'), | 
                                                        |
| 976 | - )  | 
                                                        |
| 977 | - : array();  | 
                                                        |
| 978 | -  | 
                                                        |
| 979 | - $delete_bulk_action = EE_Registry::instance()->CAP->current_user_can(  | 
                                                        |
| 980 | - 'ee_delete_messages',  | 
                                                        |
| 981 | - 'message_list_table_bulk_actions'  | 
                                                        |
| 982 | - )  | 
                                                        |
| 983 | -            ? array('delete_ee_messages' => esc_html__('Delete Messages', 'event_espresso')) | 
                                                        |
| 984 | - : array();  | 
                                                        |
| 985 | -  | 
                                                        |
| 986 | -  | 
                                                        |
| 987 | - $this->_views = array(  | 
                                                        |
| 988 | - 'all' => array(  | 
                                                        |
| 989 | - 'slug' => 'all',  | 
                                                        |
| 990 | -                'label'       => esc_html__('All', 'event_espresso'), | 
                                                        |
| 991 | - 'count' => 0,  | 
                                                        |
| 992 | - 'bulk_action' => array_merge($common_bulk_actions, $delete_bulk_action),  | 
                                                        |
| 993 | - ),  | 
                                                        |
| 994 | - );  | 
                                                        |
| 995 | -  | 
                                                        |
| 996 | -  | 
                                                        |
| 997 | -        foreach (EEM_Message::instance()->all_statuses() as $status) { | 
                                                        |
| 998 | -            if ($status === EEM_Message::status_debug_only && ! EEM_Message::debug()) { | 
                                                        |
| 999 | - continue;  | 
                                                        |
| 1000 | - }  | 
                                                        |
| 1001 | - $status_bulk_actions = $common_bulk_actions;  | 
                                                        |
| 1002 | - // unset bulk actions not applying to status  | 
                                                        |
| 1003 | -            if (! empty($status_bulk_actions)) { | 
                                                        |
| 1004 | -                switch ($status) { | 
                                                        |
| 1005 | - case EEM_Message::status_idle:  | 
                                                        |
| 1006 | - case EEM_Message::status_resend:  | 
                                                        |
| 1007 | - $status_bulk_actions['send_now'] = $common_bulk_actions['send_now'];  | 
                                                        |
| 1008 | - break;  | 
                                                        |
| 1009 | -  | 
                                                        |
| 1010 | - case EEM_Message::status_failed:  | 
                                                        |
| 1011 | - case EEM_Message::status_debug_only:  | 
                                                        |
| 1012 | - case EEM_Message::status_messenger_executing:  | 
                                                        |
| 1013 | - $status_bulk_actions = array();  | 
                                                        |
| 1014 | - break;  | 
                                                        |
| 1015 | -  | 
                                                        |
| 1016 | - case EEM_Message::status_incomplete:  | 
                                                        |
| 1017 | - unset($status_bulk_actions['queue_for_resending'], $status_bulk_actions['send_now']);  | 
                                                        |
| 1018 | - break;  | 
                                                        |
| 1019 | -  | 
                                                        |
| 1020 | - case EEM_Message::status_retry:  | 
                                                        |
| 1021 | - case EEM_Message::status_sent:  | 
                                                        |
| 1022 | - unset($status_bulk_actions['generate_now'], $status_bulk_actions['generate_and_send_now']);  | 
                                                        |
| 1023 | - break;  | 
                                                        |
| 1024 | - }  | 
                                                        |
| 1025 | - }  | 
                                                        |
| 1026 | -  | 
                                                        |
| 1027 | - // skip adding messenger executing status to views because it will be included with the Failed view.  | 
                                                        |
| 1028 | -            if ($status === EEM_Message::status_messenger_executing) { | 
                                                        |
| 1029 | - continue;  | 
                                                        |
| 1030 | - }  | 
                                                        |
| 1031 | -  | 
                                                        |
| 1032 | - $this->_views[ strtolower($status) ] = array(  | 
                                                        |
| 1033 | - 'slug' => strtolower($status),  | 
                                                        |
| 1034 | - 'label' => EEH_Template::pretty_status($status, false, 'sentence'),  | 
                                                        |
| 1035 | - 'count' => 0,  | 
                                                        |
| 1036 | - 'bulk_action' => array_merge($status_bulk_actions, $delete_bulk_action),  | 
                                                        |
| 1037 | - );  | 
                                                        |
| 1038 | - }  | 
                                                        |
| 1039 | - }  | 
                                                        |
| 1040 | -  | 
                                                        |
| 1041 | -  | 
                                                        |
| 1042 | - protected function _ee_default_messages_overview_list_table()  | 
                                                        |
| 1043 | -    { | 
                                                        |
| 1044 | -        $this->_admin_page_title = esc_html__('Default Message Templates', 'event_espresso'); | 
                                                        |
| 1045 | - $this->display_admin_list_table_page_with_no_sidebar();  | 
                                                        |
| 1046 | - }  | 
                                                        |
| 1047 | -  | 
                                                        |
| 1048 | -  | 
                                                        |
| 1049 | - protected function _message_queue_list_table()  | 
                                                        |
| 1050 | -    { | 
                                                        |
| 1051 | -        $this->_search_btn_label = esc_html__('Message Activity', 'event_espresso'); | 
                                                        |
| 1052 | - $this->_template_args['per_column'] = 6;  | 
                                                        |
| 1053 | - $this->_template_args['after_list_table'] = $this->_display_legend($this->_message_legend_items());  | 
                                                        |
| 1054 | - $this->_template_args['before_list_table'] = '<h3>'  | 
                                                        |
| 1055 | - . EEM_Message::instance()->get_pretty_label_for_results()  | 
                                                        |
| 1056 | - . '</h3>';  | 
                                                        |
| 1057 | - $this->display_admin_list_table_page_with_no_sidebar();  | 
                                                        |
| 1058 | - }  | 
                                                        |
| 1059 | -  | 
                                                        |
| 1060 | -  | 
                                                        |
| 1061 | - protected function _message_legend_items()  | 
                                                        |
| 1062 | -    { | 
                                                        |
| 1063 | -  | 
                                                        |
| 1064 | - $action_css_classes = EEH_MSG_Template::get_message_action_icons();  | 
                                                        |
| 1065 | - $action_items = array();  | 
                                                        |
| 1066 | -  | 
                                                        |
| 1067 | -        foreach ($action_css_classes as $action_item => $action_details) { | 
                                                        |
| 1068 | -            if ($action_item === 'see_notifications_for') { | 
                                                        |
| 1069 | - continue;  | 
                                                        |
| 1070 | - }  | 
                                                        |
| 1071 | - $action_items[ $action_item ] = array(  | 
                                                        |
| 1072 | - 'class' => $action_details['css_class'],  | 
                                                        |
| 1073 | - 'desc' => $action_details['label'],  | 
                                                        |
| 1074 | - );  | 
                                                        |
| 1075 | - }  | 
                                                        |
| 1076 | -  | 
                                                        |
| 1077 | - /** @type array $status_items status legend setup */  | 
                                                        |
| 1078 | - $status_items = array(  | 
                                                        |
| 1079 | - 'sent_status' => array(  | 
                                                        |
| 1080 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_sent,  | 
                                                        |
| 1081 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_sent, false, 'sentence'),  | 
                                                        |
| 1082 | - ),  | 
                                                        |
| 1083 | - 'idle_status' => array(  | 
                                                        |
| 1084 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_idle,  | 
                                                        |
| 1085 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_idle, false, 'sentence'),  | 
                                                        |
| 1086 | - ),  | 
                                                        |
| 1087 | - 'failed_status' => array(  | 
                                                        |
| 1088 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_failed,  | 
                                                        |
| 1089 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_failed, false, 'sentence'),  | 
                                                        |
| 1090 | - ),  | 
                                                        |
| 1091 | - 'messenger_executing_status' => array(  | 
                                                        |
| 1092 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_messenger_executing,  | 
                                                        |
| 1093 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_messenger_executing, false, 'sentence'),  | 
                                                        |
| 1094 | - ),  | 
                                                        |
| 1095 | - 'resend_status' => array(  | 
                                                        |
| 1096 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_resend,  | 
                                                        |
| 1097 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_resend, false, 'sentence'),  | 
                                                        |
| 1098 | - ),  | 
                                                        |
| 1099 | - 'incomplete_status' => array(  | 
                                                        |
| 1100 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_incomplete,  | 
                                                        |
| 1101 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_incomplete, false, 'sentence'),  | 
                                                        |
| 1102 | - ),  | 
                                                        |
| 1103 | - 'retry_status' => array(  | 
                                                        |
| 1104 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_retry,  | 
                                                        |
| 1105 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_retry, false, 'sentence'),  | 
                                                        |
| 1106 | - ),  | 
                                                        |
| 1107 | - );  | 
                                                        |
| 1108 | -        if (EEM_Message::debug()) { | 
                                                        |
| 1109 | - $status_items['debug_only_status'] = array(  | 
                                                        |
| 1110 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_debug_only,  | 
                                                        |
| 1111 | - 'desc' => EEH_Template::pretty_status(EEM_Message::status_debug_only, false, 'sentence'),  | 
                                                        |
| 1112 | - );  | 
                                                        |
| 1113 | - }  | 
                                                        |
| 1114 | -  | 
                                                        |
| 1115 | - return array_merge($action_items, $status_items);  | 
                                                        |
| 1116 | - }  | 
                                                        |
| 1117 | -  | 
                                                        |
| 1118 | -  | 
                                                        |
| 1119 | - protected function _custom_mtps_preview()  | 
                                                        |
| 1120 | -    { | 
                                                        |
| 1121 | -        $this->_admin_page_title = esc_html__('Custom Message Templates (Preview)', 'event_espresso'); | 
                                                        |
| 1122 | - $this->_template_args['preview_img'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/custom_mtps_preview.png"'  | 
                                                        |
| 1123 | - . ' alt="' . esc_attr__(  | 
                                                        |
| 1124 | - 'Preview Custom Message Templates screenshot',  | 
                                                        |
| 1125 | - 'event_espresso'  | 
                                                        |
| 1126 | - ) . '" />';  | 
                                                        |
| 1127 | - $this->_template_args['preview_text'] = '<strong>'  | 
                                                        |
| 1128 | - . esc_html__(  | 
                                                        |
| 1129 | - 'Custom Message Templates is a feature that is only available in the premium version of Event Espresso 4 which is available with a support license purchase on EventEspresso.com. With the Custom Message Templates feature, you are able to create custom message templates and assign them on a per-event basis.',  | 
                                                        |
| 1130 | - 'event_espresso'  | 
                                                        |
| 1131 | - )  | 
                                                        |
| 1132 | - . '</strong>';  | 
                                                        |
| 1133 | -  | 
                                                        |
| 1134 | -        $this->display_admin_caf_preview_page('custom_message_types', false); | 
                                                        |
| 1135 | - }  | 
                                                        |
| 1136 | -  | 
                                                        |
| 1137 | -  | 
                                                        |
| 1138 | - /**  | 
                                                        |
| 1139 | - * get_message_templates  | 
                                                        |
| 1140 | - * This gets all the message templates for listing on the overview list.  | 
                                                        |
| 1141 | - *  | 
                                                        |
| 1142 | - * @access public  | 
                                                        |
| 1143 | - * @param int $perpage the amount of templates groups to show per page  | 
                                                        |
| 1144 | - * @param string $type the current _view we're getting templates for  | 
                                                        |
| 1145 | - * @param bool $count return count?  | 
                                                        |
| 1146 | - * @param bool $all disregard any paging info (get all data);  | 
                                                        |
| 1147 | - * @param bool $global whether to return just global (true) or custom templates (false)  | 
                                                        |
| 1148 | - * @return array  | 
                                                        |
| 1149 | - * @throws EE_Error  | 
                                                        |
| 1150 | - * @throws InvalidArgumentException  | 
                                                        |
| 1151 | - * @throws InvalidDataTypeException  | 
                                                        |
| 1152 | - * @throws InvalidInterfaceException  | 
                                                        |
| 1153 | - */  | 
                                                        |
| 1154 | - public function get_message_templates(  | 
                                                        |
| 1155 | - $perpage = 10,  | 
                                                        |
| 1156 | - $type = 'in_use',  | 
                                                        |
| 1157 | - $count = false,  | 
                                                        |
| 1158 | - $all = false,  | 
                                                        |
| 1159 | - $global = true  | 
                                                        |
| 1160 | -    ) { | 
                                                        |
| 1161 | -  | 
                                                        |
| 1162 | - $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 1163 | -  | 
                                                        |
| 1164 | - $this->_req_data['orderby'] = empty($this->_req_data['orderby']) ? 'GRP_ID' : $this->_req_data['orderby'];  | 
                                                        |
| 1165 | - $orderby = $this->_req_data['orderby'];  | 
                                                        |
| 1166 | -  | 
                                                        |
| 1167 | - $order = (isset($this->_req_data['order']) && ! empty($this->_req_data['order']))  | 
                                                        |
| 1168 | - ? $this->_req_data['order']  | 
                                                        |
| 1169 | - : 'ASC';  | 
                                                        |
| 1170 | -  | 
                                                        |
| 1171 | - $current_page = isset($this->_req_data['paged']) && ! empty($this->_req_data['paged'])  | 
                                                        |
| 1172 | - ? $this->_req_data['paged']  | 
                                                        |
| 1173 | - : 1;  | 
                                                        |
| 1174 | - $per_page = isset($this->_req_data['perpage']) && ! empty($this->_req_data['perpage'])  | 
                                                        |
| 1175 | - ? $this->_req_data['perpage']  | 
                                                        |
| 1176 | - : $perpage;  | 
                                                        |
| 1177 | -  | 
                                                        |
| 1178 | - $offset = ($current_page - 1) * $per_page;  | 
                                                        |
| 1179 | - $limit = $all ? null : array($offset, $per_page);  | 
                                                        |
| 1180 | -  | 
                                                        |
| 1181 | -  | 
                                                        |
| 1182 | - // options will match what is in the _views array property  | 
                                                        |
| 1183 | -        switch ($type) { | 
                                                        |
| 1184 | - case 'in_use':  | 
                                                        |
| 1185 | - $templates = $MTP->get_all_active_message_templates($orderby, $order, $limit, $count, $global, true);  | 
                                                        |
| 1186 | - break;  | 
                                                        |
| 1187 | - default:  | 
                                                        |
| 1188 | - $templates = $MTP->get_all_trashed_grouped_message_templates($orderby, $order, $limit, $count, $global);  | 
                                                        |
| 1189 | - }  | 
                                                        |
| 1190 | -  | 
                                                        |
| 1191 | - return $templates;  | 
                                                        |
| 1192 | - }  | 
                                                        |
| 1193 | -  | 
                                                        |
| 1194 | -  | 
                                                        |
| 1195 | - /**  | 
                                                        |
| 1196 | - * filters etc might need a list of installed message_types  | 
                                                        |
| 1197 | - *  | 
                                                        |
| 1198 | - * @return array an array of message type objects  | 
                                                        |
| 1199 | - */  | 
                                                        |
| 1200 | - public function get_installed_message_types()  | 
                                                        |
| 1201 | -    { | 
                                                        |
| 1202 | - $installed_message_types = $this->_message_resource_manager->installed_message_types();  | 
                                                        |
| 1203 | - $installed = array();  | 
                                                        |
| 1204 | -  | 
                                                        |
| 1205 | -        foreach ($installed_message_types as $message_type) { | 
                                                        |
| 1206 | - $installed[ $message_type->name ] = $message_type;  | 
                                                        |
| 1207 | - }  | 
                                                        |
| 1208 | -  | 
                                                        |
| 1209 | - return $installed;  | 
                                                        |
| 1210 | - }  | 
                                                        |
| 1211 | -  | 
                                                        |
| 1212 | -  | 
                                                        |
| 1213 | - /**  | 
                                                        |
| 1214 | - * _add_message_template  | 
                                                        |
| 1215 | - *  | 
                                                        |
| 1216 | - * This is used when creating a custom template. All Custom Templates start based off another template.  | 
                                                        |
| 1217 | - *  | 
                                                        |
| 1218 | - * @param string $message_type  | 
                                                        |
| 1219 | - * @param string $messenger  | 
                                                        |
| 1220 | - * @param string $GRP_ID  | 
                                                        |
| 1221 | - *  | 
                                                        |
| 1222 | - * @throws EE_error  | 
                                                        |
| 1223 | - */  | 
                                                        |
| 1224 | - protected function _add_message_template($message_type = '', $messenger = '', $GRP_ID = '')  | 
                                                        |
| 1225 | -    { | 
                                                        |
| 1226 | - // set values override any request data  | 
                                                        |
| 1227 | - $message_type = ! empty($message_type) ? $message_type : '';  | 
                                                        |
| 1228 | - $message_type = empty($message_type) && ! empty($this->_req_data['message_type'])  | 
                                                        |
| 1229 | - ? $this->_req_data['message_type']  | 
                                                        |
| 1230 | - : $message_type;  | 
                                                        |
| 1231 | -  | 
                                                        |
| 1232 | - $messenger = ! empty($messenger) ? $messenger : '';  | 
                                                        |
| 1233 | - $messenger = empty($messenger) && ! empty($this->_req_data['messenger'])  | 
                                                        |
| 1234 | - ? $this->_req_data['messenger']  | 
                                                        |
| 1235 | - : $messenger;  | 
                                                        |
| 1236 | -  | 
                                                        |
| 1237 | - $GRP_ID = ! empty($GRP_ID) ? $GRP_ID : '';  | 
                                                        |
| 1238 | - $GRP_ID = empty($GRP_ID) && ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : $GRP_ID;  | 
                                                        |
| 1239 | -  | 
                                                        |
| 1240 | - // we need messenger and message type. They should be coming from the event editor. If not here then return error  | 
                                                        |
| 1241 | -        if (empty($message_type) || empty($messenger)) { | 
                                                        |
| 1242 | - throw new EE_Error(  | 
                                                        |
| 1243 | - esc_html__(  | 
                                                        |
| 1244 | - 'Sorry, but we can\'t create new templates because we\'re missing the messenger or message type',  | 
                                                        |
| 1245 | - 'event_espresso'  | 
                                                        |
| 1246 | - )  | 
                                                        |
| 1247 | - );  | 
                                                        |
| 1248 | - }  | 
                                                        |
| 1249 | -  | 
                                                        |
| 1250 | - // we need the GRP_ID for the template being used as the base for the new template  | 
                                                        |
| 1251 | -        if (empty($GRP_ID)) { | 
                                                        |
| 1252 | - throw new EE_Error(  | 
                                                        |
| 1253 | - esc_html__(  | 
                                                        |
| 1254 | - 'In order to create a custom message template the GRP_ID of the template being used as a base is needed',  | 
                                                        |
| 1255 | - 'event_espresso'  | 
                                                        |
| 1256 | - )  | 
                                                        |
| 1257 | - );  | 
                                                        |
| 1258 | - }  | 
                                                        |
| 1259 | -  | 
                                                        |
| 1260 | - // let's just make sure the template gets generated!  | 
                                                        |
| 1261 | -  | 
                                                        |
| 1262 | - // we need to reassign some variables for what the insert is expecting  | 
                                                        |
| 1263 | - $this->_req_data['MTP_messenger'] = $messenger;  | 
                                                        |
| 1264 | - $this->_req_data['MTP_message_type'] = $message_type;  | 
                                                        |
| 1265 | - $this->_req_data['GRP_ID'] = $GRP_ID;  | 
                                                        |
| 1266 | - $this->_insert_or_update_message_template(true);  | 
                                                        |
| 1267 | - }  | 
                                                        |
| 1268 | -  | 
                                                        |
| 1269 | -  | 
                                                        |
| 1270 | - /**  | 
                                                        |
| 1271 | - * public wrapper for the _add_message_template method  | 
                                                        |
| 1272 | - *  | 
                                                        |
| 1273 | - * @param string $message_type message type slug  | 
                                                        |
| 1274 | - * @param string $messenger messenger slug  | 
                                                        |
| 1275 | - * @param int $GRP_ID GRP_ID for the related message template group this new template will be based  | 
                                                        |
| 1276 | - * off of.  | 
                                                        |
| 1277 | - * @throws EE_error  | 
                                                        |
| 1278 | - */  | 
                                                        |
| 1279 | - public function add_message_template($message_type, $messenger, $GRP_ID)  | 
                                                        |
| 1280 | -    { | 
                                                        |
| 1281 | - $this->_add_message_template($message_type, $messenger, $GRP_ID);  | 
                                                        |
| 1282 | - }  | 
                                                        |
| 1283 | -  | 
                                                        |
| 1284 | -  | 
                                                        |
| 1285 | - /**  | 
                                                        |
| 1286 | - * _edit_message_template  | 
                                                        |
| 1287 | - *  | 
                                                        |
| 1288 | - * @access protected  | 
                                                        |
| 1289 | - * @return void  | 
                                                        |
| 1290 | - * @throws InvalidIdentifierException  | 
                                                        |
| 1291 | - * @throws DomainException  | 
                                                        |
| 1292 | - * @throws EE_Error  | 
                                                        |
| 1293 | - * @throws InvalidArgumentException  | 
                                                        |
| 1294 | - * @throws ReflectionException  | 
                                                        |
| 1295 | - * @throws InvalidDataTypeException  | 
                                                        |
| 1296 | - * @throws InvalidInterfaceException  | 
                                                        |
| 1297 | - */  | 
                                                        |
| 1298 | - protected function _edit_message_template()  | 
                                                        |
| 1299 | -    { | 
                                                        |
| 1300 | -        do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 1301 | - $template_fields = '';  | 
                                                        |
| 1302 | - $sidebar_fields = '';  | 
                                                        |
| 1303 | - // we filter the tinyMCE settings to remove the validation since message templates by their nature will not have  | 
                                                        |
| 1304 | - // valid html in the templates.  | 
                                                        |
| 1305 | -        add_filter('tiny_mce_before_init', array($this, 'filter_tinymce_init'), 10, 2); | 
                                                        |
| 1306 | -  | 
                                                        |
| 1307 | - $GRP_ID = isset($this->_req_data['id']) && ! empty($this->_req_data['id'])  | 
                                                        |
| 1308 | - ? absint($this->_req_data['id'])  | 
                                                        |
| 1309 | - : false;  | 
                                                        |
| 1310 | -  | 
                                                        |
| 1311 | - $this->_set_shortcodes(); // this also sets the _message_template property.  | 
                                                        |
| 1312 | - $message_template_group = $this->_message_template_group;  | 
                                                        |
| 1313 | - $c_label = $message_template_group->context_label();  | 
                                                        |
| 1314 | - $c_config = $message_template_group->contexts_config();  | 
                                                        |
| 1315 | -  | 
                                                        |
| 1316 | - reset($c_config);  | 
                                                        |
| 1317 | - $context = isset($this->_req_data['context']) && ! empty($this->_req_data['context'])  | 
                                                        |
| 1318 | - ? strtolower($this->_req_data['context'])  | 
                                                        |
| 1319 | - : key($c_config);  | 
                                                        |
| 1320 | -  | 
                                                        |
| 1321 | -  | 
                                                        |
| 1322 | -        if (empty($GRP_ID)) { | 
                                                        |
| 1323 | - $action = 'insert_message_template';  | 
                                                        |
| 1324 | - $edit_message_template_form_url = add_query_arg(  | 
                                                        |
| 1325 | -                array('action' => $action, 'noheader' => true), | 
                                                        |
| 1326 | - EE_MSG_ADMIN_URL  | 
                                                        |
| 1327 | - );  | 
                                                        |
| 1328 | -        } else { | 
                                                        |
| 1329 | - $action = 'update_message_template';  | 
                                                        |
| 1330 | - $edit_message_template_form_url = add_query_arg(  | 
                                                        |
| 1331 | -                array('action' => $action, 'noheader' => true), | 
                                                        |
| 1332 | - EE_MSG_ADMIN_URL  | 
                                                        |
| 1333 | - );  | 
                                                        |
| 1334 | - }  | 
                                                        |
| 1335 | -  | 
                                                        |
| 1336 | - // set active messenger for this view  | 
                                                        |
| 1337 | - $this->_active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 1338 | - $message_template_group->messenger()  | 
                                                        |
| 1339 | - );  | 
                                                        |
| 1340 | - $this->_active_message_type_name = $message_template_group->message_type();  | 
                                                        |
| 1341 | -  | 
                                                        |
| 1342 | -  | 
                                                        |
| 1343 | - // Do we have any validation errors?  | 
                                                        |
| 1344 | - $validators = $this->_get_transient();  | 
                                                        |
| 1345 | - $v_fields = ! empty($validators) ? array_keys($validators) : array();  | 
                                                        |
| 1346 | -  | 
                                                        |
| 1347 | -  | 
                                                        |
| 1348 | - // we need to assemble the title from Various details  | 
                                                        |
| 1349 | - $context_label = sprintf(  | 
                                                        |
| 1350 | -            esc_html__('(%s %s)', 'event_espresso'), | 
                                                        |
| 1351 | - $c_config[ $context ]['label'],  | 
                                                        |
| 1352 | - ucwords($c_label['label'])  | 
                                                        |
| 1353 | - );  | 
                                                        |
| 1354 | -  | 
                                                        |
| 1355 | - $title = sprintf(  | 
                                                        |
| 1356 | -            esc_html__(' %s %s Template %s', 'event_espresso'), | 
                                                        |
| 1357 | - ucwords($message_template_group->messenger_obj()->label['singular']),  | 
                                                        |
| 1358 | - ucwords($message_template_group->message_type_obj()->label['singular']),  | 
                                                        |
| 1359 | - $context_label  | 
                                                        |
| 1360 | - );  | 
                                                        |
| 1361 | -  | 
                                                        |
| 1362 | - $this->_template_args['GRP_ID'] = $GRP_ID;  | 
                                                        |
| 1363 | - $this->_template_args['message_template'] = $message_template_group;  | 
                                                        |
| 1364 | - $this->_template_args['is_extra_fields'] = false;  | 
                                                        |
| 1365 | -  | 
                                                        |
| 1366 | -  | 
                                                        |
| 1367 | - // let's get EEH_MSG_Template so we can get template form fields  | 
                                                        |
| 1368 | - $template_field_structure = EEH_MSG_Template::get_fields(  | 
                                                        |
| 1369 | - $message_template_group->messenger(),  | 
                                                        |
| 1370 | - $message_template_group->message_type()  | 
                                                        |
| 1371 | - );  | 
                                                        |
| 1372 | -  | 
                                                        |
| 1373 | -        if (! $template_field_structure) { | 
                                                        |
| 1374 | - $template_field_structure = false;  | 
                                                        |
| 1375 | - $template_fields = esc_html__(  | 
                                                        |
| 1376 | - 'There was an error in assembling the fields for this display (you should see an error message)',  | 
                                                        |
| 1377 | - 'event_espresso'  | 
                                                        |
| 1378 | - );  | 
                                                        |
| 1379 | - }  | 
                                                        |
| 1380 | -  | 
                                                        |
| 1381 | -  | 
                                                        |
| 1382 | - $message_templates = $message_template_group->context_templates();  | 
                                                        |
| 1383 | -  | 
                                                        |
| 1384 | -  | 
                                                        |
| 1385 | - // if we have the extra key.. then we need to remove the content index from the template_field_structure as it  | 
                                                        |
| 1386 | - // will get handled in the "extra" array.  | 
                                                        |
| 1387 | -        if (is_array($template_field_structure[ $context ]) && isset($template_field_structure[ $context ]['extra'])) { | 
                                                        |
| 1388 | -            foreach ($template_field_structure[ $context ]['extra'] as $reference_field => $new_fields) { | 
                                                        |
| 1389 | - unset($template_field_structure[ $context ][ $reference_field ]);  | 
                                                        |
| 1390 | - }  | 
                                                        |
| 1391 | - }  | 
                                                        |
| 1392 | -  | 
                                                        |
| 1393 | - // let's loop through the template_field_structure and actually assemble the input fields!  | 
                                                        |
| 1394 | -        if (! empty($template_field_structure)) { | 
                                                        |
| 1395 | -            foreach ($template_field_structure[ $context ] as $template_field => $field_setup_array) { | 
                                                        |
| 1396 | - // if this is an 'extra' template field then we need to remove any existing fields that are keyed up in  | 
                                                        |
| 1397 | - // the extra array and reset them.  | 
                                                        |
| 1398 | -                if ($template_field === 'extra') { | 
                                                        |
| 1399 | - $this->_template_args['is_extra_fields'] = true;  | 
                                                        |
| 1400 | -                    foreach ($field_setup_array as $reference_field => $new_fields_array) { | 
                                                        |
| 1401 | - $message_template = $message_templates[ $context ][ $reference_field ];  | 
                                                        |
| 1402 | - $content = $message_template instanceof EE_Message_Template  | 
                                                        |
| 1403 | -                            ? $message_template->get('MTP_content') | 
                                                        |
| 1404 | - : '';  | 
                                                        |
| 1405 | -                        foreach ($new_fields_array as $extra_field => $extra_array) { | 
                                                        |
| 1406 | - // let's verify if we need this extra field via the shortcodes parameter.  | 
                                                        |
| 1407 | - $continue = false;  | 
                                                        |
| 1408 | -                            if (isset($extra_array['shortcodes_required'])) { | 
                                                        |
| 1409 | -                                foreach ((array) $extra_array['shortcodes_required'] as $shortcode) { | 
                                                        |
| 1410 | -                                    if (! array_key_exists($shortcode, $this->_shortcodes)) { | 
                                                        |
| 1411 | - $continue = true;  | 
                                                        |
| 1412 | - }  | 
                                                        |
| 1413 | - }  | 
                                                        |
| 1414 | -                                if ($continue) { | 
                                                        |
| 1415 | - continue;  | 
                                                        |
| 1416 | - }  | 
                                                        |
| 1417 | - }  | 
                                                        |
| 1418 | -  | 
                                                        |
| 1419 | - $field_id = $reference_field  | 
                                                        |
| 1420 | - . '-'  | 
                                                        |
| 1421 | - . $extra_field  | 
                                                        |
| 1422 | - . '-content';  | 
                                                        |
| 1423 | - $template_form_fields[ $field_id ] = $extra_array;  | 
                                                        |
| 1424 | - $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields['  | 
                                                        |
| 1425 | - . $reference_field  | 
                                                        |
| 1426 | - . '][content]['  | 
                                                        |
| 1427 | - . $extra_field . ']';  | 
                                                        |
| 1428 | - $css_class = isset($extra_array['css_class'])  | 
                                                        |
| 1429 | - ? $extra_array['css_class']  | 
                                                        |
| 1430 | - : '';  | 
                                                        |
| 1431 | -  | 
                                                        |
| 1432 | - $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1433 | - && in_array($extra_field, $v_fields, true)  | 
                                                        |
| 1434 | - &&  | 
                                                        |
| 1435 | - (  | 
                                                        |
| 1436 | - is_array($validators[ $extra_field ])  | 
                                                        |
| 1437 | - && isset($validators[ $extra_field ]['msg'])  | 
                                                        |
| 1438 | - )  | 
                                                        |
| 1439 | - ? 'validate-error ' . $css_class  | 
                                                        |
| 1440 | - : $css_class;  | 
                                                        |
| 1441 | -  | 
                                                        |
| 1442 | - $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1443 | - && isset($content[ $extra_field ])  | 
                                                        |
| 1444 | - ? $content[ $extra_field ]  | 
                                                        |
| 1445 | - : '';  | 
                                                        |
| 1446 | -  | 
                                                        |
| 1447 | - // do we have a validation error? if we do then let's use that value instead  | 
                                                        |
| 1448 | - $template_form_fields[ $field_id ]['value'] = isset($validators[ $extra_field ])  | 
                                                        |
| 1449 | - ? $validators[ $extra_field ]['value']  | 
                                                        |
| 1450 | - : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1451 | -  | 
                                                        |
| 1452 | -  | 
                                                        |
| 1453 | - $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1454 | -  | 
                                                        |
| 1455 | - // shortcode selector  | 
                                                        |
| 1456 | - $field_name_to_use = $extra_field === 'main'  | 
                                                        |
| 1457 | - ? 'content'  | 
                                                        |
| 1458 | - : $extra_field;  | 
                                                        |
| 1459 | - $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1460 | - $field_name_to_use,  | 
                                                        |
| 1461 | - $field_id  | 
                                                        |
| 1462 | - );  | 
                                                        |
| 1463 | -  | 
                                                        |
| 1464 | -                            if (isset($extra_array['input']) && $extra_array['input'] === 'wp_editor') { | 
                                                        |
| 1465 | - // we want to decode the entities  | 
                                                        |
| 1466 | - $template_form_fields[ $field_id ]['value'] = $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1467 | - }/**/  | 
                                                        |
| 1468 | - }  | 
                                                        |
| 1469 | - $templatefield_MTP_id = $reference_field . '-MTP_ID';  | 
                                                        |
| 1470 | - $templatefield_templatename_id = $reference_field . '-name';  | 
                                                        |
| 1471 | -  | 
                                                        |
| 1472 | - $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1473 | - 'name' => 'MTP_template_fields[' . $reference_field . '][MTP_ID]',  | 
                                                        |
| 1474 | - 'label' => null,  | 
                                                        |
| 1475 | - 'input' => 'hidden',  | 
                                                        |
| 1476 | - 'type' => 'int',  | 
                                                        |
| 1477 | - 'required' => false,  | 
                                                        |
| 1478 | - 'validation' => false,  | 
                                                        |
| 1479 | - 'value' => ! empty($message_templates) ? $message_template->ID() : '',  | 
                                                        |
| 1480 | - 'css_class' => '',  | 
                                                        |
| 1481 | - 'format' => '%d',  | 
                                                        |
| 1482 | - 'db-col' => 'MTP_ID',  | 
                                                        |
| 1483 | - );  | 
                                                        |
| 1484 | -  | 
                                                        |
| 1485 | - $template_form_fields[ $templatefield_templatename_id ] = array(  | 
                                                        |
| 1486 | - 'name' => 'MTP_template_fields[' . $reference_field . '][name]',  | 
                                                        |
| 1487 | - 'label' => null,  | 
                                                        |
| 1488 | - 'input' => 'hidden',  | 
                                                        |
| 1489 | - 'type' => 'string',  | 
                                                        |
| 1490 | - 'required' => false,  | 
                                                        |
| 1491 | - 'validation' => true,  | 
                                                        |
| 1492 | - 'value' => $reference_field,  | 
                                                        |
| 1493 | - 'css_class' => '',  | 
                                                        |
| 1494 | - 'format' => '%s',  | 
                                                        |
| 1495 | - 'db-col' => 'MTP_template_field',  | 
                                                        |
| 1496 | - );  | 
                                                        |
| 1497 | - }  | 
                                                        |
| 1498 | - continue; // skip the next stuff, we got the necessary fields here for this dataset.  | 
                                                        |
| 1499 | -                } else { | 
                                                        |
| 1500 | - $field_id = $template_field . '-content';  | 
                                                        |
| 1501 | - $template_form_fields[ $field_id ] = $field_setup_array;  | 
                                                        |
| 1502 | - $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields[' . $template_field . '][content]';  | 
                                                        |
| 1503 | - $message_template = isset($message_templates[ $context ][ $template_field ])  | 
                                                        |
| 1504 | - ? $message_templates[ $context ][ $template_field ]  | 
                                                        |
| 1505 | - : null;  | 
                                                        |
| 1506 | - $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1507 | - && is_array($message_templates[ $context ])  | 
                                                        |
| 1508 | - && $message_template instanceof EE_Message_Template  | 
                                                        |
| 1509 | -                        ? $message_template->get('MTP_content') | 
                                                        |
| 1510 | - : '';  | 
                                                        |
| 1511 | -  | 
                                                        |
| 1512 | - // do we have a validator error for this field? if we do then we'll use that value instead  | 
                                                        |
| 1513 | - $template_form_fields[ $field_id ]['value'] = isset($validators[ $template_field ])  | 
                                                        |
| 1514 | - ? $validators[ $template_field ]['value']  | 
                                                        |
| 1515 | - : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1516 | -  | 
                                                        |
| 1517 | -  | 
                                                        |
| 1518 | - $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1519 | - $css_class = isset($field_setup_array['css_class'])  | 
                                                        |
| 1520 | - ? $field_setup_array['css_class']  | 
                                                        |
| 1521 | - : '';  | 
                                                        |
| 1522 | - $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1523 | - && in_array($template_field, $v_fields, true)  | 
                                                        |
| 1524 | - && isset($validators[ $template_field ]['msg'])  | 
                                                        |
| 1525 | - ? 'validate-error ' . $css_class  | 
                                                        |
| 1526 | - : $css_class;  | 
                                                        |
| 1527 | -  | 
                                                        |
| 1528 | - // shortcode selector  | 
                                                        |
| 1529 | - $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1530 | - $template_field,  | 
                                                        |
| 1531 | - $field_id  | 
                                                        |
| 1532 | - );  | 
                                                        |
| 1533 | - }  | 
                                                        |
| 1534 | -  | 
                                                        |
| 1535 | - // k took care of content field(s) now let's take care of others.  | 
                                                        |
| 1536 | -  | 
                                                        |
| 1537 | - $templatefield_MTP_id = $template_field . '-MTP_ID';  | 
                                                        |
| 1538 | - $templatefield_field_templatename_id = $template_field . '-name';  | 
                                                        |
| 1539 | -  | 
                                                        |
| 1540 | - // foreach template field there are actually two form fields created  | 
                                                        |
| 1541 | - $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1542 | - 'name' => 'MTP_template_fields[' . $template_field . '][MTP_ID]',  | 
                                                        |
| 1543 | - 'label' => null,  | 
                                                        |
| 1544 | - 'input' => 'hidden',  | 
                                                        |
| 1545 | - 'type' => 'int',  | 
                                                        |
| 1546 | - 'required' => false,  | 
                                                        |
| 1547 | - 'validation' => true,  | 
                                                        |
| 1548 | - 'value' => $message_template instanceof EE_Message_Template ? $message_template->ID() : '',  | 
                                                        |
| 1549 | - 'css_class' => '',  | 
                                                        |
| 1550 | - 'format' => '%d',  | 
                                                        |
| 1551 | - 'db-col' => 'MTP_ID',  | 
                                                        |
| 1552 | - );  | 
                                                        |
| 1553 | -  | 
                                                        |
| 1554 | - $template_form_fields[ $templatefield_field_templatename_id ] = array(  | 
                                                        |
| 1555 | - 'name' => 'MTP_template_fields[' . $template_field . '][name]',  | 
                                                        |
| 1556 | - 'label' => null,  | 
                                                        |
| 1557 | - 'input' => 'hidden',  | 
                                                        |
| 1558 | - 'type' => 'string',  | 
                                                        |
| 1559 | - 'required' => false,  | 
                                                        |
| 1560 | - 'validation' => true,  | 
                                                        |
| 1561 | - 'value' => $template_field,  | 
                                                        |
| 1562 | - 'css_class' => '',  | 
                                                        |
| 1563 | - 'format' => '%s',  | 
                                                        |
| 1564 | - 'db-col' => 'MTP_template_field',  | 
                                                        |
| 1565 | - );  | 
                                                        |
| 1566 | - }  | 
                                                        |
| 1567 | -  | 
                                                        |
| 1568 | - // add other fields  | 
                                                        |
| 1569 | - $template_form_fields['ee-msg-current-context'] = array(  | 
                                                        |
| 1570 | - 'name' => 'MTP_context',  | 
                                                        |
| 1571 | - 'label' => null,  | 
                                                        |
| 1572 | - 'input' => 'hidden',  | 
                                                        |
| 1573 | - 'type' => 'string',  | 
                                                        |
| 1574 | - 'required' => false,  | 
                                                        |
| 1575 | - 'validation' => true,  | 
                                                        |
| 1576 | - 'value' => $context,  | 
                                                        |
| 1577 | - 'css_class' => '',  | 
                                                        |
| 1578 | - 'format' => '%s',  | 
                                                        |
| 1579 | - 'db-col' => 'MTP_context',  | 
                                                        |
| 1580 | - );  | 
                                                        |
| 1581 | -  | 
                                                        |
| 1582 | - $template_form_fields['ee-msg-grp-id'] = array(  | 
                                                        |
| 1583 | - 'name' => 'GRP_ID',  | 
                                                        |
| 1584 | - 'label' => null,  | 
                                                        |
| 1585 | - 'input' => 'hidden',  | 
                                                        |
| 1586 | - 'type' => 'int',  | 
                                                        |
| 1587 | - 'required' => false,  | 
                                                        |
| 1588 | - 'validation' => true,  | 
                                                        |
| 1589 | - 'value' => $GRP_ID,  | 
                                                        |
| 1590 | - 'css_class' => '',  | 
                                                        |
| 1591 | - 'format' => '%d',  | 
                                                        |
| 1592 | - 'db-col' => 'GRP_ID',  | 
                                                        |
| 1593 | - );  | 
                                                        |
| 1594 | -  | 
                                                        |
| 1595 | - $template_form_fields['ee-msg-messenger'] = array(  | 
                                                        |
| 1596 | - 'name' => 'MTP_messenger',  | 
                                                        |
| 1597 | - 'label' => null,  | 
                                                        |
| 1598 | - 'input' => 'hidden',  | 
                                                        |
| 1599 | - 'type' => 'string',  | 
                                                        |
| 1600 | - 'required' => false,  | 
                                                        |
| 1601 | - 'validation' => true,  | 
                                                        |
| 1602 | - 'value' => $message_template_group->messenger(),  | 
                                                        |
| 1603 | - 'css_class' => '',  | 
                                                        |
| 1604 | - 'format' => '%s',  | 
                                                        |
| 1605 | - 'db-col' => 'MTP_messenger',  | 
                                                        |
| 1606 | - );  | 
                                                        |
| 1607 | -  | 
                                                        |
| 1608 | - $template_form_fields['ee-msg-message-type'] = array(  | 
                                                        |
| 1609 | - 'name' => 'MTP_message_type',  | 
                                                        |
| 1610 | - 'label' => null,  | 
                                                        |
| 1611 | - 'input' => 'hidden',  | 
                                                        |
| 1612 | - 'type' => 'string',  | 
                                                        |
| 1613 | - 'required' => false,  | 
                                                        |
| 1614 | - 'validation' => true,  | 
                                                        |
| 1615 | - 'value' => $message_template_group->message_type(),  | 
                                                        |
| 1616 | - 'css_class' => '',  | 
                                                        |
| 1617 | - 'format' => '%s',  | 
                                                        |
| 1618 | - 'db-col' => 'MTP_message_type',  | 
                                                        |
| 1619 | - );  | 
                                                        |
| 1620 | -  | 
                                                        |
| 1621 | - $sidebar_form_fields['ee-msg-is-global'] = array(  | 
                                                        |
| 1622 | - 'name' => 'MTP_is_global',  | 
                                                        |
| 1623 | -                'label'      => esc_html__('Global Template', 'event_espresso'), | 
                                                        |
| 1624 | - 'input' => 'hidden',  | 
                                                        |
| 1625 | - 'type' => 'int',  | 
                                                        |
| 1626 | - 'required' => false,  | 
                                                        |
| 1627 | - 'validation' => true,  | 
                                                        |
| 1628 | -                'value'      => $message_template_group->get('MTP_is_global'), | 
                                                        |
| 1629 | - 'css_class' => '',  | 
                                                        |
| 1630 | - 'format' => '%d',  | 
                                                        |
| 1631 | - 'db-col' => 'MTP_is_global',  | 
                                                        |
| 1632 | - );  | 
                                                        |
| 1633 | -  | 
                                                        |
| 1634 | - $sidebar_form_fields['ee-msg-is-override'] = array(  | 
                                                        |
| 1635 | - 'name' => 'MTP_is_override',  | 
                                                        |
| 1636 | -                'label'      => esc_html__('Override all custom', 'event_espresso'), | 
                                                        |
| 1637 | - 'input' => $message_template_group->is_global() ? 'checkbox' : 'hidden',  | 
                                                        |
| 1638 | - 'type' => 'int',  | 
                                                        |
| 1639 | - 'required' => false,  | 
                                                        |
| 1640 | - 'validation' => true,  | 
                                                        |
| 1641 | -                'value'      => $message_template_group->get('MTP_is_override'), | 
                                                        |
| 1642 | - 'css_class' => '',  | 
                                                        |
| 1643 | - 'format' => '%d',  | 
                                                        |
| 1644 | - 'db-col' => 'MTP_is_override',  | 
                                                        |
| 1645 | - );  | 
                                                        |
| 1646 | -  | 
                                                        |
| 1647 | - $sidebar_form_fields['ee-msg-is-active'] = array(  | 
                                                        |
| 1648 | - 'name' => 'MTP_is_active',  | 
                                                        |
| 1649 | -                'label'      => esc_html__('Active Template', 'event_espresso'), | 
                                                        |
| 1650 | - 'input' => 'hidden',  | 
                                                        |
| 1651 | - 'type' => 'int',  | 
                                                        |
| 1652 | - 'required' => false,  | 
                                                        |
| 1653 | - 'validation' => true,  | 
                                                        |
| 1654 | - 'value' => $message_template_group->is_active(),  | 
                                                        |
| 1655 | - 'css_class' => '',  | 
                                                        |
| 1656 | - 'format' => '%d',  | 
                                                        |
| 1657 | - 'db-col' => 'MTP_is_active',  | 
                                                        |
| 1658 | - );  | 
                                                        |
| 1659 | -  | 
                                                        |
| 1660 | - $sidebar_form_fields['ee-msg-deleted'] = array(  | 
                                                        |
| 1661 | - 'name' => 'MTP_deleted',  | 
                                                        |
| 1662 | - 'label' => null,  | 
                                                        |
| 1663 | - 'input' => 'hidden',  | 
                                                        |
| 1664 | - 'type' => 'int',  | 
                                                        |
| 1665 | - 'required' => false,  | 
                                                        |
| 1666 | - 'validation' => true,  | 
                                                        |
| 1667 | -                'value'      => $message_template_group->get('MTP_deleted'), | 
                                                        |
| 1668 | - 'css_class' => '',  | 
                                                        |
| 1669 | - 'format' => '%d',  | 
                                                        |
| 1670 | - 'db-col' => 'MTP_deleted',  | 
                                                        |
| 1671 | - );  | 
                                                        |
| 1672 | - $sidebar_form_fields['ee-msg-author'] = array(  | 
                                                        |
| 1673 | - 'name' => 'MTP_user_id',  | 
                                                        |
| 1674 | -                'label'      => esc_html__('Author', 'event_espresso'), | 
                                                        |
| 1675 | - 'input' => 'hidden',  | 
                                                        |
| 1676 | - 'type' => 'int',  | 
                                                        |
| 1677 | - 'required' => false,  | 
                                                        |
| 1678 | - 'validation' => false,  | 
                                                        |
| 1679 | - 'value' => $message_template_group->user(),  | 
                                                        |
| 1680 | - 'format' => '%d',  | 
                                                        |
| 1681 | - 'db-col' => 'MTP_user_id',  | 
                                                        |
| 1682 | - );  | 
                                                        |
| 1683 | -  | 
                                                        |
| 1684 | - $sidebar_form_fields['ee-msg-route'] = array(  | 
                                                        |
| 1685 | - 'name' => 'action',  | 
                                                        |
| 1686 | - 'input' => 'hidden',  | 
                                                        |
| 1687 | - 'type' => 'string',  | 
                                                        |
| 1688 | - 'value' => $action,  | 
                                                        |
| 1689 | - );  | 
                                                        |
| 1690 | -  | 
                                                        |
| 1691 | - $sidebar_form_fields['ee-msg-id'] = array(  | 
                                                        |
| 1692 | - 'name' => 'id',  | 
                                                        |
| 1693 | - 'input' => 'hidden',  | 
                                                        |
| 1694 | - 'type' => 'int',  | 
                                                        |
| 1695 | - 'value' => $GRP_ID,  | 
                                                        |
| 1696 | - );  | 
                                                        |
| 1697 | - $sidebar_form_fields['ee-msg-evt-nonce'] = array(  | 
                                                        |
| 1698 | - 'name' => $action . '_nonce',  | 
                                                        |
| 1699 | - 'input' => 'hidden',  | 
                                                        |
| 1700 | - 'type' => 'string',  | 
                                                        |
| 1701 | - 'value' => wp_create_nonce($action . '_nonce'),  | 
                                                        |
| 1702 | - );  | 
                                                        |
| 1703 | -  | 
                                                        |
| 1704 | -            if (isset($this->_req_data['template_switch']) && $this->_req_data['template_switch']) { | 
                                                        |
| 1705 | - $sidebar_form_fields['ee-msg-template-switch'] = array(  | 
                                                        |
| 1706 | - 'name' => 'template_switch',  | 
                                                        |
| 1707 | - 'input' => 'hidden',  | 
                                                        |
| 1708 | - 'type' => 'int',  | 
                                                        |
| 1709 | - 'value' => 1,  | 
                                                        |
| 1710 | - );  | 
                                                        |
| 1711 | - }  | 
                                                        |
| 1712 | -  | 
                                                        |
| 1713 | -  | 
                                                        |
| 1714 | - $template_fields = $this->_generate_admin_form_fields($template_form_fields);  | 
                                                        |
| 1715 | - $sidebar_fields = $this->_generate_admin_form_fields($sidebar_form_fields);  | 
                                                        |
| 1716 | - } //end if ( !empty($template_field_structure) )  | 
                                                        |
| 1717 | -  | 
                                                        |
| 1718 | - // set extra content for publish box  | 
                                                        |
| 1719 | - $this->_template_args['publish_box_extra_content'] = $sidebar_fields;  | 
                                                        |
| 1720 | - $this->_set_publish_post_box_vars(  | 
                                                        |
| 1721 | - 'id',  | 
                                                        |
| 1722 | - $GRP_ID,  | 
                                                        |
| 1723 | - false,  | 
                                                        |
| 1724 | - add_query_arg(  | 
                                                        |
| 1725 | -                array('action' => 'global_mtps'), | 
                                                        |
| 1726 | - $this->_admin_base_url  | 
                                                        |
| 1727 | - )  | 
                                                        |
| 1728 | - );  | 
                                                        |
| 1729 | -  | 
                                                        |
| 1730 | - // add preview button  | 
                                                        |
| 1731 | - $preview_url = parent::add_query_args_and_nonce(  | 
                                                        |
| 1732 | - array(  | 
                                                        |
| 1733 | - 'message_type' => $message_template_group->message_type(),  | 
                                                        |
| 1734 | - 'messenger' => $message_template_group->messenger(),  | 
                                                        |
| 1735 | - 'context' => $context,  | 
                                                        |
| 1736 | - 'GRP_ID' => $GRP_ID,  | 
                                                        |
| 1737 | - 'action' => 'preview_message',  | 
                                                        |
| 1738 | - ),  | 
                                                        |
| 1739 | - $this->_admin_base_url  | 
                                                        |
| 1740 | - );  | 
                                                        |
| 1741 | - $preview_button = '<a href="' . $preview_url . '" class="button-secondary messages-preview-button">'  | 
                                                        |
| 1742 | -                          . esc_html__('Preview', 'event_espresso') | 
                                                        |
| 1743 | - . '</a>';  | 
                                                        |
| 1744 | -  | 
                                                        |
| 1745 | -  | 
                                                        |
| 1746 | - // setup context switcher  | 
                                                        |
| 1747 | - $context_switcher_args = array(  | 
                                                        |
| 1748 | - 'page' => 'espresso_messages',  | 
                                                        |
| 1749 | - 'action' => 'edit_message_template',  | 
                                                        |
| 1750 | - 'id' => $GRP_ID,  | 
                                                        |
| 1751 | - 'context' => $context,  | 
                                                        |
| 1752 | - 'extra' => $preview_button,  | 
                                                        |
| 1753 | - );  | 
                                                        |
| 1754 | - $this->_set_context_switcher($message_template_group, $context_switcher_args);  | 
                                                        |
| 1755 | -  | 
                                                        |
| 1756 | -  | 
                                                        |
| 1757 | - // main box  | 
                                                        |
| 1758 | - $this->_template_args['template_fields'] = $template_fields;  | 
                                                        |
| 1759 | - $this->_template_args['sidebar_box_id'] = 'details';  | 
                                                        |
| 1760 | - $this->_template_args['action'] = $action;  | 
                                                        |
| 1761 | - $this->_template_args['context'] = $context;  | 
                                                        |
| 1762 | - $this->_template_args['edit_message_template_form_url'] = $edit_message_template_form_url;  | 
                                                        |
| 1763 | - $this->_template_args['learn_more_about_message_templates_link'] =  | 
                                                        |
| 1764 | - $this->_learn_more_about_message_templates_link();  | 
                                                        |
| 1765 | -  | 
                                                        |
| 1766 | -  | 
                                                        |
| 1767 | - $this->_template_args['before_admin_page_content'] = $this->add_context_switcher();  | 
                                                        |
| 1768 | - $this->_template_args['before_admin_page_content'] .= $this->add_active_context_element(  | 
                                                        |
| 1769 | - $message_template_group,  | 
                                                        |
| 1770 | - $context,  | 
                                                        |
| 1771 | - $context_label  | 
                                                        |
| 1772 | - );  | 
                                                        |
| 1773 | - $this->_template_args['before_admin_page_content'] .= $this->_add_form_element_before();  | 
                                                        |
| 1774 | - $this->_template_args['after_admin_page_content'] = $this->_add_form_element_after();  | 
                                                        |
| 1775 | -  | 
                                                        |
| 1776 | - $this->_template_path = $this->_template_args['GRP_ID']  | 
                                                        |
| 1777 | - ? EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_edit_meta_box.template.php'  | 
                                                        |
| 1778 | - : EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_add_meta_box.template.php';  | 
                                                        |
| 1779 | -  | 
                                                        |
| 1780 | - // send along EE_Message_Template_Group object for further template use.  | 
                                                        |
| 1781 | - $this->_template_args['MTP'] = $message_template_group;  | 
                                                        |
| 1782 | -  | 
                                                        |
| 1783 | - $this->_template_args['admin_page_content'] = EEH_Template::display_template(  | 
                                                        |
| 1784 | - $this->_template_path,  | 
                                                        |
| 1785 | - $this->_template_args,  | 
                                                        |
| 1786 | - true  | 
                                                        |
| 1787 | - );  | 
                                                        |
| 1788 | -  | 
                                                        |
| 1789 | -  | 
                                                        |
| 1790 | - // finally, let's set the admin_page title  | 
                                                        |
| 1791 | -        $this->_admin_page_title = sprintf(__('Editing %s', 'event_espresso'), $title); | 
                                                        |
| 1792 | -  | 
                                                        |
| 1793 | -  | 
                                                        |
| 1794 | - // we need to take care of setting the shortcodes property for use elsewhere.  | 
                                                        |
| 1795 | - $this->_set_shortcodes();  | 
                                                        |
| 1796 | -  | 
                                                        |
| 1797 | -  | 
                                                        |
| 1798 | - // final template wrapper  | 
                                                        |
| 1799 | - $this->display_admin_page_with_sidebar();  | 
                                                        |
| 1800 | - }  | 
                                                        |
| 1801 | -  | 
                                                        |
| 1802 | -  | 
                                                        |
| 1803 | - public function filter_tinymce_init($mceInit, $editor_id)  | 
                                                        |
| 1804 | -    { | 
                                                        |
| 1805 | - return $mceInit;  | 
                                                        |
| 1806 | - }  | 
                                                        |
| 1807 | -  | 
                                                        |
| 1808 | -  | 
                                                        |
| 1809 | - public function add_context_switcher()  | 
                                                        |
| 1810 | -    { | 
                                                        |
| 1811 | - return $this->_context_switcher;  | 
                                                        |
| 1812 | - }  | 
                                                        |
| 1813 | -  | 
                                                        |
| 1814 | -  | 
                                                        |
| 1815 | - /**  | 
                                                        |
| 1816 | - * Adds the activation/deactivation toggle for the message template context.  | 
                                                        |
| 1817 | - *  | 
                                                        |
| 1818 | - * @param EE_Message_Template_Group $message_template_group  | 
                                                        |
| 1819 | - * @param string $context  | 
                                                        |
| 1820 | - * @param string $context_label  | 
                                                        |
| 1821 | - * @return string  | 
                                                        |
| 1822 | - * @throws DomainException  | 
                                                        |
| 1823 | - * @throws EE_Error  | 
                                                        |
| 1824 | - * @throws InvalidIdentifierException  | 
                                                        |
| 1825 | - */  | 
                                                        |
| 1826 | - protected function add_active_context_element(  | 
                                                        |
| 1827 | - EE_Message_Template_Group $message_template_group,  | 
                                                        |
| 1828 | - $context,  | 
                                                        |
| 1829 | - $context_label  | 
                                                        |
| 1830 | -    ) { | 
                                                        |
| 1831 | - $template_args = array(  | 
                                                        |
| 1832 | - 'context' => $context,  | 
                                                        |
| 1833 | -            'nonce'                     => wp_create_nonce('activate_' . $context . '_toggle_nonce'), | 
                                                        |
| 1834 | - 'is_active' => $message_template_group->is_context_active($context),  | 
                                                        |
| 1835 | - 'on_off_action' => $message_template_group->is_context_active($context)  | 
                                                        |
| 1836 | - ? 'context-off'  | 
                                                        |
| 1837 | - : 'context-on',  | 
                                                        |
| 1838 | -            'context_label'             => str_replace(array('(', ')'), '', $context_label), | 
                                                        |
| 1839 | - 'message_template_group_id' => $message_template_group->ID(),  | 
                                                        |
| 1840 | - );  | 
                                                        |
| 1841 | - return EEH_Template::display_template(  | 
                                                        |
| 1842 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_editor_active_context_element.template.php',  | 
                                                        |
| 1843 | - $template_args,  | 
                                                        |
| 1844 | - true  | 
                                                        |
| 1845 | - );  | 
                                                        |
| 1846 | - }  | 
                                                        |
| 1847 | -  | 
                                                        |
| 1848 | -  | 
                                                        |
| 1849 | - /**  | 
                                                        |
| 1850 | - * Ajax callback for `toggle_context_template` ajax action.  | 
                                                        |
| 1851 | - * Handles toggling the message context on or off.  | 
                                                        |
| 1852 | - *  | 
                                                        |
| 1853 | - * @throws EE_Error  | 
                                                        |
| 1854 | - * @throws InvalidArgumentException  | 
                                                        |
| 1855 | - * @throws InvalidDataTypeException  | 
                                                        |
| 1856 | - * @throws InvalidIdentifierException  | 
                                                        |
| 1857 | - * @throws InvalidInterfaceException  | 
                                                        |
| 1858 | - */  | 
                                                        |
| 1859 | - public function toggle_context_template()  | 
                                                        |
| 1860 | -    { | 
                                                        |
| 1861 | - $success = true;  | 
                                                        |
| 1862 | - // check for required data  | 
                                                        |
| 1863 | - if (! isset(  | 
                                                        |
| 1864 | - $this->_req_data['message_template_group_id'],  | 
                                                        |
| 1865 | - $this->_req_data['context'],  | 
                                                        |
| 1866 | - $this->_req_data['status']  | 
                                                        |
| 1867 | -        )) { | 
                                                        |
| 1868 | - EE_Error::add_error(  | 
                                                        |
| 1869 | -                esc_html__('Required data for doing this action is not available.', 'event_espresso'), | 
                                                        |
| 1870 | - __FILE__,  | 
                                                        |
| 1871 | - __FUNCTION__,  | 
                                                        |
| 1872 | - __LINE__  | 
                                                        |
| 1873 | - );  | 
                                                        |
| 1874 | - $success = false;  | 
                                                        |
| 1875 | - }  | 
                                                        |
| 1876 | -  | 
                                                        |
| 1877 | - $nonce = isset($this->_req_data['toggle_context_nonce'])  | 
                                                        |
| 1878 | - ? sanitize_text_field($this->_req_data['toggle_context_nonce'])  | 
                                                        |
| 1879 | - : '';  | 
                                                        |
| 1880 | - $nonce_ref = 'activate_' . $this->_req_data['context'] . '_toggle_nonce';  | 
                                                        |
| 1881 | - $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 1882 | - $status = $this->_req_data['status'];  | 
                                                        |
| 1883 | -        if ($status !== 'off' && $status !== 'on') { | 
                                                        |
| 1884 | - EE_Error::add_error(  | 
                                                        |
| 1885 | - sprintf(  | 
                                                        |
| 1886 | -                    esc_html__('The given status (%s) is not valid. Must be "off" or "on"', 'event_espresso'), | 
                                                        |
| 1887 | - $this->_req_data['status']  | 
                                                        |
| 1888 | - ),  | 
                                                        |
| 1889 | - __FILE__,  | 
                                                        |
| 1890 | - __FUNCTION__,  | 
                                                        |
| 1891 | - __LINE__  | 
                                                        |
| 1892 | - );  | 
                                                        |
| 1893 | - $success = false;  | 
                                                        |
| 1894 | - }  | 
                                                        |
| 1895 | - $message_template_group = EEM_Message_Template_Group::instance()->get_one_by_ID(  | 
                                                        |
| 1896 | - $this->_req_data['message_template_group_id']  | 
                                                        |
| 1897 | - );  | 
                                                        |
| 1898 | -        if (! $message_template_group instanceof EE_Message_Template_Group) { | 
                                                        |
| 1899 | - EE_Error::add_error(  | 
                                                        |
| 1900 | - sprintf(  | 
                                                        |
| 1901 | - esc_html__(  | 
                                                        |
| 1902 | - 'Unable to change the active state because the given id "%1$d" does not match a valid "%2$s"',  | 
                                                        |
| 1903 | - 'event_espresso'  | 
                                                        |
| 1904 | - ),  | 
                                                        |
| 1905 | - $this->_req_data['message_template_group_id'],  | 
                                                        |
| 1906 | - 'EE_Message_Template_Group'  | 
                                                        |
| 1907 | - ),  | 
                                                        |
| 1908 | - __FILE__,  | 
                                                        |
| 1909 | - __FUNCTION__,  | 
                                                        |
| 1910 | - __LINE__  | 
                                                        |
| 1911 | - );  | 
                                                        |
| 1912 | - $success = false;  | 
                                                        |
| 1913 | - }  | 
                                                        |
| 1914 | -        if ($success) { | 
                                                        |
| 1915 | - $success = $status === 'off'  | 
                                                        |
| 1916 | - ? $message_template_group->deactivate_context($this->_req_data['context'])  | 
                                                        |
| 1917 | - : $message_template_group->activate_context($this->_req_data['context']);  | 
                                                        |
| 1918 | - }  | 
                                                        |
| 1919 | - $this->_template_args['success'] = $success;  | 
                                                        |
| 1920 | - $this->_return_json();  | 
                                                        |
| 1921 | - }  | 
                                                        |
| 1922 | -  | 
                                                        |
| 1923 | -  | 
                                                        |
| 1924 | - public function _add_form_element_before()  | 
                                                        |
| 1925 | -    { | 
                                                        |
| 1926 | - return '<form method="post" action="'  | 
                                                        |
| 1927 | - . $this->_template_args["edit_message_template_form_url"]  | 
                                                        |
| 1928 | - . '" id="ee-msg-edit-frm">';  | 
                                                        |
| 1929 | - }  | 
                                                        |
| 1930 | -  | 
                                                        |
| 1931 | - public function _add_form_element_after()  | 
                                                        |
| 1932 | -    { | 
                                                        |
| 1933 | - return '</form>';  | 
                                                        |
| 1934 | - }  | 
                                                        |
| 1935 | -  | 
                                                        |
| 1936 | -  | 
                                                        |
| 1937 | - /**  | 
                                                        |
| 1938 | - * This executes switching the template pack for a message template.  | 
                                                        |
| 1939 | - *  | 
                                                        |
| 1940 | - * @since 4.5.0  | 
                                                        |
| 1941 | - * @throws EE_Error  | 
                                                        |
| 1942 | - * @throws InvalidDataTypeException  | 
                                                        |
| 1943 | - * @throws InvalidInterfaceException  | 
                                                        |
| 1944 | - * @throws InvalidArgumentException  | 
                                                        |
| 1945 | - * @throws ReflectionException  | 
                                                        |
| 1946 | - */  | 
                                                        |
| 1947 | - public function switch_template_pack()  | 
                                                        |
| 1948 | -    { | 
                                                        |
| 1949 | - $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 1950 | - $template_pack = ! empty($this->_req_data['template_pack']) ? $this->_req_data['template_pack'] : '';  | 
                                                        |
| 1951 | -  | 
                                                        |
| 1952 | - // verify we have needed values.  | 
                                                        |
| 1953 | -        if (empty($GRP_ID) || empty($template_pack)) { | 
                                                        |
| 1954 | - $this->_template_args['error'] = true;  | 
                                                        |
| 1955 | - EE_Error::add_error(  | 
                                                        |
| 1956 | -                esc_html__('The required date for switching templates is not available.', 'event_espresso'), | 
                                                        |
| 1957 | - __FILE__,  | 
                                                        |
| 1958 | - __FUNCTION__,  | 
                                                        |
| 1959 | - __LINE__  | 
                                                        |
| 1960 | - );  | 
                                                        |
| 1961 | -        } else { | 
                                                        |
| 1962 | - // get template, set the new template_pack and then reset to default  | 
                                                        |
| 1963 | - /** @type EE_Message_Template_Group $message_template_group */  | 
                                                        |
| 1964 | - $message_template_group = EEM_Message_Template_Group::instance()->get_one_by_ID($GRP_ID);  | 
                                                        |
| 1965 | -  | 
                                                        |
| 1966 | - $message_template_group->set_template_pack_name($template_pack);  | 
                                                        |
| 1967 | - $this->_req_data['msgr'] = $message_template_group->messenger();  | 
                                                        |
| 1968 | - $this->_req_data['mt'] = $message_template_group->message_type();  | 
                                                        |
| 1969 | -  | 
                                                        |
| 1970 | - $query_args = $this->_reset_to_default_template();  | 
                                                        |
| 1971 | -  | 
                                                        |
| 1972 | -            if (empty($query_args['id'])) { | 
                                                        |
| 1973 | - EE_Error::add_error(  | 
                                                        |
| 1974 | - esc_html__(  | 
                                                        |
| 1975 | - 'Something went wrong with switching the template pack. Please try again or contact EE support',  | 
                                                        |
| 1976 | - 'event_espresso'  | 
                                                        |
| 1977 | - ),  | 
                                                        |
| 1978 | - __FILE__,  | 
                                                        |
| 1979 | - __FUNCTION__,  | 
                                                        |
| 1980 | - __LINE__  | 
                                                        |
| 1981 | - );  | 
                                                        |
| 1982 | - $this->_template_args['error'] = true;  | 
                                                        |
| 1983 | -            } else { | 
                                                        |
| 1984 | - $template_label = $message_template_group->get_template_pack()->label;  | 
                                                        |
| 1985 | - $template_pack_labels = $message_template_group->messenger_obj()->get_supports_labels();  | 
                                                        |
| 1986 | - EE_Error::add_success(  | 
                                                        |
| 1987 | - sprintf(  | 
                                                        |
| 1988 | - esc_html__(  | 
                                                        |
| 1989 | - 'This message template has been successfully switched to use the %1$s %2$s. Please wait while the page reloads with your new template.',  | 
                                                        |
| 1990 | - 'event_espresso'  | 
                                                        |
| 1991 | - ),  | 
                                                        |
| 1992 | - $template_label,  | 
                                                        |
| 1993 | - $template_pack_labels->template_pack  | 
                                                        |
| 1994 | - )  | 
                                                        |
| 1995 | - );  | 
                                                        |
| 1996 | - // generate the redirect url for js.  | 
                                                        |
| 1997 | - $url = self::add_query_args_and_nonce(  | 
                                                        |
| 1998 | - $query_args,  | 
                                                        |
| 1999 | - $this->_admin_base_url  | 
                                                        |
| 2000 | - );  | 
                                                        |
| 2001 | - $this->_template_args['data']['redirect_url'] = $url;  | 
                                                        |
| 2002 | - $this->_template_args['success'] = true;  | 
                                                        |
| 2003 | - }  | 
                                                        |
| 2004 | -  | 
                                                        |
| 2005 | - $this->_return_json();  | 
                                                        |
| 2006 | - }  | 
                                                        |
| 2007 | - }  | 
                                                        |
| 2008 | -  | 
                                                        |
| 2009 | -  | 
                                                        |
| 2010 | - /**  | 
                                                        |
| 2011 | - * This handles resetting the template for the given messenger/message_type so that users can start from scratch if  | 
                                                        |
| 2012 | - * they want.  | 
                                                        |
| 2013 | - *  | 
                                                        |
| 2014 | - * @access protected  | 
                                                        |
| 2015 | - * @return array|null  | 
                                                        |
| 2016 | - * @throws EE_Error  | 
                                                        |
| 2017 | - * @throws InvalidArgumentException  | 
                                                        |
| 2018 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2019 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2020 | - */  | 
                                                        |
| 2021 | - protected function _reset_to_default_template()  | 
                                                        |
| 2022 | -    { | 
                                                        |
| 2023 | -  | 
                                                        |
| 2024 | - $templates = array();  | 
                                                        |
| 2025 | - $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 2026 | - // we need to make sure we've got the info we need.  | 
                                                        |
| 2027 | -        if (! isset($this->_req_data['msgr'], $this->_req_data['mt'], $this->_req_data['GRP_ID'])) { | 
                                                        |
| 2028 | - EE_Error::add_error(  | 
                                                        |
| 2029 | - esc_html__(  | 
                                                        |
| 2030 | - 'In order to reset the template to its default we require the messenger, message type, and message template GRP_ID to know what is being reset. At least one of these is missing.',  | 
                                                        |
| 2031 | - 'event_espresso'  | 
                                                        |
| 2032 | - ),  | 
                                                        |
| 2033 | - __FILE__,  | 
                                                        |
| 2034 | - __FUNCTION__,  | 
                                                        |
| 2035 | - __LINE__  | 
                                                        |
| 2036 | - );  | 
                                                        |
| 2037 | - }  | 
                                                        |
| 2038 | -  | 
                                                        |
| 2039 | - // all templates will be reset to whatever the defaults are  | 
                                                        |
| 2040 | - // for the global template matching the messenger and message type.  | 
                                                        |
| 2041 | - $success = ! empty($GRP_ID) ? true : false;  | 
                                                        |
| 2042 | -  | 
                                                        |
| 2043 | -        if ($success) { | 
                                                        |
| 2044 | - // let's first determine if the incoming template is a global template,  | 
                                                        |
| 2045 | - // if it isn't then we need to get the global template matching messenger and message type.  | 
                                                        |
| 2046 | - // $MTPG = EEM_Message_Template_Group::instance()->get_one_by_ID( $GRP_ID );  | 
                                                        |
| 2047 | -  | 
                                                        |
| 2048 | -  | 
                                                        |
| 2049 | - // note this is ONLY deleting the template fields (Message Template rows) NOT the message template group.  | 
                                                        |
| 2050 | - $success = $this->_delete_mtp_permanently($GRP_ID, false);  | 
                                                        |
| 2051 | -  | 
                                                        |
| 2052 | -            if ($success) { | 
                                                        |
| 2053 | - // if successfully deleted, lets generate the new ones.  | 
                                                        |
| 2054 | - // Note. We set GLOBAL to true, because resets on ANY template  | 
                                                        |
| 2055 | - // will use the related global template defaults for regeneration.  | 
                                                        |
| 2056 | - // This means that if a custom template is reset it resets to whatever the related global template is.  | 
                                                        |
| 2057 | - // HOWEVER, we DO keep the template pack and template variation set  | 
                                                        |
| 2058 | - // for the current custom template when resetting.  | 
                                                        |
| 2059 | - $templates = $this->_generate_new_templates(  | 
                                                        |
| 2060 | - $this->_req_data['msgr'],  | 
                                                        |
| 2061 | - $this->_req_data['mt'],  | 
                                                        |
| 2062 | - $GRP_ID,  | 
                                                        |
| 2063 | - true  | 
                                                        |
| 2064 | - );  | 
                                                        |
| 2065 | - }  | 
                                                        |
| 2066 | - }  | 
                                                        |
| 2067 | -  | 
                                                        |
| 2068 | - // any error messages?  | 
                                                        |
| 2069 | -        if (! $success) { | 
                                                        |
| 2070 | - EE_Error::add_error(  | 
                                                        |
| 2071 | - esc_html__(  | 
                                                        |
| 2072 | - 'Something went wrong with deleting existing templates. Unable to reset to default',  | 
                                                        |
| 2073 | - 'event_espresso'  | 
                                                        |
| 2074 | - ),  | 
                                                        |
| 2075 | - __FILE__,  | 
                                                        |
| 2076 | - __FUNCTION__,  | 
                                                        |
| 2077 | - __LINE__  | 
                                                        |
| 2078 | - );  | 
                                                        |
| 2079 | - }  | 
                                                        |
| 2080 | -  | 
                                                        |
| 2081 | - // all good, let's add a success message!  | 
                                                        |
| 2082 | -        if ($success && ! empty($templates)) { | 
                                                        |
| 2083 | - // the info for the template we generated is the first element in the returned array  | 
                                                        |
| 2084 | - // $templates = $templates[0];  | 
                                                        |
| 2085 | - EE_Error::overwrite_success();  | 
                                                        |
| 2086 | -            EE_Error::add_success(__('Templates have been reset to defaults.', 'event_espresso')); | 
                                                        |
| 2087 | - }  | 
                                                        |
| 2088 | -  | 
                                                        |
| 2089 | -  | 
                                                        |
| 2090 | - $query_args = array(  | 
                                                        |
| 2091 | - 'id' => isset($templates[0]['GRP_ID']) ? $templates[0]['GRP_ID'] : null,  | 
                                                        |
| 2092 | - 'context' => isset($templates[0]['MTP_context']) ? $templates[0]['MTP_context'] : null,  | 
                                                        |
| 2093 | - 'action' => isset($templates[0]['GRP_ID']) ? 'edit_message_template' : 'global_mtps',  | 
                                                        |
| 2094 | - );  | 
                                                        |
| 2095 | -  | 
                                                        |
| 2096 | - // if called via ajax then we return query args otherwise redirect  | 
                                                        |
| 2097 | -        if (defined('DOING_AJAX') && DOING_AJAX) { | 
                                                        |
| 2098 | - return $query_args;  | 
                                                        |
| 2099 | -        } else { | 
                                                        |
| 2100 | - $this->_redirect_after_action(false, '', '', $query_args, true);  | 
                                                        |
| 2101 | -  | 
                                                        |
| 2102 | - return null;  | 
                                                        |
| 2103 | - }  | 
                                                        |
| 2104 | - }  | 
                                                        |
| 2105 | -  | 
                                                        |
| 2106 | -  | 
                                                        |
| 2107 | - /**  | 
                                                        |
| 2108 | - * Retrieve and set the message preview for display.  | 
                                                        |
| 2109 | - *  | 
                                                        |
| 2110 | - * @param bool $send if TRUE then we are doing an actual TEST send with the results of the preview.  | 
                                                        |
| 2111 | - * @return string  | 
                                                        |
| 2112 | - * @throws ReflectionException  | 
                                                        |
| 2113 | - * @throws EE_Error  | 
                                                        |
| 2114 | - * @throws InvalidArgumentException  | 
                                                        |
| 2115 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2116 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2117 | - */  | 
                                                        |
| 2118 | - public function _preview_message($send = false)  | 
                                                        |
| 2119 | -    { | 
                                                        |
| 2120 | - // first make sure we've got the necessary parameters  | 
                                                        |
| 2121 | - if (! isset(  | 
                                                        |
| 2122 | - $this->_req_data['message_type'],  | 
                                                        |
| 2123 | - $this->_req_data['messenger'],  | 
                                                        |
| 2124 | - $this->_req_data['messenger'],  | 
                                                        |
| 2125 | - $this->_req_data['GRP_ID']  | 
                                                        |
| 2126 | -        )) { | 
                                                        |
| 2127 | - EE_Error::add_error(  | 
                                                        |
| 2128 | -                esc_html__('Missing necessary parameters for displaying preview', 'event_espresso'), | 
                                                        |
| 2129 | - __FILE__,  | 
                                                        |
| 2130 | - __FUNCTION__,  | 
                                                        |
| 2131 | - __LINE__  | 
                                                        |
| 2132 | - );  | 
                                                        |
| 2133 | - }  | 
                                                        |
| 2134 | -  | 
                                                        |
| 2135 | -        EE_Registry::instance()->REQ->set('GRP_ID', $this->_req_data['GRP_ID']); | 
                                                        |
| 2136 | -  | 
                                                        |
| 2137 | -  | 
                                                        |
| 2138 | - // get the preview!  | 
                                                        |
| 2139 | - $preview = EED_Messages::preview_message(  | 
                                                        |
| 2140 | - $this->_req_data['message_type'],  | 
                                                        |
| 2141 | - $this->_req_data['context'],  | 
                                                        |
| 2142 | - $this->_req_data['messenger'],  | 
                                                        |
| 2143 | - $send  | 
                                                        |
| 2144 | - );  | 
                                                        |
| 2145 | -  | 
                                                        |
| 2146 | -        if ($send) { | 
                                                        |
| 2147 | - return $preview;  | 
                                                        |
| 2148 | - }  | 
                                                        |
| 2149 | -  | 
                                                        |
| 2150 | - // let's add a button to go back to the edit view  | 
                                                        |
| 2151 | - $query_args = array(  | 
                                                        |
| 2152 | - 'id' => $this->_req_data['GRP_ID'],  | 
                                                        |
| 2153 | - 'context' => $this->_req_data['context'],  | 
                                                        |
| 2154 | - 'action' => 'edit_message_template',  | 
                                                        |
| 2155 | - );  | 
                                                        |
| 2156 | - $go_back_url = parent::add_query_args_and_nonce($query_args, $this->_admin_base_url);  | 
                                                        |
| 2157 | - $preview_button = '<a href="'  | 
                                                        |
| 2158 | - . $go_back_url  | 
                                                        |
| 2159 | - . '" class="button-secondary messages-preview-go-back-button">'  | 
                                                        |
| 2160 | -                          . esc_html__('Go Back to Edit', 'event_espresso') | 
                                                        |
| 2161 | - . '</a>';  | 
                                                        |
| 2162 | - $message_types = $this->get_installed_message_types();  | 
                                                        |
| 2163 | - $active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 2164 | - $this->_req_data['messenger']  | 
                                                        |
| 2165 | - );  | 
                                                        |
| 2166 | - $active_messenger_label = $active_messenger instanceof EE_messenger  | 
                                                        |
| 2167 | - ? ucwords($active_messenger->label['singular'])  | 
                                                        |
| 2168 | -            : esc_html__('Unknown Messenger', 'event_espresso'); | 
                                                        |
| 2169 | - // let's provide a helpful title for context  | 
                                                        |
| 2170 | - $preview_title = sprintf(  | 
                                                        |
| 2171 | -            esc_html__('Viewing Preview for %s %s Message Template', 'event_espresso'), | 
                                                        |
| 2172 | - $active_messenger_label,  | 
                                                        |
| 2173 | - ucwords($message_types[ $this->_req_data['message_type'] ]->label['singular'])  | 
                                                        |
| 2174 | - );  | 
                                                        |
| 2175 | -        if (empty($preview)) { | 
                                                        |
| 2176 | - $this->noEventsErrorMessage();  | 
                                                        |
| 2177 | - }  | 
                                                        |
| 2178 | - // setup display of preview.  | 
                                                        |
| 2179 | - $this->_admin_page_title = $preview_title;  | 
                                                        |
| 2180 | - $this->_template_args['admin_page_title'] = $preview_title;  | 
                                                        |
| 2181 | - $this->_template_args['admin_page_content'] = $preview_button . '<br />' . $preview;  | 
                                                        |
| 2182 | - $this->_template_args['data']['force_json'] = true;  | 
                                                        |
| 2183 | -  | 
                                                        |
| 2184 | - return '';  | 
                                                        |
| 2185 | - }  | 
                                                        |
| 2186 | -  | 
                                                        |
| 2187 | -  | 
                                                        |
| 2188 | - /**  | 
                                                        |
| 2189 | - * Used to set an error if there are no events available for generating a preview/test send.  | 
                                                        |
| 2190 | - *  | 
                                                        |
| 2191 | - * @param bool $test_send Whether the error should be generated for the context of a test send.  | 
                                                        |
| 2192 | - */  | 
                                                        |
| 2193 | - protected function noEventsErrorMessage($test_send = false)  | 
                                                        |
| 2194 | -    { | 
                                                        |
| 2195 | - $events_url = parent::add_query_args_and_nonce(  | 
                                                        |
| 2196 | - array(  | 
                                                        |
| 2197 | - 'action' => 'default',  | 
                                                        |
| 2198 | - 'page' => 'espresso_events',  | 
                                                        |
| 2199 | - ),  | 
                                                        |
| 2200 | -            admin_url('admin.php') | 
                                                        |
| 2201 | - );  | 
                                                        |
| 2202 | - $message = $test_send  | 
                                                        |
| 2203 | - ? __(  | 
                                                        |
| 2204 | - 'A test message could not be sent for this message template because there are no events created yet. The preview system uses actual events for generating the test message. %1$sGo see your events%2$s!',  | 
                                                        |
| 2205 | - 'event_espresso'  | 
                                                        |
| 2206 | - )  | 
                                                        |
| 2207 | - : __(  | 
                                                        |
| 2208 | - 'There is no preview for this message template available because there are no events created yet. The preview system uses actual events for generating the preview. %1$sGo see your events%2$s!',  | 
                                                        |
| 2209 | - 'event_espresso'  | 
                                                        |
| 2210 | - );  | 
                                                        |
| 2211 | -  | 
                                                        |
| 2212 | - EE_Error::add_attention(  | 
                                                        |
| 2213 | - sprintf(  | 
                                                        |
| 2214 | - $message,  | 
                                                        |
| 2215 | -                "<a href='{$events_url}'>", | 
                                                        |
| 2216 | - '</a>'  | 
                                                        |
| 2217 | - )  | 
                                                        |
| 2218 | - );  | 
                                                        |
| 2219 | - }  | 
                                                        |
| 2220 | -  | 
                                                        |
| 2221 | -  | 
                                                        |
| 2222 | - /**  | 
                                                        |
| 2223 | - * The initial _preview_message is on a no headers route. It will optionally call this if necessary otherwise it  | 
                                                        |
| 2224 | - * gets called automatically.  | 
                                                        |
| 2225 | - *  | 
                                                        |
| 2226 | - * @since 4.5.0  | 
                                                        |
| 2227 | - *  | 
                                                        |
| 2228 | - * @return string  | 
                                                        |
| 2229 | - */  | 
                                                        |
| 2230 | - protected function _display_preview_message()  | 
                                                        |
| 2231 | -    { | 
                                                        |
| 2232 | - $this->display_admin_page_with_no_sidebar();  | 
                                                        |
| 2233 | - }  | 
                                                        |
| 2234 | -  | 
                                                        |
| 2235 | -  | 
                                                        |
| 2236 | - /**  | 
                                                        |
| 2237 | - * registers metaboxes that should show up on the "edit_message_template" page  | 
                                                        |
| 2238 | - *  | 
                                                        |
| 2239 | - * @access protected  | 
                                                        |
| 2240 | - * @return void  | 
                                                        |
| 2241 | - */  | 
                                                        |
| 2242 | - protected function _register_edit_meta_boxes()  | 
                                                        |
| 2243 | -    { | 
                                                        |
| 2244 | - add_meta_box(  | 
                                                        |
| 2245 | - 'mtp_valid_shortcodes',  | 
                                                        |
| 2246 | -            esc_html__('Valid Shortcodes', 'event_espresso'), | 
                                                        |
| 2247 | - array($this, 'shortcode_meta_box'),  | 
                                                        |
| 2248 | - $this->_current_screen->id,  | 
                                                        |
| 2249 | - 'side',  | 
                                                        |
| 2250 | - 'default'  | 
                                                        |
| 2251 | - );  | 
                                                        |
| 2252 | - add_meta_box(  | 
                                                        |
| 2253 | - 'mtp_extra_actions',  | 
                                                        |
| 2254 | -            esc_html__('Extra Actions', 'event_espresso'), | 
                                                        |
| 2255 | - array($this, 'extra_actions_meta_box'),  | 
                                                        |
| 2256 | - $this->_current_screen->id,  | 
                                                        |
| 2257 | - 'side',  | 
                                                        |
| 2258 | - 'high'  | 
                                                        |
| 2259 | - );  | 
                                                        |
| 2260 | - add_meta_box(  | 
                                                        |
| 2261 | - 'mtp_templates',  | 
                                                        |
| 2262 | -            esc_html__('Template Styles', 'event_espresso'), | 
                                                        |
| 2263 | - array($this, 'template_pack_meta_box'),  | 
                                                        |
| 2264 | - $this->_current_screen->id,  | 
                                                        |
| 2265 | - 'side',  | 
                                                        |
| 2266 | - 'high'  | 
                                                        |
| 2267 | - );  | 
                                                        |
| 2268 | - }  | 
                                                        |
| 2269 | -  | 
                                                        |
| 2270 | -  | 
                                                        |
| 2271 | - /**  | 
                                                        |
| 2272 | - * metabox content for all template pack and variation selection.  | 
                                                        |
| 2273 | - *  | 
                                                        |
| 2274 | - * @since 4.5.0  | 
                                                        |
| 2275 | - * @return string  | 
                                                        |
| 2276 | - * @throws DomainException  | 
                                                        |
| 2277 | - * @throws EE_Error  | 
                                                        |
| 2278 | - * @throws InvalidArgumentException  | 
                                                        |
| 2279 | - * @throws ReflectionException  | 
                                                        |
| 2280 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2281 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2282 | - */  | 
                                                        |
| 2283 | - public function template_pack_meta_box()  | 
                                                        |
| 2284 | -    { | 
                                                        |
| 2285 | - $this->_set_message_template_group();  | 
                                                        |
| 2286 | -  | 
                                                        |
| 2287 | - $tp_collection = EEH_MSG_Template::get_template_pack_collection();  | 
                                                        |
| 2288 | -  | 
                                                        |
| 2289 | - $tp_select_values = array();  | 
                                                        |
| 2290 | -  | 
                                                        |
| 2291 | -        foreach ($tp_collection as $tp) { | 
                                                        |
| 2292 | - // only include template packs that support this messenger and message type!  | 
                                                        |
| 2293 | - $supports = $tp->get_supports();  | 
                                                        |
| 2294 | - if (! isset($supports[ $this->_message_template_group->messenger() ])  | 
                                                        |
| 2295 | - || ! in_array(  | 
                                                        |
| 2296 | - $this->_message_template_group->message_type(),  | 
                                                        |
| 2297 | - $supports[ $this->_message_template_group->messenger() ],  | 
                                                        |
| 2298 | - true  | 
                                                        |
| 2299 | - )  | 
                                                        |
| 2300 | -            ) { | 
                                                        |
| 2301 | - // not supported  | 
                                                        |
| 2302 | - continue;  | 
                                                        |
| 2303 | - }  | 
                                                        |
| 2304 | -  | 
                                                        |
| 2305 | - $tp_select_values[] = array(  | 
                                                        |
| 2306 | - 'text' => $tp->label,  | 
                                                        |
| 2307 | - 'id' => $tp->dbref,  | 
                                                        |
| 2308 | - );  | 
                                                        |
| 2309 | - }  | 
                                                        |
| 2310 | -  | 
                                                        |
| 2311 | - // if empty $tp_select_values then we make sure default is set because EVERY message type should be supported by  | 
                                                        |
| 2312 | - // the default template pack. This still allows for the odd template pack to override.  | 
                                                        |
| 2313 | -        if (empty($tp_select_values)) { | 
                                                        |
| 2314 | - $tp_select_values[] = array(  | 
                                                        |
| 2315 | -                'text' => esc_html__('Default', 'event_espresso'), | 
                                                        |
| 2316 | - 'id' => 'default',  | 
                                                        |
| 2317 | - );  | 
                                                        |
| 2318 | - }  | 
                                                        |
| 2319 | -  | 
                                                        |
| 2320 | - // setup variation select values for the currently selected template.  | 
                                                        |
| 2321 | - $variations = $this->_message_template_group->get_template_pack()->get_variations(  | 
                                                        |
| 2322 | - $this->_message_template_group->messenger(),  | 
                                                        |
| 2323 | - $this->_message_template_group->message_type()  | 
                                                        |
| 2324 | - );  | 
                                                        |
| 2325 | - $variations_select_values = array();  | 
                                                        |
| 2326 | -        foreach ($variations as $variation => $label) { | 
                                                        |
| 2327 | - $variations_select_values[] = array(  | 
                                                        |
| 2328 | - 'text' => $label,  | 
                                                        |
| 2329 | - 'id' => $variation,  | 
                                                        |
| 2330 | - );  | 
                                                        |
| 2331 | - }  | 
                                                        |
| 2332 | -  | 
                                                        |
| 2333 | - $template_pack_labels = $this->_message_template_group->messenger_obj()->get_supports_labels();  | 
                                                        |
| 2334 | -  | 
                                                        |
| 2335 | - $template_args['template_packs_selector'] = EEH_Form_Fields::select_input(  | 
                                                        |
| 2336 | - 'MTP_template_pack',  | 
                                                        |
| 2337 | - $tp_select_values,  | 
                                                        |
| 2338 | - $this->_message_template_group->get_template_pack_name()  | 
                                                        |
| 2339 | - );  | 
                                                        |
| 2340 | - $template_args['variations_selector'] = EEH_Form_Fields::select_input(  | 
                                                        |
| 2341 | - 'MTP_template_variation',  | 
                                                        |
| 2342 | - $variations_select_values,  | 
                                                        |
| 2343 | - $this->_message_template_group->get_template_pack_variation()  | 
                                                        |
| 2344 | - );  | 
                                                        |
| 2345 | - $template_args['template_pack_label'] = $template_pack_labels->template_pack;  | 
                                                        |
| 2346 | - $template_args['template_variation_label'] = $template_pack_labels->template_variation;  | 
                                                        |
| 2347 | - $template_args['template_pack_description'] = $template_pack_labels->template_pack_description;  | 
                                                        |
| 2348 | - $template_args['template_variation_description'] = $template_pack_labels->template_variation_description;  | 
                                                        |
| 2349 | -  | 
                                                        |
| 2350 | - $template = EE_MSG_TEMPLATE_PATH . 'template_pack_and_variations_metabox.template.php';  | 
                                                        |
| 2351 | -  | 
                                                        |
| 2352 | - EEH_Template::display_template($template, $template_args);  | 
                                                        |
| 2353 | - }  | 
                                                        |
| 2354 | -  | 
                                                        |
| 2355 | -  | 
                                                        |
| 2356 | - /**  | 
                                                        |
| 2357 | - * This meta box holds any extra actions related to Message Templates  | 
                                                        |
| 2358 | - * For now, this includes Resetting templates to defaults and sending a test email.  | 
                                                        |
| 2359 | - *  | 
                                                        |
| 2360 | - * @access public  | 
                                                        |
| 2361 | - * @return void  | 
                                                        |
| 2362 | - * @throws EE_Error  | 
                                                        |
| 2363 | - */  | 
                                                        |
| 2364 | - public function extra_actions_meta_box()  | 
                                                        |
| 2365 | -    { | 
                                                        |
| 2366 | - $template_form_fields = array();  | 
                                                        |
| 2367 | -  | 
                                                        |
| 2368 | - $extra_args = array(  | 
                                                        |
| 2369 | - 'msgr' => $this->_message_template_group->messenger(),  | 
                                                        |
| 2370 | - 'mt' => $this->_message_template_group->message_type(),  | 
                                                        |
| 2371 | - 'GRP_ID' => $this->_message_template_group->GRP_ID(),  | 
                                                        |
| 2372 | - );  | 
                                                        |
| 2373 | - // first we need to see if there are any fields  | 
                                                        |
| 2374 | - $fields = $this->_message_template_group->messenger_obj()->get_test_settings_fields();  | 
                                                        |
| 2375 | -  | 
                                                        |
| 2376 | -        if (! empty($fields)) { | 
                                                        |
| 2377 | - // yup there be fields  | 
                                                        |
| 2378 | -            foreach ($fields as $field => $config) { | 
                                                        |
| 2379 | - $field_id = $this->_message_template_group->messenger() . '_' . $field;  | 
                                                        |
| 2380 | - $existing = $this->_message_template_group->messenger_obj()->get_existing_test_settings();  | 
                                                        |
| 2381 | - $default = isset($config['default']) ? $config['default'] : '';  | 
                                                        |
| 2382 | - $default = isset($config['value']) ? $config['value'] : $default;  | 
                                                        |
| 2383 | -  | 
                                                        |
| 2384 | - // if type is hidden and the value is empty  | 
                                                        |
| 2385 | - // something may have gone wrong so let's correct with the defaults  | 
                                                        |
| 2386 | - $fix = $config['input'] === 'hidden'  | 
                                                        |
| 2387 | - && isset($existing[ $field ])  | 
                                                        |
| 2388 | - && empty($existing[ $field ])  | 
                                                        |
| 2389 | - ? $default  | 
                                                        |
| 2390 | - : '';  | 
                                                        |
| 2391 | - $existing[ $field ] = isset($existing[ $field ]) && empty($fix)  | 
                                                        |
| 2392 | - ? $existing[ $field ]  | 
                                                        |
| 2393 | - : $fix;  | 
                                                        |
| 2394 | -  | 
                                                        |
| 2395 | - $template_form_fields[ $field_id ] = array(  | 
                                                        |
| 2396 | - 'name' => 'test_settings_fld[' . $field . ']',  | 
                                                        |
| 2397 | - 'label' => $config['label'],  | 
                                                        |
| 2398 | - 'input' => $config['input'],  | 
                                                        |
| 2399 | - 'type' => $config['type'],  | 
                                                        |
| 2400 | - 'required' => $config['required'],  | 
                                                        |
| 2401 | - 'validation' => $config['validation'],  | 
                                                        |
| 2402 | - 'value' => isset($existing[ $field ]) ? $existing[ $field ] : $default,  | 
                                                        |
| 2403 | - 'css_class' => $config['css_class'],  | 
                                                        |
| 2404 | - 'options' => isset($config['options']) ? $config['options'] : array(),  | 
                                                        |
| 2405 | - 'default' => $default,  | 
                                                        |
| 2406 | - 'format' => $config['format'],  | 
                                                        |
| 2407 | - );  | 
                                                        |
| 2408 | - }  | 
                                                        |
| 2409 | - }  | 
                                                        |
| 2410 | -  | 
                                                        |
| 2411 | - $test_settings_fields = ! empty($template_form_fields)  | 
                                                        |
| 2412 | - ? $this->_generate_admin_form_fields($template_form_fields, 'string', 'ee_tst_settings_flds')  | 
                                                        |
| 2413 | - : '';  | 
                                                        |
| 2414 | -  | 
                                                        |
| 2415 | - $test_settings_html = '';  | 
                                                        |
| 2416 | - // print out $test_settings_fields  | 
                                                        |
| 2417 | -        if (! empty($test_settings_fields)) { | 
                                                        |
| 2418 | - echo $test_settings_fields;  | 
                                                        |
| 2419 | - $test_settings_html = '<input type="submit" class="button-primary mtp-test-button alignright" ';  | 
                                                        |
| 2420 | - $test_settings_html .= 'name="test_button" value="';  | 
                                                        |
| 2421 | -            $test_settings_html .= esc_html__('Test Send', 'event_espresso'); | 
                                                        |
| 2422 | - $test_settings_html .= '" /><div style="clear:both"></div>';  | 
                                                        |
| 2423 | - }  | 
                                                        |
| 2424 | -  | 
                                                        |
| 2425 | - // and button  | 
                                                        |
| 2426 | - $test_settings_html .= '<p>'  | 
                                                        |
| 2427 | -                               . esc_html__('Need to reset this message type and start over?', 'event_espresso') | 
                                                        |
| 2428 | - . '</p>';  | 
                                                        |
| 2429 | - $test_settings_html .= '<div class="publishing-action alignright resetbutton">';  | 
                                                        |
| 2430 | - $test_settings_html .= $this->get_action_link_or_button(  | 
                                                        |
| 2431 | - 'reset_to_default',  | 
                                                        |
| 2432 | - 'reset',  | 
                                                        |
| 2433 | - $extra_args,  | 
                                                        |
| 2434 | - 'button-primary reset-default-button'  | 
                                                        |
| 2435 | - );  | 
                                                        |
| 2436 | - $test_settings_html .= '</div><div style="clear:both"></div>';  | 
                                                        |
| 2437 | - echo $test_settings_html;  | 
                                                        |
| 2438 | - }  | 
                                                        |
| 2439 | -  | 
                                                        |
| 2440 | -  | 
                                                        |
| 2441 | - /**  | 
                                                        |
| 2442 | - * This returns the shortcode selector skeleton for a given context and field.  | 
                                                        |
| 2443 | - *  | 
                                                        |
| 2444 | - * @since 4.9.rc.000  | 
                                                        |
| 2445 | - * @param string $field The name of the field retrieving shortcodes for.  | 
                                                        |
| 2446 | - * @param string $linked_input_id The css id of the input that the shortcodes get added to.  | 
                                                        |
| 2447 | - * @return string  | 
                                                        |
| 2448 | - * @throws DomainException  | 
                                                        |
| 2449 | - * @throws EE_Error  | 
                                                        |
| 2450 | - * @throws InvalidArgumentException  | 
                                                        |
| 2451 | - * @throws ReflectionException  | 
                                                        |
| 2452 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2453 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2454 | - */  | 
                                                        |
| 2455 | - protected function _get_shortcode_selector($field, $linked_input_id)  | 
                                                        |
| 2456 | -    { | 
                                                        |
| 2457 | - $template_args = array(  | 
                                                        |
| 2458 | - 'shortcodes' => $this->_get_shortcodes(array($field), true),  | 
                                                        |
| 2459 | - 'fieldname' => $field,  | 
                                                        |
| 2460 | - 'linked_input_id' => $linked_input_id,  | 
                                                        |
| 2461 | - );  | 
                                                        |
| 2462 | -  | 
                                                        |
| 2463 | - return EEH_Template::display_template(  | 
                                                        |
| 2464 | - EE_MSG_TEMPLATE_PATH . 'shortcode_selector_skeleton.template.php',  | 
                                                        |
| 2465 | - $template_args,  | 
                                                        |
| 2466 | - true  | 
                                                        |
| 2467 | - );  | 
                                                        |
| 2468 | - }  | 
                                                        |
| 2469 | -  | 
                                                        |
| 2470 | -  | 
                                                        |
| 2471 | - /**  | 
                                                        |
| 2472 | - * This just takes care of returning the meta box content for shortcodes (only used on the edit message template  | 
                                                        |
| 2473 | - * page)  | 
                                                        |
| 2474 | - *  | 
                                                        |
| 2475 | - * @access public  | 
                                                        |
| 2476 | - * @return void  | 
                                                        |
| 2477 | - * @throws EE_Error  | 
                                                        |
| 2478 | - * @throws InvalidArgumentException  | 
                                                        |
| 2479 | - * @throws ReflectionException  | 
                                                        |
| 2480 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2481 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2482 | - */  | 
                                                        |
| 2483 | - public function shortcode_meta_box()  | 
                                                        |
| 2484 | -    { | 
                                                        |
| 2485 | - $shortcodes = $this->_get_shortcodes(array(), false); // just make sure shortcodes property is set  | 
                                                        |
| 2486 | - // $messenger = $this->_message_template_group->messenger_obj();  | 
                                                        |
| 2487 | - // now let's set the content depending on the status of the shortcodes array  | 
                                                        |
| 2488 | -        if (empty($shortcodes)) { | 
                                                        |
| 2489 | -            $content = '<p>' . esc_html__('There are no valid shortcodes available', 'event_espresso') . '</p>'; | 
                                                        |
| 2490 | - echo $content;  | 
                                                        |
| 2491 | -        } else { | 
                                                        |
| 2492 | - // $alt = 0;  | 
                                                        |
| 2493 | - ?>  | 
                                                        |
| 22 | + /**  | 
                                                        |
| 23 | + * @type EE_Message_Resource_Manager $_message_resource_manager  | 
                                                        |
| 24 | + */  | 
                                                        |
| 25 | + protected $_message_resource_manager;  | 
                                                        |
| 26 | +  | 
                                                        |
| 27 | + /**  | 
                                                        |
| 28 | + * @type string $_active_message_type_name  | 
                                                        |
| 29 | + */  | 
                                                        |
| 30 | + protected $_active_message_type_name = '';  | 
                                                        |
| 31 | +  | 
                                                        |
| 32 | + /**  | 
                                                        |
| 33 | + * @type EE_messenger $_active_messenger  | 
                                                        |
| 34 | + */  | 
                                                        |
| 35 | + protected $_active_messenger;  | 
                                                        |
| 36 | + protected $_activate_state;  | 
                                                        |
| 37 | + protected $_activate_meta_box_type;  | 
                                                        |
| 38 | + protected $_current_message_meta_box;  | 
                                                        |
| 39 | + protected $_current_message_meta_box_object;  | 
                                                        |
| 40 | + protected $_context_switcher;  | 
                                                        |
| 41 | + protected $_shortcodes = array();  | 
                                                        |
| 42 | + protected $_active_messengers = array();  | 
                                                        |
| 43 | + protected $_active_message_types = array();  | 
                                                        |
| 44 | +  | 
                                                        |
| 45 | + /**  | 
                                                        |
| 46 | + * @var EE_Message_Template_Group $_message_template_group  | 
                                                        |
| 47 | + */  | 
                                                        |
| 48 | + protected $_message_template_group;  | 
                                                        |
| 49 | + protected $_m_mt_settings = array();  | 
                                                        |
| 50 | +  | 
                                                        |
| 51 | +  | 
                                                        |
| 52 | + /**  | 
                                                        |
| 53 | + * This is set via the _set_message_template_group method and holds whatever the template pack for the group is.  | 
                                                        |
| 54 | + * IF there is no group then it gets automatically set to the Default template pack.  | 
                                                        |
| 55 | + *  | 
                                                        |
| 56 | + * @since 4.5.0  | 
                                                        |
| 57 | + *  | 
                                                        |
| 58 | + * @var EE_Messages_Template_Pack  | 
                                                        |
| 59 | + */  | 
                                                        |
| 60 | + protected $_template_pack;  | 
                                                        |
| 61 | +  | 
                                                        |
| 62 | +  | 
                                                        |
| 63 | + /**  | 
                                                        |
| 64 | + * This is set via the _set_message_template_group method and holds whatever the template pack variation for the  | 
                                                        |
| 65 | + * group is. If there is no group then it automatically gets set to default.  | 
                                                        |
| 66 | + *  | 
                                                        |
| 67 | + * @since 4.5.0  | 
                                                        |
| 68 | + *  | 
                                                        |
| 69 | + * @var string  | 
                                                        |
| 70 | + */  | 
                                                        |
| 71 | + protected $_variation;  | 
                                                        |
| 72 | +  | 
                                                        |
| 73 | +  | 
                                                        |
| 74 | + /**  | 
                                                        |
| 75 | + * @param bool $routing  | 
                                                        |
| 76 | + * @throws EE_Error  | 
                                                        |
| 77 | + */  | 
                                                        |
| 78 | + public function __construct($routing = true)  | 
                                                        |
| 79 | +	{ | 
                                                        |
| 80 | + // make sure messages autoloader is running  | 
                                                        |
| 81 | + EED_Messages::set_autoloaders();  | 
                                                        |
| 82 | + parent::__construct($routing);  | 
                                                        |
| 83 | + }  | 
                                                        |
| 84 | +  | 
                                                        |
| 85 | +  | 
                                                        |
| 86 | + protected function _init_page_props()  | 
                                                        |
| 87 | +	{ | 
                                                        |
| 88 | + $this->page_slug = EE_MSG_PG_SLUG;  | 
                                                        |
| 89 | +		$this->page_label = esc_html__('Messages Settings', 'event_espresso'); | 
                                                        |
| 90 | + $this->_admin_base_url = EE_MSG_ADMIN_URL;  | 
                                                        |
| 91 | + $this->_admin_base_path = EE_MSG_ADMIN;  | 
                                                        |
| 92 | +  | 
                                                        |
| 93 | + $this->_activate_state = isset($this->_req_data['activate_state']) ? (array) $this->_req_data['activate_state']  | 
                                                        |
| 94 | + : array();  | 
                                                        |
| 95 | +  | 
                                                        |
| 96 | + $this->_active_messenger = isset($this->_req_data['messenger']) ? $this->_req_data['messenger'] : null;  | 
                                                        |
| 97 | + $this->_load_message_resource_manager();  | 
                                                        |
| 98 | + }  | 
                                                        |
| 99 | +  | 
                                                        |
| 100 | +  | 
                                                        |
| 101 | + /**  | 
                                                        |
| 102 | + * loads messenger objects into the $_active_messengers property (so we can access the needed methods)  | 
                                                        |
| 103 | + *  | 
                                                        |
| 104 | + * @throws EE_Error  | 
                                                        |
| 105 | + * @throws InvalidDataTypeException  | 
                                                        |
| 106 | + * @throws InvalidInterfaceException  | 
                                                        |
| 107 | + * @throws InvalidArgumentException  | 
                                                        |
| 108 | + * @throws ReflectionException  | 
                                                        |
| 109 | + */  | 
                                                        |
| 110 | + protected function _load_message_resource_manager()  | 
                                                        |
| 111 | +	{ | 
                                                        |
| 112 | +		$this->_message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager'); | 
                                                        |
| 113 | + }  | 
                                                        |
| 114 | +  | 
                                                        |
| 115 | +  | 
                                                        |
| 116 | + /**  | 
                                                        |
| 117 | + * @deprecated 4.9.9.rc.014  | 
                                                        |
| 118 | + * @return array  | 
                                                        |
| 119 | + * @throws EE_Error  | 
                                                        |
| 120 | + * @throws InvalidArgumentException  | 
                                                        |
| 121 | + * @throws InvalidDataTypeException  | 
                                                        |
| 122 | + * @throws InvalidInterfaceException  | 
                                                        |
| 123 | + */  | 
                                                        |
| 124 | + public function get_messengers_for_list_table()  | 
                                                        |
| 125 | +	{ | 
                                                        |
| 126 | + EE_Error::doing_it_wrong(  | 
                                                        |
| 127 | + __METHOD__,  | 
                                                        |
| 128 | + sprintf(  | 
                                                        |
| 129 | + esc_html__(  | 
                                                        |
| 130 | + 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a messenger filter dropdown which is now generated differently via %s',  | 
                                                        |
| 131 | + 'event_espresso'  | 
                                                        |
| 132 | + ),  | 
                                                        |
| 133 | + 'Messages_Admin_Page::get_messengers_select_input()'  | 
                                                        |
| 134 | + ),  | 
                                                        |
| 135 | + '4.9.9.rc.014'  | 
                                                        |
| 136 | + );  | 
                                                        |
| 137 | +  | 
                                                        |
| 138 | + $m_values = array();  | 
                                                        |
| 139 | +		$active_messengers = EEM_Message::instance()->get_all(array('group_by' => 'MSG_messenger')); | 
                                                        |
| 140 | + // setup messengers for selects  | 
                                                        |
| 141 | + $i = 1;  | 
                                                        |
| 142 | +		foreach ($active_messengers as $active_messenger) { | 
                                                        |
| 143 | +			if ($active_messenger instanceof EE_Message) { | 
                                                        |
| 144 | + $m_values[ $i ]['id'] = $active_messenger->messenger();  | 
                                                        |
| 145 | + $m_values[ $i ]['text'] = ucwords($active_messenger->messenger_label());  | 
                                                        |
| 146 | + $i++;  | 
                                                        |
| 147 | + }  | 
                                                        |
| 148 | + }  | 
                                                        |
| 149 | +  | 
                                                        |
| 150 | + return $m_values;  | 
                                                        |
| 151 | + }  | 
                                                        |
| 152 | +  | 
                                                        |
| 153 | +  | 
                                                        |
| 154 | + /**  | 
                                                        |
| 155 | + * @deprecated 4.9.9.rc.014  | 
                                                        |
| 156 | + * @return array  | 
                                                        |
| 157 | + * @throws EE_Error  | 
                                                        |
| 158 | + * @throws InvalidArgumentException  | 
                                                        |
| 159 | + * @throws InvalidDataTypeException  | 
                                                        |
| 160 | + * @throws InvalidInterfaceException  | 
                                                        |
| 161 | + */  | 
                                                        |
| 162 | + public function get_message_types_for_list_table()  | 
                                                        |
| 163 | +	{ | 
                                                        |
| 164 | + EE_Error::doing_it_wrong(  | 
                                                        |
| 165 | + __METHOD__,  | 
                                                        |
| 166 | + sprintf(  | 
                                                        |
| 167 | + esc_html__(  | 
                                                        |
| 168 | + 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a message type filter dropdown which is now generated differently via %s',  | 
                                                        |
| 169 | + 'event_espresso'  | 
                                                        |
| 170 | + ),  | 
                                                        |
| 171 | + 'Messages_Admin_Page::get_message_types_select_input()'  | 
                                                        |
| 172 | + ),  | 
                                                        |
| 173 | + '4.9.9.rc.014'  | 
                                                        |
| 174 | + );  | 
                                                        |
| 175 | +  | 
                                                        |
| 176 | + $mt_values = array();  | 
                                                        |
| 177 | +		$active_messages = EEM_Message::instance()->get_all(array('group_by' => 'MSG_message_type')); | 
                                                        |
| 178 | + $i = 1;  | 
                                                        |
| 179 | +		foreach ($active_messages as $active_message) { | 
                                                        |
| 180 | +			if ($active_message instanceof EE_Message) { | 
                                                        |
| 181 | + $mt_values[ $i ]['id'] = $active_message->message_type();  | 
                                                        |
| 182 | + $mt_values[ $i ]['text'] = ucwords($active_message->message_type_label());  | 
                                                        |
| 183 | + $i++;  | 
                                                        |
| 184 | + }  | 
                                                        |
| 185 | + }  | 
                                                        |
| 186 | +  | 
                                                        |
| 187 | + return $mt_values;  | 
                                                        |
| 188 | + }  | 
                                                        |
| 189 | +  | 
                                                        |
| 190 | +  | 
                                                        |
| 191 | + /**  | 
                                                        |
| 192 | + * @deprecated 4.9.9.rc.014  | 
                                                        |
| 193 | + * @return array  | 
                                                        |
| 194 | + * @throws EE_Error  | 
                                                        |
| 195 | + * @throws InvalidArgumentException  | 
                                                        |
| 196 | + * @throws InvalidDataTypeException  | 
                                                        |
| 197 | + * @throws InvalidInterfaceException  | 
                                                        |
| 198 | + */  | 
                                                        |
| 199 | + public function get_contexts_for_message_types_for_list_table()  | 
                                                        |
| 200 | +	{ | 
                                                        |
| 201 | + EE_Error::doing_it_wrong(  | 
                                                        |
| 202 | + __METHOD__,  | 
                                                        |
| 203 | + sprintf(  | 
                                                        |
| 204 | + esc_html__(  | 
                                                        |
| 205 | + 'This method is no longer in use. There is no replacement for it. The method was used to generate a set of values for use in creating a message type context filter dropdown which is now generated differently via %s',  | 
                                                        |
| 206 | + 'event_espresso'  | 
                                                        |
| 207 | + ),  | 
                                                        |
| 208 | + 'Messages_Admin_Page::get_contexts_for_message_types_select_input()'  | 
                                                        |
| 209 | + ),  | 
                                                        |
| 210 | + '4.9.9.rc.014'  | 
                                                        |
| 211 | + );  | 
                                                        |
| 212 | +  | 
                                                        |
| 213 | + $contexts = array();  | 
                                                        |
| 214 | +		$active_message_contexts = EEM_Message::instance()->get_all(array('group_by' => 'MSG_context')); | 
                                                        |
| 215 | +		foreach ($active_message_contexts as $active_message) { | 
                                                        |
| 216 | +			if ($active_message instanceof EE_Message) { | 
                                                        |
| 217 | + $message_type = $active_message->message_type_object();  | 
                                                        |
| 218 | +				if ($message_type instanceof EE_message_type) { | 
                                                        |
| 219 | + $message_type_contexts = $message_type->get_contexts();  | 
                                                        |
| 220 | +					foreach ($message_type_contexts as $context => $context_details) { | 
                                                        |
| 221 | + $contexts[ $context ] = $context_details['label'];  | 
                                                        |
| 222 | + }  | 
                                                        |
| 223 | + }  | 
                                                        |
| 224 | + }  | 
                                                        |
| 225 | + }  | 
                                                        |
| 226 | +  | 
                                                        |
| 227 | + return $contexts;  | 
                                                        |
| 228 | + }  | 
                                                        |
| 229 | +  | 
                                                        |
| 230 | +  | 
                                                        |
| 231 | + /**  | 
                                                        |
| 232 | + * Generate select input with provided messenger options array.  | 
                                                        |
| 233 | + *  | 
                                                        |
| 234 | + * @param array $messenger_options Array of messengers indexed by messenger slug and values are the messenger  | 
                                                        |
| 235 | + * labels.  | 
                                                        |
| 236 | + * @return string  | 
                                                        |
| 237 | + * @throws EE_Error  | 
                                                        |
| 238 | + */  | 
                                                        |
| 239 | + public function get_messengers_select_input($messenger_options)  | 
                                                        |
| 240 | +	{ | 
                                                        |
| 241 | + // if empty or just one value then just return an empty string  | 
                                                        |
| 242 | + if (empty($messenger_options)  | 
                                                        |
| 243 | + || ! is_array($messenger_options)  | 
                                                        |
| 244 | + || count($messenger_options) === 1  | 
                                                        |
| 245 | +		) { | 
                                                        |
| 246 | + return '';  | 
                                                        |
| 247 | + }  | 
                                                        |
| 248 | + // merge in default  | 
                                                        |
| 249 | + $messenger_options = array_merge(  | 
                                                        |
| 250 | +			array('none_selected' => esc_html__('Show All Messengers', 'event_espresso')), | 
                                                        |
| 251 | + $messenger_options  | 
                                                        |
| 252 | + );  | 
                                                        |
| 253 | + $input = new EE_Select_Input(  | 
                                                        |
| 254 | + $messenger_options,  | 
                                                        |
| 255 | + array(  | 
                                                        |
| 256 | + 'html_name' => 'ee_messenger_filter_by',  | 
                                                        |
| 257 | + 'html_id' => 'ee_messenger_filter_by',  | 
                                                        |
| 258 | + 'html_class' => 'wide',  | 
                                                        |
| 259 | + 'default' => isset($this->_req_data['ee_messenger_filter_by'])  | 
                                                        |
| 260 | + ? sanitize_title($this->_req_data['ee_messenger_filter_by'])  | 
                                                        |
| 261 | + : 'none_selected',  | 
                                                        |
| 262 | + )  | 
                                                        |
| 263 | + );  | 
                                                        |
| 264 | +  | 
                                                        |
| 265 | + return $input->get_html_for_input();  | 
                                                        |
| 266 | + }  | 
                                                        |
| 267 | +  | 
                                                        |
| 268 | +  | 
                                                        |
| 269 | + /**  | 
                                                        |
| 270 | + * Generate select input with provided message type options array.  | 
                                                        |
| 271 | + *  | 
                                                        |
| 272 | + * @param array $message_type_options Array of message types indexed by message type slug, and values are the  | 
                                                        |
| 273 | + * message type labels  | 
                                                        |
| 274 | + * @return string  | 
                                                        |
| 275 | + * @throws EE_Error  | 
                                                        |
| 276 | + */  | 
                                                        |
| 277 | + public function get_message_types_select_input($message_type_options)  | 
                                                        |
| 278 | +	{ | 
                                                        |
| 279 | + // if empty or count of options is 1 then just return an empty string  | 
                                                        |
| 280 | + if (empty($message_type_options)  | 
                                                        |
| 281 | + || ! is_array($message_type_options)  | 
                                                        |
| 282 | + || count($message_type_options) === 1  | 
                                                        |
| 283 | +		) { | 
                                                        |
| 284 | + return '';  | 
                                                        |
| 285 | + }  | 
                                                        |
| 286 | + // merge in default  | 
                                                        |
| 287 | + $message_type_options = array_merge(  | 
                                                        |
| 288 | +			array('none_selected' => esc_html__('Show All Message Types', 'event_espresso')), | 
                                                        |
| 289 | + $message_type_options  | 
                                                        |
| 290 | + );  | 
                                                        |
| 291 | + $input = new EE_Select_Input(  | 
                                                        |
| 292 | + $message_type_options,  | 
                                                        |
| 293 | + array(  | 
                                                        |
| 294 | + 'html_name' => 'ee_message_type_filter_by',  | 
                                                        |
| 295 | + 'html_id' => 'ee_message_type_filter_by',  | 
                                                        |
| 296 | + 'html_class' => 'wide',  | 
                                                        |
| 297 | + 'default' => isset($this->_req_data['ee_message_type_filter_by'])  | 
                                                        |
| 298 | + ? sanitize_title($this->_req_data['ee_message_type_filter_by'])  | 
                                                        |
| 299 | + : 'none_selected',  | 
                                                        |
| 300 | + )  | 
                                                        |
| 301 | + );  | 
                                                        |
| 302 | +  | 
                                                        |
| 303 | + return $input->get_html_for_input();  | 
                                                        |
| 304 | + }  | 
                                                        |
| 305 | +  | 
                                                        |
| 306 | +  | 
                                                        |
| 307 | + /**  | 
                                                        |
| 308 | + * Generate select input with provide message type contexts array.  | 
                                                        |
| 309 | + *  | 
                                                        |
| 310 | + * @param array $context_options Array of message type contexts indexed by context slug, and values are the  | 
                                                        |
| 311 | + * context label.  | 
                                                        |
| 312 | + * @return string  | 
                                                        |
| 313 | + * @throws EE_Error  | 
                                                        |
| 314 | + */  | 
                                                        |
| 315 | + public function get_contexts_for_message_types_select_input($context_options)  | 
                                                        |
| 316 | +	{ | 
                                                        |
| 317 | + // if empty or count of options is one then just return empty string  | 
                                                        |
| 318 | + if (empty($context_options)  | 
                                                        |
| 319 | + || ! is_array($context_options)  | 
                                                        |
| 320 | + || count($context_options) === 1  | 
                                                        |
| 321 | +		) { | 
                                                        |
| 322 | + return '';  | 
                                                        |
| 323 | + }  | 
                                                        |
| 324 | + // merge in default  | 
                                                        |
| 325 | + $context_options = array_merge(  | 
                                                        |
| 326 | +			array('none_selected' => esc_html__('Show all Contexts', 'event_espresso')), | 
                                                        |
| 327 | + $context_options  | 
                                                        |
| 328 | + );  | 
                                                        |
| 329 | + $input = new EE_Select_Input(  | 
                                                        |
| 330 | + $context_options,  | 
                                                        |
| 331 | + array(  | 
                                                        |
| 332 | + 'html_name' => 'ee_context_filter_by',  | 
                                                        |
| 333 | + 'html_id' => 'ee_context_filter_by',  | 
                                                        |
| 334 | + 'html_class' => 'wide',  | 
                                                        |
| 335 | + 'default' => isset($this->_req_data['ee_context_filter_by'])  | 
                                                        |
| 336 | + ? sanitize_title($this->_req_data['ee_context_filter_by'])  | 
                                                        |
| 337 | + : 'none_selected',  | 
                                                        |
| 338 | + )  | 
                                                        |
| 339 | + );  | 
                                                        |
| 340 | +  | 
                                                        |
| 341 | + return $input->get_html_for_input();  | 
                                                        |
| 342 | + }  | 
                                                        |
| 343 | +  | 
                                                        |
| 344 | +  | 
                                                        |
| 345 | + protected function _ajax_hooks()  | 
                                                        |
| 346 | +	{ | 
                                                        |
| 347 | +		add_action('wp_ajax_activate_messenger', array($this, 'activate_messenger_toggle')); | 
                                                        |
| 348 | +		add_action('wp_ajax_activate_mt', array($this, 'activate_mt_toggle')); | 
                                                        |
| 349 | +		add_action('wp_ajax_ee_msgs_save_settings', array($this, 'save_settings')); | 
                                                        |
| 350 | +		add_action('wp_ajax_ee_msgs_update_mt_form', array($this, 'update_mt_form')); | 
                                                        |
| 351 | +		add_action('wp_ajax_switch_template_pack', array($this, 'switch_template_pack')); | 
                                                        |
| 352 | +		add_action('wp_ajax_toggle_context_template', array($this, 'toggle_context_template')); | 
                                                        |
| 353 | + }  | 
                                                        |
| 354 | +  | 
                                                        |
| 355 | +  | 
                                                        |
| 356 | + protected function _define_page_props()  | 
                                                        |
| 357 | +	{ | 
                                                        |
| 358 | + $this->_admin_page_title = $this->page_label;  | 
                                                        |
| 359 | + $this->_labels = array(  | 
                                                        |
| 360 | + 'buttons' => array(  | 
                                                        |
| 361 | +				'add'    => esc_html__('Add New Message Template', 'event_espresso'), | 
                                                        |
| 362 | +				'edit'   => esc_html__('Edit Message Template', 'event_espresso'), | 
                                                        |
| 363 | +				'delete' => esc_html__('Delete Message Template', 'event_espresso'), | 
                                                        |
| 364 | + ),  | 
                                                        |
| 365 | +			'publishbox' => esc_html__('Update Actions', 'event_espresso'), | 
                                                        |
| 366 | + );  | 
                                                        |
| 367 | + }  | 
                                                        |
| 368 | +  | 
                                                        |
| 369 | +  | 
                                                        |
| 370 | + /**  | 
                                                        |
| 371 | + * an array for storing key => value pairs of request actions and their corresponding methods  | 
                                                        |
| 372 | + *  | 
                                                        |
| 373 | + * @access protected  | 
                                                        |
| 374 | + * @return void  | 
                                                        |
| 375 | + */  | 
                                                        |
| 376 | + protected function _set_page_routes()  | 
                                                        |
| 377 | +	{ | 
                                                        |
| 378 | + $grp_id = ! empty($this->_req_data['GRP_ID']) && ! is_array($this->_req_data['GRP_ID'])  | 
                                                        |
| 379 | + ? $this->_req_data['GRP_ID']  | 
                                                        |
| 380 | + : 0;  | 
                                                        |
| 381 | + $grp_id = empty($grp_id) && ! empty($this->_req_data['id'])  | 
                                                        |
| 382 | + ? $this->_req_data['id']  | 
                                                        |
| 383 | + : $grp_id;  | 
                                                        |
| 384 | + $msg_id = ! empty($this->_req_data['MSG_ID']) && ! is_array($this->_req_data['MSG_ID'])  | 
                                                        |
| 385 | + ? $this->_req_data['MSG_ID']  | 
                                                        |
| 386 | + : 0;  | 
                                                        |
| 387 | +  | 
                                                        |
| 388 | + $this->_page_routes = array(  | 
                                                        |
| 389 | + 'default' => array(  | 
                                                        |
| 390 | + 'func' => '_message_queue_list_table',  | 
                                                        |
| 391 | + 'capability' => 'ee_read_global_messages',  | 
                                                        |
| 392 | + ),  | 
                                                        |
| 393 | + 'global_mtps' => array(  | 
                                                        |
| 394 | + 'func' => '_ee_default_messages_overview_list_table',  | 
                                                        |
| 395 | + 'capability' => 'ee_read_global_messages',  | 
                                                        |
| 396 | + ),  | 
                                                        |
| 397 | + 'custom_mtps' => array(  | 
                                                        |
| 398 | + 'func' => '_custom_mtps_preview',  | 
                                                        |
| 399 | + 'capability' => 'ee_read_messages',  | 
                                                        |
| 400 | + ),  | 
                                                        |
| 401 | + 'add_new_message_template' => array(  | 
                                                        |
| 402 | + 'func' => '_add_message_template',  | 
                                                        |
| 403 | + 'capability' => 'ee_edit_messages',  | 
                                                        |
| 404 | + 'noheader' => true,  | 
                                                        |
| 405 | + ),  | 
                                                        |
| 406 | + 'edit_message_template' => array(  | 
                                                        |
| 407 | + 'func' => '_edit_message_template',  | 
                                                        |
| 408 | + 'capability' => 'ee_edit_message',  | 
                                                        |
| 409 | + 'obj_id' => $grp_id,  | 
                                                        |
| 410 | + ),  | 
                                                        |
| 411 | + 'preview_message' => array(  | 
                                                        |
| 412 | + 'func' => '_preview_message',  | 
                                                        |
| 413 | + 'capability' => 'ee_read_message',  | 
                                                        |
| 414 | + 'obj_id' => $grp_id,  | 
                                                        |
| 415 | + 'noheader' => true,  | 
                                                        |
| 416 | + 'headers_sent_route' => 'display_preview_message',  | 
                                                        |
| 417 | + ),  | 
                                                        |
| 418 | + 'display_preview_message' => array(  | 
                                                        |
| 419 | + 'func' => '_display_preview_message',  | 
                                                        |
| 420 | + 'capability' => 'ee_read_message',  | 
                                                        |
| 421 | + 'obj_id' => $grp_id,  | 
                                                        |
| 422 | + ),  | 
                                                        |
| 423 | + 'insert_message_template' => array(  | 
                                                        |
| 424 | + 'func' => '_insert_or_update_message_template',  | 
                                                        |
| 425 | + 'capability' => 'ee_edit_messages',  | 
                                                        |
| 426 | +				'args'       => array('new_template' => true), | 
                                                        |
| 427 | + 'noheader' => true,  | 
                                                        |
| 428 | + ),  | 
                                                        |
| 429 | + 'update_message_template' => array(  | 
                                                        |
| 430 | + 'func' => '_insert_or_update_message_template',  | 
                                                        |
| 431 | + 'capability' => 'ee_edit_message',  | 
                                                        |
| 432 | + 'obj_id' => $grp_id,  | 
                                                        |
| 433 | +				'args'       => array('new_template' => false), | 
                                                        |
| 434 | + 'noheader' => true,  | 
                                                        |
| 435 | + ),  | 
                                                        |
| 436 | + 'trash_message_template' => array(  | 
                                                        |
| 437 | + 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 438 | + 'capability' => 'ee_delete_message',  | 
                                                        |
| 439 | + 'obj_id' => $grp_id,  | 
                                                        |
| 440 | +				'args'       => array('trash' => true, 'all' => true), | 
                                                        |
| 441 | + 'noheader' => true,  | 
                                                        |
| 442 | + ),  | 
                                                        |
| 443 | + 'trash_message_template_context' => array(  | 
                                                        |
| 444 | + 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 445 | + 'capability' => 'ee_delete_message',  | 
                                                        |
| 446 | + 'obj_id' => $grp_id,  | 
                                                        |
| 447 | +				'args'       => array('trash' => true), | 
                                                        |
| 448 | + 'noheader' => true,  | 
                                                        |
| 449 | + ),  | 
                                                        |
| 450 | + 'restore_message_template' => array(  | 
                                                        |
| 451 | + 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 452 | + 'capability' => 'ee_delete_message',  | 
                                                        |
| 453 | + 'obj_id' => $grp_id,  | 
                                                        |
| 454 | +				'args'       => array('trash' => false, 'all' => true), | 
                                                        |
| 455 | + 'noheader' => true,  | 
                                                        |
| 456 | + ),  | 
                                                        |
| 457 | + 'restore_message_template_context' => array(  | 
                                                        |
| 458 | + 'func' => '_trash_or_restore_message_template',  | 
                                                        |
| 459 | + 'capability' => 'ee_delete_message',  | 
                                                        |
| 460 | + 'obj_id' => $grp_id,  | 
                                                        |
| 461 | +				'args'       => array('trash' => false), | 
                                                        |
| 462 | + 'noheader' => true,  | 
                                                        |
| 463 | + ),  | 
                                                        |
| 464 | + 'delete_message_template' => array(  | 
                                                        |
| 465 | + 'func' => '_delete_message_template',  | 
                                                        |
| 466 | + 'capability' => 'ee_delete_message',  | 
                                                        |
| 467 | + 'obj_id' => $grp_id,  | 
                                                        |
| 468 | + 'noheader' => true,  | 
                                                        |
| 469 | + ),  | 
                                                        |
| 470 | + 'reset_to_default' => array(  | 
                                                        |
| 471 | + 'func' => '_reset_to_default_template',  | 
                                                        |
| 472 | + 'capability' => 'ee_edit_message',  | 
                                                        |
| 473 | + 'obj_id' => $grp_id,  | 
                                                        |
| 474 | + 'noheader' => true,  | 
                                                        |
| 475 | + ),  | 
                                                        |
| 476 | + 'settings' => array(  | 
                                                        |
| 477 | + 'func' => '_settings',  | 
                                                        |
| 478 | + 'capability' => 'manage_options',  | 
                                                        |
| 479 | + ),  | 
                                                        |
| 480 | + 'update_global_settings' => array(  | 
                                                        |
| 481 | + 'func' => '_update_global_settings',  | 
                                                        |
| 482 | + 'capability' => 'manage_options',  | 
                                                        |
| 483 | + 'noheader' => true,  | 
                                                        |
| 484 | + ),  | 
                                                        |
| 485 | + 'generate_now' => array(  | 
                                                        |
| 486 | + 'func' => '_generate_now',  | 
                                                        |
| 487 | + 'capability' => 'ee_send_message',  | 
                                                        |
| 488 | + 'noheader' => true,  | 
                                                        |
| 489 | + ),  | 
                                                        |
| 490 | + 'generate_and_send_now' => array(  | 
                                                        |
| 491 | + 'func' => '_generate_and_send_now',  | 
                                                        |
| 492 | + 'capability' => 'ee_send_message',  | 
                                                        |
| 493 | + 'noheader' => true,  | 
                                                        |
| 494 | + ),  | 
                                                        |
| 495 | + 'queue_for_resending' => array(  | 
                                                        |
| 496 | + 'func' => '_queue_for_resending',  | 
                                                        |
| 497 | + 'capability' => 'ee_send_message',  | 
                                                        |
| 498 | + 'noheader' => true,  | 
                                                        |
| 499 | + ),  | 
                                                        |
| 500 | + 'send_now' => array(  | 
                                                        |
| 501 | + 'func' => '_send_now',  | 
                                                        |
| 502 | + 'capability' => 'ee_send_message',  | 
                                                        |
| 503 | + 'noheader' => true,  | 
                                                        |
| 504 | + ),  | 
                                                        |
| 505 | + 'delete_ee_message' => array(  | 
                                                        |
| 506 | + 'func' => '_delete_ee_messages',  | 
                                                        |
| 507 | + 'capability' => 'ee_delete_messages',  | 
                                                        |
| 508 | + 'noheader' => true,  | 
                                                        |
| 509 | + ),  | 
                                                        |
| 510 | + 'delete_ee_messages' => array(  | 
                                                        |
| 511 | + 'func' => '_delete_ee_messages',  | 
                                                        |
| 512 | + 'capability' => 'ee_delete_messages',  | 
                                                        |
| 513 | + 'noheader' => true,  | 
                                                        |
| 514 | + 'obj_id' => $msg_id,  | 
                                                        |
| 515 | + ),  | 
                                                        |
| 516 | + );  | 
                                                        |
| 517 | + }  | 
                                                        |
| 518 | +  | 
                                                        |
| 519 | +  | 
                                                        |
| 520 | + protected function _set_page_config()  | 
                                                        |
| 521 | +	{ | 
                                                        |
| 522 | + $this->_page_config = array(  | 
                                                        |
| 523 | + 'default' => array(  | 
                                                        |
| 524 | + 'nav' => array(  | 
                                                        |
| 525 | +					'label' => esc_html__('Message Activity', 'event_espresso'), | 
                                                        |
| 526 | + 'order' => 10,  | 
                                                        |
| 527 | + ),  | 
                                                        |
| 528 | + 'list_table' => 'EE_Message_List_Table',  | 
                                                        |
| 529 | + // 'qtips' => array( 'EE_Message_List_Table_Tips' ),  | 
                                                        |
| 530 | + 'require_nonce' => false,  | 
                                                        |
| 531 | + ),  | 
                                                        |
| 532 | + 'global_mtps' => array(  | 
                                                        |
| 533 | + 'nav' => array(  | 
                                                        |
| 534 | +					'label' => esc_html__('Default Message Templates', 'event_espresso'), | 
                                                        |
| 535 | + 'order' => 20,  | 
                                                        |
| 536 | + ),  | 
                                                        |
| 537 | + 'list_table' => 'Messages_Template_List_Table',  | 
                                                        |
| 538 | + 'help_tabs' => array(  | 
                                                        |
| 539 | + 'messages_overview_help_tab' => array(  | 
                                                        |
| 540 | +						'title'    => esc_html__('Messages Overview', 'event_espresso'), | 
                                                        |
| 541 | + 'filename' => 'messages_overview',  | 
                                                        |
| 542 | + ),  | 
                                                        |
| 543 | + 'messages_overview_messages_table_column_headings_help_tab' => array(  | 
                                                        |
| 544 | +						'title'    => esc_html__('Messages Table Column Headings', 'event_espresso'), | 
                                                        |
| 545 | + 'filename' => 'messages_overview_table_column_headings',  | 
                                                        |
| 546 | + ),  | 
                                                        |
| 547 | + 'messages_overview_messages_filters_help_tab' => array(  | 
                                                        |
| 548 | +						'title'    => esc_html__('Message Filters', 'event_espresso'), | 
                                                        |
| 549 | + 'filename' => 'messages_overview_filters',  | 
                                                        |
| 550 | + ),  | 
                                                        |
| 551 | + 'messages_overview_messages_views_help_tab' => array(  | 
                                                        |
| 552 | +						'title'    => esc_html__('Message Views', 'event_espresso'), | 
                                                        |
| 553 | + 'filename' => 'messages_overview_views',  | 
                                                        |
| 554 | + ),  | 
                                                        |
| 555 | + 'message_overview_message_types_help_tab' => array(  | 
                                                        |
| 556 | +						'title'    => esc_html__('Message Types', 'event_espresso'), | 
                                                        |
| 557 | + 'filename' => 'messages_overview_types',  | 
                                                        |
| 558 | + ),  | 
                                                        |
| 559 | + 'messages_overview_messengers_help_tab' => array(  | 
                                                        |
| 560 | +						'title'    => esc_html__('Messengers', 'event_espresso'), | 
                                                        |
| 561 | + 'filename' => 'messages_overview_messengers',  | 
                                                        |
| 562 | + ),  | 
                                                        |
| 563 | + ),  | 
                                                        |
| 564 | +				'help_tour'     => array('Messages_Overview_Help_Tour'), | 
                                                        |
| 565 | + 'require_nonce' => false,  | 
                                                        |
| 566 | + ),  | 
                                                        |
| 567 | + 'custom_mtps' => array(  | 
                                                        |
| 568 | + 'nav' => array(  | 
                                                        |
| 569 | +					'label' => esc_html__('Custom Message Templates', 'event_espresso'), | 
                                                        |
| 570 | + 'order' => 30,  | 
                                                        |
| 571 | + ),  | 
                                                        |
| 572 | + 'help_tabs' => array(),  | 
                                                        |
| 573 | + 'help_tour' => array(),  | 
                                                        |
| 574 | + 'require_nonce' => false,  | 
                                                        |
| 575 | + ),  | 
                                                        |
| 576 | + 'add_new_message_template' => array(  | 
                                                        |
| 577 | + 'nav' => array(  | 
                                                        |
| 578 | +					'label'      => esc_html__('Add New Message Templates', 'event_espresso'), | 
                                                        |
| 579 | + 'order' => 5,  | 
                                                        |
| 580 | + 'persistent' => false,  | 
                                                        |
| 581 | + ),  | 
                                                        |
| 582 | + 'require_nonce' => false,  | 
                                                        |
| 583 | + ),  | 
                                                        |
| 584 | + 'edit_message_template' => array(  | 
                                                        |
| 585 | + 'labels' => array(  | 
                                                        |
| 586 | + 'buttons' => array(  | 
                                                        |
| 587 | +						'reset' => esc_html__('Reset Templates', 'event_espresso'), | 
                                                        |
| 588 | + ),  | 
                                                        |
| 589 | +					'publishbox' => esc_html__('Update Actions', 'event_espresso'), | 
                                                        |
| 590 | + ),  | 
                                                        |
| 591 | + 'nav' => array(  | 
                                                        |
| 592 | +					'label'      => esc_html__('Edit Message Templates', 'event_espresso'), | 
                                                        |
| 593 | + 'order' => 5,  | 
                                                        |
| 594 | + 'persistent' => false,  | 
                                                        |
| 595 | + 'url' => '',  | 
                                                        |
| 596 | + ),  | 
                                                        |
| 597 | +				'metaboxes'     => array('_publish_post_box', '_register_edit_meta_boxes'), | 
                                                        |
| 598 | + 'has_metaboxes' => true,  | 
                                                        |
| 599 | +				'help_tour'     => array('Message_Templates_Edit_Help_Tour'), | 
                                                        |
| 600 | + 'help_tabs' => array(  | 
                                                        |
| 601 | + 'edit_message_template' => array(  | 
                                                        |
| 602 | +						'title'    => esc_html__('Message Template Editor', 'event_espresso'), | 
                                                        |
| 603 | + 'callback' => 'edit_message_template_help_tab',  | 
                                                        |
| 604 | + ),  | 
                                                        |
| 605 | + 'message_templates_help_tab' => array(  | 
                                                        |
| 606 | +						'title'    => esc_html__('Message Templates', 'event_espresso'), | 
                                                        |
| 607 | + 'filename' => 'messages_templates',  | 
                                                        |
| 608 | + ),  | 
                                                        |
| 609 | + 'message_template_shortcodes' => array(  | 
                                                        |
| 610 | +						'title'    => esc_html__('Message Shortcodes', 'event_espresso'), | 
                                                        |
| 611 | + 'callback' => 'message_template_shortcodes_help_tab',  | 
                                                        |
| 612 | + ),  | 
                                                        |
| 613 | + 'message_preview_help_tab' => array(  | 
                                                        |
| 614 | +						'title'    => esc_html__('Message Preview', 'event_espresso'), | 
                                                        |
| 615 | + 'filename' => 'messages_preview',  | 
                                                        |
| 616 | + ),  | 
                                                        |
| 617 | + 'messages_overview_other_help_tab' => array(  | 
                                                        |
| 618 | +						'title'    => esc_html__('Messages Other', 'event_espresso'), | 
                                                        |
| 619 | + 'filename' => 'messages_overview_other',  | 
                                                        |
| 620 | + ),  | 
                                                        |
| 621 | + ),  | 
                                                        |
| 622 | + 'require_nonce' => false,  | 
                                                        |
| 623 | + ),  | 
                                                        |
| 624 | + 'display_preview_message' => array(  | 
                                                        |
| 625 | + 'nav' => array(  | 
                                                        |
| 626 | +					'label'      => esc_html__('Message Preview', 'event_espresso'), | 
                                                        |
| 627 | + 'order' => 5,  | 
                                                        |
| 628 | + 'url' => '',  | 
                                                        |
| 629 | + 'persistent' => false,  | 
                                                        |
| 630 | + ),  | 
                                                        |
| 631 | + 'help_tabs' => array(  | 
                                                        |
| 632 | + 'preview_message' => array(  | 
                                                        |
| 633 | +						'title'    => esc_html__('About Previews', 'event_espresso'), | 
                                                        |
| 634 | + 'callback' => 'preview_message_help_tab',  | 
                                                        |
| 635 | + ),  | 
                                                        |
| 636 | + ),  | 
                                                        |
| 637 | + 'require_nonce' => false,  | 
                                                        |
| 638 | + ),  | 
                                                        |
| 639 | + 'settings' => array(  | 
                                                        |
| 640 | + 'nav' => array(  | 
                                                        |
| 641 | +					'label' => esc_html__('Settings', 'event_espresso'), | 
                                                        |
| 642 | + 'order' => 40,  | 
                                                        |
| 643 | + ),  | 
                                                        |
| 644 | +				'metaboxes'     => array('_messages_settings_metaboxes'), | 
                                                        |
| 645 | + 'help_tabs' => array(  | 
                                                        |
| 646 | + 'messages_settings_help_tab' => array(  | 
                                                        |
| 647 | +						'title'    => esc_html__('Messages Settings', 'event_espresso'), | 
                                                        |
| 648 | + 'filename' => 'messages_settings',  | 
                                                        |
| 649 | + ),  | 
                                                        |
| 650 | + 'messages_settings_message_types_help_tab' => array(  | 
                                                        |
| 651 | +						'title'    => esc_html__('Activating / Deactivating Message Types', 'event_espresso'), | 
                                                        |
| 652 | + 'filename' => 'messages_settings_message_types',  | 
                                                        |
| 653 | + ),  | 
                                                        |
| 654 | + 'messages_settings_messengers_help_tab' => array(  | 
                                                        |
| 655 | +						'title'    => esc_html__('Activating / Deactivating Messengers', 'event_espresso'), | 
                                                        |
| 656 | + 'filename' => 'messages_settings_messengers',  | 
                                                        |
| 657 | + ),  | 
                                                        |
| 658 | + ),  | 
                                                        |
| 659 | +				'help_tour'     => array('Messages_Settings_Help_Tour'), | 
                                                        |
| 660 | + 'require_nonce' => false,  | 
                                                        |
| 661 | + ),  | 
                                                        |
| 662 | + );  | 
                                                        |
| 663 | + }  | 
                                                        |
| 664 | +  | 
                                                        |
| 665 | +  | 
                                                        |
| 666 | + protected function _add_screen_options()  | 
                                                        |
| 667 | +	{ | 
                                                        |
| 668 | + // todo  | 
                                                        |
| 669 | + }  | 
                                                        |
| 670 | +  | 
                                                        |
| 671 | +  | 
                                                        |
| 672 | + protected function _add_screen_options_global_mtps()  | 
                                                        |
| 673 | +	{ | 
                                                        |
| 674 | + /**  | 
                                                        |
| 675 | + * Note: the reason for the value swap here on $this->_admin_page_title is because $this->_per_page_screen_options  | 
                                                        |
| 676 | + * uses the $_admin_page_title property and we want different outputs in the different spots.  | 
                                                        |
| 677 | + */  | 
                                                        |
| 678 | + $page_title = $this->_admin_page_title;  | 
                                                        |
| 679 | +		$this->_admin_page_title = esc_html__('Global Message Templates', 'event_espresso'); | 
                                                        |
| 680 | + $this->_per_page_screen_option();  | 
                                                        |
| 681 | + $this->_admin_page_title = $page_title;  | 
                                                        |
| 682 | + }  | 
                                                        |
| 683 | +  | 
                                                        |
| 684 | +  | 
                                                        |
| 685 | + protected function _add_screen_options_default()  | 
                                                        |
| 686 | +	{ | 
                                                        |
| 687 | +		$this->_admin_page_title = esc_html__('Message Activity', 'event_espresso'); | 
                                                        |
| 688 | + $this->_per_page_screen_option();  | 
                                                        |
| 689 | + }  | 
                                                        |
| 690 | +  | 
                                                        |
| 691 | +  | 
                                                        |
| 692 | + // none of the below group are currently used for Messages  | 
                                                        |
| 693 | + protected function _add_feature_pointers()  | 
                                                        |
| 694 | +	{ | 
                                                        |
| 695 | + }  | 
                                                        |
| 696 | +  | 
                                                        |
| 697 | + public function admin_init()  | 
                                                        |
| 698 | +	{ | 
                                                        |
| 699 | + }  | 
                                                        |
| 700 | +  | 
                                                        |
| 701 | + public function admin_notices()  | 
                                                        |
| 702 | +	{ | 
                                                        |
| 703 | + }  | 
                                                        |
| 704 | +  | 
                                                        |
| 705 | + public function admin_footer_scripts()  | 
                                                        |
| 706 | +	{ | 
                                                        |
| 707 | + }  | 
                                                        |
| 708 | +  | 
                                                        |
| 709 | +  | 
                                                        |
| 710 | + public function messages_help_tab()  | 
                                                        |
| 711 | +	{ | 
                                                        |
| 712 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_help_tab.template.php');  | 
                                                        |
| 713 | + }  | 
                                                        |
| 714 | +  | 
                                                        |
| 715 | +  | 
                                                        |
| 716 | + public function messengers_help_tab()  | 
                                                        |
| 717 | +	{ | 
                                                        |
| 718 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messenger_help_tab.template.php');  | 
                                                        |
| 719 | + }  | 
                                                        |
| 720 | +  | 
                                                        |
| 721 | +  | 
                                                        |
| 722 | + public function message_types_help_tab()  | 
                                                        |
| 723 | +	{ | 
                                                        |
| 724 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_type_help_tab.template.php');  | 
                                                        |
| 725 | + }  | 
                                                        |
| 726 | +  | 
                                                        |
| 727 | +  | 
                                                        |
| 728 | + public function messages_overview_help_tab()  | 
                                                        |
| 729 | +	{ | 
                                                        |
| 730 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_overview_help_tab.template.php');  | 
                                                        |
| 731 | + }  | 
                                                        |
| 732 | +  | 
                                                        |
| 733 | +  | 
                                                        |
| 734 | + public function message_templates_help_tab()  | 
                                                        |
| 735 | +	{ | 
                                                        |
| 736 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_templates_help_tab.template.php');  | 
                                                        |
| 737 | + }  | 
                                                        |
| 738 | +  | 
                                                        |
| 739 | +  | 
                                                        |
| 740 | + public function edit_message_template_help_tab()  | 
                                                        |
| 741 | +	{ | 
                                                        |
| 742 | + $args['img1'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/editor.png' . '" alt="'  | 
                                                        |
| 743 | +						. esc_attr__('Editor Title', 'event_espresso') | 
                                                        |
| 744 | + . '" />';  | 
                                                        |
| 745 | + $args['img2'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/switch-context.png' . '" alt="'  | 
                                                        |
| 746 | +						. esc_attr__('Context Switcher and Preview', 'event_espresso') | 
                                                        |
| 747 | + . '" />';  | 
                                                        |
| 748 | + $args['img3'] = '<img class="left" src="' . EE_MSG_ASSETS_URL . 'images/form-fields.png' . '" alt="'  | 
                                                        |
| 749 | +						. esc_attr__('Message Template Form Fields', 'event_espresso') | 
                                                        |
| 750 | + . '" />';  | 
                                                        |
| 751 | + $args['img4'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/shortcodes-metabox.png' . '" alt="'  | 
                                                        |
| 752 | +						. esc_attr__('Shortcodes Metabox', 'event_espresso') | 
                                                        |
| 753 | + . '" />';  | 
                                                        |
| 754 | + $args['img5'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/publish-meta-box.png' . '" alt="'  | 
                                                        |
| 755 | +						. esc_attr__('Publish Metabox', 'event_espresso') | 
                                                        |
| 756 | + . '" />';  | 
                                                        |
| 757 | + EEH_Template::display_template(  | 
                                                        |
| 758 | + EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_templates_editor_help_tab.template.php',  | 
                                                        |
| 759 | + $args  | 
                                                        |
| 760 | + );  | 
                                                        |
| 761 | + }  | 
                                                        |
| 762 | +  | 
                                                        |
| 763 | +  | 
                                                        |
| 764 | + public function message_template_shortcodes_help_tab()  | 
                                                        |
| 765 | +	{ | 
                                                        |
| 766 | + $this->_set_shortcodes();  | 
                                                        |
| 767 | + $args['shortcodes'] = $this->_shortcodes;  | 
                                                        |
| 768 | + EEH_Template::display_template(  | 
                                                        |
| 769 | + EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_shortcodes_help_tab.template.php',  | 
                                                        |
| 770 | + $args  | 
                                                        |
| 771 | + );  | 
                                                        |
| 772 | + }  | 
                                                        |
| 773 | +  | 
                                                        |
| 774 | +  | 
                                                        |
| 775 | + public function preview_message_help_tab()  | 
                                                        |
| 776 | +	{ | 
                                                        |
| 777 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_preview_help_tab.template.php');  | 
                                                        |
| 778 | + }  | 
                                                        |
| 779 | +  | 
                                                        |
| 780 | +  | 
                                                        |
| 781 | + public function settings_help_tab()  | 
                                                        |
| 782 | +	{ | 
                                                        |
| 783 | + $args['img1'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png'  | 
                                                        |
| 784 | +						. '" alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 785 | + $args['img2'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'  | 
                                                        |
| 786 | +						. '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 787 | + $args['img3'] = '<div class="switch">'  | 
                                                        |
| 788 | + . '<input class="ee-on-off-toggle ee-toggle-round-flat"'  | 
                                                        |
| 789 | + . ' type="checkbox" checked="checked">'  | 
                                                        |
| 790 | + . '<label for="ee-on-off-toggle-on"></label>'  | 
                                                        |
| 791 | + . '</div>';  | 
                                                        |
| 792 | + $args['img4'] = '<div class="switch">'  | 
                                                        |
| 793 | + . '<input class="ee-on-off-toggle ee-toggle-round-flat"'  | 
                                                        |
| 794 | + . ' type="checkbox">'  | 
                                                        |
| 795 | + . '<label for="ee-on-off-toggle-on"></label>'  | 
                                                        |
| 796 | + . '</div>';  | 
                                                        |
| 797 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_settings_help_tab.template.php', $args);  | 
                                                        |
| 798 | + }  | 
                                                        |
| 799 | +  | 
                                                        |
| 800 | +  | 
                                                        |
| 801 | + public function load_scripts_styles()  | 
                                                        |
| 802 | +	{ | 
                                                        |
| 803 | +		wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL . 'ee_message_admin.css', EVENT_ESPRESSO_VERSION); | 
                                                        |
| 804 | +		wp_enqueue_style('espresso_ee_msg'); | 
                                                        |
| 805 | +  | 
                                                        |
| 806 | + wp_register_script(  | 
                                                        |
| 807 | + 'ee-messages-settings',  | 
                                                        |
| 808 | + EE_MSG_ASSETS_URL . 'ee-messages-settings.js',  | 
                                                        |
| 809 | +			array('jquery-ui-droppable', 'ee-serialize-full-array'), | 
                                                        |
| 810 | + EVENT_ESPRESSO_VERSION,  | 
                                                        |
| 811 | + true  | 
                                                        |
| 812 | + );  | 
                                                        |
| 813 | + wp_register_script(  | 
                                                        |
| 814 | + 'ee-msg-list-table-js',  | 
                                                        |
| 815 | + EE_MSG_ASSETS_URL . 'ee_message_admin_list_table.js',  | 
                                                        |
| 816 | +			array('ee-dialog'), | 
                                                        |
| 817 | + EVENT_ESPRESSO_VERSION  | 
                                                        |
| 818 | + );  | 
                                                        |
| 819 | + }  | 
                                                        |
| 820 | +  | 
                                                        |
| 821 | +  | 
                                                        |
| 822 | + public function load_scripts_styles_default()  | 
                                                        |
| 823 | +	{ | 
                                                        |
| 824 | +		wp_enqueue_script('ee-msg-list-table-js'); | 
                                                        |
| 825 | + }  | 
                                                        |
| 826 | +  | 
                                                        |
| 827 | +  | 
                                                        |
| 828 | + public function wp_editor_css($mce_css)  | 
                                                        |
| 829 | +	{ | 
                                                        |
| 830 | + // if we're on the edit_message_template route  | 
                                                        |
| 831 | +		if ($this->_req_action === 'edit_message_template' && $this->_active_messenger instanceof EE_messenger) { | 
                                                        |
| 832 | + $message_type_name = $this->_active_message_type_name;  | 
                                                        |
| 833 | +  | 
                                                        |
| 834 | + // we're going to REPLACE the existing mce css  | 
                                                        |
| 835 | + // we need to get the css file location from the active messenger  | 
                                                        |
| 836 | + $mce_css = $this->_active_messenger->get_variation(  | 
                                                        |
| 837 | + $this->_template_pack,  | 
                                                        |
| 838 | + $message_type_name,  | 
                                                        |
| 839 | + true,  | 
                                                        |
| 840 | + 'wpeditor',  | 
                                                        |
| 841 | + $this->_variation  | 
                                                        |
| 842 | + );  | 
                                                        |
| 843 | + }  | 
                                                        |
| 844 | +  | 
                                                        |
| 845 | + return $mce_css;  | 
                                                        |
| 846 | + }  | 
                                                        |
| 847 | +  | 
                                                        |
| 848 | +  | 
                                                        |
| 849 | + public function load_scripts_styles_edit_message_template()  | 
                                                        |
| 850 | +	{ | 
                                                        |
| 851 | +  | 
                                                        |
| 852 | + $this->_set_shortcodes();  | 
                                                        |
| 853 | +  | 
                                                        |
| 854 | + EE_Registry::$i18n_js_strings['confirm_default_reset'] = sprintf(  | 
                                                        |
| 855 | + esc_html__(  | 
                                                        |
| 856 | + 'Are you sure you want to reset the %s %s message templates? Remember continuing will reset the templates for all contexts in this messenger and message type group.',  | 
                                                        |
| 857 | + 'event_espresso'  | 
                                                        |
| 858 | + ),  | 
                                                        |
| 859 | + $this->_message_template_group->messenger_obj()->label['singular'],  | 
                                                        |
| 860 | + $this->_message_template_group->message_type_obj()->label['singular']  | 
                                                        |
| 861 | + );  | 
                                                        |
| 862 | + EE_Registry::$i18n_js_strings['confirm_switch_template_pack'] = esc_html__(  | 
                                                        |
| 863 | + 'Switching the template pack for a messages template will reset the content for the template so the new layout is loaded. Any custom content in the existing template will be lost. Are you sure you wish to do this?',  | 
                                                        |
| 864 | + 'event_espresso'  | 
                                                        |
| 865 | + );  | 
                                                        |
| 866 | + EE_Registry::$i18n_js_strings['server_error'] = esc_html__(  | 
                                                        |
| 867 | + 'An unknown error occurred on the server while attempting to process your request. Please refresh the page and try again or contact support.',  | 
                                                        |
| 868 | + 'event_espresso'  | 
                                                        |
| 869 | + );  | 
                                                        |
| 870 | +  | 
                                                        |
| 871 | + wp_register_script(  | 
                                                        |
| 872 | + 'ee_msgs_edit_js',  | 
                                                        |
| 873 | + EE_MSG_ASSETS_URL . 'ee_message_editor.js',  | 
                                                        |
| 874 | +			array('jquery'), | 
                                                        |
| 875 | + EVENT_ESPRESSO_VERSION  | 
                                                        |
| 876 | + );  | 
                                                        |
| 877 | +  | 
                                                        |
| 878 | +		wp_enqueue_script('ee_admin_js'); | 
                                                        |
| 879 | +		wp_enqueue_script('ee_msgs_edit_js'); | 
                                                        |
| 880 | +  | 
                                                        |
| 881 | + // add in special css for tiny_mce  | 
                                                        |
| 882 | +		add_filter('mce_css', array($this, 'wp_editor_css')); | 
                                                        |
| 883 | + }  | 
                                                        |
| 884 | +  | 
                                                        |
| 885 | +  | 
                                                        |
| 886 | + public function load_scripts_styles_display_preview_message()  | 
                                                        |
| 887 | +	{ | 
                                                        |
| 888 | +  | 
                                                        |
| 889 | + $this->_set_message_template_group();  | 
                                                        |
| 890 | +  | 
                                                        |
| 891 | +		if (isset($this->_req_data['messenger'])) { | 
                                                        |
| 892 | + $this->_active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 893 | + $this->_req_data['messenger']  | 
                                                        |
| 894 | + );  | 
                                                        |
| 895 | + }  | 
                                                        |
| 896 | +  | 
                                                        |
| 897 | + $message_type_name = isset($this->_req_data['message_type']) ? $this->_req_data['message_type'] : '';  | 
                                                        |
| 898 | +  | 
                                                        |
| 899 | +  | 
                                                        |
| 900 | + wp_enqueue_style(  | 
                                                        |
| 901 | + 'espresso_preview_css',  | 
                                                        |
| 902 | + $this->_active_messenger->get_variation(  | 
                                                        |
| 903 | + $this->_template_pack,  | 
                                                        |
| 904 | + $message_type_name,  | 
                                                        |
| 905 | + true,  | 
                                                        |
| 906 | + 'preview',  | 
                                                        |
| 907 | + $this->_variation  | 
                                                        |
| 908 | + )  | 
                                                        |
| 909 | + );  | 
                                                        |
| 910 | + }  | 
                                                        |
| 911 | +  | 
                                                        |
| 912 | +  | 
                                                        |
| 913 | + public function load_scripts_styles_settings()  | 
                                                        |
| 914 | +	{ | 
                                                        |
| 915 | + wp_register_style(  | 
                                                        |
| 916 | + 'ee-message-settings',  | 
                                                        |
| 917 | + EE_MSG_ASSETS_URL . 'ee_message_settings.css',  | 
                                                        |
| 918 | + array(),  | 
                                                        |
| 919 | + EVENT_ESPRESSO_VERSION  | 
                                                        |
| 920 | + );  | 
                                                        |
| 921 | +		wp_enqueue_style('ee-text-links'); | 
                                                        |
| 922 | +		wp_enqueue_style('ee-message-settings'); | 
                                                        |
| 923 | +		wp_enqueue_script('ee-messages-settings'); | 
                                                        |
| 924 | + }  | 
                                                        |
| 925 | +  | 
                                                        |
| 926 | +  | 
                                                        |
| 927 | + /**  | 
                                                        |
| 928 | + * set views array for List Table  | 
                                                        |
| 929 | + */  | 
                                                        |
| 930 | + public function _set_list_table_views_global_mtps()  | 
                                                        |
| 931 | +	{ | 
                                                        |
| 932 | + $this->_views = array(  | 
                                                        |
| 933 | + 'in_use' => array(  | 
                                                        |
| 934 | + 'slug' => 'in_use',  | 
                                                        |
| 935 | +				'label' => esc_html__('In Use', 'event_espresso'), | 
                                                        |
| 936 | + 'count' => 0,  | 
                                                        |
| 937 | + ),  | 
                                                        |
| 938 | + );  | 
                                                        |
| 939 | + }  | 
                                                        |
| 940 | +  | 
                                                        |
| 941 | +  | 
                                                        |
| 942 | + /**  | 
                                                        |
| 943 | + * Set views array for the Custom Template List Table  | 
                                                        |
| 944 | + */  | 
                                                        |
| 945 | + public function _set_list_table_views_custom_mtps()  | 
                                                        |
| 946 | +	{ | 
                                                        |
| 947 | + $this->_set_list_table_views_global_mtps();  | 
                                                        |
| 948 | + $this->_views['in_use']['bulk_action'] = array(  | 
                                                        |
| 949 | +			'trash_message_template' => esc_html__('Move to Trash', 'event_espresso'), | 
                                                        |
| 950 | + );  | 
                                                        |
| 951 | + }  | 
                                                        |
| 952 | +  | 
                                                        |
| 953 | +  | 
                                                        |
| 954 | + /**  | 
                                                        |
| 955 | + * set views array for message queue list table  | 
                                                        |
| 956 | + *  | 
                                                        |
| 957 | + * @throws InvalidDataTypeException  | 
                                                        |
| 958 | + * @throws InvalidInterfaceException  | 
                                                        |
| 959 | + * @throws InvalidArgumentException  | 
                                                        |
| 960 | + * @throws EE_Error  | 
                                                        |
| 961 | + * @throws ReflectionException  | 
                                                        |
| 962 | + */  | 
                                                        |
| 963 | + public function _set_list_table_views_default()  | 
                                                        |
| 964 | +	{ | 
                                                        |
| 965 | +		EE_Registry::instance()->load_helper('Template'); | 
                                                        |
| 966 | +  | 
                                                        |
| 967 | + $common_bulk_actions = EE_Registry::instance()->CAP->current_user_can(  | 
                                                        |
| 968 | + 'ee_send_message',  | 
                                                        |
| 969 | + 'message_list_table_bulk_actions'  | 
                                                        |
| 970 | + )  | 
                                                        |
| 971 | + ? array(  | 
                                                        |
| 972 | +				'generate_now'          => esc_html__('Generate Now', 'event_espresso'), | 
                                                        |
| 973 | +				'generate_and_send_now' => esc_html__('Generate and Send Now', 'event_espresso'), | 
                                                        |
| 974 | +				'queue_for_resending'   => esc_html__('Queue for Resending', 'event_espresso'), | 
                                                        |
| 975 | +				'send_now'              => esc_html__('Send Now', 'event_espresso'), | 
                                                        |
| 976 | + )  | 
                                                        |
| 977 | + : array();  | 
                                                        |
| 978 | +  | 
                                                        |
| 979 | + $delete_bulk_action = EE_Registry::instance()->CAP->current_user_can(  | 
                                                        |
| 980 | + 'ee_delete_messages',  | 
                                                        |
| 981 | + 'message_list_table_bulk_actions'  | 
                                                        |
| 982 | + )  | 
                                                        |
| 983 | +			? array('delete_ee_messages' => esc_html__('Delete Messages', 'event_espresso')) | 
                                                        |
| 984 | + : array();  | 
                                                        |
| 985 | +  | 
                                                        |
| 986 | +  | 
                                                        |
| 987 | + $this->_views = array(  | 
                                                        |
| 988 | + 'all' => array(  | 
                                                        |
| 989 | + 'slug' => 'all',  | 
                                                        |
| 990 | +				'label'       => esc_html__('All', 'event_espresso'), | 
                                                        |
| 991 | + 'count' => 0,  | 
                                                        |
| 992 | + 'bulk_action' => array_merge($common_bulk_actions, $delete_bulk_action),  | 
                                                        |
| 993 | + ),  | 
                                                        |
| 994 | + );  | 
                                                        |
| 995 | +  | 
                                                        |
| 996 | +  | 
                                                        |
| 997 | +		foreach (EEM_Message::instance()->all_statuses() as $status) { | 
                                                        |
| 998 | +			if ($status === EEM_Message::status_debug_only && ! EEM_Message::debug()) { | 
                                                        |
| 999 | + continue;  | 
                                                        |
| 1000 | + }  | 
                                                        |
| 1001 | + $status_bulk_actions = $common_bulk_actions;  | 
                                                        |
| 1002 | + // unset bulk actions not applying to status  | 
                                                        |
| 1003 | +			if (! empty($status_bulk_actions)) { | 
                                                        |
| 1004 | +				switch ($status) { | 
                                                        |
| 1005 | + case EEM_Message::status_idle:  | 
                                                        |
| 1006 | + case EEM_Message::status_resend:  | 
                                                        |
| 1007 | + $status_bulk_actions['send_now'] = $common_bulk_actions['send_now'];  | 
                                                        |
| 1008 | + break;  | 
                                                        |
| 1009 | +  | 
                                                        |
| 1010 | + case EEM_Message::status_failed:  | 
                                                        |
| 1011 | + case EEM_Message::status_debug_only:  | 
                                                        |
| 1012 | + case EEM_Message::status_messenger_executing:  | 
                                                        |
| 1013 | + $status_bulk_actions = array();  | 
                                                        |
| 1014 | + break;  | 
                                                        |
| 1015 | +  | 
                                                        |
| 1016 | + case EEM_Message::status_incomplete:  | 
                                                        |
| 1017 | + unset($status_bulk_actions['queue_for_resending'], $status_bulk_actions['send_now']);  | 
                                                        |
| 1018 | + break;  | 
                                                        |
| 1019 | +  | 
                                                        |
| 1020 | + case EEM_Message::status_retry:  | 
                                                        |
| 1021 | + case EEM_Message::status_sent:  | 
                                                        |
| 1022 | + unset($status_bulk_actions['generate_now'], $status_bulk_actions['generate_and_send_now']);  | 
                                                        |
| 1023 | + break;  | 
                                                        |
| 1024 | + }  | 
                                                        |
| 1025 | + }  | 
                                                        |
| 1026 | +  | 
                                                        |
| 1027 | + // skip adding messenger executing status to views because it will be included with the Failed view.  | 
                                                        |
| 1028 | +			if ($status === EEM_Message::status_messenger_executing) { | 
                                                        |
| 1029 | + continue;  | 
                                                        |
| 1030 | + }  | 
                                                        |
| 1031 | +  | 
                                                        |
| 1032 | + $this->_views[ strtolower($status) ] = array(  | 
                                                        |
| 1033 | + 'slug' => strtolower($status),  | 
                                                        |
| 1034 | + 'label' => EEH_Template::pretty_status($status, false, 'sentence'),  | 
                                                        |
| 1035 | + 'count' => 0,  | 
                                                        |
| 1036 | + 'bulk_action' => array_merge($status_bulk_actions, $delete_bulk_action),  | 
                                                        |
| 1037 | + );  | 
                                                        |
| 1038 | + }  | 
                                                        |
| 1039 | + }  | 
                                                        |
| 1040 | +  | 
                                                        |
| 1041 | +  | 
                                                        |
| 1042 | + protected function _ee_default_messages_overview_list_table()  | 
                                                        |
| 1043 | +	{ | 
                                                        |
| 1044 | +		$this->_admin_page_title = esc_html__('Default Message Templates', 'event_espresso'); | 
                                                        |
| 1045 | + $this->display_admin_list_table_page_with_no_sidebar();  | 
                                                        |
| 1046 | + }  | 
                                                        |
| 1047 | +  | 
                                                        |
| 1048 | +  | 
                                                        |
| 1049 | + protected function _message_queue_list_table()  | 
                                                        |
| 1050 | +	{ | 
                                                        |
| 1051 | +		$this->_search_btn_label = esc_html__('Message Activity', 'event_espresso'); | 
                                                        |
| 1052 | + $this->_template_args['per_column'] = 6;  | 
                                                        |
| 1053 | + $this->_template_args['after_list_table'] = $this->_display_legend($this->_message_legend_items());  | 
                                                        |
| 1054 | + $this->_template_args['before_list_table'] = '<h3>'  | 
                                                        |
| 1055 | + . EEM_Message::instance()->get_pretty_label_for_results()  | 
                                                        |
| 1056 | + . '</h3>';  | 
                                                        |
| 1057 | + $this->display_admin_list_table_page_with_no_sidebar();  | 
                                                        |
| 1058 | + }  | 
                                                        |
| 1059 | +  | 
                                                        |
| 1060 | +  | 
                                                        |
| 1061 | + protected function _message_legend_items()  | 
                                                        |
| 1062 | +	{ | 
                                                        |
| 1063 | +  | 
                                                        |
| 1064 | + $action_css_classes = EEH_MSG_Template::get_message_action_icons();  | 
                                                        |
| 1065 | + $action_items = array();  | 
                                                        |
| 1066 | +  | 
                                                        |
| 1067 | +		foreach ($action_css_classes as $action_item => $action_details) { | 
                                                        |
| 1068 | +			if ($action_item === 'see_notifications_for') { | 
                                                        |
| 1069 | + continue;  | 
                                                        |
| 1070 | + }  | 
                                                        |
| 1071 | + $action_items[ $action_item ] = array(  | 
                                                        |
| 1072 | + 'class' => $action_details['css_class'],  | 
                                                        |
| 1073 | + 'desc' => $action_details['label'],  | 
                                                        |
| 1074 | + );  | 
                                                        |
| 1075 | + }  | 
                                                        |
| 1076 | +  | 
                                                        |
| 1077 | + /** @type array $status_items status legend setup */  | 
                                                        |
| 1078 | + $status_items = array(  | 
                                                        |
| 1079 | + 'sent_status' => array(  | 
                                                        |
| 1080 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_sent,  | 
                                                        |
| 1081 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_sent, false, 'sentence'),  | 
                                                        |
| 1082 | + ),  | 
                                                        |
| 1083 | + 'idle_status' => array(  | 
                                                        |
| 1084 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_idle,  | 
                                                        |
| 1085 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_idle, false, 'sentence'),  | 
                                                        |
| 1086 | + ),  | 
                                                        |
| 1087 | + 'failed_status' => array(  | 
                                                        |
| 1088 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_failed,  | 
                                                        |
| 1089 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_failed, false, 'sentence'),  | 
                                                        |
| 1090 | + ),  | 
                                                        |
| 1091 | + 'messenger_executing_status' => array(  | 
                                                        |
| 1092 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_messenger_executing,  | 
                                                        |
| 1093 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_messenger_executing, false, 'sentence'),  | 
                                                        |
| 1094 | + ),  | 
                                                        |
| 1095 | + 'resend_status' => array(  | 
                                                        |
| 1096 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_resend,  | 
                                                        |
| 1097 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_resend, false, 'sentence'),  | 
                                                        |
| 1098 | + ),  | 
                                                        |
| 1099 | + 'incomplete_status' => array(  | 
                                                        |
| 1100 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_incomplete,  | 
                                                        |
| 1101 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_incomplete, false, 'sentence'),  | 
                                                        |
| 1102 | + ),  | 
                                                        |
| 1103 | + 'retry_status' => array(  | 
                                                        |
| 1104 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_retry,  | 
                                                        |
| 1105 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_retry, false, 'sentence'),  | 
                                                        |
| 1106 | + ),  | 
                                                        |
| 1107 | + );  | 
                                                        |
| 1108 | +		if (EEM_Message::debug()) { | 
                                                        |
| 1109 | + $status_items['debug_only_status'] = array(  | 
                                                        |
| 1110 | + 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_debug_only,  | 
                                                        |
| 1111 | + 'desc' => EEH_Template::pretty_status(EEM_Message::status_debug_only, false, 'sentence'),  | 
                                                        |
| 1112 | + );  | 
                                                        |
| 1113 | + }  | 
                                                        |
| 1114 | +  | 
                                                        |
| 1115 | + return array_merge($action_items, $status_items);  | 
                                                        |
| 1116 | + }  | 
                                                        |
| 1117 | +  | 
                                                        |
| 1118 | +  | 
                                                        |
| 1119 | + protected function _custom_mtps_preview()  | 
                                                        |
| 1120 | +	{ | 
                                                        |
| 1121 | +		$this->_admin_page_title = esc_html__('Custom Message Templates (Preview)', 'event_espresso'); | 
                                                        |
| 1122 | + $this->_template_args['preview_img'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/custom_mtps_preview.png"'  | 
                                                        |
| 1123 | + . ' alt="' . esc_attr__(  | 
                                                        |
| 1124 | + 'Preview Custom Message Templates screenshot',  | 
                                                        |
| 1125 | + 'event_espresso'  | 
                                                        |
| 1126 | + ) . '" />';  | 
                                                        |
| 1127 | + $this->_template_args['preview_text'] = '<strong>'  | 
                                                        |
| 1128 | + . esc_html__(  | 
                                                        |
| 1129 | + 'Custom Message Templates is a feature that is only available in the premium version of Event Espresso 4 which is available with a support license purchase on EventEspresso.com. With the Custom Message Templates feature, you are able to create custom message templates and assign them on a per-event basis.',  | 
                                                        |
| 1130 | + 'event_espresso'  | 
                                                        |
| 1131 | + )  | 
                                                        |
| 1132 | + . '</strong>';  | 
                                                        |
| 1133 | +  | 
                                                        |
| 1134 | +		$this->display_admin_caf_preview_page('custom_message_types', false); | 
                                                        |
| 1135 | + }  | 
                                                        |
| 1136 | +  | 
                                                        |
| 1137 | +  | 
                                                        |
| 1138 | + /**  | 
                                                        |
| 1139 | + * get_message_templates  | 
                                                        |
| 1140 | + * This gets all the message templates for listing on the overview list.  | 
                                                        |
| 1141 | + *  | 
                                                        |
| 1142 | + * @access public  | 
                                                        |
| 1143 | + * @param int $perpage the amount of templates groups to show per page  | 
                                                        |
| 1144 | + * @param string $type the current _view we're getting templates for  | 
                                                        |
| 1145 | + * @param bool $count return count?  | 
                                                        |
| 1146 | + * @param bool $all disregard any paging info (get all data);  | 
                                                        |
| 1147 | + * @param bool $global whether to return just global (true) or custom templates (false)  | 
                                                        |
| 1148 | + * @return array  | 
                                                        |
| 1149 | + * @throws EE_Error  | 
                                                        |
| 1150 | + * @throws InvalidArgumentException  | 
                                                        |
| 1151 | + * @throws InvalidDataTypeException  | 
                                                        |
| 1152 | + * @throws InvalidInterfaceException  | 
                                                        |
| 1153 | + */  | 
                                                        |
| 1154 | + public function get_message_templates(  | 
                                                        |
| 1155 | + $perpage = 10,  | 
                                                        |
| 1156 | + $type = 'in_use',  | 
                                                        |
| 1157 | + $count = false,  | 
                                                        |
| 1158 | + $all = false,  | 
                                                        |
| 1159 | + $global = true  | 
                                                        |
| 1160 | +	) { | 
                                                        |
| 1161 | +  | 
                                                        |
| 1162 | + $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 1163 | +  | 
                                                        |
| 1164 | + $this->_req_data['orderby'] = empty($this->_req_data['orderby']) ? 'GRP_ID' : $this->_req_data['orderby'];  | 
                                                        |
| 1165 | + $orderby = $this->_req_data['orderby'];  | 
                                                        |
| 1166 | +  | 
                                                        |
| 1167 | + $order = (isset($this->_req_data['order']) && ! empty($this->_req_data['order']))  | 
                                                        |
| 1168 | + ? $this->_req_data['order']  | 
                                                        |
| 1169 | + : 'ASC';  | 
                                                        |
| 1170 | +  | 
                                                        |
| 1171 | + $current_page = isset($this->_req_data['paged']) && ! empty($this->_req_data['paged'])  | 
                                                        |
| 1172 | + ? $this->_req_data['paged']  | 
                                                        |
| 1173 | + : 1;  | 
                                                        |
| 1174 | + $per_page = isset($this->_req_data['perpage']) && ! empty($this->_req_data['perpage'])  | 
                                                        |
| 1175 | + ? $this->_req_data['perpage']  | 
                                                        |
| 1176 | + : $perpage;  | 
                                                        |
| 1177 | +  | 
                                                        |
| 1178 | + $offset = ($current_page - 1) * $per_page;  | 
                                                        |
| 1179 | + $limit = $all ? null : array($offset, $per_page);  | 
                                                        |
| 1180 | +  | 
                                                        |
| 1181 | +  | 
                                                        |
| 1182 | + // options will match what is in the _views array property  | 
                                                        |
| 1183 | +		switch ($type) { | 
                                                        |
| 1184 | + case 'in_use':  | 
                                                        |
| 1185 | + $templates = $MTP->get_all_active_message_templates($orderby, $order, $limit, $count, $global, true);  | 
                                                        |
| 1186 | + break;  | 
                                                        |
| 1187 | + default:  | 
                                                        |
| 1188 | + $templates = $MTP->get_all_trashed_grouped_message_templates($orderby, $order, $limit, $count, $global);  | 
                                                        |
| 1189 | + }  | 
                                                        |
| 1190 | +  | 
                                                        |
| 1191 | + return $templates;  | 
                                                        |
| 1192 | + }  | 
                                                        |
| 1193 | +  | 
                                                        |
| 1194 | +  | 
                                                        |
| 1195 | + /**  | 
                                                        |
| 1196 | + * filters etc might need a list of installed message_types  | 
                                                        |
| 1197 | + *  | 
                                                        |
| 1198 | + * @return array an array of message type objects  | 
                                                        |
| 1199 | + */  | 
                                                        |
| 1200 | + public function get_installed_message_types()  | 
                                                        |
| 1201 | +	{ | 
                                                        |
| 1202 | + $installed_message_types = $this->_message_resource_manager->installed_message_types();  | 
                                                        |
| 1203 | + $installed = array();  | 
                                                        |
| 1204 | +  | 
                                                        |
| 1205 | +		foreach ($installed_message_types as $message_type) { | 
                                                        |
| 1206 | + $installed[ $message_type->name ] = $message_type;  | 
                                                        |
| 1207 | + }  | 
                                                        |
| 1208 | +  | 
                                                        |
| 1209 | + return $installed;  | 
                                                        |
| 1210 | + }  | 
                                                        |
| 1211 | +  | 
                                                        |
| 1212 | +  | 
                                                        |
| 1213 | + /**  | 
                                                        |
| 1214 | + * _add_message_template  | 
                                                        |
| 1215 | + *  | 
                                                        |
| 1216 | + * This is used when creating a custom template. All Custom Templates start based off another template.  | 
                                                        |
| 1217 | + *  | 
                                                        |
| 1218 | + * @param string $message_type  | 
                                                        |
| 1219 | + * @param string $messenger  | 
                                                        |
| 1220 | + * @param string $GRP_ID  | 
                                                        |
| 1221 | + *  | 
                                                        |
| 1222 | + * @throws EE_error  | 
                                                        |
| 1223 | + */  | 
                                                        |
| 1224 | + protected function _add_message_template($message_type = '', $messenger = '', $GRP_ID = '')  | 
                                                        |
| 1225 | +	{ | 
                                                        |
| 1226 | + // set values override any request data  | 
                                                        |
| 1227 | + $message_type = ! empty($message_type) ? $message_type : '';  | 
                                                        |
| 1228 | + $message_type = empty($message_type) && ! empty($this->_req_data['message_type'])  | 
                                                        |
| 1229 | + ? $this->_req_data['message_type']  | 
                                                        |
| 1230 | + : $message_type;  | 
                                                        |
| 1231 | +  | 
                                                        |
| 1232 | + $messenger = ! empty($messenger) ? $messenger : '';  | 
                                                        |
| 1233 | + $messenger = empty($messenger) && ! empty($this->_req_data['messenger'])  | 
                                                        |
| 1234 | + ? $this->_req_data['messenger']  | 
                                                        |
| 1235 | + : $messenger;  | 
                                                        |
| 1236 | +  | 
                                                        |
| 1237 | + $GRP_ID = ! empty($GRP_ID) ? $GRP_ID : '';  | 
                                                        |
| 1238 | + $GRP_ID = empty($GRP_ID) && ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : $GRP_ID;  | 
                                                        |
| 1239 | +  | 
                                                        |
| 1240 | + // we need messenger and message type. They should be coming from the event editor. If not here then return error  | 
                                                        |
| 1241 | +		if (empty($message_type) || empty($messenger)) { | 
                                                        |
| 1242 | + throw new EE_Error(  | 
                                                        |
| 1243 | + esc_html__(  | 
                                                        |
| 1244 | + 'Sorry, but we can\'t create new templates because we\'re missing the messenger or message type',  | 
                                                        |
| 1245 | + 'event_espresso'  | 
                                                        |
| 1246 | + )  | 
                                                        |
| 1247 | + );  | 
                                                        |
| 1248 | + }  | 
                                                        |
| 1249 | +  | 
                                                        |
| 1250 | + // we need the GRP_ID for the template being used as the base for the new template  | 
                                                        |
| 1251 | +		if (empty($GRP_ID)) { | 
                                                        |
| 1252 | + throw new EE_Error(  | 
                                                        |
| 1253 | + esc_html__(  | 
                                                        |
| 1254 | + 'In order to create a custom message template the GRP_ID of the template being used as a base is needed',  | 
                                                        |
| 1255 | + 'event_espresso'  | 
                                                        |
| 1256 | + )  | 
                                                        |
| 1257 | + );  | 
                                                        |
| 1258 | + }  | 
                                                        |
| 1259 | +  | 
                                                        |
| 1260 | + // let's just make sure the template gets generated!  | 
                                                        |
| 1261 | +  | 
                                                        |
| 1262 | + // we need to reassign some variables for what the insert is expecting  | 
                                                        |
| 1263 | + $this->_req_data['MTP_messenger'] = $messenger;  | 
                                                        |
| 1264 | + $this->_req_data['MTP_message_type'] = $message_type;  | 
                                                        |
| 1265 | + $this->_req_data['GRP_ID'] = $GRP_ID;  | 
                                                        |
| 1266 | + $this->_insert_or_update_message_template(true);  | 
                                                        |
| 1267 | + }  | 
                                                        |
| 1268 | +  | 
                                                        |
| 1269 | +  | 
                                                        |
| 1270 | + /**  | 
                                                        |
| 1271 | + * public wrapper for the _add_message_template method  | 
                                                        |
| 1272 | + *  | 
                                                        |
| 1273 | + * @param string $message_type message type slug  | 
                                                        |
| 1274 | + * @param string $messenger messenger slug  | 
                                                        |
| 1275 | + * @param int $GRP_ID GRP_ID for the related message template group this new template will be based  | 
                                                        |
| 1276 | + * off of.  | 
                                                        |
| 1277 | + * @throws EE_error  | 
                                                        |
| 1278 | + */  | 
                                                        |
| 1279 | + public function add_message_template($message_type, $messenger, $GRP_ID)  | 
                                                        |
| 1280 | +	{ | 
                                                        |
| 1281 | + $this->_add_message_template($message_type, $messenger, $GRP_ID);  | 
                                                        |
| 1282 | + }  | 
                                                        |
| 1283 | +  | 
                                                        |
| 1284 | +  | 
                                                        |
| 1285 | + /**  | 
                                                        |
| 1286 | + * _edit_message_template  | 
                                                        |
| 1287 | + *  | 
                                                        |
| 1288 | + * @access protected  | 
                                                        |
| 1289 | + * @return void  | 
                                                        |
| 1290 | + * @throws InvalidIdentifierException  | 
                                                        |
| 1291 | + * @throws DomainException  | 
                                                        |
| 1292 | + * @throws EE_Error  | 
                                                        |
| 1293 | + * @throws InvalidArgumentException  | 
                                                        |
| 1294 | + * @throws ReflectionException  | 
                                                        |
| 1295 | + * @throws InvalidDataTypeException  | 
                                                        |
| 1296 | + * @throws InvalidInterfaceException  | 
                                                        |
| 1297 | + */  | 
                                                        |
| 1298 | + protected function _edit_message_template()  | 
                                                        |
| 1299 | +	{ | 
                                                        |
| 1300 | +		do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 1301 | + $template_fields = '';  | 
                                                        |
| 1302 | + $sidebar_fields = '';  | 
                                                        |
| 1303 | + // we filter the tinyMCE settings to remove the validation since message templates by their nature will not have  | 
                                                        |
| 1304 | + // valid html in the templates.  | 
                                                        |
| 1305 | +		add_filter('tiny_mce_before_init', array($this, 'filter_tinymce_init'), 10, 2); | 
                                                        |
| 1306 | +  | 
                                                        |
| 1307 | + $GRP_ID = isset($this->_req_data['id']) && ! empty($this->_req_data['id'])  | 
                                                        |
| 1308 | + ? absint($this->_req_data['id'])  | 
                                                        |
| 1309 | + : false;  | 
                                                        |
| 1310 | +  | 
                                                        |
| 1311 | + $this->_set_shortcodes(); // this also sets the _message_template property.  | 
                                                        |
| 1312 | + $message_template_group = $this->_message_template_group;  | 
                                                        |
| 1313 | + $c_label = $message_template_group->context_label();  | 
                                                        |
| 1314 | + $c_config = $message_template_group->contexts_config();  | 
                                                        |
| 1315 | +  | 
                                                        |
| 1316 | + reset($c_config);  | 
                                                        |
| 1317 | + $context = isset($this->_req_data['context']) && ! empty($this->_req_data['context'])  | 
                                                        |
| 1318 | + ? strtolower($this->_req_data['context'])  | 
                                                        |
| 1319 | + : key($c_config);  | 
                                                        |
| 1320 | +  | 
                                                        |
| 1321 | +  | 
                                                        |
| 1322 | +		if (empty($GRP_ID)) { | 
                                                        |
| 1323 | + $action = 'insert_message_template';  | 
                                                        |
| 1324 | + $edit_message_template_form_url = add_query_arg(  | 
                                                        |
| 1325 | +				array('action' => $action, 'noheader' => true), | 
                                                        |
| 1326 | + EE_MSG_ADMIN_URL  | 
                                                        |
| 1327 | + );  | 
                                                        |
| 1328 | +		} else { | 
                                                        |
| 1329 | + $action = 'update_message_template';  | 
                                                        |
| 1330 | + $edit_message_template_form_url = add_query_arg(  | 
                                                        |
| 1331 | +				array('action' => $action, 'noheader' => true), | 
                                                        |
| 1332 | + EE_MSG_ADMIN_URL  | 
                                                        |
| 1333 | + );  | 
                                                        |
| 1334 | + }  | 
                                                        |
| 1335 | +  | 
                                                        |
| 1336 | + // set active messenger for this view  | 
                                                        |
| 1337 | + $this->_active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 1338 | + $message_template_group->messenger()  | 
                                                        |
| 1339 | + );  | 
                                                        |
| 1340 | + $this->_active_message_type_name = $message_template_group->message_type();  | 
                                                        |
| 1341 | +  | 
                                                        |
| 1342 | +  | 
                                                        |
| 1343 | + // Do we have any validation errors?  | 
                                                        |
| 1344 | + $validators = $this->_get_transient();  | 
                                                        |
| 1345 | + $v_fields = ! empty($validators) ? array_keys($validators) : array();  | 
                                                        |
| 1346 | +  | 
                                                        |
| 1347 | +  | 
                                                        |
| 1348 | + // we need to assemble the title from Various details  | 
                                                        |
| 1349 | + $context_label = sprintf(  | 
                                                        |
| 1350 | +			esc_html__('(%s %s)', 'event_espresso'), | 
                                                        |
| 1351 | + $c_config[ $context ]['label'],  | 
                                                        |
| 1352 | + ucwords($c_label['label'])  | 
                                                        |
| 1353 | + );  | 
                                                        |
| 1354 | +  | 
                                                        |
| 1355 | + $title = sprintf(  | 
                                                        |
| 1356 | +			esc_html__(' %s %s Template %s', 'event_espresso'), | 
                                                        |
| 1357 | + ucwords($message_template_group->messenger_obj()->label['singular']),  | 
                                                        |
| 1358 | + ucwords($message_template_group->message_type_obj()->label['singular']),  | 
                                                        |
| 1359 | + $context_label  | 
                                                        |
| 1360 | + );  | 
                                                        |
| 1361 | +  | 
                                                        |
| 1362 | + $this->_template_args['GRP_ID'] = $GRP_ID;  | 
                                                        |
| 1363 | + $this->_template_args['message_template'] = $message_template_group;  | 
                                                        |
| 1364 | + $this->_template_args['is_extra_fields'] = false;  | 
                                                        |
| 1365 | +  | 
                                                        |
| 1366 | +  | 
                                                        |
| 1367 | + // let's get EEH_MSG_Template so we can get template form fields  | 
                                                        |
| 1368 | + $template_field_structure = EEH_MSG_Template::get_fields(  | 
                                                        |
| 1369 | + $message_template_group->messenger(),  | 
                                                        |
| 1370 | + $message_template_group->message_type()  | 
                                                        |
| 1371 | + );  | 
                                                        |
| 1372 | +  | 
                                                        |
| 1373 | +		if (! $template_field_structure) { | 
                                                        |
| 1374 | + $template_field_structure = false;  | 
                                                        |
| 1375 | + $template_fields = esc_html__(  | 
                                                        |
| 1376 | + 'There was an error in assembling the fields for this display (you should see an error message)',  | 
                                                        |
| 1377 | + 'event_espresso'  | 
                                                        |
| 1378 | + );  | 
                                                        |
| 1379 | + }  | 
                                                        |
| 1380 | +  | 
                                                        |
| 1381 | +  | 
                                                        |
| 1382 | + $message_templates = $message_template_group->context_templates();  | 
                                                        |
| 1383 | +  | 
                                                        |
| 1384 | +  | 
                                                        |
| 1385 | + // if we have the extra key.. then we need to remove the content index from the template_field_structure as it  | 
                                                        |
| 1386 | + // will get handled in the "extra" array.  | 
                                                        |
| 1387 | +		if (is_array($template_field_structure[ $context ]) && isset($template_field_structure[ $context ]['extra'])) { | 
                                                        |
| 1388 | +			foreach ($template_field_structure[ $context ]['extra'] as $reference_field => $new_fields) { | 
                                                        |
| 1389 | + unset($template_field_structure[ $context ][ $reference_field ]);  | 
                                                        |
| 1390 | + }  | 
                                                        |
| 1391 | + }  | 
                                                        |
| 1392 | +  | 
                                                        |
| 1393 | + // let's loop through the template_field_structure and actually assemble the input fields!  | 
                                                        |
| 1394 | +		if (! empty($template_field_structure)) { | 
                                                        |
| 1395 | +			foreach ($template_field_structure[ $context ] as $template_field => $field_setup_array) { | 
                                                        |
| 1396 | + // if this is an 'extra' template field then we need to remove any existing fields that are keyed up in  | 
                                                        |
| 1397 | + // the extra array and reset them.  | 
                                                        |
| 1398 | +				if ($template_field === 'extra') { | 
                                                        |
| 1399 | + $this->_template_args['is_extra_fields'] = true;  | 
                                                        |
| 1400 | +					foreach ($field_setup_array as $reference_field => $new_fields_array) { | 
                                                        |
| 1401 | + $message_template = $message_templates[ $context ][ $reference_field ];  | 
                                                        |
| 1402 | + $content = $message_template instanceof EE_Message_Template  | 
                                                        |
| 1403 | +							? $message_template->get('MTP_content') | 
                                                        |
| 1404 | + : '';  | 
                                                        |
| 1405 | +						foreach ($new_fields_array as $extra_field => $extra_array) { | 
                                                        |
| 1406 | + // let's verify if we need this extra field via the shortcodes parameter.  | 
                                                        |
| 1407 | + $continue = false;  | 
                                                        |
| 1408 | +							if (isset($extra_array['shortcodes_required'])) { | 
                                                        |
| 1409 | +								foreach ((array) $extra_array['shortcodes_required'] as $shortcode) { | 
                                                        |
| 1410 | +									if (! array_key_exists($shortcode, $this->_shortcodes)) { | 
                                                        |
| 1411 | + $continue = true;  | 
                                                        |
| 1412 | + }  | 
                                                        |
| 1413 | + }  | 
                                                        |
| 1414 | +								if ($continue) { | 
                                                        |
| 1415 | + continue;  | 
                                                        |
| 1416 | + }  | 
                                                        |
| 1417 | + }  | 
                                                        |
| 1418 | +  | 
                                                        |
| 1419 | + $field_id = $reference_field  | 
                                                        |
| 1420 | + . '-'  | 
                                                        |
| 1421 | + . $extra_field  | 
                                                        |
| 1422 | + . '-content';  | 
                                                        |
| 1423 | + $template_form_fields[ $field_id ] = $extra_array;  | 
                                                        |
| 1424 | + $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields['  | 
                                                        |
| 1425 | + . $reference_field  | 
                                                        |
| 1426 | + . '][content]['  | 
                                                        |
| 1427 | + . $extra_field . ']';  | 
                                                        |
| 1428 | + $css_class = isset($extra_array['css_class'])  | 
                                                        |
| 1429 | + ? $extra_array['css_class']  | 
                                                        |
| 1430 | + : '';  | 
                                                        |
| 1431 | +  | 
                                                        |
| 1432 | + $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1433 | + && in_array($extra_field, $v_fields, true)  | 
                                                        |
| 1434 | + &&  | 
                                                        |
| 1435 | + (  | 
                                                        |
| 1436 | + is_array($validators[ $extra_field ])  | 
                                                        |
| 1437 | + && isset($validators[ $extra_field ]['msg'])  | 
                                                        |
| 1438 | + )  | 
                                                        |
| 1439 | + ? 'validate-error ' . $css_class  | 
                                                        |
| 1440 | + : $css_class;  | 
                                                        |
| 1441 | +  | 
                                                        |
| 1442 | + $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1443 | + && isset($content[ $extra_field ])  | 
                                                        |
| 1444 | + ? $content[ $extra_field ]  | 
                                                        |
| 1445 | + : '';  | 
                                                        |
| 1446 | +  | 
                                                        |
| 1447 | + // do we have a validation error? if we do then let's use that value instead  | 
                                                        |
| 1448 | + $template_form_fields[ $field_id ]['value'] = isset($validators[ $extra_field ])  | 
                                                        |
| 1449 | + ? $validators[ $extra_field ]['value']  | 
                                                        |
| 1450 | + : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1451 | +  | 
                                                        |
| 1452 | +  | 
                                                        |
| 1453 | + $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1454 | +  | 
                                                        |
| 1455 | + // shortcode selector  | 
                                                        |
| 1456 | + $field_name_to_use = $extra_field === 'main'  | 
                                                        |
| 1457 | + ? 'content'  | 
                                                        |
| 1458 | + : $extra_field;  | 
                                                        |
| 1459 | + $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1460 | + $field_name_to_use,  | 
                                                        |
| 1461 | + $field_id  | 
                                                        |
| 1462 | + );  | 
                                                        |
| 1463 | +  | 
                                                        |
| 1464 | +							if (isset($extra_array['input']) && $extra_array['input'] === 'wp_editor') { | 
                                                        |
| 1465 | + // we want to decode the entities  | 
                                                        |
| 1466 | + $template_form_fields[ $field_id ]['value'] = $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1467 | + }/**/  | 
                                                        |
| 1468 | + }  | 
                                                        |
| 1469 | + $templatefield_MTP_id = $reference_field . '-MTP_ID';  | 
                                                        |
| 1470 | + $templatefield_templatename_id = $reference_field . '-name';  | 
                                                        |
| 1471 | +  | 
                                                        |
| 1472 | + $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1473 | + 'name' => 'MTP_template_fields[' . $reference_field . '][MTP_ID]',  | 
                                                        |
| 1474 | + 'label' => null,  | 
                                                        |
| 1475 | + 'input' => 'hidden',  | 
                                                        |
| 1476 | + 'type' => 'int',  | 
                                                        |
| 1477 | + 'required' => false,  | 
                                                        |
| 1478 | + 'validation' => false,  | 
                                                        |
| 1479 | + 'value' => ! empty($message_templates) ? $message_template->ID() : '',  | 
                                                        |
| 1480 | + 'css_class' => '',  | 
                                                        |
| 1481 | + 'format' => '%d',  | 
                                                        |
| 1482 | + 'db-col' => 'MTP_ID',  | 
                                                        |
| 1483 | + );  | 
                                                        |
| 1484 | +  | 
                                                        |
| 1485 | + $template_form_fields[ $templatefield_templatename_id ] = array(  | 
                                                        |
| 1486 | + 'name' => 'MTP_template_fields[' . $reference_field . '][name]',  | 
                                                        |
| 1487 | + 'label' => null,  | 
                                                        |
| 1488 | + 'input' => 'hidden',  | 
                                                        |
| 1489 | + 'type' => 'string',  | 
                                                        |
| 1490 | + 'required' => false,  | 
                                                        |
| 1491 | + 'validation' => true,  | 
                                                        |
| 1492 | + 'value' => $reference_field,  | 
                                                        |
| 1493 | + 'css_class' => '',  | 
                                                        |
| 1494 | + 'format' => '%s',  | 
                                                        |
| 1495 | + 'db-col' => 'MTP_template_field',  | 
                                                        |
| 1496 | + );  | 
                                                        |
| 1497 | + }  | 
                                                        |
| 1498 | + continue; // skip the next stuff, we got the necessary fields here for this dataset.  | 
                                                        |
| 1499 | +				} else { | 
                                                        |
| 1500 | + $field_id = $template_field . '-content';  | 
                                                        |
| 1501 | + $template_form_fields[ $field_id ] = $field_setup_array;  | 
                                                        |
| 1502 | + $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields[' . $template_field . '][content]';  | 
                                                        |
| 1503 | + $message_template = isset($message_templates[ $context ][ $template_field ])  | 
                                                        |
| 1504 | + ? $message_templates[ $context ][ $template_field ]  | 
                                                        |
| 1505 | + : null;  | 
                                                        |
| 1506 | + $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1507 | + && is_array($message_templates[ $context ])  | 
                                                        |
| 1508 | + && $message_template instanceof EE_Message_Template  | 
                                                        |
| 1509 | +						? $message_template->get('MTP_content') | 
                                                        |
| 1510 | + : '';  | 
                                                        |
| 1511 | +  | 
                                                        |
| 1512 | + // do we have a validator error for this field? if we do then we'll use that value instead  | 
                                                        |
| 1513 | + $template_form_fields[ $field_id ]['value'] = isset($validators[ $template_field ])  | 
                                                        |
| 1514 | + ? $validators[ $template_field ]['value']  | 
                                                        |
| 1515 | + : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1516 | +  | 
                                                        |
| 1517 | +  | 
                                                        |
| 1518 | + $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1519 | + $css_class = isset($field_setup_array['css_class'])  | 
                                                        |
| 1520 | + ? $field_setup_array['css_class']  | 
                                                        |
| 1521 | + : '';  | 
                                                        |
| 1522 | + $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1523 | + && in_array($template_field, $v_fields, true)  | 
                                                        |
| 1524 | + && isset($validators[ $template_field ]['msg'])  | 
                                                        |
| 1525 | + ? 'validate-error ' . $css_class  | 
                                                        |
| 1526 | + : $css_class;  | 
                                                        |
| 1527 | +  | 
                                                        |
| 1528 | + // shortcode selector  | 
                                                        |
| 1529 | + $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1530 | + $template_field,  | 
                                                        |
| 1531 | + $field_id  | 
                                                        |
| 1532 | + );  | 
                                                        |
| 1533 | + }  | 
                                                        |
| 1534 | +  | 
                                                        |
| 1535 | + // k took care of content field(s) now let's take care of others.  | 
                                                        |
| 1536 | +  | 
                                                        |
| 1537 | + $templatefield_MTP_id = $template_field . '-MTP_ID';  | 
                                                        |
| 1538 | + $templatefield_field_templatename_id = $template_field . '-name';  | 
                                                        |
| 1539 | +  | 
                                                        |
| 1540 | + // foreach template field there are actually two form fields created  | 
                                                        |
| 1541 | + $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1542 | + 'name' => 'MTP_template_fields[' . $template_field . '][MTP_ID]',  | 
                                                        |
| 1543 | + 'label' => null,  | 
                                                        |
| 1544 | + 'input' => 'hidden',  | 
                                                        |
| 1545 | + 'type' => 'int',  | 
                                                        |
| 1546 | + 'required' => false,  | 
                                                        |
| 1547 | + 'validation' => true,  | 
                                                        |
| 1548 | + 'value' => $message_template instanceof EE_Message_Template ? $message_template->ID() : '',  | 
                                                        |
| 1549 | + 'css_class' => '',  | 
                                                        |
| 1550 | + 'format' => '%d',  | 
                                                        |
| 1551 | + 'db-col' => 'MTP_ID',  | 
                                                        |
| 1552 | + );  | 
                                                        |
| 1553 | +  | 
                                                        |
| 1554 | + $template_form_fields[ $templatefield_field_templatename_id ] = array(  | 
                                                        |
| 1555 | + 'name' => 'MTP_template_fields[' . $template_field . '][name]',  | 
                                                        |
| 1556 | + 'label' => null,  | 
                                                        |
| 1557 | + 'input' => 'hidden',  | 
                                                        |
| 1558 | + 'type' => 'string',  | 
                                                        |
| 1559 | + 'required' => false,  | 
                                                        |
| 1560 | + 'validation' => true,  | 
                                                        |
| 1561 | + 'value' => $template_field,  | 
                                                        |
| 1562 | + 'css_class' => '',  | 
                                                        |
| 1563 | + 'format' => '%s',  | 
                                                        |
| 1564 | + 'db-col' => 'MTP_template_field',  | 
                                                        |
| 1565 | + );  | 
                                                        |
| 1566 | + }  | 
                                                        |
| 1567 | +  | 
                                                        |
| 1568 | + // add other fields  | 
                                                        |
| 1569 | + $template_form_fields['ee-msg-current-context'] = array(  | 
                                                        |
| 1570 | + 'name' => 'MTP_context',  | 
                                                        |
| 1571 | + 'label' => null,  | 
                                                        |
| 1572 | + 'input' => 'hidden',  | 
                                                        |
| 1573 | + 'type' => 'string',  | 
                                                        |
| 1574 | + 'required' => false,  | 
                                                        |
| 1575 | + 'validation' => true,  | 
                                                        |
| 1576 | + 'value' => $context,  | 
                                                        |
| 1577 | + 'css_class' => '',  | 
                                                        |
| 1578 | + 'format' => '%s',  | 
                                                        |
| 1579 | + 'db-col' => 'MTP_context',  | 
                                                        |
| 1580 | + );  | 
                                                        |
| 1581 | +  | 
                                                        |
| 1582 | + $template_form_fields['ee-msg-grp-id'] = array(  | 
                                                        |
| 1583 | + 'name' => 'GRP_ID',  | 
                                                        |
| 1584 | + 'label' => null,  | 
                                                        |
| 1585 | + 'input' => 'hidden',  | 
                                                        |
| 1586 | + 'type' => 'int',  | 
                                                        |
| 1587 | + 'required' => false,  | 
                                                        |
| 1588 | + 'validation' => true,  | 
                                                        |
| 1589 | + 'value' => $GRP_ID,  | 
                                                        |
| 1590 | + 'css_class' => '',  | 
                                                        |
| 1591 | + 'format' => '%d',  | 
                                                        |
| 1592 | + 'db-col' => 'GRP_ID',  | 
                                                        |
| 1593 | + );  | 
                                                        |
| 1594 | +  | 
                                                        |
| 1595 | + $template_form_fields['ee-msg-messenger'] = array(  | 
                                                        |
| 1596 | + 'name' => 'MTP_messenger',  | 
                                                        |
| 1597 | + 'label' => null,  | 
                                                        |
| 1598 | + 'input' => 'hidden',  | 
                                                        |
| 1599 | + 'type' => 'string',  | 
                                                        |
| 1600 | + 'required' => false,  | 
                                                        |
| 1601 | + 'validation' => true,  | 
                                                        |
| 1602 | + 'value' => $message_template_group->messenger(),  | 
                                                        |
| 1603 | + 'css_class' => '',  | 
                                                        |
| 1604 | + 'format' => '%s',  | 
                                                        |
| 1605 | + 'db-col' => 'MTP_messenger',  | 
                                                        |
| 1606 | + );  | 
                                                        |
| 1607 | +  | 
                                                        |
| 1608 | + $template_form_fields['ee-msg-message-type'] = array(  | 
                                                        |
| 1609 | + 'name' => 'MTP_message_type',  | 
                                                        |
| 1610 | + 'label' => null,  | 
                                                        |
| 1611 | + 'input' => 'hidden',  | 
                                                        |
| 1612 | + 'type' => 'string',  | 
                                                        |
| 1613 | + 'required' => false,  | 
                                                        |
| 1614 | + 'validation' => true,  | 
                                                        |
| 1615 | + 'value' => $message_template_group->message_type(),  | 
                                                        |
| 1616 | + 'css_class' => '',  | 
                                                        |
| 1617 | + 'format' => '%s',  | 
                                                        |
| 1618 | + 'db-col' => 'MTP_message_type',  | 
                                                        |
| 1619 | + );  | 
                                                        |
| 1620 | +  | 
                                                        |
| 1621 | + $sidebar_form_fields['ee-msg-is-global'] = array(  | 
                                                        |
| 1622 | + 'name' => 'MTP_is_global',  | 
                                                        |
| 1623 | +				'label'      => esc_html__('Global Template', 'event_espresso'), | 
                                                        |
| 1624 | + 'input' => 'hidden',  | 
                                                        |
| 1625 | + 'type' => 'int',  | 
                                                        |
| 1626 | + 'required' => false,  | 
                                                        |
| 1627 | + 'validation' => true,  | 
                                                        |
| 1628 | +				'value'      => $message_template_group->get('MTP_is_global'), | 
                                                        |
| 1629 | + 'css_class' => '',  | 
                                                        |
| 1630 | + 'format' => '%d',  | 
                                                        |
| 1631 | + 'db-col' => 'MTP_is_global',  | 
                                                        |
| 1632 | + );  | 
                                                        |
| 1633 | +  | 
                                                        |
| 1634 | + $sidebar_form_fields['ee-msg-is-override'] = array(  | 
                                                        |
| 1635 | + 'name' => 'MTP_is_override',  | 
                                                        |
| 1636 | +				'label'      => esc_html__('Override all custom', 'event_espresso'), | 
                                                        |
| 1637 | + 'input' => $message_template_group->is_global() ? 'checkbox' : 'hidden',  | 
                                                        |
| 1638 | + 'type' => 'int',  | 
                                                        |
| 1639 | + 'required' => false,  | 
                                                        |
| 1640 | + 'validation' => true,  | 
                                                        |
| 1641 | +				'value'      => $message_template_group->get('MTP_is_override'), | 
                                                        |
| 1642 | + 'css_class' => '',  | 
                                                        |
| 1643 | + 'format' => '%d',  | 
                                                        |
| 1644 | + 'db-col' => 'MTP_is_override',  | 
                                                        |
| 1645 | + );  | 
                                                        |
| 1646 | +  | 
                                                        |
| 1647 | + $sidebar_form_fields['ee-msg-is-active'] = array(  | 
                                                        |
| 1648 | + 'name' => 'MTP_is_active',  | 
                                                        |
| 1649 | +				'label'      => esc_html__('Active Template', 'event_espresso'), | 
                                                        |
| 1650 | + 'input' => 'hidden',  | 
                                                        |
| 1651 | + 'type' => 'int',  | 
                                                        |
| 1652 | + 'required' => false,  | 
                                                        |
| 1653 | + 'validation' => true,  | 
                                                        |
| 1654 | + 'value' => $message_template_group->is_active(),  | 
                                                        |
| 1655 | + 'css_class' => '',  | 
                                                        |
| 1656 | + 'format' => '%d',  | 
                                                        |
| 1657 | + 'db-col' => 'MTP_is_active',  | 
                                                        |
| 1658 | + );  | 
                                                        |
| 1659 | +  | 
                                                        |
| 1660 | + $sidebar_form_fields['ee-msg-deleted'] = array(  | 
                                                        |
| 1661 | + 'name' => 'MTP_deleted',  | 
                                                        |
| 1662 | + 'label' => null,  | 
                                                        |
| 1663 | + 'input' => 'hidden',  | 
                                                        |
| 1664 | + 'type' => 'int',  | 
                                                        |
| 1665 | + 'required' => false,  | 
                                                        |
| 1666 | + 'validation' => true,  | 
                                                        |
| 1667 | +				'value'      => $message_template_group->get('MTP_deleted'), | 
                                                        |
| 1668 | + 'css_class' => '',  | 
                                                        |
| 1669 | + 'format' => '%d',  | 
                                                        |
| 1670 | + 'db-col' => 'MTP_deleted',  | 
                                                        |
| 1671 | + );  | 
                                                        |
| 1672 | + $sidebar_form_fields['ee-msg-author'] = array(  | 
                                                        |
| 1673 | + 'name' => 'MTP_user_id',  | 
                                                        |
| 1674 | +				'label'      => esc_html__('Author', 'event_espresso'), | 
                                                        |
| 1675 | + 'input' => 'hidden',  | 
                                                        |
| 1676 | + 'type' => 'int',  | 
                                                        |
| 1677 | + 'required' => false,  | 
                                                        |
| 1678 | + 'validation' => false,  | 
                                                        |
| 1679 | + 'value' => $message_template_group->user(),  | 
                                                        |
| 1680 | + 'format' => '%d',  | 
                                                        |
| 1681 | + 'db-col' => 'MTP_user_id',  | 
                                                        |
| 1682 | + );  | 
                                                        |
| 1683 | +  | 
                                                        |
| 1684 | + $sidebar_form_fields['ee-msg-route'] = array(  | 
                                                        |
| 1685 | + 'name' => 'action',  | 
                                                        |
| 1686 | + 'input' => 'hidden',  | 
                                                        |
| 1687 | + 'type' => 'string',  | 
                                                        |
| 1688 | + 'value' => $action,  | 
                                                        |
| 1689 | + );  | 
                                                        |
| 1690 | +  | 
                                                        |
| 1691 | + $sidebar_form_fields['ee-msg-id'] = array(  | 
                                                        |
| 1692 | + 'name' => 'id',  | 
                                                        |
| 1693 | + 'input' => 'hidden',  | 
                                                        |
| 1694 | + 'type' => 'int',  | 
                                                        |
| 1695 | + 'value' => $GRP_ID,  | 
                                                        |
| 1696 | + );  | 
                                                        |
| 1697 | + $sidebar_form_fields['ee-msg-evt-nonce'] = array(  | 
                                                        |
| 1698 | + 'name' => $action . '_nonce',  | 
                                                        |
| 1699 | + 'input' => 'hidden',  | 
                                                        |
| 1700 | + 'type' => 'string',  | 
                                                        |
| 1701 | + 'value' => wp_create_nonce($action . '_nonce'),  | 
                                                        |
| 1702 | + );  | 
                                                        |
| 1703 | +  | 
                                                        |
| 1704 | +			if (isset($this->_req_data['template_switch']) && $this->_req_data['template_switch']) { | 
                                                        |
| 1705 | + $sidebar_form_fields['ee-msg-template-switch'] = array(  | 
                                                        |
| 1706 | + 'name' => 'template_switch',  | 
                                                        |
| 1707 | + 'input' => 'hidden',  | 
                                                        |
| 1708 | + 'type' => 'int',  | 
                                                        |
| 1709 | + 'value' => 1,  | 
                                                        |
| 1710 | + );  | 
                                                        |
| 1711 | + }  | 
                                                        |
| 1712 | +  | 
                                                        |
| 1713 | +  | 
                                                        |
| 1714 | + $template_fields = $this->_generate_admin_form_fields($template_form_fields);  | 
                                                        |
| 1715 | + $sidebar_fields = $this->_generate_admin_form_fields($sidebar_form_fields);  | 
                                                        |
| 1716 | + } //end if ( !empty($template_field_structure) )  | 
                                                        |
| 1717 | +  | 
                                                        |
| 1718 | + // set extra content for publish box  | 
                                                        |
| 1719 | + $this->_template_args['publish_box_extra_content'] = $sidebar_fields;  | 
                                                        |
| 1720 | + $this->_set_publish_post_box_vars(  | 
                                                        |
| 1721 | + 'id',  | 
                                                        |
| 1722 | + $GRP_ID,  | 
                                                        |
| 1723 | + false,  | 
                                                        |
| 1724 | + add_query_arg(  | 
                                                        |
| 1725 | +				array('action' => 'global_mtps'), | 
                                                        |
| 1726 | + $this->_admin_base_url  | 
                                                        |
| 1727 | + )  | 
                                                        |
| 1728 | + );  | 
                                                        |
| 1729 | +  | 
                                                        |
| 1730 | + // add preview button  | 
                                                        |
| 1731 | + $preview_url = parent::add_query_args_and_nonce(  | 
                                                        |
| 1732 | + array(  | 
                                                        |
| 1733 | + 'message_type' => $message_template_group->message_type(),  | 
                                                        |
| 1734 | + 'messenger' => $message_template_group->messenger(),  | 
                                                        |
| 1735 | + 'context' => $context,  | 
                                                        |
| 1736 | + 'GRP_ID' => $GRP_ID,  | 
                                                        |
| 1737 | + 'action' => 'preview_message',  | 
                                                        |
| 1738 | + ),  | 
                                                        |
| 1739 | + $this->_admin_base_url  | 
                                                        |
| 1740 | + );  | 
                                                        |
| 1741 | + $preview_button = '<a href="' . $preview_url . '" class="button-secondary messages-preview-button">'  | 
                                                        |
| 1742 | +						  . esc_html__('Preview', 'event_espresso') | 
                                                        |
| 1743 | + . '</a>';  | 
                                                        |
| 1744 | +  | 
                                                        |
| 1745 | +  | 
                                                        |
| 1746 | + // setup context switcher  | 
                                                        |
| 1747 | + $context_switcher_args = array(  | 
                                                        |
| 1748 | + 'page' => 'espresso_messages',  | 
                                                        |
| 1749 | + 'action' => 'edit_message_template',  | 
                                                        |
| 1750 | + 'id' => $GRP_ID,  | 
                                                        |
| 1751 | + 'context' => $context,  | 
                                                        |
| 1752 | + 'extra' => $preview_button,  | 
                                                        |
| 1753 | + );  | 
                                                        |
| 1754 | + $this->_set_context_switcher($message_template_group, $context_switcher_args);  | 
                                                        |
| 1755 | +  | 
                                                        |
| 1756 | +  | 
                                                        |
| 1757 | + // main box  | 
                                                        |
| 1758 | + $this->_template_args['template_fields'] = $template_fields;  | 
                                                        |
| 1759 | + $this->_template_args['sidebar_box_id'] = 'details';  | 
                                                        |
| 1760 | + $this->_template_args['action'] = $action;  | 
                                                        |
| 1761 | + $this->_template_args['context'] = $context;  | 
                                                        |
| 1762 | + $this->_template_args['edit_message_template_form_url'] = $edit_message_template_form_url;  | 
                                                        |
| 1763 | + $this->_template_args['learn_more_about_message_templates_link'] =  | 
                                                        |
| 1764 | + $this->_learn_more_about_message_templates_link();  | 
                                                        |
| 1765 | +  | 
                                                        |
| 1766 | +  | 
                                                        |
| 1767 | + $this->_template_args['before_admin_page_content'] = $this->add_context_switcher();  | 
                                                        |
| 1768 | + $this->_template_args['before_admin_page_content'] .= $this->add_active_context_element(  | 
                                                        |
| 1769 | + $message_template_group,  | 
                                                        |
| 1770 | + $context,  | 
                                                        |
| 1771 | + $context_label  | 
                                                        |
| 1772 | + );  | 
                                                        |
| 1773 | + $this->_template_args['before_admin_page_content'] .= $this->_add_form_element_before();  | 
                                                        |
| 1774 | + $this->_template_args['after_admin_page_content'] = $this->_add_form_element_after();  | 
                                                        |
| 1775 | +  | 
                                                        |
| 1776 | + $this->_template_path = $this->_template_args['GRP_ID']  | 
                                                        |
| 1777 | + ? EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_edit_meta_box.template.php'  | 
                                                        |
| 1778 | + : EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_add_meta_box.template.php';  | 
                                                        |
| 1779 | +  | 
                                                        |
| 1780 | + // send along EE_Message_Template_Group object for further template use.  | 
                                                        |
| 1781 | + $this->_template_args['MTP'] = $message_template_group;  | 
                                                        |
| 1782 | +  | 
                                                        |
| 1783 | + $this->_template_args['admin_page_content'] = EEH_Template::display_template(  | 
                                                        |
| 1784 | + $this->_template_path,  | 
                                                        |
| 1785 | + $this->_template_args,  | 
                                                        |
| 1786 | + true  | 
                                                        |
| 1787 | + );  | 
                                                        |
| 1788 | +  | 
                                                        |
| 1789 | +  | 
                                                        |
| 1790 | + // finally, let's set the admin_page title  | 
                                                        |
| 1791 | +		$this->_admin_page_title = sprintf(__('Editing %s', 'event_espresso'), $title); | 
                                                        |
| 1792 | +  | 
                                                        |
| 1793 | +  | 
                                                        |
| 1794 | + // we need to take care of setting the shortcodes property for use elsewhere.  | 
                                                        |
| 1795 | + $this->_set_shortcodes();  | 
                                                        |
| 1796 | +  | 
                                                        |
| 1797 | +  | 
                                                        |
| 1798 | + // final template wrapper  | 
                                                        |
| 1799 | + $this->display_admin_page_with_sidebar();  | 
                                                        |
| 1800 | + }  | 
                                                        |
| 1801 | +  | 
                                                        |
| 1802 | +  | 
                                                        |
| 1803 | + public function filter_tinymce_init($mceInit, $editor_id)  | 
                                                        |
| 1804 | +	{ | 
                                                        |
| 1805 | + return $mceInit;  | 
                                                        |
| 1806 | + }  | 
                                                        |
| 1807 | +  | 
                                                        |
| 1808 | +  | 
                                                        |
| 1809 | + public function add_context_switcher()  | 
                                                        |
| 1810 | +	{ | 
                                                        |
| 1811 | + return $this->_context_switcher;  | 
                                                        |
| 1812 | + }  | 
                                                        |
| 1813 | +  | 
                                                        |
| 1814 | +  | 
                                                        |
| 1815 | + /**  | 
                                                        |
| 1816 | + * Adds the activation/deactivation toggle for the message template context.  | 
                                                        |
| 1817 | + *  | 
                                                        |
| 1818 | + * @param EE_Message_Template_Group $message_template_group  | 
                                                        |
| 1819 | + * @param string $context  | 
                                                        |
| 1820 | + * @param string $context_label  | 
                                                        |
| 1821 | + * @return string  | 
                                                        |
| 1822 | + * @throws DomainException  | 
                                                        |
| 1823 | + * @throws EE_Error  | 
                                                        |
| 1824 | + * @throws InvalidIdentifierException  | 
                                                        |
| 1825 | + */  | 
                                                        |
| 1826 | + protected function add_active_context_element(  | 
                                                        |
| 1827 | + EE_Message_Template_Group $message_template_group,  | 
                                                        |
| 1828 | + $context,  | 
                                                        |
| 1829 | + $context_label  | 
                                                        |
| 1830 | +	) { | 
                                                        |
| 1831 | + $template_args = array(  | 
                                                        |
| 1832 | + 'context' => $context,  | 
                                                        |
| 1833 | +			'nonce'                     => wp_create_nonce('activate_' . $context . '_toggle_nonce'), | 
                                                        |
| 1834 | + 'is_active' => $message_template_group->is_context_active($context),  | 
                                                        |
| 1835 | + 'on_off_action' => $message_template_group->is_context_active($context)  | 
                                                        |
| 1836 | + ? 'context-off'  | 
                                                        |
| 1837 | + : 'context-on',  | 
                                                        |
| 1838 | +			'context_label'             => str_replace(array('(', ')'), '', $context_label), | 
                                                        |
| 1839 | + 'message_template_group_id' => $message_template_group->ID(),  | 
                                                        |
| 1840 | + );  | 
                                                        |
| 1841 | + return EEH_Template::display_template(  | 
                                                        |
| 1842 | + EE_MSG_TEMPLATE_PATH . 'ee_msg_editor_active_context_element.template.php',  | 
                                                        |
| 1843 | + $template_args,  | 
                                                        |
| 1844 | + true  | 
                                                        |
| 1845 | + );  | 
                                                        |
| 1846 | + }  | 
                                                        |
| 1847 | +  | 
                                                        |
| 1848 | +  | 
                                                        |
| 1849 | + /**  | 
                                                        |
| 1850 | + * Ajax callback for `toggle_context_template` ajax action.  | 
                                                        |
| 1851 | + * Handles toggling the message context on or off.  | 
                                                        |
| 1852 | + *  | 
                                                        |
| 1853 | + * @throws EE_Error  | 
                                                        |
| 1854 | + * @throws InvalidArgumentException  | 
                                                        |
| 1855 | + * @throws InvalidDataTypeException  | 
                                                        |
| 1856 | + * @throws InvalidIdentifierException  | 
                                                        |
| 1857 | + * @throws InvalidInterfaceException  | 
                                                        |
| 1858 | + */  | 
                                                        |
| 1859 | + public function toggle_context_template()  | 
                                                        |
| 1860 | +	{ | 
                                                        |
| 1861 | + $success = true;  | 
                                                        |
| 1862 | + // check for required data  | 
                                                        |
| 1863 | + if (! isset(  | 
                                                        |
| 1864 | + $this->_req_data['message_template_group_id'],  | 
                                                        |
| 1865 | + $this->_req_data['context'],  | 
                                                        |
| 1866 | + $this->_req_data['status']  | 
                                                        |
| 1867 | +		)) { | 
                                                        |
| 1868 | + EE_Error::add_error(  | 
                                                        |
| 1869 | +				esc_html__('Required data for doing this action is not available.', 'event_espresso'), | 
                                                        |
| 1870 | + __FILE__,  | 
                                                        |
| 1871 | + __FUNCTION__,  | 
                                                        |
| 1872 | + __LINE__  | 
                                                        |
| 1873 | + );  | 
                                                        |
| 1874 | + $success = false;  | 
                                                        |
| 1875 | + }  | 
                                                        |
| 1876 | +  | 
                                                        |
| 1877 | + $nonce = isset($this->_req_data['toggle_context_nonce'])  | 
                                                        |
| 1878 | + ? sanitize_text_field($this->_req_data['toggle_context_nonce'])  | 
                                                        |
| 1879 | + : '';  | 
                                                        |
| 1880 | + $nonce_ref = 'activate_' . $this->_req_data['context'] . '_toggle_nonce';  | 
                                                        |
| 1881 | + $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 1882 | + $status = $this->_req_data['status'];  | 
                                                        |
| 1883 | +		if ($status !== 'off' && $status !== 'on') { | 
                                                        |
| 1884 | + EE_Error::add_error(  | 
                                                        |
| 1885 | + sprintf(  | 
                                                        |
| 1886 | +					esc_html__('The given status (%s) is not valid. Must be "off" or "on"', 'event_espresso'), | 
                                                        |
| 1887 | + $this->_req_data['status']  | 
                                                        |
| 1888 | + ),  | 
                                                        |
| 1889 | + __FILE__,  | 
                                                        |
| 1890 | + __FUNCTION__,  | 
                                                        |
| 1891 | + __LINE__  | 
                                                        |
| 1892 | + );  | 
                                                        |
| 1893 | + $success = false;  | 
                                                        |
| 1894 | + }  | 
                                                        |
| 1895 | + $message_template_group = EEM_Message_Template_Group::instance()->get_one_by_ID(  | 
                                                        |
| 1896 | + $this->_req_data['message_template_group_id']  | 
                                                        |
| 1897 | + );  | 
                                                        |
| 1898 | +		if (! $message_template_group instanceof EE_Message_Template_Group) { | 
                                                        |
| 1899 | + EE_Error::add_error(  | 
                                                        |
| 1900 | + sprintf(  | 
                                                        |
| 1901 | + esc_html__(  | 
                                                        |
| 1902 | + 'Unable to change the active state because the given id "%1$d" does not match a valid "%2$s"',  | 
                                                        |
| 1903 | + 'event_espresso'  | 
                                                        |
| 1904 | + ),  | 
                                                        |
| 1905 | + $this->_req_data['message_template_group_id'],  | 
                                                        |
| 1906 | + 'EE_Message_Template_Group'  | 
                                                        |
| 1907 | + ),  | 
                                                        |
| 1908 | + __FILE__,  | 
                                                        |
| 1909 | + __FUNCTION__,  | 
                                                        |
| 1910 | + __LINE__  | 
                                                        |
| 1911 | + );  | 
                                                        |
| 1912 | + $success = false;  | 
                                                        |
| 1913 | + }  | 
                                                        |
| 1914 | +		if ($success) { | 
                                                        |
| 1915 | + $success = $status === 'off'  | 
                                                        |
| 1916 | + ? $message_template_group->deactivate_context($this->_req_data['context'])  | 
                                                        |
| 1917 | + : $message_template_group->activate_context($this->_req_data['context']);  | 
                                                        |
| 1918 | + }  | 
                                                        |
| 1919 | + $this->_template_args['success'] = $success;  | 
                                                        |
| 1920 | + $this->_return_json();  | 
                                                        |
| 1921 | + }  | 
                                                        |
| 1922 | +  | 
                                                        |
| 1923 | +  | 
                                                        |
| 1924 | + public function _add_form_element_before()  | 
                                                        |
| 1925 | +	{ | 
                                                        |
| 1926 | + return '<form method="post" action="'  | 
                                                        |
| 1927 | + . $this->_template_args["edit_message_template_form_url"]  | 
                                                        |
| 1928 | + . '" id="ee-msg-edit-frm">';  | 
                                                        |
| 1929 | + }  | 
                                                        |
| 1930 | +  | 
                                                        |
| 1931 | + public function _add_form_element_after()  | 
                                                        |
| 1932 | +	{ | 
                                                        |
| 1933 | + return '</form>';  | 
                                                        |
| 1934 | + }  | 
                                                        |
| 1935 | +  | 
                                                        |
| 1936 | +  | 
                                                        |
| 1937 | + /**  | 
                                                        |
| 1938 | + * This executes switching the template pack for a message template.  | 
                                                        |
| 1939 | + *  | 
                                                        |
| 1940 | + * @since 4.5.0  | 
                                                        |
| 1941 | + * @throws EE_Error  | 
                                                        |
| 1942 | + * @throws InvalidDataTypeException  | 
                                                        |
| 1943 | + * @throws InvalidInterfaceException  | 
                                                        |
| 1944 | + * @throws InvalidArgumentException  | 
                                                        |
| 1945 | + * @throws ReflectionException  | 
                                                        |
| 1946 | + */  | 
                                                        |
| 1947 | + public function switch_template_pack()  | 
                                                        |
| 1948 | +	{ | 
                                                        |
| 1949 | + $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 1950 | + $template_pack = ! empty($this->_req_data['template_pack']) ? $this->_req_data['template_pack'] : '';  | 
                                                        |
| 1951 | +  | 
                                                        |
| 1952 | + // verify we have needed values.  | 
                                                        |
| 1953 | +		if (empty($GRP_ID) || empty($template_pack)) { | 
                                                        |
| 1954 | + $this->_template_args['error'] = true;  | 
                                                        |
| 1955 | + EE_Error::add_error(  | 
                                                        |
| 1956 | +				esc_html__('The required date for switching templates is not available.', 'event_espresso'), | 
                                                        |
| 1957 | + __FILE__,  | 
                                                        |
| 1958 | + __FUNCTION__,  | 
                                                        |
| 1959 | + __LINE__  | 
                                                        |
| 1960 | + );  | 
                                                        |
| 1961 | +		} else { | 
                                                        |
| 1962 | + // get template, set the new template_pack and then reset to default  | 
                                                        |
| 1963 | + /** @type EE_Message_Template_Group $message_template_group */  | 
                                                        |
| 1964 | + $message_template_group = EEM_Message_Template_Group::instance()->get_one_by_ID($GRP_ID);  | 
                                                        |
| 1965 | +  | 
                                                        |
| 1966 | + $message_template_group->set_template_pack_name($template_pack);  | 
                                                        |
| 1967 | + $this->_req_data['msgr'] = $message_template_group->messenger();  | 
                                                        |
| 1968 | + $this->_req_data['mt'] = $message_template_group->message_type();  | 
                                                        |
| 1969 | +  | 
                                                        |
| 1970 | + $query_args = $this->_reset_to_default_template();  | 
                                                        |
| 1971 | +  | 
                                                        |
| 1972 | +			if (empty($query_args['id'])) { | 
                                                        |
| 1973 | + EE_Error::add_error(  | 
                                                        |
| 1974 | + esc_html__(  | 
                                                        |
| 1975 | + 'Something went wrong with switching the template pack. Please try again or contact EE support',  | 
                                                        |
| 1976 | + 'event_espresso'  | 
                                                        |
| 1977 | + ),  | 
                                                        |
| 1978 | + __FILE__,  | 
                                                        |
| 1979 | + __FUNCTION__,  | 
                                                        |
| 1980 | + __LINE__  | 
                                                        |
| 1981 | + );  | 
                                                        |
| 1982 | + $this->_template_args['error'] = true;  | 
                                                        |
| 1983 | +			} else { | 
                                                        |
| 1984 | + $template_label = $message_template_group->get_template_pack()->label;  | 
                                                        |
| 1985 | + $template_pack_labels = $message_template_group->messenger_obj()->get_supports_labels();  | 
                                                        |
| 1986 | + EE_Error::add_success(  | 
                                                        |
| 1987 | + sprintf(  | 
                                                        |
| 1988 | + esc_html__(  | 
                                                        |
| 1989 | + 'This message template has been successfully switched to use the %1$s %2$s. Please wait while the page reloads with your new template.',  | 
                                                        |
| 1990 | + 'event_espresso'  | 
                                                        |
| 1991 | + ),  | 
                                                        |
| 1992 | + $template_label,  | 
                                                        |
| 1993 | + $template_pack_labels->template_pack  | 
                                                        |
| 1994 | + )  | 
                                                        |
| 1995 | + );  | 
                                                        |
| 1996 | + // generate the redirect url for js.  | 
                                                        |
| 1997 | + $url = self::add_query_args_and_nonce(  | 
                                                        |
| 1998 | + $query_args,  | 
                                                        |
| 1999 | + $this->_admin_base_url  | 
                                                        |
| 2000 | + );  | 
                                                        |
| 2001 | + $this->_template_args['data']['redirect_url'] = $url;  | 
                                                        |
| 2002 | + $this->_template_args['success'] = true;  | 
                                                        |
| 2003 | + }  | 
                                                        |
| 2004 | +  | 
                                                        |
| 2005 | + $this->_return_json();  | 
                                                        |
| 2006 | + }  | 
                                                        |
| 2007 | + }  | 
                                                        |
| 2008 | +  | 
                                                        |
| 2009 | +  | 
                                                        |
| 2010 | + /**  | 
                                                        |
| 2011 | + * This handles resetting the template for the given messenger/message_type so that users can start from scratch if  | 
                                                        |
| 2012 | + * they want.  | 
                                                        |
| 2013 | + *  | 
                                                        |
| 2014 | + * @access protected  | 
                                                        |
| 2015 | + * @return array|null  | 
                                                        |
| 2016 | + * @throws EE_Error  | 
                                                        |
| 2017 | + * @throws InvalidArgumentException  | 
                                                        |
| 2018 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2019 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2020 | + */  | 
                                                        |
| 2021 | + protected function _reset_to_default_template()  | 
                                                        |
| 2022 | +	{ | 
                                                        |
| 2023 | +  | 
                                                        |
| 2024 | + $templates = array();  | 
                                                        |
| 2025 | + $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 2026 | + // we need to make sure we've got the info we need.  | 
                                                        |
| 2027 | +		if (! isset($this->_req_data['msgr'], $this->_req_data['mt'], $this->_req_data['GRP_ID'])) { | 
                                                        |
| 2028 | + EE_Error::add_error(  | 
                                                        |
| 2029 | + esc_html__(  | 
                                                        |
| 2030 | + 'In order to reset the template to its default we require the messenger, message type, and message template GRP_ID to know what is being reset. At least one of these is missing.',  | 
                                                        |
| 2031 | + 'event_espresso'  | 
                                                        |
| 2032 | + ),  | 
                                                        |
| 2033 | + __FILE__,  | 
                                                        |
| 2034 | + __FUNCTION__,  | 
                                                        |
| 2035 | + __LINE__  | 
                                                        |
| 2036 | + );  | 
                                                        |
| 2037 | + }  | 
                                                        |
| 2038 | +  | 
                                                        |
| 2039 | + // all templates will be reset to whatever the defaults are  | 
                                                        |
| 2040 | + // for the global template matching the messenger and message type.  | 
                                                        |
| 2041 | + $success = ! empty($GRP_ID) ? true : false;  | 
                                                        |
| 2042 | +  | 
                                                        |
| 2043 | +		if ($success) { | 
                                                        |
| 2044 | + // let's first determine if the incoming template is a global template,  | 
                                                        |
| 2045 | + // if it isn't then we need to get the global template matching messenger and message type.  | 
                                                        |
| 2046 | + // $MTPG = EEM_Message_Template_Group::instance()->get_one_by_ID( $GRP_ID );  | 
                                                        |
| 2047 | +  | 
                                                        |
| 2048 | +  | 
                                                        |
| 2049 | + // note this is ONLY deleting the template fields (Message Template rows) NOT the message template group.  | 
                                                        |
| 2050 | + $success = $this->_delete_mtp_permanently($GRP_ID, false);  | 
                                                        |
| 2051 | +  | 
                                                        |
| 2052 | +			if ($success) { | 
                                                        |
| 2053 | + // if successfully deleted, lets generate the new ones.  | 
                                                        |
| 2054 | + // Note. We set GLOBAL to true, because resets on ANY template  | 
                                                        |
| 2055 | + // will use the related global template defaults for regeneration.  | 
                                                        |
| 2056 | + // This means that if a custom template is reset it resets to whatever the related global template is.  | 
                                                        |
| 2057 | + // HOWEVER, we DO keep the template pack and template variation set  | 
                                                        |
| 2058 | + // for the current custom template when resetting.  | 
                                                        |
| 2059 | + $templates = $this->_generate_new_templates(  | 
                                                        |
| 2060 | + $this->_req_data['msgr'],  | 
                                                        |
| 2061 | + $this->_req_data['mt'],  | 
                                                        |
| 2062 | + $GRP_ID,  | 
                                                        |
| 2063 | + true  | 
                                                        |
| 2064 | + );  | 
                                                        |
| 2065 | + }  | 
                                                        |
| 2066 | + }  | 
                                                        |
| 2067 | +  | 
                                                        |
| 2068 | + // any error messages?  | 
                                                        |
| 2069 | +		if (! $success) { | 
                                                        |
| 2070 | + EE_Error::add_error(  | 
                                                        |
| 2071 | + esc_html__(  | 
                                                        |
| 2072 | + 'Something went wrong with deleting existing templates. Unable to reset to default',  | 
                                                        |
| 2073 | + 'event_espresso'  | 
                                                        |
| 2074 | + ),  | 
                                                        |
| 2075 | + __FILE__,  | 
                                                        |
| 2076 | + __FUNCTION__,  | 
                                                        |
| 2077 | + __LINE__  | 
                                                        |
| 2078 | + );  | 
                                                        |
| 2079 | + }  | 
                                                        |
| 2080 | +  | 
                                                        |
| 2081 | + // all good, let's add a success message!  | 
                                                        |
| 2082 | +		if ($success && ! empty($templates)) { | 
                                                        |
| 2083 | + // the info for the template we generated is the first element in the returned array  | 
                                                        |
| 2084 | + // $templates = $templates[0];  | 
                                                        |
| 2085 | + EE_Error::overwrite_success();  | 
                                                        |
| 2086 | +			EE_Error::add_success(__('Templates have been reset to defaults.', 'event_espresso')); | 
                                                        |
| 2087 | + }  | 
                                                        |
| 2088 | +  | 
                                                        |
| 2089 | +  | 
                                                        |
| 2090 | + $query_args = array(  | 
                                                        |
| 2091 | + 'id' => isset($templates[0]['GRP_ID']) ? $templates[0]['GRP_ID'] : null,  | 
                                                        |
| 2092 | + 'context' => isset($templates[0]['MTP_context']) ? $templates[0]['MTP_context'] : null,  | 
                                                        |
| 2093 | + 'action' => isset($templates[0]['GRP_ID']) ? 'edit_message_template' : 'global_mtps',  | 
                                                        |
| 2094 | + );  | 
                                                        |
| 2095 | +  | 
                                                        |
| 2096 | + // if called via ajax then we return query args otherwise redirect  | 
                                                        |
| 2097 | +		if (defined('DOING_AJAX') && DOING_AJAX) { | 
                                                        |
| 2098 | + return $query_args;  | 
                                                        |
| 2099 | +		} else { | 
                                                        |
| 2100 | + $this->_redirect_after_action(false, '', '', $query_args, true);  | 
                                                        |
| 2101 | +  | 
                                                        |
| 2102 | + return null;  | 
                                                        |
| 2103 | + }  | 
                                                        |
| 2104 | + }  | 
                                                        |
| 2105 | +  | 
                                                        |
| 2106 | +  | 
                                                        |
| 2107 | + /**  | 
                                                        |
| 2108 | + * Retrieve and set the message preview for display.  | 
                                                        |
| 2109 | + *  | 
                                                        |
| 2110 | + * @param bool $send if TRUE then we are doing an actual TEST send with the results of the preview.  | 
                                                        |
| 2111 | + * @return string  | 
                                                        |
| 2112 | + * @throws ReflectionException  | 
                                                        |
| 2113 | + * @throws EE_Error  | 
                                                        |
| 2114 | + * @throws InvalidArgumentException  | 
                                                        |
| 2115 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2116 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2117 | + */  | 
                                                        |
| 2118 | + public function _preview_message($send = false)  | 
                                                        |
| 2119 | +	{ | 
                                                        |
| 2120 | + // first make sure we've got the necessary parameters  | 
                                                        |
| 2121 | + if (! isset(  | 
                                                        |
| 2122 | + $this->_req_data['message_type'],  | 
                                                        |
| 2123 | + $this->_req_data['messenger'],  | 
                                                        |
| 2124 | + $this->_req_data['messenger'],  | 
                                                        |
| 2125 | + $this->_req_data['GRP_ID']  | 
                                                        |
| 2126 | +		)) { | 
                                                        |
| 2127 | + EE_Error::add_error(  | 
                                                        |
| 2128 | +				esc_html__('Missing necessary parameters for displaying preview', 'event_espresso'), | 
                                                        |
| 2129 | + __FILE__,  | 
                                                        |
| 2130 | + __FUNCTION__,  | 
                                                        |
| 2131 | + __LINE__  | 
                                                        |
| 2132 | + );  | 
                                                        |
| 2133 | + }  | 
                                                        |
| 2134 | +  | 
                                                        |
| 2135 | +		EE_Registry::instance()->REQ->set('GRP_ID', $this->_req_data['GRP_ID']); | 
                                                        |
| 2136 | +  | 
                                                        |
| 2137 | +  | 
                                                        |
| 2138 | + // get the preview!  | 
                                                        |
| 2139 | + $preview = EED_Messages::preview_message(  | 
                                                        |
| 2140 | + $this->_req_data['message_type'],  | 
                                                        |
| 2141 | + $this->_req_data['context'],  | 
                                                        |
| 2142 | + $this->_req_data['messenger'],  | 
                                                        |
| 2143 | + $send  | 
                                                        |
| 2144 | + );  | 
                                                        |
| 2145 | +  | 
                                                        |
| 2146 | +		if ($send) { | 
                                                        |
| 2147 | + return $preview;  | 
                                                        |
| 2148 | + }  | 
                                                        |
| 2149 | +  | 
                                                        |
| 2150 | + // let's add a button to go back to the edit view  | 
                                                        |
| 2151 | + $query_args = array(  | 
                                                        |
| 2152 | + 'id' => $this->_req_data['GRP_ID'],  | 
                                                        |
| 2153 | + 'context' => $this->_req_data['context'],  | 
                                                        |
| 2154 | + 'action' => 'edit_message_template',  | 
                                                        |
| 2155 | + );  | 
                                                        |
| 2156 | + $go_back_url = parent::add_query_args_and_nonce($query_args, $this->_admin_base_url);  | 
                                                        |
| 2157 | + $preview_button = '<a href="'  | 
                                                        |
| 2158 | + . $go_back_url  | 
                                                        |
| 2159 | + . '" class="button-secondary messages-preview-go-back-button">'  | 
                                                        |
| 2160 | +						  . esc_html__('Go Back to Edit', 'event_espresso') | 
                                                        |
| 2161 | + . '</a>';  | 
                                                        |
| 2162 | + $message_types = $this->get_installed_message_types();  | 
                                                        |
| 2163 | + $active_messenger = $this->_message_resource_manager->get_active_messenger(  | 
                                                        |
| 2164 | + $this->_req_data['messenger']  | 
                                                        |
| 2165 | + );  | 
                                                        |
| 2166 | + $active_messenger_label = $active_messenger instanceof EE_messenger  | 
                                                        |
| 2167 | + ? ucwords($active_messenger->label['singular'])  | 
                                                        |
| 2168 | +			: esc_html__('Unknown Messenger', 'event_espresso'); | 
                                                        |
| 2169 | + // let's provide a helpful title for context  | 
                                                        |
| 2170 | + $preview_title = sprintf(  | 
                                                        |
| 2171 | +			esc_html__('Viewing Preview for %s %s Message Template', 'event_espresso'), | 
                                                        |
| 2172 | + $active_messenger_label,  | 
                                                        |
| 2173 | + ucwords($message_types[ $this->_req_data['message_type'] ]->label['singular'])  | 
                                                        |
| 2174 | + );  | 
                                                        |
| 2175 | +		if (empty($preview)) { | 
                                                        |
| 2176 | + $this->noEventsErrorMessage();  | 
                                                        |
| 2177 | + }  | 
                                                        |
| 2178 | + // setup display of preview.  | 
                                                        |
| 2179 | + $this->_admin_page_title = $preview_title;  | 
                                                        |
| 2180 | + $this->_template_args['admin_page_title'] = $preview_title;  | 
                                                        |
| 2181 | + $this->_template_args['admin_page_content'] = $preview_button . '<br />' . $preview;  | 
                                                        |
| 2182 | + $this->_template_args['data']['force_json'] = true;  | 
                                                        |
| 2183 | +  | 
                                                        |
| 2184 | + return '';  | 
                                                        |
| 2185 | + }  | 
                                                        |
| 2186 | +  | 
                                                        |
| 2187 | +  | 
                                                        |
| 2188 | + /**  | 
                                                        |
| 2189 | + * Used to set an error if there are no events available for generating a preview/test send.  | 
                                                        |
| 2190 | + *  | 
                                                        |
| 2191 | + * @param bool $test_send Whether the error should be generated for the context of a test send.  | 
                                                        |
| 2192 | + */  | 
                                                        |
| 2193 | + protected function noEventsErrorMessage($test_send = false)  | 
                                                        |
| 2194 | +	{ | 
                                                        |
| 2195 | + $events_url = parent::add_query_args_and_nonce(  | 
                                                        |
| 2196 | + array(  | 
                                                        |
| 2197 | + 'action' => 'default',  | 
                                                        |
| 2198 | + 'page' => 'espresso_events',  | 
                                                        |
| 2199 | + ),  | 
                                                        |
| 2200 | +			admin_url('admin.php') | 
                                                        |
| 2201 | + );  | 
                                                        |
| 2202 | + $message = $test_send  | 
                                                        |
| 2203 | + ? __(  | 
                                                        |
| 2204 | + 'A test message could not be sent for this message template because there are no events created yet. The preview system uses actual events for generating the test message. %1$sGo see your events%2$s!',  | 
                                                        |
| 2205 | + 'event_espresso'  | 
                                                        |
| 2206 | + )  | 
                                                        |
| 2207 | + : __(  | 
                                                        |
| 2208 | + 'There is no preview for this message template available because there are no events created yet. The preview system uses actual events for generating the preview. %1$sGo see your events%2$s!',  | 
                                                        |
| 2209 | + 'event_espresso'  | 
                                                        |
| 2210 | + );  | 
                                                        |
| 2211 | +  | 
                                                        |
| 2212 | + EE_Error::add_attention(  | 
                                                        |
| 2213 | + sprintf(  | 
                                                        |
| 2214 | + $message,  | 
                                                        |
| 2215 | +				"<a href='{$events_url}'>", | 
                                                        |
| 2216 | + '</a>'  | 
                                                        |
| 2217 | + )  | 
                                                        |
| 2218 | + );  | 
                                                        |
| 2219 | + }  | 
                                                        |
| 2220 | +  | 
                                                        |
| 2221 | +  | 
                                                        |
| 2222 | + /**  | 
                                                        |
| 2223 | + * The initial _preview_message is on a no headers route. It will optionally call this if necessary otherwise it  | 
                                                        |
| 2224 | + * gets called automatically.  | 
                                                        |
| 2225 | + *  | 
                                                        |
| 2226 | + * @since 4.5.0  | 
                                                        |
| 2227 | + *  | 
                                                        |
| 2228 | + * @return string  | 
                                                        |
| 2229 | + */  | 
                                                        |
| 2230 | + protected function _display_preview_message()  | 
                                                        |
| 2231 | +	{ | 
                                                        |
| 2232 | + $this->display_admin_page_with_no_sidebar();  | 
                                                        |
| 2233 | + }  | 
                                                        |
| 2234 | +  | 
                                                        |
| 2235 | +  | 
                                                        |
| 2236 | + /**  | 
                                                        |
| 2237 | + * registers metaboxes that should show up on the "edit_message_template" page  | 
                                                        |
| 2238 | + *  | 
                                                        |
| 2239 | + * @access protected  | 
                                                        |
| 2240 | + * @return void  | 
                                                        |
| 2241 | + */  | 
                                                        |
| 2242 | + protected function _register_edit_meta_boxes()  | 
                                                        |
| 2243 | +	{ | 
                                                        |
| 2244 | + add_meta_box(  | 
                                                        |
| 2245 | + 'mtp_valid_shortcodes',  | 
                                                        |
| 2246 | +			esc_html__('Valid Shortcodes', 'event_espresso'), | 
                                                        |
| 2247 | + array($this, 'shortcode_meta_box'),  | 
                                                        |
| 2248 | + $this->_current_screen->id,  | 
                                                        |
| 2249 | + 'side',  | 
                                                        |
| 2250 | + 'default'  | 
                                                        |
| 2251 | + );  | 
                                                        |
| 2252 | + add_meta_box(  | 
                                                        |
| 2253 | + 'mtp_extra_actions',  | 
                                                        |
| 2254 | +			esc_html__('Extra Actions', 'event_espresso'), | 
                                                        |
| 2255 | + array($this, 'extra_actions_meta_box'),  | 
                                                        |
| 2256 | + $this->_current_screen->id,  | 
                                                        |
| 2257 | + 'side',  | 
                                                        |
| 2258 | + 'high'  | 
                                                        |
| 2259 | + );  | 
                                                        |
| 2260 | + add_meta_box(  | 
                                                        |
| 2261 | + 'mtp_templates',  | 
                                                        |
| 2262 | +			esc_html__('Template Styles', 'event_espresso'), | 
                                                        |
| 2263 | + array($this, 'template_pack_meta_box'),  | 
                                                        |
| 2264 | + $this->_current_screen->id,  | 
                                                        |
| 2265 | + 'side',  | 
                                                        |
| 2266 | + 'high'  | 
                                                        |
| 2267 | + );  | 
                                                        |
| 2268 | + }  | 
                                                        |
| 2269 | +  | 
                                                        |
| 2270 | +  | 
                                                        |
| 2271 | + /**  | 
                                                        |
| 2272 | + * metabox content for all template pack and variation selection.  | 
                                                        |
| 2273 | + *  | 
                                                        |
| 2274 | + * @since 4.5.0  | 
                                                        |
| 2275 | + * @return string  | 
                                                        |
| 2276 | + * @throws DomainException  | 
                                                        |
| 2277 | + * @throws EE_Error  | 
                                                        |
| 2278 | + * @throws InvalidArgumentException  | 
                                                        |
| 2279 | + * @throws ReflectionException  | 
                                                        |
| 2280 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2281 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2282 | + */  | 
                                                        |
| 2283 | + public function template_pack_meta_box()  | 
                                                        |
| 2284 | +	{ | 
                                                        |
| 2285 | + $this->_set_message_template_group();  | 
                                                        |
| 2286 | +  | 
                                                        |
| 2287 | + $tp_collection = EEH_MSG_Template::get_template_pack_collection();  | 
                                                        |
| 2288 | +  | 
                                                        |
| 2289 | + $tp_select_values = array();  | 
                                                        |
| 2290 | +  | 
                                                        |
| 2291 | +		foreach ($tp_collection as $tp) { | 
                                                        |
| 2292 | + // only include template packs that support this messenger and message type!  | 
                                                        |
| 2293 | + $supports = $tp->get_supports();  | 
                                                        |
| 2294 | + if (! isset($supports[ $this->_message_template_group->messenger() ])  | 
                                                        |
| 2295 | + || ! in_array(  | 
                                                        |
| 2296 | + $this->_message_template_group->message_type(),  | 
                                                        |
| 2297 | + $supports[ $this->_message_template_group->messenger() ],  | 
                                                        |
| 2298 | + true  | 
                                                        |
| 2299 | + )  | 
                                                        |
| 2300 | +			) { | 
                                                        |
| 2301 | + // not supported  | 
                                                        |
| 2302 | + continue;  | 
                                                        |
| 2303 | + }  | 
                                                        |
| 2304 | +  | 
                                                        |
| 2305 | + $tp_select_values[] = array(  | 
                                                        |
| 2306 | + 'text' => $tp->label,  | 
                                                        |
| 2307 | + 'id' => $tp->dbref,  | 
                                                        |
| 2308 | + );  | 
                                                        |
| 2309 | + }  | 
                                                        |
| 2310 | +  | 
                                                        |
| 2311 | + // if empty $tp_select_values then we make sure default is set because EVERY message type should be supported by  | 
                                                        |
| 2312 | + // the default template pack. This still allows for the odd template pack to override.  | 
                                                        |
| 2313 | +		if (empty($tp_select_values)) { | 
                                                        |
| 2314 | + $tp_select_values[] = array(  | 
                                                        |
| 2315 | +				'text' => esc_html__('Default', 'event_espresso'), | 
                                                        |
| 2316 | + 'id' => 'default',  | 
                                                        |
| 2317 | + );  | 
                                                        |
| 2318 | + }  | 
                                                        |
| 2319 | +  | 
                                                        |
| 2320 | + // setup variation select values for the currently selected template.  | 
                                                        |
| 2321 | + $variations = $this->_message_template_group->get_template_pack()->get_variations(  | 
                                                        |
| 2322 | + $this->_message_template_group->messenger(),  | 
                                                        |
| 2323 | + $this->_message_template_group->message_type()  | 
                                                        |
| 2324 | + );  | 
                                                        |
| 2325 | + $variations_select_values = array();  | 
                                                        |
| 2326 | +		foreach ($variations as $variation => $label) { | 
                                                        |
| 2327 | + $variations_select_values[] = array(  | 
                                                        |
| 2328 | + 'text' => $label,  | 
                                                        |
| 2329 | + 'id' => $variation,  | 
                                                        |
| 2330 | + );  | 
                                                        |
| 2331 | + }  | 
                                                        |
| 2332 | +  | 
                                                        |
| 2333 | + $template_pack_labels = $this->_message_template_group->messenger_obj()->get_supports_labels();  | 
                                                        |
| 2334 | +  | 
                                                        |
| 2335 | + $template_args['template_packs_selector'] = EEH_Form_Fields::select_input(  | 
                                                        |
| 2336 | + 'MTP_template_pack',  | 
                                                        |
| 2337 | + $tp_select_values,  | 
                                                        |
| 2338 | + $this->_message_template_group->get_template_pack_name()  | 
                                                        |
| 2339 | + );  | 
                                                        |
| 2340 | + $template_args['variations_selector'] = EEH_Form_Fields::select_input(  | 
                                                        |
| 2341 | + 'MTP_template_variation',  | 
                                                        |
| 2342 | + $variations_select_values,  | 
                                                        |
| 2343 | + $this->_message_template_group->get_template_pack_variation()  | 
                                                        |
| 2344 | + );  | 
                                                        |
| 2345 | + $template_args['template_pack_label'] = $template_pack_labels->template_pack;  | 
                                                        |
| 2346 | + $template_args['template_variation_label'] = $template_pack_labels->template_variation;  | 
                                                        |
| 2347 | + $template_args['template_pack_description'] = $template_pack_labels->template_pack_description;  | 
                                                        |
| 2348 | + $template_args['template_variation_description'] = $template_pack_labels->template_variation_description;  | 
                                                        |
| 2349 | +  | 
                                                        |
| 2350 | + $template = EE_MSG_TEMPLATE_PATH . 'template_pack_and_variations_metabox.template.php';  | 
                                                        |
| 2351 | +  | 
                                                        |
| 2352 | + EEH_Template::display_template($template, $template_args);  | 
                                                        |
| 2353 | + }  | 
                                                        |
| 2354 | +  | 
                                                        |
| 2355 | +  | 
                                                        |
| 2356 | + /**  | 
                                                        |
| 2357 | + * This meta box holds any extra actions related to Message Templates  | 
                                                        |
| 2358 | + * For now, this includes Resetting templates to defaults and sending a test email.  | 
                                                        |
| 2359 | + *  | 
                                                        |
| 2360 | + * @access public  | 
                                                        |
| 2361 | + * @return void  | 
                                                        |
| 2362 | + * @throws EE_Error  | 
                                                        |
| 2363 | + */  | 
                                                        |
| 2364 | + public function extra_actions_meta_box()  | 
                                                        |
| 2365 | +	{ | 
                                                        |
| 2366 | + $template_form_fields = array();  | 
                                                        |
| 2367 | +  | 
                                                        |
| 2368 | + $extra_args = array(  | 
                                                        |
| 2369 | + 'msgr' => $this->_message_template_group->messenger(),  | 
                                                        |
| 2370 | + 'mt' => $this->_message_template_group->message_type(),  | 
                                                        |
| 2371 | + 'GRP_ID' => $this->_message_template_group->GRP_ID(),  | 
                                                        |
| 2372 | + );  | 
                                                        |
| 2373 | + // first we need to see if there are any fields  | 
                                                        |
| 2374 | + $fields = $this->_message_template_group->messenger_obj()->get_test_settings_fields();  | 
                                                        |
| 2375 | +  | 
                                                        |
| 2376 | +		if (! empty($fields)) { | 
                                                        |
| 2377 | + // yup there be fields  | 
                                                        |
| 2378 | +			foreach ($fields as $field => $config) { | 
                                                        |
| 2379 | + $field_id = $this->_message_template_group->messenger() . '_' . $field;  | 
                                                        |
| 2380 | + $existing = $this->_message_template_group->messenger_obj()->get_existing_test_settings();  | 
                                                        |
| 2381 | + $default = isset($config['default']) ? $config['default'] : '';  | 
                                                        |
| 2382 | + $default = isset($config['value']) ? $config['value'] : $default;  | 
                                                        |
| 2383 | +  | 
                                                        |
| 2384 | + // if type is hidden and the value is empty  | 
                                                        |
| 2385 | + // something may have gone wrong so let's correct with the defaults  | 
                                                        |
| 2386 | + $fix = $config['input'] === 'hidden'  | 
                                                        |
| 2387 | + && isset($existing[ $field ])  | 
                                                        |
| 2388 | + && empty($existing[ $field ])  | 
                                                        |
| 2389 | + ? $default  | 
                                                        |
| 2390 | + : '';  | 
                                                        |
| 2391 | + $existing[ $field ] = isset($existing[ $field ]) && empty($fix)  | 
                                                        |
| 2392 | + ? $existing[ $field ]  | 
                                                        |
| 2393 | + : $fix;  | 
                                                        |
| 2394 | +  | 
                                                        |
| 2395 | + $template_form_fields[ $field_id ] = array(  | 
                                                        |
| 2396 | + 'name' => 'test_settings_fld[' . $field . ']',  | 
                                                        |
| 2397 | + 'label' => $config['label'],  | 
                                                        |
| 2398 | + 'input' => $config['input'],  | 
                                                        |
| 2399 | + 'type' => $config['type'],  | 
                                                        |
| 2400 | + 'required' => $config['required'],  | 
                                                        |
| 2401 | + 'validation' => $config['validation'],  | 
                                                        |
| 2402 | + 'value' => isset($existing[ $field ]) ? $existing[ $field ] : $default,  | 
                                                        |
| 2403 | + 'css_class' => $config['css_class'],  | 
                                                        |
| 2404 | + 'options' => isset($config['options']) ? $config['options'] : array(),  | 
                                                        |
| 2405 | + 'default' => $default,  | 
                                                        |
| 2406 | + 'format' => $config['format'],  | 
                                                        |
| 2407 | + );  | 
                                                        |
| 2408 | + }  | 
                                                        |
| 2409 | + }  | 
                                                        |
| 2410 | +  | 
                                                        |
| 2411 | + $test_settings_fields = ! empty($template_form_fields)  | 
                                                        |
| 2412 | + ? $this->_generate_admin_form_fields($template_form_fields, 'string', 'ee_tst_settings_flds')  | 
                                                        |
| 2413 | + : '';  | 
                                                        |
| 2414 | +  | 
                                                        |
| 2415 | + $test_settings_html = '';  | 
                                                        |
| 2416 | + // print out $test_settings_fields  | 
                                                        |
| 2417 | +		if (! empty($test_settings_fields)) { | 
                                                        |
| 2418 | + echo $test_settings_fields;  | 
                                                        |
| 2419 | + $test_settings_html = '<input type="submit" class="button-primary mtp-test-button alignright" ';  | 
                                                        |
| 2420 | + $test_settings_html .= 'name="test_button" value="';  | 
                                                        |
| 2421 | +			$test_settings_html .= esc_html__('Test Send', 'event_espresso'); | 
                                                        |
| 2422 | + $test_settings_html .= '" /><div style="clear:both"></div>';  | 
                                                        |
| 2423 | + }  | 
                                                        |
| 2424 | +  | 
                                                        |
| 2425 | + // and button  | 
                                                        |
| 2426 | + $test_settings_html .= '<p>'  | 
                                                        |
| 2427 | +							   . esc_html__('Need to reset this message type and start over?', 'event_espresso') | 
                                                        |
| 2428 | + . '</p>';  | 
                                                        |
| 2429 | + $test_settings_html .= '<div class="publishing-action alignright resetbutton">';  | 
                                                        |
| 2430 | + $test_settings_html .= $this->get_action_link_or_button(  | 
                                                        |
| 2431 | + 'reset_to_default',  | 
                                                        |
| 2432 | + 'reset',  | 
                                                        |
| 2433 | + $extra_args,  | 
                                                        |
| 2434 | + 'button-primary reset-default-button'  | 
                                                        |
| 2435 | + );  | 
                                                        |
| 2436 | + $test_settings_html .= '</div><div style="clear:both"></div>';  | 
                                                        |
| 2437 | + echo $test_settings_html;  | 
                                                        |
| 2438 | + }  | 
                                                        |
| 2439 | +  | 
                                                        |
| 2440 | +  | 
                                                        |
| 2441 | + /**  | 
                                                        |
| 2442 | + * This returns the shortcode selector skeleton for a given context and field.  | 
                                                        |
| 2443 | + *  | 
                                                        |
| 2444 | + * @since 4.9.rc.000  | 
                                                        |
| 2445 | + * @param string $field The name of the field retrieving shortcodes for.  | 
                                                        |
| 2446 | + * @param string $linked_input_id The css id of the input that the shortcodes get added to.  | 
                                                        |
| 2447 | + * @return string  | 
                                                        |
| 2448 | + * @throws DomainException  | 
                                                        |
| 2449 | + * @throws EE_Error  | 
                                                        |
| 2450 | + * @throws InvalidArgumentException  | 
                                                        |
| 2451 | + * @throws ReflectionException  | 
                                                        |
| 2452 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2453 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2454 | + */  | 
                                                        |
| 2455 | + protected function _get_shortcode_selector($field, $linked_input_id)  | 
                                                        |
| 2456 | +	{ | 
                                                        |
| 2457 | + $template_args = array(  | 
                                                        |
| 2458 | + 'shortcodes' => $this->_get_shortcodes(array($field), true),  | 
                                                        |
| 2459 | + 'fieldname' => $field,  | 
                                                        |
| 2460 | + 'linked_input_id' => $linked_input_id,  | 
                                                        |
| 2461 | + );  | 
                                                        |
| 2462 | +  | 
                                                        |
| 2463 | + return EEH_Template::display_template(  | 
                                                        |
| 2464 | + EE_MSG_TEMPLATE_PATH . 'shortcode_selector_skeleton.template.php',  | 
                                                        |
| 2465 | + $template_args,  | 
                                                        |
| 2466 | + true  | 
                                                        |
| 2467 | + );  | 
                                                        |
| 2468 | + }  | 
                                                        |
| 2469 | +  | 
                                                        |
| 2470 | +  | 
                                                        |
| 2471 | + /**  | 
                                                        |
| 2472 | + * This just takes care of returning the meta box content for shortcodes (only used on the edit message template  | 
                                                        |
| 2473 | + * page)  | 
                                                        |
| 2474 | + *  | 
                                                        |
| 2475 | + * @access public  | 
                                                        |
| 2476 | + * @return void  | 
                                                        |
| 2477 | + * @throws EE_Error  | 
                                                        |
| 2478 | + * @throws InvalidArgumentException  | 
                                                        |
| 2479 | + * @throws ReflectionException  | 
                                                        |
| 2480 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2481 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2482 | + */  | 
                                                        |
| 2483 | + public function shortcode_meta_box()  | 
                                                        |
| 2484 | +	{ | 
                                                        |
| 2485 | + $shortcodes = $this->_get_shortcodes(array(), false); // just make sure shortcodes property is set  | 
                                                        |
| 2486 | + // $messenger = $this->_message_template_group->messenger_obj();  | 
                                                        |
| 2487 | + // now let's set the content depending on the status of the shortcodes array  | 
                                                        |
| 2488 | +		if (empty($shortcodes)) { | 
                                                        |
| 2489 | +			$content = '<p>' . esc_html__('There are no valid shortcodes available', 'event_espresso') . '</p>'; | 
                                                        |
| 2490 | + echo $content;  | 
                                                        |
| 2491 | +		} else { | 
                                                        |
| 2492 | + // $alt = 0;  | 
                                                        |
| 2493 | + ?>  | 
                                                        |
| 2494 | 2494 | <div style="float:right; margin-top:10px"><?php  | 
                                                        
| 2495 | -                            echo $this->_get_help_tab_link('message_template_shortcodes'); | 
                                                        |
| 2496 | - ?></div>  | 
                                                        |
| 2495 | +							echo $this->_get_help_tab_link('message_template_shortcodes'); | 
                                                        |
| 2496 | + ?></div>  | 
                                                        |
| 2497 | 2497 | <p class="small-text"><?php  | 
                                                        
| 2498 | - printf(  | 
                                                        |
| 2499 | - esc_html__(  | 
                                                        |
| 2500 | - 'You can view the shortcodes usable in your template by clicking the %s icon next to each field.',  | 
                                                        |
| 2501 | - 'event_espresso'  | 
                                                        |
| 2502 | - ),  | 
                                                        |
| 2503 | - '<span class="dashicons dashicons-menu"></span>'  | 
                                                        |
| 2504 | - );  | 
                                                        |
| 2505 | - ?>  | 
                                                        |
| 2498 | + printf(  | 
                                                        |
| 2499 | + esc_html__(  | 
                                                        |
| 2500 | + 'You can view the shortcodes usable in your template by clicking the %s icon next to each field.',  | 
                                                        |
| 2501 | + 'event_espresso'  | 
                                                        |
| 2502 | + ),  | 
                                                        |
| 2503 | + '<span class="dashicons dashicons-menu"></span>'  | 
                                                        |
| 2504 | + );  | 
                                                        |
| 2505 | + ?>  | 
                                                        |
| 2506 | 2506 | </p>  | 
                                                        
| 2507 | 2507 | <?php  | 
                                                        
| 2508 | - }  | 
                                                        |
| 2509 | - }  | 
                                                        |
| 2510 | -  | 
                                                        |
| 2511 | -  | 
                                                        |
| 2512 | - /**  | 
                                                        |
| 2513 | - * used to set the $_shortcodes property for when its needed elsewhere.  | 
                                                        |
| 2514 | - *  | 
                                                        |
| 2515 | - * @access protected  | 
                                                        |
| 2516 | - * @return void  | 
                                                        |
| 2517 | - * @throws EE_Error  | 
                                                        |
| 2518 | - * @throws InvalidArgumentException  | 
                                                        |
| 2519 | - * @throws ReflectionException  | 
                                                        |
| 2520 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2521 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2522 | - */  | 
                                                        |
| 2523 | - protected function _set_shortcodes()  | 
                                                        |
| 2524 | -    { | 
                                                        |
| 2525 | -  | 
                                                        |
| 2526 | - // no need to run this if the property is already set  | 
                                                        |
| 2527 | -        if (! empty($this->_shortcodes)) { | 
                                                        |
| 2528 | - return;  | 
                                                        |
| 2529 | - }  | 
                                                        |
| 2530 | -  | 
                                                        |
| 2531 | - $this->_shortcodes = $this->_get_shortcodes();  | 
                                                        |
| 2532 | - }  | 
                                                        |
| 2533 | -  | 
                                                        |
| 2534 | -  | 
                                                        |
| 2535 | - /**  | 
                                                        |
| 2536 | - * get's all shortcodes for a given template group. (typically used by _set_shortcodes to set the $_shortcodes  | 
                                                        |
| 2537 | - * property)  | 
                                                        |
| 2538 | - *  | 
                                                        |
| 2539 | - * @access protected  | 
                                                        |
| 2540 | - * @param array $fields include an array of specific field names that you want to be used to get the shortcodes  | 
                                                        |
| 2541 | - * for. Defaults to all (for the given context)  | 
                                                        |
| 2542 | - * @param boolean $merged Whether to merge all the shortcodes into one list of unique shortcodes  | 
                                                        |
| 2543 | - * @return array Shortcodes indexed by fieldname and the an array of shortcode/label pairs OR if merged is  | 
                                                        |
| 2544 | - * true just an array of shortcode/label pairs.  | 
                                                        |
| 2545 | - * @throws EE_Error  | 
                                                        |
| 2546 | - * @throws InvalidArgumentException  | 
                                                        |
| 2547 | - * @throws ReflectionException  | 
                                                        |
| 2548 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2549 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2550 | - */  | 
                                                        |
| 2551 | - protected function _get_shortcodes($fields = array(), $merged = true)  | 
                                                        |
| 2552 | -    { | 
                                                        |
| 2553 | - $this->_set_message_template_group();  | 
                                                        |
| 2554 | -  | 
                                                        |
| 2555 | - // we need the messenger and message template to retrieve the valid shortcodes array.  | 
                                                        |
| 2556 | - $GRP_ID = isset($this->_req_data['id']) && ! empty($this->_req_data['id'])  | 
                                                        |
| 2557 | - ? absint($this->_req_data['id'])  | 
                                                        |
| 2558 | - : false;  | 
                                                        |
| 2559 | - $context = isset($this->_req_data['context'])  | 
                                                        |
| 2560 | - ? $this->_req_data['context']  | 
                                                        |
| 2561 | - : key($this->_message_template_group->contexts_config());  | 
                                                        |
| 2562 | -  | 
                                                        |
| 2563 | - return ! empty($GRP_ID) ? $this->_message_template_group->get_shortcodes($context, $fields, $merged) : array();  | 
                                                        |
| 2564 | - }  | 
                                                        |
| 2565 | -  | 
                                                        |
| 2566 | -  | 
                                                        |
| 2567 | - /**  | 
                                                        |
| 2568 | - * This sets the _message_template property (containing the called message_template object)  | 
                                                        |
| 2569 | - *  | 
                                                        |
| 2570 | - * @access protected  | 
                                                        |
| 2571 | - * @return void  | 
                                                        |
| 2572 | - * @throws EE_Error  | 
                                                        |
| 2573 | - * @throws InvalidArgumentException  | 
                                                        |
| 2574 | - * @throws ReflectionException  | 
                                                        |
| 2575 | - * @throws InvalidDataTypeException  | 
                                                        |
| 2576 | - * @throws InvalidInterfaceException  | 
                                                        |
| 2577 | - */  | 
                                                        |
| 2578 | - protected function _set_message_template_group()  | 
                                                        |
| 2579 | -    { | 
                                                        |
| 2580 | -  | 
                                                        |
| 2581 | -        if (! empty($this->_message_template_group)) { | 
                                                        |
| 2582 | - return;  | 
                                                        |
| 2583 | - } //get out if this is already set.  | 
                                                        |
| 2584 | -  | 
                                                        |
| 2585 | - $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? absint($this->_req_data['GRP_ID']) : false;  | 
                                                        |
| 2586 | - $GRP_ID = empty($GRP_ID) && ! empty($this->_req_data['id']) ? $this->_req_data['id'] : $GRP_ID;  | 
                                                        |
| 2587 | -  | 
                                                        |
| 2588 | - // let's get the message templates  | 
                                                        |
| 2589 | - $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 2590 | -  | 
                                                        |
| 2591 | -        if (empty($GRP_ID)) { | 
                                                        |
| 2592 | - $this->_message_template_group = $MTP->create_default_object();  | 
                                                        |
| 2593 | -        } else { | 
                                                        |
| 2594 | - $this->_message_template_group = $MTP->get_one_by_ID($GRP_ID);  | 
                                                        |
| 2595 | - }  | 
                                                        |
| 2596 | -  | 
                                                        |
| 2597 | - $this->_template_pack = $this->_message_template_group->get_template_pack();  | 
                                                        |
| 2598 | - $this->_variation = $this->_message_template_group->get_template_pack_variation();  | 
                                                        |
| 2599 | - }  | 
                                                        |
| 2600 | -  | 
                                                        |
| 2601 | -  | 
                                                        |
| 2602 | - /**  | 
                                                        |
| 2603 | - * sets up a context switcher for edit forms  | 
                                                        |
| 2604 | - *  | 
                                                        |
| 2605 | - * @access protected  | 
                                                        |
| 2606 | - * @param EE_Message_Template_Group $template_group_object the template group object being displayed on the form  | 
                                                        |
| 2607 | - * @param array $args various things the context switcher needs.  | 
                                                        |
| 2608 | - * @throws EE_Error  | 
                                                        |
| 2609 | - */  | 
                                                        |
| 2610 | - protected function _set_context_switcher(EE_Message_Template_Group $template_group_object, $args)  | 
                                                        |
| 2611 | -    { | 
                                                        |
| 2612 | - $context_details = $template_group_object->contexts_config();  | 
                                                        |
| 2613 | - $context_label = $template_group_object->context_label();  | 
                                                        |
| 2614 | - ob_start();  | 
                                                        |
| 2615 | - ?>  | 
                                                        |
| 2508 | + }  | 
                                                        |
| 2509 | + }  | 
                                                        |
| 2510 | +  | 
                                                        |
| 2511 | +  | 
                                                        |
| 2512 | + /**  | 
                                                        |
| 2513 | + * used to set the $_shortcodes property for when its needed elsewhere.  | 
                                                        |
| 2514 | + *  | 
                                                        |
| 2515 | + * @access protected  | 
                                                        |
| 2516 | + * @return void  | 
                                                        |
| 2517 | + * @throws EE_Error  | 
                                                        |
| 2518 | + * @throws InvalidArgumentException  | 
                                                        |
| 2519 | + * @throws ReflectionException  | 
                                                        |
| 2520 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2521 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2522 | + */  | 
                                                        |
| 2523 | + protected function _set_shortcodes()  | 
                                                        |
| 2524 | +	{ | 
                                                        |
| 2525 | +  | 
                                                        |
| 2526 | + // no need to run this if the property is already set  | 
                                                        |
| 2527 | +		if (! empty($this->_shortcodes)) { | 
                                                        |
| 2528 | + return;  | 
                                                        |
| 2529 | + }  | 
                                                        |
| 2530 | +  | 
                                                        |
| 2531 | + $this->_shortcodes = $this->_get_shortcodes();  | 
                                                        |
| 2532 | + }  | 
                                                        |
| 2533 | +  | 
                                                        |
| 2534 | +  | 
                                                        |
| 2535 | + /**  | 
                                                        |
| 2536 | + * get's all shortcodes for a given template group. (typically used by _set_shortcodes to set the $_shortcodes  | 
                                                        |
| 2537 | + * property)  | 
                                                        |
| 2538 | + *  | 
                                                        |
| 2539 | + * @access protected  | 
                                                        |
| 2540 | + * @param array $fields include an array of specific field names that you want to be used to get the shortcodes  | 
                                                        |
| 2541 | + * for. Defaults to all (for the given context)  | 
                                                        |
| 2542 | + * @param boolean $merged Whether to merge all the shortcodes into one list of unique shortcodes  | 
                                                        |
| 2543 | + * @return array Shortcodes indexed by fieldname and the an array of shortcode/label pairs OR if merged is  | 
                                                        |
| 2544 | + * true just an array of shortcode/label pairs.  | 
                                                        |
| 2545 | + * @throws EE_Error  | 
                                                        |
| 2546 | + * @throws InvalidArgumentException  | 
                                                        |
| 2547 | + * @throws ReflectionException  | 
                                                        |
| 2548 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2549 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2550 | + */  | 
                                                        |
| 2551 | + protected function _get_shortcodes($fields = array(), $merged = true)  | 
                                                        |
| 2552 | +	{ | 
                                                        |
| 2553 | + $this->_set_message_template_group();  | 
                                                        |
| 2554 | +  | 
                                                        |
| 2555 | + // we need the messenger and message template to retrieve the valid shortcodes array.  | 
                                                        |
| 2556 | + $GRP_ID = isset($this->_req_data['id']) && ! empty($this->_req_data['id'])  | 
                                                        |
| 2557 | + ? absint($this->_req_data['id'])  | 
                                                        |
| 2558 | + : false;  | 
                                                        |
| 2559 | + $context = isset($this->_req_data['context'])  | 
                                                        |
| 2560 | + ? $this->_req_data['context']  | 
                                                        |
| 2561 | + : key($this->_message_template_group->contexts_config());  | 
                                                        |
| 2562 | +  | 
                                                        |
| 2563 | + return ! empty($GRP_ID) ? $this->_message_template_group->get_shortcodes($context, $fields, $merged) : array();  | 
                                                        |
| 2564 | + }  | 
                                                        |
| 2565 | +  | 
                                                        |
| 2566 | +  | 
                                                        |
| 2567 | + /**  | 
                                                        |
| 2568 | + * This sets the _message_template property (containing the called message_template object)  | 
                                                        |
| 2569 | + *  | 
                                                        |
| 2570 | + * @access protected  | 
                                                        |
| 2571 | + * @return void  | 
                                                        |
| 2572 | + * @throws EE_Error  | 
                                                        |
| 2573 | + * @throws InvalidArgumentException  | 
                                                        |
| 2574 | + * @throws ReflectionException  | 
                                                        |
| 2575 | + * @throws InvalidDataTypeException  | 
                                                        |
| 2576 | + * @throws InvalidInterfaceException  | 
                                                        |
| 2577 | + */  | 
                                                        |
| 2578 | + protected function _set_message_template_group()  | 
                                                        |
| 2579 | +	{ | 
                                                        |
| 2580 | +  | 
                                                        |
| 2581 | +		if (! empty($this->_message_template_group)) { | 
                                                        |
| 2582 | + return;  | 
                                                        |
| 2583 | + } //get out if this is already set.  | 
                                                        |
| 2584 | +  | 
                                                        |
| 2585 | + $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? absint($this->_req_data['GRP_ID']) : false;  | 
                                                        |
| 2586 | + $GRP_ID = empty($GRP_ID) && ! empty($this->_req_data['id']) ? $this->_req_data['id'] : $GRP_ID;  | 
                                                        |
| 2587 | +  | 
                                                        |
| 2588 | + // let's get the message templates  | 
                                                        |
| 2589 | + $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 2590 | +  | 
                                                        |
| 2591 | +		if (empty($GRP_ID)) { | 
                                                        |
| 2592 | + $this->_message_template_group = $MTP->create_default_object();  | 
                                                        |
| 2593 | +		} else { | 
                                                        |
| 2594 | + $this->_message_template_group = $MTP->get_one_by_ID($GRP_ID);  | 
                                                        |
| 2595 | + }  | 
                                                        |
| 2596 | +  | 
                                                        |
| 2597 | + $this->_template_pack = $this->_message_template_group->get_template_pack();  | 
                                                        |
| 2598 | + $this->_variation = $this->_message_template_group->get_template_pack_variation();  | 
                                                        |
| 2599 | + }  | 
                                                        |
| 2600 | +  | 
                                                        |
| 2601 | +  | 
                                                        |
| 2602 | + /**  | 
                                                        |
| 2603 | + * sets up a context switcher for edit forms  | 
                                                        |
| 2604 | + *  | 
                                                        |
| 2605 | + * @access protected  | 
                                                        |
| 2606 | + * @param EE_Message_Template_Group $template_group_object the template group object being displayed on the form  | 
                                                        |
| 2607 | + * @param array $args various things the context switcher needs.  | 
                                                        |
| 2608 | + * @throws EE_Error  | 
                                                        |
| 2609 | + */  | 
                                                        |
| 2610 | + protected function _set_context_switcher(EE_Message_Template_Group $template_group_object, $args)  | 
                                                        |
| 2611 | +	{ | 
                                                        |
| 2612 | + $context_details = $template_group_object->contexts_config();  | 
                                                        |
| 2613 | + $context_label = $template_group_object->context_label();  | 
                                                        |
| 2614 | + ob_start();  | 
                                                        |
| 2615 | + ?>  | 
                                                        |
| 2616 | 2616 | <div class="ee-msg-switcher-container">  | 
                                                        
| 2617 | 2617 | <form method="get" action="<?php echo EE_MSG_ADMIN_URL; ?>" id="ee-msg-context-switcher-frm">  | 
                                                        
| 2618 | 2618 | <?php  | 
                                                        
| 2619 | -                foreach ($args as $name => $value) { | 
                                                        |
| 2620 | -                    if ($name === 'context' || empty($value) || $name === 'extra') { | 
                                                        |
| 2621 | - continue;  | 
                                                        |
| 2622 | - }  | 
                                                        |
| 2623 | - ?>  | 
                                                        |
| 2619 | +				foreach ($args as $name => $value) { | 
                                                        |
| 2620 | +					if ($name === 'context' || empty($value) || $name === 'extra') { | 
                                                        |
| 2621 | + continue;  | 
                                                        |
| 2622 | + }  | 
                                                        |
| 2623 | + ?>  | 
                                                        |
| 2624 | 2624 | <input type="hidden" name="<?php echo $name; ?>" value="<?php echo $value; ?>"/>  | 
                                                        
| 2625 | 2625 | <?php  | 
                                                        
| 2626 | - }  | 
                                                        |
| 2627 | - // setup nonce_url  | 
                                                        |
| 2628 | - wp_nonce_field($args['action'] . '_nonce', $args['action'] . '_nonce', false);  | 
                                                        |
| 2629 | - ?>  | 
                                                        |
| 2626 | + }  | 
                                                        |
| 2627 | + // setup nonce_url  | 
                                                        |
| 2628 | + wp_nonce_field($args['action'] . '_nonce', $args['action'] . '_nonce', false);  | 
                                                        |
| 2629 | + ?>  | 
                                                        |
| 2630 | 2630 | <select name="context">  | 
                                                        
| 2631 | 2631 | <?php  | 
                                                        
| 2632 | - $context_templates = $template_group_object->context_templates();  | 
                                                        |
| 2633 | - if (is_array($context_templates)) :  | 
                                                        |
| 2634 | - foreach ($context_templates as $context => $template_fields) :  | 
                                                        |
| 2635 | - $checked = ($context === $args['context']) ? 'selected="selected"' : '';  | 
                                                        |
| 2636 | - ?>  | 
                                                        |
| 2632 | + $context_templates = $template_group_object->context_templates();  | 
                                                        |
| 2633 | + if (is_array($context_templates)) :  | 
                                                        |
| 2634 | + foreach ($context_templates as $context => $template_fields) :  | 
                                                        |
| 2635 | + $checked = ($context === $args['context']) ? 'selected="selected"' : '';  | 
                                                        |
| 2636 | + ?>  | 
                                                        |
| 2637 | 2637 | <option value="<?php echo $context; ?>" <?php echo $checked; ?>>  | 
                                                        
| 2638 | 2638 | <?php echo $context_details[ $context ]['label']; ?>  | 
                                                        
| 2639 | 2639 | </option>  | 
                                                        
| 2640 | 2640 | <?php endforeach;  | 
                                                        
| 2641 | - endif; ?>  | 
                                                        |
| 2641 | + endif; ?>  | 
                                                        |
| 2642 | 2642 | </select>  | 
                                                        
| 2643 | 2643 |                  <?php $button_text = sprintf(__('Switch %s', 'event_espresso'), ucwords($context_label['label'])); ?> | 
                                                        
| 2644 | 2644 | <input id="submit-msg-context-switcher-sbmt" class="button-secondary" type="submit"  | 
                                                        
@@ -2647,1925 +2647,1925 @@ discard block  | 
                                                    ||
| 2647 | 2647 | <?php echo $args['extra']; ?>  | 
                                                        
| 2648 | 2648 | </div> <!-- end .ee-msg-switcher-container -->  | 
                                                        
| 2649 | 2649 | <?php  | 
                                                        
| 2650 | - $output = ob_get_contents();  | 
                                                        |
| 2651 | - ob_clean();  | 
                                                        |
| 2652 | - $this->_context_switcher = $output;  | 
                                                        |
| 2653 | - }  | 
                                                        |
| 2654 | -  | 
                                                        |
| 2655 | -  | 
                                                        |
| 2656 | - /**  | 
                                                        |
| 2657 | - * utility for sanitizing new values coming in.  | 
                                                        |
| 2658 | - * Note: this is only used when updating a context.  | 
                                                        |
| 2659 | - *  | 
                                                        |
| 2660 | - * @access protected  | 
                                                        |
| 2661 | - *  | 
                                                        |
| 2662 | - * @param int $index This helps us know which template field to select from the request array.  | 
                                                        |
| 2663 | - *  | 
                                                        |
| 2664 | - * @return array  | 
                                                        |
| 2665 | - */  | 
                                                        |
| 2666 | - protected function _set_message_template_column_values($index)  | 
                                                        |
| 2667 | -    { | 
                                                        |
| 2668 | -        if (is_array($this->_req_data['MTP_template_fields'][ $index ]['content'])) { | 
                                                        |
| 2669 | -            foreach ($this->_req_data['MTP_template_fields'][ $index ]['content'] as $field => $value) { | 
                                                        |
| 2670 | - $this->_req_data['MTP_template_fields'][ $index ]['content'][ $field ] = $value;  | 
                                                        |
| 2671 | - }  | 
                                                        |
| 2672 | - }  | 
                                                        |
| 2673 | -  | 
                                                        |
| 2674 | -  | 
                                                        |
| 2675 | - $set_column_values = array(  | 
                                                        |
| 2676 | - 'MTP_ID' => absint($this->_req_data['MTP_template_fields'][ $index ]['MTP_ID']),  | 
                                                        |
| 2677 | - 'GRP_ID' => absint($this->_req_data['GRP_ID']),  | 
                                                        |
| 2678 | - 'MTP_user_id' => absint($this->_req_data['MTP_user_id']),  | 
                                                        |
| 2679 | - 'MTP_messenger' => strtolower($this->_req_data['MTP_messenger']),  | 
                                                        |
| 2680 | - 'MTP_message_type' => strtolower($this->_req_data['MTP_message_type']),  | 
                                                        |
| 2681 | - 'MTP_template_field' => strtolower($this->_req_data['MTP_template_fields'][ $index ]['name']),  | 
                                                        |
| 2682 | - 'MTP_context' => strtolower($this->_req_data['MTP_context']),  | 
                                                        |
| 2683 | - 'MTP_content' => $this->_req_data['MTP_template_fields'][ $index ]['content'],  | 
                                                        |
| 2684 | - 'MTP_is_global' => isset($this->_req_data['MTP_is_global'])  | 
                                                        |
| 2685 | - ? absint($this->_req_data['MTP_is_global'])  | 
                                                        |
| 2686 | - : 0,  | 
                                                        |
| 2687 | - 'MTP_is_override' => isset($this->_req_data['MTP_is_override'])  | 
                                                        |
| 2688 | - ? absint($this->_req_data['MTP_is_override'])  | 
                                                        |
| 2689 | - : 0,  | 
                                                        |
| 2690 | - 'MTP_deleted' => absint($this->_req_data['MTP_deleted']),  | 
                                                        |
| 2691 | - 'MTP_is_active' => absint($this->_req_data['MTP_is_active']),  | 
                                                        |
| 2692 | - );  | 
                                                        |
| 2693 | -  | 
                                                        |
| 2694 | -  | 
                                                        |
| 2695 | - return $set_column_values;  | 
                                                        |
| 2696 | - }  | 
                                                        |
| 2697 | -  | 
                                                        |
| 2698 | -  | 
                                                        |
| 2699 | - protected function _insert_or_update_message_template($new = false)  | 
                                                        |
| 2700 | -    { | 
                                                        |
| 2701 | -  | 
                                                        |
| 2702 | -        do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 2703 | - $success = 0;  | 
                                                        |
| 2704 | - $override = false;  | 
                                                        |
| 2705 | -  | 
                                                        |
| 2706 | - // setup notices description  | 
                                                        |
| 2707 | - $messenger_slug = ! empty($this->_req_data['MTP_messenger']) ? $this->_req_data['MTP_messenger'] : '';  | 
                                                        |
| 2708 | -  | 
                                                        |
| 2709 | - // need the message type and messenger objects to be able to use the labels for the notices  | 
                                                        |
| 2710 | - $messenger_object = $this->_message_resource_manager->get_messenger($messenger_slug);  | 
                                                        |
| 2711 | - $messenger_label = $messenger_object instanceof EE_messenger  | 
                                                        |
| 2712 | - ? ucwords($messenger_object->label['singular'])  | 
                                                        |
| 2713 | - : '';  | 
                                                        |
| 2714 | -  | 
                                                        |
| 2715 | - $message_type_slug = ! empty($this->_req_data['MTP_message_type'])  | 
                                                        |
| 2716 | - ? $this->_req_data['MTP_message_type']  | 
                                                        |
| 2717 | - : '';  | 
                                                        |
| 2718 | - $message_type_object = $this->_message_resource_manager->get_message_type($message_type_slug);  | 
                                                        |
| 2719 | -  | 
                                                        |
| 2720 | - $message_type_label = $message_type_object instanceof EE_message_type  | 
                                                        |
| 2721 | - ? ucwords($message_type_object->label['singular'])  | 
                                                        |
| 2722 | - : '';  | 
                                                        |
| 2723 | -  | 
                                                        |
| 2724 | - $context_slug = ! empty($this->_req_data['MTP_context'])  | 
                                                        |
| 2725 | - ? $this->_req_data['MTP_context']  | 
                                                        |
| 2726 | - : '';  | 
                                                        |
| 2727 | -        $context = ucwords(str_replace('_', ' ', $context_slug)); | 
                                                        |
| 2728 | -  | 
                                                        |
| 2729 | - $item_desc = $messenger_label && $message_type_label  | 
                                                        |
| 2730 | - ? $messenger_label . ' ' . $message_type_label . ' ' . $context . ' '  | 
                                                        |
| 2731 | - : '';  | 
                                                        |
| 2732 | - $item_desc .= 'Message Template';  | 
                                                        |
| 2733 | - $query_args = array();  | 
                                                        |
| 2734 | - $edit_array = array();  | 
                                                        |
| 2735 | - $action_desc = '';  | 
                                                        |
| 2736 | -  | 
                                                        |
| 2737 | - // if this is "new" then we need to generate the default contexts for the selected messenger/message_type for  | 
                                                        |
| 2738 | - // user to edit.  | 
                                                        |
| 2739 | -        if ($new) { | 
                                                        |
| 2740 | - $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 2741 | -            if ($edit_array = $this->_generate_new_templates($messenger_slug, $message_type_slug, $GRP_ID)) { | 
                                                        |
| 2742 | -                if (empty($edit_array)) { | 
                                                        |
| 2743 | - $success = 0;  | 
                                                        |
| 2744 | -                } else { | 
                                                        |
| 2745 | - $success = 1;  | 
                                                        |
| 2746 | - $edit_array = $edit_array[0];  | 
                                                        |
| 2747 | - $query_args = array(  | 
                                                        |
| 2748 | - 'id' => $edit_array['GRP_ID'],  | 
                                                        |
| 2749 | - 'context' => $edit_array['MTP_context'],  | 
                                                        |
| 2750 | - 'action' => 'edit_message_template',  | 
                                                        |
| 2751 | - );  | 
                                                        |
| 2752 | - }  | 
                                                        |
| 2753 | - }  | 
                                                        |
| 2754 | - $action_desc = 'created';  | 
                                                        |
| 2755 | -        } else { | 
                                                        |
| 2756 | - $MTPG = EEM_Message_Template_Group::instance();  | 
                                                        |
| 2757 | - $MTP = EEM_Message_Template::instance();  | 
                                                        |
| 2758 | -  | 
                                                        |
| 2759 | -  | 
                                                        |
| 2760 | - // run update for each template field in displayed context  | 
                                                        |
| 2761 | -            if (! isset($this->_req_data['MTP_template_fields']) && empty($this->_req_data['MTP_template_fields'])) { | 
                                                        |
| 2762 | - EE_Error::add_error(  | 
                                                        |
| 2763 | - esc_html__(  | 
                                                        |
| 2764 | - 'There was a problem saving the template fields from the form because I didn\'t receive any actual template field data.',  | 
                                                        |
| 2765 | - 'event_espresso'  | 
                                                        |
| 2766 | - ),  | 
                                                        |
| 2767 | - __FILE__,  | 
                                                        |
| 2768 | - __FUNCTION__,  | 
                                                        |
| 2769 | - __LINE__  | 
                                                        |
| 2770 | - );  | 
                                                        |
| 2771 | - $success = 0;  | 
                                                        |
| 2772 | -            } else { | 
                                                        |
| 2773 | - // first validate all fields!  | 
                                                        |
| 2774 | - // this filter allows client code to add its own validation to the template fields as well.  | 
                                                        |
| 2775 | - // returning an empty array means everything passed validation.  | 
                                                        |
| 2776 | - // errors in validation should be represented in an array with the following shape:  | 
                                                        |
| 2777 | - // array(  | 
                                                        |
| 2778 | - // 'fieldname' => array(  | 
                                                        |
| 2779 | - // 'msg' => 'error message'  | 
                                                        |
| 2780 | - // 'value' => 'value for field producing error'  | 
                                                        |
| 2781 | - // )  | 
                                                        |
| 2782 | - $custom_validation = (array) apply_filters(  | 
                                                        |
| 2783 | - 'FHEE__Messages_Admin_Page___insert_or_update_message_template__validates',  | 
                                                        |
| 2784 | - array(),  | 
                                                        |
| 2785 | - $this->_req_data['MTP_template_fields'],  | 
                                                        |
| 2786 | - $context_slug,  | 
                                                        |
| 2787 | - $messenger_slug,  | 
                                                        |
| 2788 | - $message_type_slug  | 
                                                        |
| 2789 | - );  | 
                                                        |
| 2790 | -  | 
                                                        |
| 2791 | - $system_validation = $MTPG->validate(  | 
                                                        |
| 2792 | - $this->_req_data['MTP_template_fields'],  | 
                                                        |
| 2793 | - $context_slug,  | 
                                                        |
| 2794 | - $messenger_slug,  | 
                                                        |
| 2795 | - $message_type_slug  | 
                                                        |
| 2796 | - );  | 
                                                        |
| 2797 | -  | 
                                                        |
| 2798 | - $system_validation = ! is_array($system_validation) && $system_validation ? array()  | 
                                                        |
| 2799 | - : $system_validation;  | 
                                                        |
| 2800 | - $validates = array_merge($custom_validation, $system_validation);  | 
                                                        |
| 2801 | -  | 
                                                        |
| 2802 | - // if $validate returned error messages (i.e. is_array()) then we need to process them and setup an  | 
                                                        |
| 2803 | - // appropriate response. HMM, dang this isn't correct, $validates will ALWAYS be an array.  | 
                                                        |
| 2804 | - // WE need to make sure there is no actual error messages in validates.  | 
                                                        |
| 2805 | -                if (is_array($validates) && ! empty($validates)) { | 
                                                        |
| 2806 | - // add the transient so when the form loads we know which fields to highlight  | 
                                                        |
| 2807 | -                    $this->_add_transient('edit_message_template', $validates); | 
                                                        |
| 2808 | -  | 
                                                        |
| 2809 | - $success = 0;  | 
                                                        |
| 2810 | -  | 
                                                        |
| 2811 | - // setup notices  | 
                                                        |
| 2812 | -                    foreach ($validates as $field => $error) { | 
                                                        |
| 2813 | -                        if (isset($error['msg'])) { | 
                                                        |
| 2814 | - EE_Error::add_error($error['msg'], __FILE__, __FUNCTION__, __LINE__);  | 
                                                        |
| 2815 | - }  | 
                                                        |
| 2816 | - }  | 
                                                        |
| 2817 | -                } else { | 
                                                        |
| 2818 | - $set_column_values = array();  | 
                                                        |
| 2819 | -                    foreach ($this->_req_data['MTP_template_fields'] as $template_field => $content) { | 
                                                        |
| 2820 | - $set_column_values = $this->_set_message_template_column_values($template_field);  | 
                                                        |
| 2821 | -  | 
                                                        |
| 2822 | - $where_cols_n_values = array(  | 
                                                        |
| 2823 | - 'MTP_ID' => $this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'],  | 
                                                        |
| 2824 | - );  | 
                                                        |
| 2825 | - // if they aren't allowed to use all JS, restrict them to just posty-y tags  | 
                                                        |
| 2826 | -                        if (! current_user_can('unfiltered_html')) { | 
                                                        |
| 2827 | -                            if (is_array($set_column_values['MTP_content'])) { | 
                                                        |
| 2828 | -                                foreach ($set_column_values['MTP_content'] as $key => $value) { | 
                                                        |
| 2829 | - // remove slashes so wp_kses works properly (its wp_kses_stripslashes() function  | 
                                                        |
| 2830 | - // only removes slashes from double-quotes, so attributes using single quotes always  | 
                                                        |
| 2831 | - // appear invalid.) But currently the models expect slashed data, so after wp_kses  | 
                                                        |
| 2832 | - // runs we need to re-slash the data. Sheesh. See  | 
                                                        |
| 2833 | - // https://events.codebasehq.com/projects/event-espresso/tickets/11211#update-47321587  | 
                                                        |
| 2834 | - $set_column_values['MTP_content'][ $key ] = addslashes(  | 
                                                        |
| 2835 | - wp_kses(  | 
                                                        |
| 2836 | - stripslashes($value),  | 
                                                        |
| 2837 | -                                            wp_kses_allowed_html('post') | 
                                                        |
| 2838 | - )  | 
                                                        |
| 2839 | - );  | 
                                                        |
| 2840 | - }  | 
                                                        |
| 2841 | -                            } else { | 
                                                        |
| 2842 | - $set_column_values['MTP_content'] = wp_kses(  | 
                                                        |
| 2843 | - $set_column_values['MTP_content'],  | 
                                                        |
| 2844 | -                                    wp_kses_allowed_html('post') | 
                                                        |
| 2845 | - );  | 
                                                        |
| 2846 | - }  | 
                                                        |
| 2847 | - }  | 
                                                        |
| 2848 | - $message_template_fields = array(  | 
                                                        |
| 2849 | - 'GRP_ID' => $set_column_values['GRP_ID'],  | 
                                                        |
| 2850 | - 'MTP_template_field' => $set_column_values['MTP_template_field'],  | 
                                                        |
| 2851 | - 'MTP_context' => $set_column_values['MTP_context'],  | 
                                                        |
| 2852 | - 'MTP_content' => $set_column_values['MTP_content'],  | 
                                                        |
| 2853 | - );  | 
                                                        |
| 2854 | -                        if ($updated = $MTP->update($message_template_fields, array($where_cols_n_values))) { | 
                                                        |
| 2855 | -                            if ($updated === false) { | 
                                                        |
| 2856 | - EE_Error::add_error(  | 
                                                        |
| 2857 | - sprintf(  | 
                                                        |
| 2858 | -                                        esc_html__('%s field was NOT updated for some reason', 'event_espresso'), | 
                                                        |
| 2859 | - $template_field  | 
                                                        |
| 2860 | - ),  | 
                                                        |
| 2861 | - __FILE__,  | 
                                                        |
| 2862 | - __FUNCTION__,  | 
                                                        |
| 2863 | - __LINE__  | 
                                                        |
| 2864 | - );  | 
                                                        |
| 2865 | -                            } else { | 
                                                        |
| 2866 | - $success = 1;  | 
                                                        |
| 2867 | - }  | 
                                                        |
| 2868 | -                        } else { | 
                                                        |
| 2869 | - // only do this logic if we don't have a MTP_ID for this field  | 
                                                        |
| 2870 | -                            if (empty($this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'])) { | 
                                                        |
| 2871 | - // this has already been through the template field validator and sanitized, so it will be  | 
                                                        |
| 2872 | - // safe to insert this field. Why insert? This typically happens when we introduce a new  | 
                                                        |
| 2873 | - // message template field in a messenger/message type and existing users don't have the  | 
                                                        |
| 2874 | - // default setup for it.  | 
                                                        |
| 2875 | - // @link https://events.codebasehq.com/projects/event-espresso/tickets/9465  | 
                                                        |
| 2876 | - $updated = $MTP->insert($message_template_fields);  | 
                                                        |
| 2877 | -                                if (! $updated || is_wp_error($updated)) { | 
                                                        |
| 2878 | - EE_Error::add_error(  | 
                                                        |
| 2879 | - sprintf(  | 
                                                        |
| 2880 | -                                            esc_html__('%s field could not be updated.', 'event_espresso'), | 
                                                        |
| 2881 | - $template_field  | 
                                                        |
| 2882 | - ),  | 
                                                        |
| 2883 | - __FILE__,  | 
                                                        |
| 2884 | - __FUNCTION__,  | 
                                                        |
| 2885 | - __LINE__  | 
                                                        |
| 2886 | - );  | 
                                                        |
| 2887 | - $success = 0;  | 
                                                        |
| 2888 | -                                } else { | 
                                                        |
| 2889 | - $success = 1;  | 
                                                        |
| 2890 | - }  | 
                                                        |
| 2891 | - }  | 
                                                        |
| 2892 | - }  | 
                                                        |
| 2893 | - $action_desc = 'updated';  | 
                                                        |
| 2894 | - }  | 
                                                        |
| 2895 | -  | 
                                                        |
| 2896 | - // we can use the last set_column_values for the MTPG update (because its the same for all of these specific MTPs)  | 
                                                        |
| 2897 | - $mtpg_fields = array(  | 
                                                        |
| 2898 | - 'MTP_user_id' => $set_column_values['MTP_user_id'],  | 
                                                        |
| 2899 | - 'MTP_messenger' => $set_column_values['MTP_messenger'],  | 
                                                        |
| 2900 | - 'MTP_message_type' => $set_column_values['MTP_message_type'],  | 
                                                        |
| 2901 | - 'MTP_is_global' => $set_column_values['MTP_is_global'],  | 
                                                        |
| 2902 | - 'MTP_is_override' => $set_column_values['MTP_is_override'],  | 
                                                        |
| 2903 | - 'MTP_deleted' => $set_column_values['MTP_deleted'],  | 
                                                        |
| 2904 | - 'MTP_is_active' => $set_column_values['MTP_is_active'],  | 
                                                        |
| 2905 | - 'MTP_name' => ! empty($this->_req_data['ee_msg_non_global_fields']['MTP_name'])  | 
                                                        |
| 2906 | - ? $this->_req_data['ee_msg_non_global_fields']['MTP_name']  | 
                                                        |
| 2907 | - : '',  | 
                                                        |
| 2908 | - 'MTP_description' => ! empty($this->_req_data['ee_msg_non_global_fields']['MTP_description'])  | 
                                                        |
| 2909 | - ? $this->_req_data['ee_msg_non_global_fields']['MTP_description']  | 
                                                        |
| 2910 | - : '',  | 
                                                        |
| 2911 | - );  | 
                                                        |
| 2912 | -  | 
                                                        |
| 2913 | -                    $mtpg_where = array('GRP_ID' => $set_column_values['GRP_ID']); | 
                                                        |
| 2914 | - $updated = $MTPG->update($mtpg_fields, array($mtpg_where));  | 
                                                        |
| 2915 | -  | 
                                                        |
| 2916 | -                    if ($updated === false) { | 
                                                        |
| 2917 | - EE_Error::add_error(  | 
                                                        |
| 2918 | - sprintf(  | 
                                                        |
| 2919 | - esc_html__(  | 
                                                        |
| 2920 | - 'The Message Template Group (%d) was NOT updated for some reason',  | 
                                                        |
| 2921 | - 'event_espresso'  | 
                                                        |
| 2922 | - ),  | 
                                                        |
| 2923 | - $set_column_values['GRP_ID']  | 
                                                        |
| 2924 | - ),  | 
                                                        |
| 2925 | - __FILE__,  | 
                                                        |
| 2926 | - __FUNCTION__,  | 
                                                        |
| 2927 | - __LINE__  | 
                                                        |
| 2928 | - );  | 
                                                        |
| 2929 | -                    } else { | 
                                                        |
| 2930 | - // k now we need to ensure the template_pack and template_variation fields are set.  | 
                                                        |
| 2931 | - $template_pack = ! empty($this->_req_data['MTP_template_pack'])  | 
                                                        |
| 2932 | - ? $this->_req_data['MTP_template_pack']  | 
                                                        |
| 2933 | - : 'default';  | 
                                                        |
| 2934 | -  | 
                                                        |
| 2935 | - $template_variation = ! empty($this->_req_data['MTP_template_variation'])  | 
                                                        |
| 2936 | - ? $this->_req_data['MTP_template_variation']  | 
                                                        |
| 2937 | - : 'default';  | 
                                                        |
| 2938 | -  | 
                                                        |
| 2939 | - $mtpg_obj = $MTPG->get_one_by_ID($set_column_values['GRP_ID']);  | 
                                                        |
| 2940 | -                        if ($mtpg_obj instanceof EE_Message_Template_Group) { | 
                                                        |
| 2941 | - $mtpg_obj->set_template_pack_name($template_pack);  | 
                                                        |
| 2942 | - $mtpg_obj->set_template_pack_variation($template_variation);  | 
                                                        |
| 2943 | - }  | 
                                                        |
| 2944 | - $success = 1;  | 
                                                        |
| 2945 | - }  | 
                                                        |
| 2946 | - }  | 
                                                        |
| 2947 | - }  | 
                                                        |
| 2948 | - }  | 
                                                        |
| 2949 | -  | 
                                                        |
| 2950 | - // we return things differently if doing ajax  | 
                                                        |
| 2951 | -        if (defined('DOING_AJAX') && DOING_AJAX) { | 
                                                        |
| 2952 | - $this->_template_args['success'] = $success;  | 
                                                        |
| 2953 | - $this->_template_args['error'] = ! $success ? true : false;  | 
                                                        |
| 2954 | - $this->_template_args['content'] = '';  | 
                                                        |
| 2955 | - $this->_template_args['data'] = array(  | 
                                                        |
| 2956 | - 'grpID' => $edit_array['GRP_ID'],  | 
                                                        |
| 2957 | - 'templateName' => $edit_array['template_name'],  | 
                                                        |
| 2958 | - );  | 
                                                        |
| 2959 | -            if ($success) { | 
                                                        |
| 2960 | - EE_Error::overwrite_success();  | 
                                                        |
| 2961 | - EE_Error::add_success(  | 
                                                        |
| 2962 | - esc_html__(  | 
                                                        |
| 2963 | - 'The new template has been created and automatically selected for this event. You can edit the new template by clicking the edit button. Note before this template is assigned to this event, the event must be saved.',  | 
                                                        |
| 2964 | - 'event_espresso'  | 
                                                        |
| 2965 | - )  | 
                                                        |
| 2966 | - );  | 
                                                        |
| 2967 | - }  | 
                                                        |
| 2968 | -  | 
                                                        |
| 2969 | - $this->_return_json();  | 
                                                        |
| 2970 | - }  | 
                                                        |
| 2971 | -  | 
                                                        |
| 2972 | -  | 
                                                        |
| 2973 | - // was a test send triggered?  | 
                                                        |
| 2974 | -        if (isset($this->_req_data['test_button'])) { | 
                                                        |
| 2975 | - EE_Error::overwrite_success();  | 
                                                        |
| 2976 | - $this->_do_test_send($context_slug, $messenger_slug, $message_type_slug);  | 
                                                        |
| 2977 | - $override = true;  | 
                                                        |
| 2978 | - }  | 
                                                        |
| 2979 | -  | 
                                                        |
| 2980 | -        if (empty($query_args)) { | 
                                                        |
| 2981 | - $query_args = array(  | 
                                                        |
| 2982 | - 'id' => $this->_req_data['GRP_ID'],  | 
                                                        |
| 2983 | - 'context' => $context_slug,  | 
                                                        |
| 2984 | - 'action' => 'edit_message_template',  | 
                                                        |
| 2985 | - );  | 
                                                        |
| 2986 | - }  | 
                                                        |
| 2987 | -  | 
                                                        |
| 2988 | - $this->_redirect_after_action($success, $item_desc, $action_desc, $query_args, $override);  | 
                                                        |
| 2989 | - }  | 
                                                        |
| 2990 | -  | 
                                                        |
| 2991 | -  | 
                                                        |
| 2992 | - /**  | 
                                                        |
| 2993 | - * processes a test send request to do an actual messenger delivery test for the given message template being tested  | 
                                                        |
| 2994 | - *  | 
                                                        |
| 2995 | - * @param string $context what context being tested  | 
                                                        |
| 2996 | - * @param string $messenger messenger being tested  | 
                                                        |
| 2997 | - * @param string $message_type message type being tested  | 
                                                        |
| 2998 | - * @throws EE_Error  | 
                                                        |
| 2999 | - * @throws InvalidArgumentException  | 
                                                        |
| 3000 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3001 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3002 | - */  | 
                                                        |
| 3003 | - protected function _do_test_send($context, $messenger, $message_type)  | 
                                                        |
| 3004 | -    { | 
                                                        |
| 3005 | - // set things up for preview  | 
                                                        |
| 3006 | - $this->_req_data['messenger'] = $messenger;  | 
                                                        |
| 3007 | - $this->_req_data['message_type'] = $message_type;  | 
                                                        |
| 3008 | - $this->_req_data['context'] = $context;  | 
                                                        |
| 3009 | - $this->_req_data['GRP_ID'] = isset($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : '';  | 
                                                        |
| 3010 | - $active_messenger = $this->_message_resource_manager->get_active_messenger($messenger);  | 
                                                        |
| 3011 | -  | 
                                                        |
| 3012 | - // let's save any existing fields that might be required by the messenger  | 
                                                        |
| 3013 | - if (isset($this->_req_data['test_settings_fld'])  | 
                                                        |
| 3014 | - && $active_messenger instanceof EE_messenger  | 
                                                        |
| 3015 | - && apply_filters(  | 
                                                        |
| 3016 | - 'FHEE__Messages_Admin_Page__do_test_send__set_existing_test_settings',  | 
                                                        |
| 3017 | - true,  | 
                                                        |
| 3018 | - $this->_req_data['test_settings_fld'],  | 
                                                        |
| 3019 | - $active_messenger  | 
                                                        |
| 3020 | - )  | 
                                                        |
| 3021 | -        ) { | 
                                                        |
| 3022 | - $active_messenger->set_existing_test_settings($this->_req_data['test_settings_fld']);  | 
                                                        |
| 3023 | - }  | 
                                                        |
| 3024 | -  | 
                                                        |
| 3025 | - /**  | 
                                                        |
| 3026 | - * Use filter to add additional controls on whether message can send or not  | 
                                                        |
| 3027 | - */  | 
                                                        |
| 3028 | - if (apply_filters(  | 
                                                        |
| 3029 | - 'FHEE__Messages_Admin_Page__do_test_send__can_send',  | 
                                                        |
| 3030 | - true,  | 
                                                        |
| 3031 | - $context,  | 
                                                        |
| 3032 | - $this->_req_data,  | 
                                                        |
| 3033 | - $messenger,  | 
                                                        |
| 3034 | - $message_type  | 
                                                        |
| 3035 | -        )) { | 
                                                        |
| 3036 | -            if (EEM_Event::instance()->count() > 0) { | 
                                                        |
| 3037 | - $success = $this->_preview_message(true);  | 
                                                        |
| 3038 | -                if ($success) { | 
                                                        |
| 3039 | -                    EE_Error::add_success(__('Test message sent', 'event_espresso')); | 
                                                        |
| 3040 | -                } else { | 
                                                        |
| 3041 | - EE_Error::add_error(  | 
                                                        |
| 3042 | -                        esc_html__('The test message was not sent', 'event_espresso'), | 
                                                        |
| 3043 | - __FILE__,  | 
                                                        |
| 3044 | - __FUNCTION__,  | 
                                                        |
| 3045 | - __LINE__  | 
                                                        |
| 3046 | - );  | 
                                                        |
| 3047 | - }  | 
                                                        |
| 3048 | -            } else { | 
                                                        |
| 3049 | - $this->noEventsErrorMessage(true);  | 
                                                        |
| 3050 | - }  | 
                                                        |
| 3051 | - }  | 
                                                        |
| 3052 | - }  | 
                                                        |
| 3053 | -  | 
                                                        |
| 3054 | -  | 
                                                        |
| 3055 | - /**  | 
                                                        |
| 3056 | - * _generate_new_templates  | 
                                                        |
| 3057 | - * This will handle the messenger, message_type selection when "adding a new custom template" for an event and will  | 
                                                        |
| 3058 | - * automatically create the defaults for the event. The user would then be redirected to edit the default context  | 
                                                        |
| 3059 | - * for the event.  | 
                                                        |
| 3060 | - *  | 
                                                        |
| 3061 | - *  | 
                                                        |
| 3062 | - * @param string $messenger the messenger we are generating templates for  | 
                                                        |
| 3063 | - * @param array $message_types array of message types that the templates are generated for.  | 
                                                        |
| 3064 | - * @param int $GRP_ID If this is a custom template being generated then a GRP_ID needs to be included to  | 
                                                        |
| 3065 | - * indicate the message_template_group being used as the base.  | 
                                                        |
| 3066 | - *  | 
                                                        |
| 3067 | - * @param bool $global  | 
                                                        |
| 3068 | - *  | 
                                                        |
| 3069 | - * @return array|bool array of data required for the redirect to the correct edit page or bool if  | 
                                                        |
| 3070 | - * encountering problems.  | 
                                                        |
| 3071 | - * @throws EE_Error  | 
                                                        |
| 3072 | - */  | 
                                                        |
| 3073 | - protected function _generate_new_templates($messenger, $message_types, $GRP_ID = 0, $global = false)  | 
                                                        |
| 3074 | -    { | 
                                                        |
| 3075 | -  | 
                                                        |
| 3076 | - // if no $message_types are given then that's okay... this may be a messenger that just adds shortcodes, so we  | 
                                                        |
| 3077 | - // just don't generate any templates.  | 
                                                        |
| 3078 | -        if (empty($message_types)) { | 
                                                        |
| 3079 | - return true;  | 
                                                        |
| 3080 | - }  | 
                                                        |
| 3081 | -  | 
                                                        |
| 3082 | - return EEH_MSG_Template::generate_new_templates($messenger, $message_types, $GRP_ID, $global);  | 
                                                        |
| 3083 | - }  | 
                                                        |
| 3084 | -  | 
                                                        |
| 3085 | -  | 
                                                        |
| 3086 | - /**  | 
                                                        |
| 3087 | - * [_trash_or_restore_message_template]  | 
                                                        |
| 3088 | - *  | 
                                                        |
| 3089 | - * @param boolean $trash whether to move an item to trash/restore (TRUE) or restore it (FALSE)  | 
                                                        |
| 3090 | - * @param boolean $all whether this is going to trash/restore all contexts within a template group (TRUE) OR just  | 
                                                        |
| 3091 | - * an individual context (FALSE).  | 
                                                        |
| 3092 | - * @return void  | 
                                                        |
| 3093 | - * @throws EE_Error  | 
                                                        |
| 3094 | - * @throws InvalidArgumentException  | 
                                                        |
| 3095 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3096 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3097 | - */  | 
                                                        |
| 3098 | - protected function _trash_or_restore_message_template($trash = true, $all = false)  | 
                                                        |
| 3099 | -    { | 
                                                        |
| 3100 | -        do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 3101 | - $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 3102 | -  | 
                                                        |
| 3103 | - $success = 1;  | 
                                                        |
| 3104 | -  | 
                                                        |
| 3105 | - // incoming GRP_IDs  | 
                                                        |
| 3106 | -        if ($all) { | 
                                                        |
| 3107 | - // Checkboxes  | 
                                                        |
| 3108 | -            if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3109 | - // if array has more than one element then success message should be plural.  | 
                                                        |
| 3110 | - // todo: what about nonce?  | 
                                                        |
| 3111 | - $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        |
| 3112 | -  | 
                                                        |
| 3113 | - // cycle through checkboxes  | 
                                                        |
| 3114 | -                while (list($GRP_ID, $value) = each($this->_req_data['checkbox'])) { | 
                                                        |
| 3115 | - $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        |
| 3116 | -                    if (! $trashed_or_restored) { | 
                                                        |
| 3117 | - $success = 0;  | 
                                                        |
| 3118 | - }  | 
                                                        |
| 3119 | - }  | 
                                                        |
| 3120 | -            } else { | 
                                                        |
| 3121 | - // grab single GRP_ID and handle  | 
                                                        |
| 3122 | - $GRP_ID = isset($this->_req_data['id']) ? absint($this->_req_data['id']) : 0;  | 
                                                        |
| 3123 | -                if (! empty($GRP_ID)) { | 
                                                        |
| 3124 | - $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        |
| 3125 | -                    if (! $trashed_or_restored) { | 
                                                        |
| 3126 | - $success = 0;  | 
                                                        |
| 3127 | - }  | 
                                                        |
| 3128 | -                } else { | 
                                                        |
| 3129 | - $success = 0;  | 
                                                        |
| 3130 | - }  | 
                                                        |
| 3131 | - }  | 
                                                        |
| 3132 | - }  | 
                                                        |
| 3133 | -  | 
                                                        |
| 3134 | - $action_desc = $trash  | 
                                                        |
| 3135 | -            ? esc_html__('moved to the trash', 'event_espresso') | 
                                                        |
| 3136 | -            : esc_html__('restored', 'event_espresso'); | 
                                                        |
| 3137 | -  | 
                                                        |
| 3138 | -        $action_desc = ! empty($this->_req_data['template_switch']) ? esc_html__('switched', 'event_espresso') : $action_desc; | 
                                                        |
| 3139 | -  | 
                                                        |
| 3140 | - $item_desc = $all ? _n(  | 
                                                        |
| 3141 | - 'Message Template Group',  | 
                                                        |
| 3142 | - 'Message Template Groups',  | 
                                                        |
| 3143 | - $success,  | 
                                                        |
| 3144 | - 'event_espresso'  | 
                                                        |
| 3145 | -        ) : _n('Message Template Context', 'Message Template Contexts', $success, 'event_espresso'); | 
                                                        |
| 3146 | -  | 
                                                        |
| 3147 | - $item_desc = ! empty($this->_req_data['template_switch']) ? _n(  | 
                                                        |
| 3148 | - 'template',  | 
                                                        |
| 3149 | - 'templates',  | 
                                                        |
| 3150 | - $success,  | 
                                                        |
| 3151 | - 'event_espresso'  | 
                                                        |
| 3152 | - ) : $item_desc;  | 
                                                        |
| 3153 | -  | 
                                                        |
| 3154 | - $this->_redirect_after_action($success, $item_desc, $action_desc, array());  | 
                                                        |
| 3155 | - }  | 
                                                        |
| 3156 | -  | 
                                                        |
| 3157 | -  | 
                                                        |
| 3158 | - /**  | 
                                                        |
| 3159 | - * [_delete_message_template]  | 
                                                        |
| 3160 | - * NOTE: this handles not only the deletion of the groups but also all the templates belonging to that group.  | 
                                                        |
| 3161 | - *  | 
                                                        |
| 3162 | - * @return void  | 
                                                        |
| 3163 | - * @throws EE_Error  | 
                                                        |
| 3164 | - * @throws InvalidArgumentException  | 
                                                        |
| 3165 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3166 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3167 | - */  | 
                                                        |
| 3168 | - protected function _delete_message_template()  | 
                                                        |
| 3169 | -    { | 
                                                        |
| 3170 | -        do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 3171 | -  | 
                                                        |
| 3172 | - // checkboxes  | 
                                                        |
| 3173 | -        if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3174 | - // if array has more than one element then success message should be plural  | 
                                                        |
| 3175 | - $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        |
| 3176 | -  | 
                                                        |
| 3177 | - // cycle through bulk action checkboxes  | 
                                                        |
| 3178 | -            while (list($GRP_ID, $value) = each($this->_req_data['checkbox'])) { | 
                                                        |
| 3179 | - $success = $this->_delete_mtp_permanently($GRP_ID);  | 
                                                        |
| 3180 | - }  | 
                                                        |
| 3181 | -        } else { | 
                                                        |
| 3182 | - // grab single grp_id and delete  | 
                                                        |
| 3183 | - $GRP_ID = absint($this->_req_data['id']);  | 
                                                        |
| 3184 | - $success = $this->_delete_mtp_permanently($GRP_ID);  | 
                                                        |
| 3185 | - }  | 
                                                        |
| 3186 | -  | 
                                                        |
| 3187 | - $this->_redirect_after_action($success, 'Message Templates', 'deleted', array());  | 
                                                        |
| 3188 | - }  | 
                                                        |
| 3189 | -  | 
                                                        |
| 3190 | -  | 
                                                        |
| 3191 | - /**  | 
                                                        |
| 3192 | - * helper for permanently deleting a mtP group and all related message_templates  | 
                                                        |
| 3193 | - *  | 
                                                        |
| 3194 | - * @param int $GRP_ID The group being deleted  | 
                                                        |
| 3195 | - * @param bool $include_group whether to delete the Message Template Group as well.  | 
                                                        |
| 3196 | - * @return bool boolean to indicate the success of the deletes or not.  | 
                                                        |
| 3197 | - * @throws EE_Error  | 
                                                        |
| 3198 | - * @throws InvalidArgumentException  | 
                                                        |
| 3199 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3200 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3201 | - */  | 
                                                        |
| 3202 | - private function _delete_mtp_permanently($GRP_ID, $include_group = true)  | 
                                                        |
| 3203 | -    { | 
                                                        |
| 3204 | - $success = 1;  | 
                                                        |
| 3205 | - $MTPG = EEM_Message_Template_Group::instance();  | 
                                                        |
| 3206 | - // first let's GET this group  | 
                                                        |
| 3207 | - $MTG = $MTPG->get_one_by_ID($GRP_ID);  | 
                                                        |
| 3208 | - // then delete permanently all the related Message Templates  | 
                                                        |
| 3209 | -        $deleted = $MTG->delete_related_permanently('Message_Template'); | 
                                                        |
| 3210 | -  | 
                                                        |
| 3211 | -        if ($deleted === 0) { | 
                                                        |
| 3212 | - $success = 0;  | 
                                                        |
| 3213 | - }  | 
                                                        |
| 3214 | -  | 
                                                        |
| 3215 | - // now delete permanently this particular group  | 
                                                        |
| 3216 | -  | 
                                                        |
| 3217 | -        if ($include_group && ! $MTG->delete_permanently()) { | 
                                                        |
| 3218 | - $success = 0;  | 
                                                        |
| 3219 | - }  | 
                                                        |
| 3220 | -  | 
                                                        |
| 3221 | - return $success;  | 
                                                        |
| 3222 | - }  | 
                                                        |
| 3223 | -  | 
                                                        |
| 3224 | -  | 
                                                        |
| 3225 | - /**  | 
                                                        |
| 3226 | - * _learn_more_about_message_templates_link  | 
                                                        |
| 3227 | - *  | 
                                                        |
| 3228 | - * @access protected  | 
                                                        |
| 3229 | - * @return string  | 
                                                        |
| 3230 | - */  | 
                                                        |
| 3231 | - protected function _learn_more_about_message_templates_link()  | 
                                                        |
| 3232 | -    { | 
                                                        |
| 3233 | - return '<a class="hidden" style="margin:0 20px; cursor:pointer; font-size:12px;" >'  | 
                                                        |
| 3234 | -               . esc_html__('learn more about how message templates works', 'event_espresso') | 
                                                        |
| 3235 | - . '</a>';  | 
                                                        |
| 3236 | - }  | 
                                                        |
| 3237 | -  | 
                                                        |
| 3238 | -  | 
                                                        |
| 3239 | - /**  | 
                                                        |
| 3240 | - * Used for setting up messenger/message type activation. This loads up the initial view. The rest is handled by  | 
                                                        |
| 3241 | - * ajax and other routes.  | 
                                                        |
| 3242 | - *  | 
                                                        |
| 3243 | - * @return void  | 
                                                        |
| 3244 | - * @throws DomainException  | 
                                                        |
| 3245 | - */  | 
                                                        |
| 3246 | - protected function _settings()  | 
                                                        |
| 3247 | -    { | 
                                                        |
| 3248 | -  | 
                                                        |
| 3249 | -  | 
                                                        |
| 3250 | - $this->_set_m_mt_settings();  | 
                                                        |
| 3251 | -  | 
                                                        |
| 3252 | - $selected_messenger = isset($this->_req_data['selected_messenger'])  | 
                                                        |
| 3253 | - ? $this->_req_data['selected_messenger']  | 
                                                        |
| 3254 | - : 'email';  | 
                                                        |
| 3255 | -  | 
                                                        |
| 3256 | - // let's setup the messenger tabs  | 
                                                        |
| 3257 | - $this->_template_args['admin_page_header'] = EEH_Tabbed_Content::tab_text_links(  | 
                                                        |
| 3258 | - $this->_m_mt_settings['messenger_tabs'],  | 
                                                        |
| 3259 | - 'messenger_links',  | 
                                                        |
| 3260 | - '|',  | 
                                                        |
| 3261 | - $selected_messenger  | 
                                                        |
| 3262 | - );  | 
                                                        |
| 3263 | - $this->_template_args['before_admin_page_content'] = '<div class="ui-widget ui-helper-clearfix">';  | 
                                                        |
| 3264 | - $this->_template_args['after_admin_page_content'] = '</div><!-- end .ui-widget -->';  | 
                                                        |
| 3265 | -  | 
                                                        |
| 3266 | - $this->display_admin_page_with_sidebar();  | 
                                                        |
| 3267 | - }  | 
                                                        |
| 3268 | -  | 
                                                        |
| 3269 | -  | 
                                                        |
| 3270 | - /**  | 
                                                        |
| 3271 | - * This sets the $_m_mt_settings property for when needed (used on the Messages settings page)  | 
                                                        |
| 3272 | - *  | 
                                                        |
| 3273 | - * @access protected  | 
                                                        |
| 3274 | - * @return void  | 
                                                        |
| 3275 | - * @throws DomainException  | 
                                                        |
| 3276 | - */  | 
                                                        |
| 3277 | - protected function _set_m_mt_settings()  | 
                                                        |
| 3278 | -    { | 
                                                        |
| 3279 | - // first if this is already set then lets get out no need to regenerate data.  | 
                                                        |
| 3280 | -        if (! empty($this->_m_mt_settings)) { | 
                                                        |
| 3281 | - return;  | 
                                                        |
| 3282 | - }  | 
                                                        |
| 3283 | -  | 
                                                        |
| 3284 | - // get all installed messengers and message_types  | 
                                                        |
| 3285 | - /** @type EE_messenger[] $messengers */  | 
                                                        |
| 3286 | - $messengers = $this->_message_resource_manager->installed_messengers();  | 
                                                        |
| 3287 | - /** @type EE_message_type[] $message_types */  | 
                                                        |
| 3288 | - $message_types = $this->_message_resource_manager->installed_message_types();  | 
                                                        |
| 3289 | -  | 
                                                        |
| 3290 | -  | 
                                                        |
| 3291 | - // assemble the array for the _tab_text_links helper  | 
                                                        |
| 3292 | -  | 
                                                        |
| 3293 | -        foreach ($messengers as $messenger) { | 
                                                        |
| 3294 | - $this->_m_mt_settings['messenger_tabs'][ $messenger->name ] = array(  | 
                                                        |
| 3295 | - 'label' => ucwords($messenger->label['singular']),  | 
                                                        |
| 3296 | - 'class' => $this->_message_resource_manager->is_messenger_active($messenger->name)  | 
                                                        |
| 3297 | - ? 'messenger-active'  | 
                                                        |
| 3298 | - : '',  | 
                                                        |
| 3299 | - 'href' => $messenger->name,  | 
                                                        |
| 3300 | -                'title' => esc_html__('Modify this Messenger', 'event_espresso'), | 
                                                        |
| 3301 | - 'slug' => $messenger->name,  | 
                                                        |
| 3302 | - 'obj' => $messenger,  | 
                                                        |
| 3303 | - );  | 
                                                        |
| 3304 | -  | 
                                                        |
| 3305 | -  | 
                                                        |
| 3306 | - $message_types_for_messenger = $messenger->get_valid_message_types();  | 
                                                        |
| 3307 | -  | 
                                                        |
| 3308 | -            foreach ($message_types as $message_type) { | 
                                                        |
| 3309 | - // first we need to verify that this message type is valid with this messenger. Cause if it isn't then  | 
                                                        |
| 3310 | - // it shouldn't show in either the inactive OR active metabox.  | 
                                                        |
| 3311 | -                if (! in_array($message_type->name, $message_types_for_messenger, true)) { | 
                                                        |
| 3312 | - continue;  | 
                                                        |
| 3313 | - }  | 
                                                        |
| 3314 | -  | 
                                                        |
| 3315 | - $a_or_i = $this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 3316 | - $messenger->name,  | 
                                                        |
| 3317 | - $message_type->name  | 
                                                        |
| 3318 | - )  | 
                                                        |
| 3319 | - ? 'active'  | 
                                                        |
| 3320 | - : 'inactive';  | 
                                                        |
| 3321 | -  | 
                                                        |
| 3322 | - $this->_m_mt_settings['message_type_tabs'][ $messenger->name ][ $a_or_i ][ $message_type->name ] = array(  | 
                                                        |
| 3323 | - 'label' => ucwords($message_type->label['singular']),  | 
                                                        |
| 3324 | - 'class' => 'message-type-' . $a_or_i,  | 
                                                        |
| 3325 | - 'slug_id' => $message_type->name . '-messagetype-' . $messenger->name,  | 
                                                        |
| 3326 | - 'mt_nonce' => wp_create_nonce($message_type->name . '_nonce'),  | 
                                                        |
| 3327 | - 'href' => 'espresso_' . $message_type->name . '_message_type_settings',  | 
                                                        |
| 3328 | - 'title' => $a_or_i === 'active'  | 
                                                        |
| 3329 | -                        ? esc_html__('Drag this message type to the Inactive window to deactivate', 'event_espresso') | 
                                                        |
| 3330 | -                        : esc_html__('Drag this message type to the messenger to activate', 'event_espresso'), | 
                                                        |
| 3331 | - 'content' => $a_or_i === 'active'  | 
                                                        |
| 3332 | - ? $this->_message_type_settings_content($message_type, $messenger, true)  | 
                                                        |
| 3333 | - : $this->_message_type_settings_content($message_type, $messenger),  | 
                                                        |
| 3334 | - 'slug' => $message_type->name,  | 
                                                        |
| 3335 | - 'active' => $a_or_i === 'active',  | 
                                                        |
| 3336 | - 'obj' => $message_type,  | 
                                                        |
| 3337 | - );  | 
                                                        |
| 3338 | - }  | 
                                                        |
| 3339 | - }  | 
                                                        |
| 3340 | - }  | 
                                                        |
| 3341 | -  | 
                                                        |
| 3342 | -  | 
                                                        |
| 3343 | - /**  | 
                                                        |
| 3344 | - * This just prepares the content for the message type settings  | 
                                                        |
| 3345 | - *  | 
                                                        |
| 3346 | - * @param EE_message_type $message_type The message type object  | 
                                                        |
| 3347 | - * @param EE_messenger $messenger The messenger object  | 
                                                        |
| 3348 | - * @param boolean $active Whether the message type is active or not  | 
                                                        |
| 3349 | - * @return string html output for the content  | 
                                                        |
| 3350 | - * @throws DomainException  | 
                                                        |
| 3351 | - */  | 
                                                        |
| 3352 | - protected function _message_type_settings_content($message_type, $messenger, $active = false)  | 
                                                        |
| 3353 | -    { | 
                                                        |
| 3354 | - // get message type fields  | 
                                                        |
| 3355 | - $fields = $message_type->get_admin_settings_fields();  | 
                                                        |
| 3356 | - $settings_template_args['template_form_fields'] = '';  | 
                                                        |
| 3357 | -  | 
                                                        |
| 3358 | -        if (! empty($fields) && $active) { | 
                                                        |
| 3359 | - $existing_settings = $message_type->get_existing_admin_settings($messenger->name);  | 
                                                        |
| 3360 | -            foreach ($fields as $fldname => $fldprops) { | 
                                                        |
| 3361 | - $field_id = $messenger->name . '-' . $message_type->name . '-' . $fldname;  | 
                                                        |
| 3362 | - $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3363 | - 'name' => 'message_type_settings[' . $fldname . ']',  | 
                                                        |
| 3364 | - 'label' => $fldprops['label'],  | 
                                                        |
| 3365 | - 'input' => $fldprops['field_type'],  | 
                                                        |
| 3366 | - 'type' => $fldprops['value_type'],  | 
                                                        |
| 3367 | - 'required' => $fldprops['required'],  | 
                                                        |
| 3368 | - 'validation' => $fldprops['validation'],  | 
                                                        |
| 3369 | - 'value' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3370 | - ? $existing_settings[ $fldname ]  | 
                                                        |
| 3371 | - : $fldprops['default'],  | 
                                                        |
| 3372 | - 'options' => isset($fldprops['options'])  | 
                                                        |
| 3373 | - ? $fldprops['options']  | 
                                                        |
| 3374 | - : array(),  | 
                                                        |
| 3375 | - 'default' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3376 | - ? $existing_settings[ $fldname ]  | 
                                                        |
| 3377 | - : $fldprops['default'],  | 
                                                        |
| 3378 | - 'css_class' => 'no-drag',  | 
                                                        |
| 3379 | - 'format' => $fldprops['format'],  | 
                                                        |
| 3380 | - );  | 
                                                        |
| 3381 | - }  | 
                                                        |
| 3382 | -  | 
                                                        |
| 3383 | -  | 
                                                        |
| 3384 | - $settings_template_args['template_form_fields'] = ! empty($template_form_field)  | 
                                                        |
| 3385 | - ? $this->_generate_admin_form_fields(  | 
                                                        |
| 3386 | - $template_form_field,  | 
                                                        |
| 3387 | - 'string',  | 
                                                        |
| 3388 | - 'ee_mt_activate_form'  | 
                                                        |
| 3389 | - )  | 
                                                        |
| 3390 | - : '';  | 
                                                        |
| 3391 | - }  | 
                                                        |
| 3392 | -  | 
                                                        |
| 3393 | - $settings_template_args['description'] = $message_type->description;  | 
                                                        |
| 3394 | - // we also need some hidden fields  | 
                                                        |
| 3395 | - $settings_template_args['hidden_fields'] = array(  | 
                                                        |
| 3396 | - 'message_type_settings[messenger]' => array(  | 
                                                        |
| 3397 | - 'type' => 'hidden',  | 
                                                        |
| 3398 | - 'value' => $messenger->name,  | 
                                                        |
| 3399 | - ),  | 
                                                        |
| 3400 | - 'message_type_settings[message_type]' => array(  | 
                                                        |
| 3401 | - 'type' => 'hidden',  | 
                                                        |
| 3402 | - 'value' => $message_type->name,  | 
                                                        |
| 3403 | - ),  | 
                                                        |
| 3404 | - 'type' => array(  | 
                                                        |
| 3405 | - 'type' => 'hidden',  | 
                                                        |
| 3406 | - 'value' => 'message_type',  | 
                                                        |
| 3407 | - ),  | 
                                                        |
| 3408 | - );  | 
                                                        |
| 3409 | -  | 
                                                        |
| 3410 | - $settings_template_args['hidden_fields'] = $this->_generate_admin_form_fields(  | 
                                                        |
| 3411 | - $settings_template_args['hidden_fields'],  | 
                                                        |
| 3412 | - 'array'  | 
                                                        |
| 3413 | - );  | 
                                                        |
| 3414 | - $settings_template_args['show_form'] = empty($settings_template_args['template_form_fields'])  | 
                                                        |
| 3415 | - ? ' hidden'  | 
                                                        |
| 3416 | - : '';  | 
                                                        |
| 3417 | -  | 
                                                        |
| 3418 | -  | 
                                                        |
| 3419 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_mt_settings_content.template.php';  | 
                                                        |
| 3420 | - $content = EEH_Template::display_template($template, $settings_template_args, true);  | 
                                                        |
| 3421 | -  | 
                                                        |
| 3422 | - return $content;  | 
                                                        |
| 3423 | - }  | 
                                                        |
| 3424 | -  | 
                                                        |
| 3425 | -  | 
                                                        |
| 3426 | - /**  | 
                                                        |
| 3427 | - * Generate all the metaboxes for the message types and register them for the messages settings page.  | 
                                                        |
| 3428 | - *  | 
                                                        |
| 3429 | - * @access protected  | 
                                                        |
| 3430 | - * @return void  | 
                                                        |
| 3431 | - * @throws DomainException  | 
                                                        |
| 3432 | - */  | 
                                                        |
| 3433 | - protected function _messages_settings_metaboxes()  | 
                                                        |
| 3434 | -    { | 
                                                        |
| 3435 | - $this->_set_m_mt_settings();  | 
                                                        |
| 3436 | - $m_boxes = $mt_boxes = array();  | 
                                                        |
| 3437 | - $m_template_args = $mt_template_args = array();  | 
                                                        |
| 3438 | -  | 
                                                        |
| 3439 | - $selected_messenger = isset($this->_req_data['selected_messenger'])  | 
                                                        |
| 3440 | - ? $this->_req_data['selected_messenger']  | 
                                                        |
| 3441 | - : 'email';  | 
                                                        |
| 3442 | -  | 
                                                        |
| 3443 | -        if (isset($this->_m_mt_settings['messenger_tabs'])) { | 
                                                        |
| 3444 | -            foreach ($this->_m_mt_settings['messenger_tabs'] as $messenger => $tab_array) { | 
                                                        |
| 3445 | - $hide_on_message = $this->_message_resource_manager->is_messenger_active($messenger) ? '' : 'hidden';  | 
                                                        |
| 3446 | - $hide_off_message = $this->_message_resource_manager->is_messenger_active($messenger) ? 'hidden' : '';  | 
                                                        |
| 3447 | - // messenger meta boxes  | 
                                                        |
| 3448 | - $active = $selected_messenger === $messenger;  | 
                                                        |
| 3449 | - $active_mt_tabs = isset(  | 
                                                        |
| 3450 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3451 | - )  | 
                                                        |
| 3452 | - ? $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3453 | - : '';  | 
                                                        |
| 3454 | - $m_boxes[ $messenger . '_a_box' ] = sprintf(  | 
                                                        |
| 3455 | -                    esc_html__('%s Settings', 'event_espresso'), | 
                                                        |
| 3456 | - $tab_array['label']  | 
                                                        |
| 3457 | - );  | 
                                                        |
| 3458 | - $m_template_args[ $messenger . '_a_box' ] = array(  | 
                                                        |
| 3459 | - 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        |
| 3460 | - 'inactive_message_types' => isset(  | 
                                                        |
| 3461 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3462 | - )  | 
                                                        |
| 3463 | - ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3464 | - : '',  | 
                                                        |
| 3465 | - 'content' => $this->_get_messenger_box_content($tab_array['obj']),  | 
                                                        |
| 3466 | - 'hidden' => $active ? '' : ' hidden',  | 
                                                        |
| 3467 | - 'hide_on_message' => $hide_on_message,  | 
                                                        |
| 3468 | - 'messenger' => $messenger,  | 
                                                        |
| 3469 | - 'active' => $active,  | 
                                                        |
| 3470 | - );  | 
                                                        |
| 3471 | - // message type meta boxes  | 
                                                        |
| 3472 | - // (which is really just the inactive container for each messenger  | 
                                                        |
| 3473 | - // showing inactive message types for that messenger)  | 
                                                        |
| 3474 | -                $mt_boxes[ $messenger . '_i_box' ] = esc_html__('Inactive Message Types', 'event_espresso'); | 
                                                        |
| 3475 | - $mt_template_args[ $messenger . '_i_box' ] = array(  | 
                                                        |
| 3476 | - 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        |
| 3477 | - 'inactive_message_types' => isset(  | 
                                                        |
| 3478 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3479 | - )  | 
                                                        |
| 3480 | - ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3481 | - : '',  | 
                                                        |
| 3482 | - 'hidden' => $active ? '' : ' hidden',  | 
                                                        |
| 3483 | - 'hide_on_message' => $hide_on_message,  | 
                                                        |
| 3484 | - 'hide_off_message' => $hide_off_message,  | 
                                                        |
| 3485 | - 'messenger' => $messenger,  | 
                                                        |
| 3486 | - 'active' => $active,  | 
                                                        |
| 3487 | - );  | 
                                                        |
| 3488 | - }  | 
                                                        |
| 3489 | - }  | 
                                                        |
| 3490 | -  | 
                                                        |
| 3491 | -  | 
                                                        |
| 3492 | - // register messenger metaboxes  | 
                                                        |
| 3493 | - $m_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_mt_meta_box.template.php';  | 
                                                        |
| 3494 | -        foreach ($m_boxes as $box => $label) { | 
                                                        |
| 3495 | -            $callback_args = array('template_path' => $m_template_path, 'template_args' => $m_template_args[ $box ]); | 
                                                        |
| 3496 | -            $msgr = str_replace('_a_box', '', $box); | 
                                                        |
| 3497 | - add_meta_box(  | 
                                                        |
| 3498 | - 'espresso_' . $msgr . '_settings',  | 
                                                        |
| 3499 | - $label,  | 
                                                        |
| 3500 | -                function ($post, $metabox) { | 
                                                        |
| 3501 | - echo EEH_Template::display_template(  | 
                                                        |
| 3502 | - $metabox["args"]["template_path"],  | 
                                                        |
| 3503 | - $metabox["args"]["template_args"],  | 
                                                        |
| 3504 | - true  | 
                                                        |
| 3505 | - );  | 
                                                        |
| 3506 | - },  | 
                                                        |
| 3507 | - $this->_current_screen->id,  | 
                                                        |
| 3508 | - 'normal',  | 
                                                        |
| 3509 | - 'high',  | 
                                                        |
| 3510 | - $callback_args  | 
                                                        |
| 3511 | - );  | 
                                                        |
| 3512 | - }  | 
                                                        |
| 3513 | -  | 
                                                        |
| 3514 | - // register message type metaboxes  | 
                                                        |
| 3515 | - $mt_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_meta_box.template.php';  | 
                                                        |
| 3516 | -        foreach ($mt_boxes as $box => $label) { | 
                                                        |
| 3517 | - $callback_args = array(  | 
                                                        |
| 3518 | - 'template_path' => $mt_template_path,  | 
                                                        |
| 3519 | - 'template_args' => $mt_template_args[ $box ],  | 
                                                        |
| 3520 | - );  | 
                                                        |
| 3521 | -            $mt = str_replace('_i_box', '', $box); | 
                                                        |
| 3522 | - add_meta_box(  | 
                                                        |
| 3523 | - 'espresso_' . $mt . '_inactive_mts',  | 
                                                        |
| 3524 | - $label,  | 
                                                        |
| 3525 | -                function ($post, $metabox) { | 
                                                        |
| 3526 | - echo EEH_Template::display_template(  | 
                                                        |
| 3527 | - $metabox["args"]["template_path"],  | 
                                                        |
| 3528 | - $metabox["args"]["template_args"],  | 
                                                        |
| 3529 | - true  | 
                                                        |
| 3530 | - );  | 
                                                        |
| 3531 | - },  | 
                                                        |
| 3532 | - $this->_current_screen->id,  | 
                                                        |
| 3533 | - 'side',  | 
                                                        |
| 3534 | - 'high',  | 
                                                        |
| 3535 | - $callback_args  | 
                                                        |
| 3536 | - );  | 
                                                        |
| 3537 | - }  | 
                                                        |
| 3538 | -  | 
                                                        |
| 3539 | - // register metabox for global messages settings but only when on the main site. On single site installs this  | 
                                                        |
| 3540 | - // will always result in the metabox showing, on multisite installs the metabox will only show on the main site.  | 
                                                        |
| 3541 | -        if (is_main_site()) { | 
                                                        |
| 3542 | - add_meta_box(  | 
                                                        |
| 3543 | - 'espresso_global_message_settings',  | 
                                                        |
| 3544 | -                esc_html__('Global Message Settings', 'event_espresso'), | 
                                                        |
| 3545 | - array($this, 'global_messages_settings_metabox_content'),  | 
                                                        |
| 3546 | - $this->_current_screen->id,  | 
                                                        |
| 3547 | - 'normal',  | 
                                                        |
| 3548 | - 'low',  | 
                                                        |
| 3549 | - array()  | 
                                                        |
| 3550 | - );  | 
                                                        |
| 3551 | - }  | 
                                                        |
| 3552 | - }  | 
                                                        |
| 3553 | -  | 
                                                        |
| 3554 | -  | 
                                                        |
| 3555 | - /**  | 
                                                        |
| 3556 | - * This generates the content for the global messages settings metabox.  | 
                                                        |
| 3557 | - *  | 
                                                        |
| 3558 | - * @return string  | 
                                                        |
| 3559 | - * @throws EE_Error  | 
                                                        |
| 3560 | - * @throws InvalidArgumentException  | 
                                                        |
| 3561 | - * @throws ReflectionException  | 
                                                        |
| 3562 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3563 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3564 | - */  | 
                                                        |
| 3565 | - public function global_messages_settings_metabox_content()  | 
                                                        |
| 3566 | -    { | 
                                                        |
| 3567 | - $form = $this->_generate_global_settings_form();  | 
                                                        |
| 3568 | - echo $form->form_open(  | 
                                                        |
| 3569 | -            $this->add_query_args_and_nonce(array('action' => 'update_global_settings'), EE_MSG_ADMIN_URL), | 
                                                        |
| 3570 | - 'POST'  | 
                                                        |
| 3571 | - )  | 
                                                        |
| 3572 | - . $form->get_html()  | 
                                                        |
| 3573 | - . $form->form_close();  | 
                                                        |
| 3574 | - }  | 
                                                        |
| 3575 | -  | 
                                                        |
| 3576 | -  | 
                                                        |
| 3577 | - /**  | 
                                                        |
| 3578 | - * This generates and returns the form object for the global messages settings.  | 
                                                        |
| 3579 | - *  | 
                                                        |
| 3580 | - * @return EE_Form_Section_Proper  | 
                                                        |
| 3581 | - * @throws EE_Error  | 
                                                        |
| 3582 | - * @throws InvalidArgumentException  | 
                                                        |
| 3583 | - * @throws ReflectionException  | 
                                                        |
| 3584 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3585 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3586 | - */  | 
                                                        |
| 3587 | - protected function _generate_global_settings_form()  | 
                                                        |
| 3588 | -    { | 
                                                        |
| 3589 | -        EE_Registry::instance()->load_helper('HTML'); | 
                                                        |
| 3590 | - /** @var EE_Network_Core_Config $network_config */  | 
                                                        |
| 3591 | - $network_config = EE_Registry::instance()->NET_CFG->core;  | 
                                                        |
| 3592 | -  | 
                                                        |
| 3593 | - return new EE_Form_Section_Proper(  | 
                                                        |
| 3594 | - array(  | 
                                                        |
| 3595 | - 'name' => 'global_messages_settings',  | 
                                                        |
| 3596 | - 'html_id' => 'global_messages_settings',  | 
                                                        |
| 3597 | - 'html_class' => 'form-table',  | 
                                                        |
| 3598 | - 'layout_strategy' => new EE_Admin_Two_Column_Layout(),  | 
                                                        |
| 3599 | - 'subsections' => apply_filters(  | 
                                                        |
| 3600 | - 'FHEE__Messages_Admin_Page__global_messages_settings_metabox_content__form_subsections',  | 
                                                        |
| 3601 | - array(  | 
                                                        |
| 3602 | - 'do_messages_on_same_request' => new EE_Select_Input(  | 
                                                        |
| 3603 | - array(  | 
                                                        |
| 3604 | -                                true  => esc_html__("On the same request", "event_espresso"), | 
                                                        |
| 3605 | -                                false => esc_html__("On a separate request", "event_espresso"), | 
                                                        |
| 3606 | - ),  | 
                                                        |
| 3607 | - array(  | 
                                                        |
| 3608 | - 'default' => $network_config->do_messages_on_same_request,  | 
                                                        |
| 3609 | - 'html_label_text' => esc_html__(  | 
                                                        |
| 3610 | - 'Generate and send all messages:',  | 
                                                        |
| 3611 | - 'event_espresso'  | 
                                                        |
| 3612 | - ),  | 
                                                        |
| 3613 | - 'html_help_text' => esc_html__(  | 
                                                        |
| 3614 | - 'By default the messages system uses a more efficient means of processing messages on separate requests and utilizes the wp-cron scheduling system. This makes things execute faster for people registering for your events. However, if the wp-cron system is disabled on your site and there is no alternative in place, then you can change this so messages are always executed on the same request.',  | 
                                                        |
| 3615 | - 'event_espresso'  | 
                                                        |
| 3616 | - ),  | 
                                                        |
| 3617 | - )  | 
                                                        |
| 3618 | - ),  | 
                                                        |
| 3619 | - 'delete_threshold' => new EE_Select_Input(  | 
                                                        |
| 3620 | - array(  | 
                                                        |
| 3621 | -                                0  => esc_html__('Forever', 'event_espresso'), | 
                                                        |
| 3622 | -                                3  => esc_html__('3 Months', 'event_espresso'), | 
                                                        |
| 3623 | -                                6  => esc_html__('6 Months', 'event_espresso'), | 
                                                        |
| 3624 | -                                9  => esc_html__('9 Months', 'event_espresso'), | 
                                                        |
| 3625 | -                                12 => esc_html__('12 Months', 'event_espresso'), | 
                                                        |
| 3626 | -                                24 => esc_html__('24 Months', 'event_espresso'), | 
                                                        |
| 3627 | -                                36 => esc_html__('36 Months', 'event_espresso'), | 
                                                        |
| 3628 | - ),  | 
                                                        |
| 3629 | - array(  | 
                                                        |
| 3630 | - 'default' => EE_Registry::instance()->CFG->messages->delete_threshold,  | 
                                                        |
| 3631 | -                                'html_label_text' => esc_html__('Cleanup of old messages:', 'event_espresso'), | 
                                                        |
| 3632 | - 'html_help_text' => esc_html__(  | 
                                                        |
| 3633 | - 'You can control how long a record of processed messages is kept via this option.',  | 
                                                        |
| 3634 | - 'event_espresso'  | 
                                                        |
| 3635 | - ),  | 
                                                        |
| 3636 | - )  | 
                                                        |
| 3637 | - ),  | 
                                                        |
| 3638 | - 'update_settings' => new EE_Submit_Input(  | 
                                                        |
| 3639 | - array(  | 
                                                        |
| 3640 | -                                'default'         => esc_html__('Update', 'event_espresso'), | 
                                                        |
| 3641 | - 'html_label_text' => ' ',  | 
                                                        |
| 3642 | - )  | 
                                                        |
| 3643 | - ),  | 
                                                        |
| 3644 | - )  | 
                                                        |
| 3645 | - ),  | 
                                                        |
| 3646 | - )  | 
                                                        |
| 3647 | - );  | 
                                                        |
| 3648 | - }  | 
                                                        |
| 3649 | -  | 
                                                        |
| 3650 | -  | 
                                                        |
| 3651 | - /**  | 
                                                        |
| 3652 | - * This handles updating the global settings set on the admin page.  | 
                                                        |
| 3653 | - *  | 
                                                        |
| 3654 | - * @throws EE_Error  | 
                                                        |
| 3655 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3656 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3657 | - * @throws InvalidArgumentException  | 
                                                        |
| 3658 | - * @throws ReflectionException  | 
                                                        |
| 3659 | - */  | 
                                                        |
| 3660 | - protected function _update_global_settings()  | 
                                                        |
| 3661 | -    { | 
                                                        |
| 3662 | - /** @var EE_Network_Core_Config $network_config */  | 
                                                        |
| 3663 | - $network_config = EE_Registry::instance()->NET_CFG->core;  | 
                                                        |
| 3664 | - $messages_config = EE_Registry::instance()->CFG->messages;  | 
                                                        |
| 3665 | - $form = $this->_generate_global_settings_form();  | 
                                                        |
| 3666 | -        if ($form->was_submitted()) { | 
                                                        |
| 3667 | - $form->receive_form_submission();  | 
                                                        |
| 3668 | -            if ($form->is_valid()) { | 
                                                        |
| 3669 | - $valid_data = $form->valid_data();  | 
                                                        |
| 3670 | -                foreach ($valid_data as $property => $value) { | 
                                                        |
| 3671 | - $setter = 'set_' . $property;  | 
                                                        |
| 3672 | -                    if (method_exists($network_config, $setter)) { | 
                                                        |
| 3673 | -                        $network_config->{$setter}($value); | 
                                                        |
| 3674 | - } elseif (property_exists($network_config, $property)  | 
                                                        |
| 3675 | -                        && $network_config->{$property} !== $value | 
                                                        |
| 3676 | -                    ) { | 
                                                        |
| 3677 | -                        $network_config->{$property} = $value; | 
                                                        |
| 3678 | - } elseif (property_exists($messages_config, $property)  | 
                                                        |
| 3679 | -                        && $messages_config->{$property} !== $value | 
                                                        |
| 3680 | -                    ) { | 
                                                        |
| 3681 | -                        $messages_config->{$property} = $value; | 
                                                        |
| 3682 | - }  | 
                                                        |
| 3683 | - }  | 
                                                        |
| 3684 | - // only update if the form submission was valid!  | 
                                                        |
| 3685 | - EE_Registry::instance()->NET_CFG->update_config(true, false);  | 
                                                        |
| 3686 | - EE_Registry::instance()->CFG->update_espresso_config();  | 
                                                        |
| 3687 | - EE_Error::overwrite_success();  | 
                                                        |
| 3688 | -                EE_Error::add_success(__('Global message settings were updated', 'event_espresso')); | 
                                                        |
| 3689 | - }  | 
                                                        |
| 3690 | - }  | 
                                                        |
| 3691 | -        $this->_redirect_after_action(0, '', '', array('action' => 'settings'), true); | 
                                                        |
| 3692 | - }  | 
                                                        |
| 3693 | -  | 
                                                        |
| 3694 | -  | 
                                                        |
| 3695 | - /**  | 
                                                        |
| 3696 | - * this prepares the messenger tabs that can be dragged in and out of messenger boxes to activate/deactivate  | 
                                                        |
| 3697 | - *  | 
                                                        |
| 3698 | - * @param array $tab_array This is an array of message type tab details used to generate the tabs  | 
                                                        |
| 3699 | - * @return string html formatted tabs  | 
                                                        |
| 3700 | - * @throws DomainException  | 
                                                        |
| 3701 | - */  | 
                                                        |
| 3702 | - protected function _get_mt_tabs($tab_array)  | 
                                                        |
| 3703 | -    { | 
                                                        |
| 3704 | - $tab_array = (array) $tab_array;  | 
                                                        |
| 3705 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_mt_settings_tab_item.template.php';  | 
                                                        |
| 3706 | - $tabs = '';  | 
                                                        |
| 3707 | -  | 
                                                        |
| 3708 | -        foreach ($tab_array as $tab) { | 
                                                        |
| 3709 | - $tabs .= EEH_Template::display_template($template, $tab, true);  | 
                                                        |
| 3710 | - }  | 
                                                        |
| 3711 | -  | 
                                                        |
| 3712 | - return $tabs;  | 
                                                        |
| 3713 | - }  | 
                                                        |
| 3714 | -  | 
                                                        |
| 3715 | -  | 
                                                        |
| 3716 | - /**  | 
                                                        |
| 3717 | - * This prepares the content of the messenger meta box admin settings  | 
                                                        |
| 3718 | - *  | 
                                                        |
| 3719 | - * @param EE_messenger $messenger The messenger we're setting up content for  | 
                                                        |
| 3720 | - * @return string html formatted content  | 
                                                        |
| 3721 | - * @throws DomainException  | 
                                                        |
| 3722 | - */  | 
                                                        |
| 3723 | - protected function _get_messenger_box_content(EE_messenger $messenger)  | 
                                                        |
| 3724 | -    { | 
                                                        |
| 3725 | -  | 
                                                        |
| 3726 | - $fields = $messenger->get_admin_settings_fields();  | 
                                                        |
| 3727 | - $settings_template_args['template_form_fields'] = '';  | 
                                                        |
| 3728 | -  | 
                                                        |
| 3729 | - // is $messenger active?  | 
                                                        |
| 3730 | - $settings_template_args['active'] = $this->_message_resource_manager->is_messenger_active($messenger->name);  | 
                                                        |
| 3731 | -  | 
                                                        |
| 3732 | -  | 
                                                        |
| 3733 | -        if (! empty($fields)) { | 
                                                        |
| 3734 | - $existing_settings = $messenger->get_existing_admin_settings();  | 
                                                        |
| 3735 | -  | 
                                                        |
| 3736 | -            foreach ($fields as $fldname => $fldprops) { | 
                                                        |
| 3737 | - $field_id = $messenger->name . '-' . $fldname;  | 
                                                        |
| 3738 | - $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3739 | - 'name' => 'messenger_settings[' . $field_id . ']',  | 
                                                        |
| 3740 | - 'label' => $fldprops['label'],  | 
                                                        |
| 3741 | - 'input' => $fldprops['field_type'],  | 
                                                        |
| 3742 | - 'type' => $fldprops['value_type'],  | 
                                                        |
| 3743 | - 'required' => $fldprops['required'],  | 
                                                        |
| 3744 | - 'validation' => $fldprops['validation'],  | 
                                                        |
| 3745 | - 'value' => isset($existing_settings[ $field_id ])  | 
                                                        |
| 3746 | - ? $existing_settings[ $field_id ]  | 
                                                        |
| 3747 | - : $fldprops['default'],  | 
                                                        |
| 3748 | - 'css_class' => '',  | 
                                                        |
| 3749 | - 'format' => $fldprops['format'],  | 
                                                        |
| 3750 | - );  | 
                                                        |
| 3751 | - }  | 
                                                        |
| 3752 | -  | 
                                                        |
| 3753 | -  | 
                                                        |
| 3754 | - $settings_template_args['template_form_fields'] = ! empty($template_form_field)  | 
                                                        |
| 3755 | - ? $this->_generate_admin_form_fields($template_form_field, 'string', 'ee_m_activate_form')  | 
                                                        |
| 3756 | - : '';  | 
                                                        |
| 3757 | - }  | 
                                                        |
| 3758 | -  | 
                                                        |
| 3759 | - // we also need some hidden fields  | 
                                                        |
| 3760 | - $settings_template_args['hidden_fields'] = array(  | 
                                                        |
| 3761 | - 'messenger_settings[messenger]' => array(  | 
                                                        |
| 3762 | - 'type' => 'hidden',  | 
                                                        |
| 3763 | - 'value' => $messenger->name,  | 
                                                        |
| 3764 | - ),  | 
                                                        |
| 3765 | - 'type' => array(  | 
                                                        |
| 3766 | - 'type' => 'hidden',  | 
                                                        |
| 3767 | - 'value' => 'messenger',  | 
                                                        |
| 3768 | - ),  | 
                                                        |
| 3769 | - );  | 
                                                        |
| 3770 | -  | 
                                                        |
| 3771 | - // make sure any active message types that are existing are included in the hidden fields  | 
                                                        |
| 3772 | -        if (isset($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'])) { | 
                                                        |
| 3773 | -            foreach ($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'] as $mt => $values) { | 
                                                        |
| 3774 | - $settings_template_args['hidden_fields'][ 'messenger_settings[message_types][' . $mt . ']' ] = array(  | 
                                                        |
| 3775 | - 'type' => 'hidden',  | 
                                                        |
| 3776 | - 'value' => $mt,  | 
                                                        |
| 3777 | - );  | 
                                                        |
| 3778 | - }  | 
                                                        |
| 3779 | - }  | 
                                                        |
| 3780 | - $settings_template_args['hidden_fields'] = $this->_generate_admin_form_fields(  | 
                                                        |
| 3781 | - $settings_template_args['hidden_fields'],  | 
                                                        |
| 3782 | - 'array'  | 
                                                        |
| 3783 | - );  | 
                                                        |
| 3784 | - $active = $this->_message_resource_manager->is_messenger_active($messenger->name);  | 
                                                        |
| 3785 | -  | 
                                                        |
| 3786 | - $settings_template_args['messenger'] = $messenger->name;  | 
                                                        |
| 3787 | - $settings_template_args['description'] = $messenger->description;  | 
                                                        |
| 3788 | - $settings_template_args['show_hide_edit_form'] = $active ? '' : ' hidden';  | 
                                                        |
| 3789 | -  | 
                                                        |
| 3790 | -  | 
                                                        |
| 3791 | - $settings_template_args['show_hide_edit_form'] = $this->_message_resource_manager->is_messenger_active(  | 
                                                        |
| 3792 | - $messenger->name  | 
                                                        |
| 3793 | - )  | 
                                                        |
| 3794 | - ? $settings_template_args['show_hide_edit_form']  | 
                                                        |
| 3795 | - : ' hidden';  | 
                                                        |
| 3796 | -  | 
                                                        |
| 3797 | - $settings_template_args['show_hide_edit_form'] = empty($settings_template_args['template_form_fields'])  | 
                                                        |
| 3798 | - ? ' hidden'  | 
                                                        |
| 3799 | - : $settings_template_args['show_hide_edit_form'];  | 
                                                        |
| 3800 | -  | 
                                                        |
| 3801 | -  | 
                                                        |
| 3802 | - $settings_template_args['on_off_action'] = $active ? 'messenger-off' : 'messenger-on';  | 
                                                        |
| 3803 | -        $settings_template_args['nonce'] = wp_create_nonce('activate_' . $messenger->name . '_toggle_nonce'); | 
                                                        |
| 3804 | - $settings_template_args['on_off_status'] = $active ? true : false;  | 
                                                        |
| 3805 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_m_settings_content.template.php';  | 
                                                        |
| 3806 | - $content = EEH_Template::display_template(  | 
                                                        |
| 3807 | - $template,  | 
                                                        |
| 3808 | - $settings_template_args,  | 
                                                        |
| 3809 | - true  | 
                                                        |
| 3810 | - );  | 
                                                        |
| 3811 | -  | 
                                                        |
| 3812 | - return $content;  | 
                                                        |
| 3813 | - }  | 
                                                        |
| 3814 | -  | 
                                                        |
| 3815 | -  | 
                                                        |
| 3816 | - /**  | 
                                                        |
| 3817 | - * used by ajax on the messages settings page to activate|deactivate the messenger  | 
                                                        |
| 3818 | - *  | 
                                                        |
| 3819 | - * @throws DomainException  | 
                                                        |
| 3820 | - * @throws EE_Error  | 
                                                        |
| 3821 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3822 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3823 | - * @throws InvalidArgumentException  | 
                                                        |
| 3824 | - * @throws ReflectionException  | 
                                                        |
| 3825 | - */  | 
                                                        |
| 3826 | - public function activate_messenger_toggle()  | 
                                                        |
| 3827 | -    { | 
                                                        |
| 3828 | - $success = true;  | 
                                                        |
| 3829 | - $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        |
| 3830 | - // let's check that we have required data  | 
                                                        |
| 3831 | -        if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3832 | - EE_Error::add_error(  | 
                                                        |
| 3833 | -                esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3834 | - __FILE__,  | 
                                                        |
| 3835 | - __FUNCTION__,  | 
                                                        |
| 3836 | - __LINE__  | 
                                                        |
| 3837 | - );  | 
                                                        |
| 3838 | - $success = false;  | 
                                                        |
| 3839 | - }  | 
                                                        |
| 3840 | -  | 
                                                        |
| 3841 | - // do a nonce check here since we're not arriving via a normal route  | 
                                                        |
| 3842 | - $nonce = isset($this->_req_data['activate_nonce'])  | 
                                                        |
| 3843 | - ? sanitize_text_field($this->_req_data['activate_nonce'])  | 
                                                        |
| 3844 | - : '';  | 
                                                        |
| 3845 | - $nonce_ref = 'activate_' . $this->_req_data['messenger'] . '_toggle_nonce';  | 
                                                        |
| 3846 | -  | 
                                                        |
| 3847 | - $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 3848 | -  | 
                                                        |
| 3849 | -  | 
                                                        |
| 3850 | -        if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3851 | - EE_Error::add_error(  | 
                                                        |
| 3852 | - esc_html__(  | 
                                                        |
| 3853 | - 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        |
| 3854 | - 'event_espresso'  | 
                                                        |
| 3855 | - ),  | 
                                                        |
| 3856 | - __FILE__,  | 
                                                        |
| 3857 | - __FUNCTION__,  | 
                                                        |
| 3858 | - __LINE__  | 
                                                        |
| 3859 | - );  | 
                                                        |
| 3860 | - $success = false;  | 
                                                        |
| 3861 | - }  | 
                                                        |
| 3862 | -  | 
                                                        |
| 3863 | - // do check to verify we have a valid status.  | 
                                                        |
| 3864 | - $status = $this->_req_data['status'];  | 
                                                        |
| 3865 | -  | 
                                                        |
| 3866 | -        if ($status !== 'off' && $status !== 'on') { | 
                                                        |
| 3867 | - EE_Error::add_error(  | 
                                                        |
| 3868 | - sprintf(  | 
                                                        |
| 3869 | -                    esc_html__('The given status (%s) is not valid. Must be "off" or "on"', 'event_espresso'), | 
                                                        |
| 3870 | - $this->_req_data['status']  | 
                                                        |
| 3871 | - ),  | 
                                                        |
| 3872 | - __FILE__,  | 
                                                        |
| 3873 | - __FUNCTION__,  | 
                                                        |
| 3874 | - __LINE__  | 
                                                        |
| 3875 | - );  | 
                                                        |
| 3876 | - $success = false;  | 
                                                        |
| 3877 | - }  | 
                                                        |
| 3878 | -  | 
                                                        |
| 3879 | -        if ($success) { | 
                                                        |
| 3880 | - // made it here? Stop dawdling then!!  | 
                                                        |
| 3881 | - $success = $status === 'off'  | 
                                                        |
| 3882 | - ? $this->_deactivate_messenger($this->_req_data['messenger'])  | 
                                                        |
| 3883 | - : $this->_activate_messenger($this->_req_data['messenger']);  | 
                                                        |
| 3884 | - }  | 
                                                        |
| 3885 | -  | 
                                                        |
| 3886 | - $this->_template_args['success'] = $success;  | 
                                                        |
| 3887 | -  | 
                                                        |
| 3888 | - // no special instructions so let's just do the json return (which should automatically do all the special stuff).  | 
                                                        |
| 3889 | - $this->_return_json();  | 
                                                        |
| 3890 | - }  | 
                                                        |
| 3891 | -  | 
                                                        |
| 3892 | -  | 
                                                        |
| 3893 | - /**  | 
                                                        |
| 3894 | - * used by ajax from the messages settings page to activate|deactivate a message type  | 
                                                        |
| 3895 | - *  | 
                                                        |
| 3896 | - * @throws DomainException  | 
                                                        |
| 3897 | - * @throws EE_Error  | 
                                                        |
| 3898 | - * @throws ReflectionException  | 
                                                        |
| 3899 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3900 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3901 | - * @throws InvalidArgumentException  | 
                                                        |
| 3902 | - */  | 
                                                        |
| 3903 | - public function activate_mt_toggle()  | 
                                                        |
| 3904 | -    { | 
                                                        |
| 3905 | - $success = true;  | 
                                                        |
| 3906 | - $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        |
| 3907 | -  | 
                                                        |
| 3908 | - // let's make sure we have the necessary data  | 
                                                        |
| 3909 | -        if (! isset($this->_req_data['message_type'])) { | 
                                                        |
| 3910 | - EE_Error::add_error(  | 
                                                        |
| 3911 | -                esc_html__('Message Type name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3912 | - __FILE__,  | 
                                                        |
| 3913 | - __FUNCTION__,  | 
                                                        |
| 3914 | - __LINE__  | 
                                                        |
| 3915 | - );  | 
                                                        |
| 3916 | - $success = false;  | 
                                                        |
| 3917 | - }  | 
                                                        |
| 3918 | -  | 
                                                        |
| 3919 | -        if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3920 | - EE_Error::add_error(  | 
                                                        |
| 3921 | -                esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3922 | - __FILE__,  | 
                                                        |
| 3923 | - __FUNCTION__,  | 
                                                        |
| 3924 | - __LINE__  | 
                                                        |
| 3925 | - );  | 
                                                        |
| 3926 | - $success = false;  | 
                                                        |
| 3927 | - }  | 
                                                        |
| 3928 | -  | 
                                                        |
| 3929 | -        if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3930 | - EE_Error::add_error(  | 
                                                        |
| 3931 | - esc_html__(  | 
                                                        |
| 3932 | - 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        |
| 3933 | - 'event_espresso'  | 
                                                        |
| 3934 | - ),  | 
                                                        |
| 3935 | - __FILE__,  | 
                                                        |
| 3936 | - __FUNCTION__,  | 
                                                        |
| 3937 | - __LINE__  | 
                                                        |
| 3938 | - );  | 
                                                        |
| 3939 | - $success = false;  | 
                                                        |
| 3940 | - }  | 
                                                        |
| 3941 | -  | 
                                                        |
| 3942 | -  | 
                                                        |
| 3943 | - // do check to verify we have a valid status.  | 
                                                        |
| 3944 | - $status = $this->_req_data['status'];  | 
                                                        |
| 3945 | -  | 
                                                        |
| 3946 | -        if ($status !== 'activate' && $status !== 'deactivate') { | 
                                                        |
| 3947 | - EE_Error::add_error(  | 
                                                        |
| 3948 | - sprintf(  | 
                                                        |
| 3949 | -                    esc_html__('The given status (%s) is not valid. Must be "active" or "inactive"', 'event_espresso'), | 
                                                        |
| 3950 | - $this->_req_data['status']  | 
                                                        |
| 3951 | - ),  | 
                                                        |
| 3952 | - __FILE__,  | 
                                                        |
| 3953 | - __FUNCTION__,  | 
                                                        |
| 3954 | - __LINE__  | 
                                                        |
| 3955 | - );  | 
                                                        |
| 3956 | - $success = false;  | 
                                                        |
| 3957 | - }  | 
                                                        |
| 3958 | -  | 
                                                        |
| 3959 | -  | 
                                                        |
| 3960 | - // do a nonce check here since we're not arriving via a normal route  | 
                                                        |
| 3961 | - $nonce = isset($this->_req_data['mt_nonce']) ? sanitize_text_field($this->_req_data['mt_nonce']) : '';  | 
                                                        |
| 3962 | - $nonce_ref = $this->_req_data['message_type'] . '_nonce';  | 
                                                        |
| 3963 | -  | 
                                                        |
| 3964 | - $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 3965 | -  | 
                                                        |
| 3966 | -        if ($success) { | 
                                                        |
| 3967 | - // made it here? um, what are you waiting for then?  | 
                                                        |
| 3968 | - $success = $status === 'deactivate'  | 
                                                        |
| 3969 | - ? $this->_deactivate_message_type_for_messenger(  | 
                                                        |
| 3970 | - $this->_req_data['messenger'],  | 
                                                        |
| 3971 | - $this->_req_data['message_type']  | 
                                                        |
| 3972 | - )  | 
                                                        |
| 3973 | - : $this->_activate_message_type_for_messenger(  | 
                                                        |
| 3974 | - $this->_req_data['messenger'],  | 
                                                        |
| 3975 | - $this->_req_data['message_type']  | 
                                                        |
| 3976 | - );  | 
                                                        |
| 3977 | - }  | 
                                                        |
| 3978 | -  | 
                                                        |
| 3979 | - $this->_template_args['success'] = $success;  | 
                                                        |
| 3980 | - $this->_return_json();  | 
                                                        |
| 3981 | - }  | 
                                                        |
| 3982 | -  | 
                                                        |
| 3983 | -  | 
                                                        |
| 3984 | - /**  | 
                                                        |
| 3985 | - * Takes care of processing activating a messenger and preparing the appropriate response.  | 
                                                        |
| 3986 | - *  | 
                                                        |
| 3987 | - * @param string $messenger_name The name of the messenger being activated  | 
                                                        |
| 3988 | - * @return bool  | 
                                                        |
| 3989 | - * @throws DomainException  | 
                                                        |
| 3990 | - * @throws EE_Error  | 
                                                        |
| 3991 | - * @throws InvalidArgumentException  | 
                                                        |
| 3992 | - * @throws ReflectionException  | 
                                                        |
| 3993 | - * @throws InvalidDataTypeException  | 
                                                        |
| 3994 | - * @throws InvalidInterfaceException  | 
                                                        |
| 3995 | - */  | 
                                                        |
| 3996 | - protected function _activate_messenger($messenger_name)  | 
                                                        |
| 3997 | -    { | 
                                                        |
| 3998 | - /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 3999 | - $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4000 | - $message_types_to_activate = $active_messenger instanceof EE_Messenger  | 
                                                        |
| 4001 | - ? $active_messenger->get_default_message_types()  | 
                                                        |
| 4002 | - : array();  | 
                                                        |
| 4003 | -  | 
                                                        |
| 4004 | - // ensure is active  | 
                                                        |
| 4005 | - $this->_message_resource_manager->activate_messenger($messenger_name, $message_types_to_activate);  | 
                                                        |
| 4006 | -  | 
                                                        |
| 4007 | - // set response_data for reload  | 
                                                        |
| 4008 | -        foreach ($message_types_to_activate as $message_type_name) { | 
                                                        |
| 4009 | - /** @var EE_message_type $message_type */  | 
                                                        |
| 4010 | - $message_type = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4011 | - if ($this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 4012 | - $messenger_name,  | 
                                                        |
| 4013 | - $message_type_name  | 
                                                        |
| 4014 | - )  | 
                                                        |
| 4015 | - && $message_type instanceof EE_message_type  | 
                                                        |
| 4016 | -            ) { | 
                                                        |
| 4017 | - $this->_template_args['data']['active_mts'][] = $message_type_name;  | 
                                                        |
| 4018 | -                if ($message_type->get_admin_settings_fields()) { | 
                                                        |
| 4019 | - $this->_template_args['data']['mt_reload'][] = $message_type_name;  | 
                                                        |
| 4020 | - }  | 
                                                        |
| 4021 | - }  | 
                                                        |
| 4022 | - }  | 
                                                        |
| 4023 | -  | 
                                                        |
| 4024 | - // add success message for activating messenger  | 
                                                        |
| 4025 | - return $this->_setup_response_message_for_activating_messenger_with_message_types($active_messenger);  | 
                                                        |
| 4026 | - }  | 
                                                        |
| 4027 | -  | 
                                                        |
| 4028 | -  | 
                                                        |
| 4029 | - /**  | 
                                                        |
| 4030 | - * Takes care of processing deactivating a messenger and preparing the appropriate response.  | 
                                                        |
| 4031 | - *  | 
                                                        |
| 4032 | - * @param string $messenger_name The name of the messenger being activated  | 
                                                        |
| 4033 | - * @return bool  | 
                                                        |
| 4034 | - * @throws DomainException  | 
                                                        |
| 4035 | - * @throws EE_Error  | 
                                                        |
| 4036 | - * @throws InvalidArgumentException  | 
                                                        |
| 4037 | - * @throws ReflectionException  | 
                                                        |
| 4038 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4039 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4040 | - */  | 
                                                        |
| 4041 | - protected function _deactivate_messenger($messenger_name)  | 
                                                        |
| 4042 | -    { | 
                                                        |
| 4043 | - /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4044 | - $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4045 | - $this->_message_resource_manager->deactivate_messenger($messenger_name);  | 
                                                        |
| 4046 | -  | 
                                                        |
| 4047 | - return $this->_setup_response_message_for_deactivating_messenger_with_message_types($active_messenger);  | 
                                                        |
| 4048 | - }  | 
                                                        |
| 4049 | -  | 
                                                        |
| 4050 | -  | 
                                                        |
| 4051 | - /**  | 
                                                        |
| 4052 | - * Takes care of processing activating a message type for a messenger and preparing the appropriate response.  | 
                                                        |
| 4053 | - *  | 
                                                        |
| 4054 | - * @param string $messenger_name The name of the messenger the message type is being activated for.  | 
                                                        |
| 4055 | - * @param string $message_type_name The name of the message type being activated for the messenger  | 
                                                        |
| 4056 | - * @return bool  | 
                                                        |
| 4057 | - * @throws DomainException  | 
                                                        |
| 4058 | - * @throws EE_Error  | 
                                                        |
| 4059 | - * @throws InvalidArgumentException  | 
                                                        |
| 4060 | - * @throws ReflectionException  | 
                                                        |
| 4061 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4062 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4063 | - */  | 
                                                        |
| 4064 | - protected function _activate_message_type_for_messenger($messenger_name, $message_type_name)  | 
                                                        |
| 4065 | -    { | 
                                                        |
| 4066 | - /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4067 | - $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4068 | - /** @var EE_message_type $message_type_to_activate This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4069 | - $message_type_to_activate = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4070 | -  | 
                                                        |
| 4071 | - // ensure is active  | 
                                                        |
| 4072 | - $this->_message_resource_manager->activate_messenger($messenger_name, $message_type_name);  | 
                                                        |
| 4073 | -  | 
                                                        |
| 4074 | - // set response for load  | 
                                                        |
| 4075 | - if ($this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 4076 | - $messenger_name,  | 
                                                        |
| 4077 | - $message_type_name  | 
                                                        |
| 4078 | - )  | 
                                                        |
| 4079 | -        ) { | 
                                                        |
| 4080 | - $this->_template_args['data']['active_mts'][] = $message_type_name;  | 
                                                        |
| 4081 | -            if ($message_type_to_activate->get_admin_settings_fields()) { | 
                                                        |
| 4082 | - $this->_template_args['data']['mt_reload'][] = $message_type_name;  | 
                                                        |
| 4083 | - }  | 
                                                        |
| 4084 | - }  | 
                                                        |
| 4085 | -  | 
                                                        |
| 4086 | - return $this->_setup_response_message_for_activating_messenger_with_message_types(  | 
                                                        |
| 4087 | - $active_messenger,  | 
                                                        |
| 4088 | - $message_type_to_activate  | 
                                                        |
| 4089 | - );  | 
                                                        |
| 4090 | - }  | 
                                                        |
| 4091 | -  | 
                                                        |
| 4092 | -  | 
                                                        |
| 4093 | - /**  | 
                                                        |
| 4094 | - * Takes care of processing deactivating a message type for a messenger and preparing the appropriate response.  | 
                                                        |
| 4095 | - *  | 
                                                        |
| 4096 | - * @param string $messenger_name The name of the messenger the message type is being deactivated for.  | 
                                                        |
| 4097 | - * @param string $message_type_name The name of the message type being deactivated for the messenger  | 
                                                        |
| 4098 | - * @return bool  | 
                                                        |
| 4099 | - * @throws DomainException  | 
                                                        |
| 4100 | - * @throws EE_Error  | 
                                                        |
| 4101 | - * @throws InvalidArgumentException  | 
                                                        |
| 4102 | - * @throws ReflectionException  | 
                                                        |
| 4103 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4104 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4105 | - */  | 
                                                        |
| 4106 | - protected function _deactivate_message_type_for_messenger($messenger_name, $message_type_name)  | 
                                                        |
| 4107 | -    { | 
                                                        |
| 4108 | - /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4109 | - $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4110 | - /** @var EE_message_type $message_type_to_activate This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4111 | - $message_type_to_deactivate = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4112 | - $this->_message_resource_manager->deactivate_message_type_for_messenger($message_type_name, $messenger_name);  | 
                                                        |
| 4113 | -  | 
                                                        |
| 4114 | - return $this->_setup_response_message_for_deactivating_messenger_with_message_types(  | 
                                                        |
| 4115 | - $active_messenger,  | 
                                                        |
| 4116 | - $message_type_to_deactivate  | 
                                                        |
| 4117 | - );  | 
                                                        |
| 4118 | - }  | 
                                                        |
| 4119 | -  | 
                                                        |
| 4120 | -  | 
                                                        |
| 4121 | - /**  | 
                                                        |
| 4122 | - * This just initializes the defaults for activating messenger and message type responses.  | 
                                                        |
| 4123 | - */  | 
                                                        |
| 4124 | - protected function _prep_default_response_for_messenger_or_message_type_toggle()  | 
                                                        |
| 4125 | -    { | 
                                                        |
| 4126 | - $this->_template_args['data']['active_mts'] = array();  | 
                                                        |
| 4127 | - $this->_template_args['data']['mt_reload'] = array();  | 
                                                        |
| 4128 | - }  | 
                                                        |
| 4129 | -  | 
                                                        |
| 4130 | -  | 
                                                        |
| 4131 | - /**  | 
                                                        |
| 4132 | - * Setup appropriate response for activating a messenger and/or message types  | 
                                                        |
| 4133 | - *  | 
                                                        |
| 4134 | - * @param EE_messenger $messenger  | 
                                                        |
| 4135 | - * @param EE_message_type|null $message_type  | 
                                                        |
| 4136 | - * @return bool  | 
                                                        |
| 4137 | - * @throws DomainException  | 
                                                        |
| 4138 | - * @throws EE_Error  | 
                                                        |
| 4139 | - * @throws InvalidArgumentException  | 
                                                        |
| 4140 | - * @throws ReflectionException  | 
                                                        |
| 4141 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4142 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4143 | - */  | 
                                                        |
| 4144 | - protected function _setup_response_message_for_activating_messenger_with_message_types(  | 
                                                        |
| 4145 | - $messenger,  | 
                                                        |
| 4146 | - EE_Message_Type $message_type = null  | 
                                                        |
| 4147 | -    ) { | 
                                                        |
| 4148 | - // if $messenger isn't a valid messenger object then get out.  | 
                                                        |
| 4149 | -        if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4150 | - EE_Error::add_error(  | 
                                                        |
| 4151 | -                esc_html__('The messenger being activated is not a valid messenger', 'event_espresso'), | 
                                                        |
| 4152 | - __FILE__,  | 
                                                        |
| 4153 | - __FUNCTION__,  | 
                                                        |
| 4154 | - __LINE__  | 
                                                        |
| 4155 | - );  | 
                                                        |
| 4156 | -  | 
                                                        |
| 4157 | - return false;  | 
                                                        |
| 4158 | - }  | 
                                                        |
| 4159 | - // activated  | 
                                                        |
| 4160 | -        if ($this->_template_args['data']['active_mts']) { | 
                                                        |
| 4161 | - EE_Error::overwrite_success();  | 
                                                        |
| 4162 | - // activated a message type with the messenger  | 
                                                        |
| 4163 | -            if ($message_type instanceof EE_message_type) { | 
                                                        |
| 4164 | - EE_Error::add_success(  | 
                                                        |
| 4165 | - sprintf(  | 
                                                        |
| 4166 | - esc_html__(  | 
                                                        |
| 4167 | - '%s message type has been successfully activated with the %s messenger',  | 
                                                        |
| 4168 | - 'event_espresso'  | 
                                                        |
| 4169 | - ),  | 
                                                        |
| 4170 | - ucwords($message_type->label['singular']),  | 
                                                        |
| 4171 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4172 | - )  | 
                                                        |
| 4173 | - );  | 
                                                        |
| 4174 | -  | 
                                                        |
| 4175 | - // if message type was invoice then let's make sure we activate the invoice payment method.  | 
                                                        |
| 4176 | -                if ($message_type->name === 'invoice') { | 
                                                        |
| 4177 | -                    EE_Registry::instance()->load_lib('Payment_Method_Manager'); | 
                                                        |
| 4178 | -                    $pm = EE_Payment_Method_Manager::instance()->activate_a_payment_method_of_type('Invoice'); | 
                                                        |
| 4179 | -                    if ($pm instanceof EE_Payment_Method) { | 
                                                        |
| 4180 | - EE_Error::add_attention(  | 
                                                        |
| 4181 | - esc_html__(  | 
                                                        |
| 4182 | - 'Activating the invoice message type also automatically activates the invoice payment method. If you do not wish the invoice payment method to be active, or to change its settings, visit the payment method admin page.',  | 
                                                        |
| 4183 | - 'event_espresso'  | 
                                                        |
| 4184 | - )  | 
                                                        |
| 4185 | - );  | 
                                                        |
| 4186 | - }  | 
                                                        |
| 4187 | - }  | 
                                                        |
| 4188 | - // just toggles the entire messenger  | 
                                                        |
| 4189 | -            } else { | 
                                                        |
| 4190 | - EE_Error::add_success(  | 
                                                        |
| 4191 | - sprintf(  | 
                                                        |
| 4192 | -                        esc_html__('%s messenger has been successfully activated', 'event_espresso'), | 
                                                        |
| 4193 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4194 | - )  | 
                                                        |
| 4195 | - );  | 
                                                        |
| 4196 | - }  | 
                                                        |
| 4197 | -  | 
                                                        |
| 4198 | - return true;  | 
                                                        |
| 4199 | -  | 
                                                        |
| 4200 | - // possible error condition. This will happen when our active_mts data is empty because it is validated for actual active  | 
                                                        |
| 4201 | - // message types after the activation process. However its possible some messengers don't HAVE any default_message_types  | 
                                                        |
| 4202 | - // in which case we just give a success message for the messenger being successfully activated.  | 
                                                        |
| 4203 | -        } else { | 
                                                        |
| 4204 | -            if (! $messenger->get_default_message_types()) { | 
                                                        |
| 4205 | - // messenger doesn't have any default message types so still a success.  | 
                                                        |
| 4206 | - EE_Error::add_success(  | 
                                                        |
| 4207 | - sprintf(  | 
                                                        |
| 4208 | -                        esc_html__('%s messenger was successfully activated.', 'event_espresso'), | 
                                                        |
| 4209 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4210 | - )  | 
                                                        |
| 4211 | - );  | 
                                                        |
| 4212 | -  | 
                                                        |
| 4213 | - return true;  | 
                                                        |
| 4214 | -            } else { | 
                                                        |
| 4215 | - EE_Error::add_error(  | 
                                                        |
| 4216 | - $message_type instanceof EE_message_type  | 
                                                        |
| 4217 | - ? sprintf(  | 
                                                        |
| 4218 | - esc_html__(  | 
                                                        |
| 4219 | - '%s message type was not successfully activated with the %s messenger',  | 
                                                        |
| 4220 | - 'event_espresso'  | 
                                                        |
| 4221 | - ),  | 
                                                        |
| 4222 | - ucwords($message_type->label['singular']),  | 
                                                        |
| 4223 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4224 | - )  | 
                                                        |
| 4225 | - : sprintf(  | 
                                                        |
| 4226 | -                            esc_html__('%s messenger was not successfully activated', 'event_espresso'), | 
                                                        |
| 4227 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4228 | - ),  | 
                                                        |
| 4229 | - __FILE__,  | 
                                                        |
| 4230 | - __FUNCTION__,  | 
                                                        |
| 4231 | - __LINE__  | 
                                                        |
| 4232 | - );  | 
                                                        |
| 4233 | -  | 
                                                        |
| 4234 | - return false;  | 
                                                        |
| 4235 | - }  | 
                                                        |
| 4236 | - }  | 
                                                        |
| 4237 | - }  | 
                                                        |
| 4238 | -  | 
                                                        |
| 4239 | -  | 
                                                        |
| 4240 | - /**  | 
                                                        |
| 4241 | - * This sets up the appropriate response for deactivating a messenger and/or message type.  | 
                                                        |
| 4242 | - *  | 
                                                        |
| 4243 | - * @param EE_messenger $messenger  | 
                                                        |
| 4244 | - * @param EE_message_type|null $message_type  | 
                                                        |
| 4245 | - * @return bool  | 
                                                        |
| 4246 | - * @throws DomainException  | 
                                                        |
| 4247 | - * @throws EE_Error  | 
                                                        |
| 4248 | - * @throws InvalidArgumentException  | 
                                                        |
| 4249 | - * @throws ReflectionException  | 
                                                        |
| 4250 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4251 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4252 | - */  | 
                                                        |
| 4253 | - protected function _setup_response_message_for_deactivating_messenger_with_message_types(  | 
                                                        |
| 4254 | - $messenger,  | 
                                                        |
| 4255 | - EE_message_type $message_type = null  | 
                                                        |
| 4256 | -    ) { | 
                                                        |
| 4257 | - EE_Error::overwrite_success();  | 
                                                        |
| 4258 | -  | 
                                                        |
| 4259 | - // if $messenger isn't a valid messenger object then get out.  | 
                                                        |
| 4260 | -        if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4261 | - EE_Error::add_error(  | 
                                                        |
| 4262 | -                esc_html__('The messenger being deactivated is not a valid messenger', 'event_espresso'), | 
                                                        |
| 4263 | - __FILE__,  | 
                                                        |
| 4264 | - __FUNCTION__,  | 
                                                        |
| 4265 | - __LINE__  | 
                                                        |
| 4266 | - );  | 
                                                        |
| 4267 | -  | 
                                                        |
| 4268 | - return false;  | 
                                                        |
| 4269 | - }  | 
                                                        |
| 4270 | -  | 
                                                        |
| 4271 | -        if ($message_type instanceof EE_message_type) { | 
                                                        |
| 4272 | - $message_type_name = $message_type->name;  | 
                                                        |
| 4273 | - EE_Error::add_success(  | 
                                                        |
| 4274 | - sprintf(  | 
                                                        |
| 4275 | - esc_html__(  | 
                                                        |
| 4276 | - '%s message type has been successfully deactivated for the %s messenger.',  | 
                                                        |
| 4277 | - 'event_espresso'  | 
                                                        |
| 4278 | - ),  | 
                                                        |
| 4279 | - ucwords($message_type->label['singular']),  | 
                                                        |
| 4280 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4281 | - )  | 
                                                        |
| 4282 | - );  | 
                                                        |
| 4283 | -        } else { | 
                                                        |
| 4284 | - $message_type_name = '';  | 
                                                        |
| 4285 | - EE_Error::add_success(  | 
                                                        |
| 4286 | - sprintf(  | 
                                                        |
| 4287 | -                    esc_html__('%s messenger has been successfully deactivated.', 'event_espresso'), | 
                                                        |
| 4288 | - ucwords($messenger->label['singular'])  | 
                                                        |
| 4289 | - )  | 
                                                        |
| 4290 | - );  | 
                                                        |
| 4291 | - }  | 
                                                        |
| 4292 | -  | 
                                                        |
| 4293 | - // if messenger was html or message type was invoice then let's make sure we deactivate invoice payment method.  | 
                                                        |
| 4294 | -        if ($messenger->name === 'html' || $message_type_name === 'invoice') { | 
                                                        |
| 4295 | -            EE_Registry::instance()->load_lib('Payment_Method_Manager'); | 
                                                        |
| 4296 | -            $count_updated = EE_Payment_Method_Manager::instance()->deactivate_payment_method('invoice'); | 
                                                        |
| 4297 | -            if ($count_updated > 0) { | 
                                                        |
| 4298 | - $msg = $message_type_name === 'invoice'  | 
                                                        |
| 4299 | - ? esc_html__(  | 
                                                        |
| 4300 | - 'Deactivating the invoice message type also automatically deactivates the invoice payment method. In order for invoices to be generated the invoice message type must be active. If you completed this action by mistake, simply reactivate the invoice message type and then visit the payment methods admin page to reactivate the invoice payment method.',  | 
                                                        |
| 4301 | - 'event_espresso'  | 
                                                        |
| 4302 | - )  | 
                                                        |
| 4303 | - : esc_html__(  | 
                                                        |
| 4304 | - 'Deactivating the html messenger also automatically deactivates the invoice payment method. In order for invoices to be generated the html messenger must be be active. If you completed this action by mistake, simply reactivate the html messenger, then visit the payment methods admin page to reactivate the invoice payment method.',  | 
                                                        |
| 4305 | - 'event_espresso'  | 
                                                        |
| 4306 | - );  | 
                                                        |
| 4307 | - EE_Error::add_attention($msg);  | 
                                                        |
| 4308 | - }  | 
                                                        |
| 4309 | - }  | 
                                                        |
| 4310 | -  | 
                                                        |
| 4311 | - return true;  | 
                                                        |
| 4312 | - }  | 
                                                        |
| 4313 | -  | 
                                                        |
| 4314 | -  | 
                                                        |
| 4315 | - /**  | 
                                                        |
| 4316 | - * handles updating a message type form on messenger activation IF the message type has settings fields. (via ajax)  | 
                                                        |
| 4317 | - *  | 
                                                        |
| 4318 | - * @throws DomainException  | 
                                                        |
| 4319 | - */  | 
                                                        |
| 4320 | - public function update_mt_form()  | 
                                                        |
| 4321 | -    { | 
                                                        |
| 4322 | -        if (! isset($this->_req_data['messenger']) || ! isset($this->_req_data['message_type'])) { | 
                                                        |
| 4323 | - EE_Error::add_error(  | 
                                                        |
| 4324 | -                esc_html__('Require message type or messenger to send an updated form', 'event_espresso'), | 
                                                        |
| 4325 | - __FILE__,  | 
                                                        |
| 4326 | - __FUNCTION__,  | 
                                                        |
| 4327 | - __LINE__  | 
                                                        |
| 4328 | - );  | 
                                                        |
| 4329 | - $this->_return_json();  | 
                                                        |
| 4330 | - }  | 
                                                        |
| 4331 | -  | 
                                                        |
| 4332 | - $message_types = $this->get_installed_message_types();  | 
                                                        |
| 4333 | -  | 
                                                        |
| 4334 | - $message_type = $message_types[ $this->_req_data['message_type'] ];  | 
                                                        |
| 4335 | - $messenger = $this->_message_resource_manager->get_active_messenger($this->_req_data['messenger']);  | 
                                                        |
| 4336 | -  | 
                                                        |
| 4337 | - $content = $this->_message_type_settings_content(  | 
                                                        |
| 4338 | - $message_type,  | 
                                                        |
| 4339 | - $messenger,  | 
                                                        |
| 4340 | - true  | 
                                                        |
| 4341 | - );  | 
                                                        |
| 4342 | - $this->_template_args['success'] = true;  | 
                                                        |
| 4343 | - $this->_template_args['content'] = $content;  | 
                                                        |
| 4344 | - $this->_return_json();  | 
                                                        |
| 4345 | - }  | 
                                                        |
| 4346 | -  | 
                                                        |
| 4347 | -  | 
                                                        |
| 4348 | - /**  | 
                                                        |
| 4349 | - * this handles saving the settings for a messenger or message type  | 
                                                        |
| 4350 | - *  | 
                                                        |
| 4351 | - */  | 
                                                        |
| 4352 | - public function save_settings()  | 
                                                        |
| 4353 | -    { | 
                                                        |
| 4354 | -        if (! isset($this->_req_data['type'])) { | 
                                                        |
| 4355 | - EE_Error::add_error(  | 
                                                        |
| 4356 | - esc_html__(  | 
                                                        |
| 4357 | - 'Cannot save settings because type is unknown (messenger settings or messsage type settings?)',  | 
                                                        |
| 4358 | - 'event_espresso'  | 
                                                        |
| 4359 | - ),  | 
                                                        |
| 4360 | - __FILE__,  | 
                                                        |
| 4361 | - __FUNCTION__,  | 
                                                        |
| 4362 | - __LINE__  | 
                                                        |
| 4363 | - );  | 
                                                        |
| 4364 | - $this->_template_args['error'] = true;  | 
                                                        |
| 4365 | - $this->_return_json();  | 
                                                        |
| 4366 | - }  | 
                                                        |
| 4367 | -  | 
                                                        |
| 4368 | -  | 
                                                        |
| 4369 | -        if ($this->_req_data['type'] === 'messenger') { | 
                                                        |
| 4370 | - // this should be an array.  | 
                                                        |
| 4371 | - $settings = $this->_req_data['messenger_settings'];  | 
                                                        |
| 4372 | - $messenger = $settings['messenger'];  | 
                                                        |
| 4373 | - // let's setup the settings data  | 
                                                        |
| 4374 | -            foreach ($settings as $key => $value) { | 
                                                        |
| 4375 | -                switch ($key) { | 
                                                        |
| 4376 | - case 'messenger':  | 
                                                        |
| 4377 | - unset($settings['messenger']);  | 
                                                        |
| 4378 | - break;  | 
                                                        |
| 4379 | - case 'message_types':  | 
                                                        |
| 4380 | - unset($settings['message_types']);  | 
                                                        |
| 4381 | - break;  | 
                                                        |
| 4382 | - default:  | 
                                                        |
| 4383 | - $settings[ $key ] = $value;  | 
                                                        |
| 4384 | - break;  | 
                                                        |
| 4385 | - }  | 
                                                        |
| 4386 | - }  | 
                                                        |
| 4387 | - $this->_message_resource_manager->add_settings_for_messenger($messenger, $settings);  | 
                                                        |
| 4388 | -        } elseif ($this->_req_data['type'] === 'message_type') { | 
                                                        |
| 4389 | - $settings = $this->_req_data['message_type_settings'];  | 
                                                        |
| 4390 | - $messenger = $settings['messenger'];  | 
                                                        |
| 4391 | - $message_type = $settings['message_type'];  | 
                                                        |
| 4392 | -  | 
                                                        |
| 4393 | -            foreach ($settings as $key => $value) { | 
                                                        |
| 4394 | -                switch ($key) { | 
                                                        |
| 4395 | - case 'messenger':  | 
                                                        |
| 4396 | - unset($settings['messenger']);  | 
                                                        |
| 4397 | - break;  | 
                                                        |
| 4398 | - case 'message_type':  | 
                                                        |
| 4399 | - unset($settings['message_type']);  | 
                                                        |
| 4400 | - break;  | 
                                                        |
| 4401 | - default:  | 
                                                        |
| 4402 | - $settings[ $key ] = $value;  | 
                                                        |
| 4403 | - break;  | 
                                                        |
| 4404 | - }  | 
                                                        |
| 4405 | - }  | 
                                                        |
| 4406 | -  | 
                                                        |
| 4407 | - $this->_message_resource_manager->add_settings_for_message_type($messenger, $message_type, $settings);  | 
                                                        |
| 4408 | - }  | 
                                                        |
| 4409 | -  | 
                                                        |
| 4410 | - // okay we should have the data all setup. Now we just update!  | 
                                                        |
| 4411 | - $success = $this->_message_resource_manager->update_active_messengers_option();  | 
                                                        |
| 4412 | -  | 
                                                        |
| 4413 | -        if ($success) { | 
                                                        |
| 4414 | -            EE_Error::add_success(__('Settings updated', 'event_espresso')); | 
                                                        |
| 4415 | -        } else { | 
                                                        |
| 4416 | - EE_Error::add_error(  | 
                                                        |
| 4417 | - esc_html__(  | 
                                                        |
| 4418 | - 'Settings did not get updated',  | 
                                                        |
| 4419 | - 'event_espresso'  | 
                                                        |
| 4420 | - ),  | 
                                                        |
| 4421 | - __FILE__,  | 
                                                        |
| 4422 | - __FUNCTION__,  | 
                                                        |
| 4423 | - __LINE__  | 
                                                        |
| 4424 | - );  | 
                                                        |
| 4425 | - }  | 
                                                        |
| 4426 | -  | 
                                                        |
| 4427 | - $this->_template_args['success'] = $success;  | 
                                                        |
| 4428 | - $this->_return_json();  | 
                                                        |
| 4429 | - }  | 
                                                        |
| 4430 | -  | 
                                                        |
| 4431 | -  | 
                                                        |
| 4432 | -  | 
                                                        |
| 4433 | -  | 
                                                        |
| 4434 | - /** EE MESSAGE PROCESSING ACTIONS **/  | 
                                                        |
| 4435 | -  | 
                                                        |
| 4436 | -  | 
                                                        |
| 4437 | - /**  | 
                                                        |
| 4438 | - * This immediately generates any EE_Message ID's that are selected that are EEM_Message::status_incomplete  | 
                                                        |
| 4439 | - * However, this does not send immediately, it just queues for sending.  | 
                                                        |
| 4440 | - *  | 
                                                        |
| 4441 | - * @since 4.9.0  | 
                                                        |
| 4442 | - * @throws EE_Error  | 
                                                        |
| 4443 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4444 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4445 | - * @throws InvalidArgumentException  | 
                                                        |
| 4446 | - * @throws ReflectionException  | 
                                                        |
| 4447 | - */  | 
                                                        |
| 4448 | - protected function _generate_now()  | 
                                                        |
| 4449 | -    { | 
                                                        |
| 4450 | - EED_Messages::generate_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4451 | - $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4452 | - }  | 
                                                        |
| 4453 | -  | 
                                                        |
| 4454 | -  | 
                                                        |
| 4455 | - /**  | 
                                                        |
| 4456 | - * This immediately generates AND sends any EE_Message's selected that are EEM_Message::status_incomplete or that  | 
                                                        |
| 4457 | - * are EEM_Message::status_resend or EEM_Message::status_idle  | 
                                                        |
| 4458 | - *  | 
                                                        |
| 4459 | - * @since 4.9.0  | 
                                                        |
| 4460 | - * @throws EE_Error  | 
                                                        |
| 4461 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4462 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4463 | - * @throws InvalidArgumentException  | 
                                                        |
| 4464 | - * @throws ReflectionException  | 
                                                        |
| 4465 | - */  | 
                                                        |
| 4466 | - protected function _generate_and_send_now()  | 
                                                        |
| 4467 | -    { | 
                                                        |
| 4468 | - EED_Messages::generate_and_send_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4469 | - $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4470 | - }  | 
                                                        |
| 4471 | -  | 
                                                        |
| 4472 | -  | 
                                                        |
| 4473 | - /**  | 
                                                        |
| 4474 | - * This queues any EEM_Message::status_sent EE_Message ids in the request for resending.  | 
                                                        |
| 4475 | - *  | 
                                                        |
| 4476 | - * @since 4.9.0  | 
                                                        |
| 4477 | - * @throws EE_Error  | 
                                                        |
| 4478 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4479 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4480 | - * @throws InvalidArgumentException  | 
                                                        |
| 4481 | - * @throws ReflectionException  | 
                                                        |
| 4482 | - */  | 
                                                        |
| 4483 | - protected function _queue_for_resending()  | 
                                                        |
| 4484 | -    { | 
                                                        |
| 4485 | - EED_Messages::queue_for_resending($this->_get_msg_ids_from_request());  | 
                                                        |
| 4486 | - $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4487 | - }  | 
                                                        |
| 4488 | -  | 
                                                        |
| 4489 | -  | 
                                                        |
| 4490 | - /**  | 
                                                        |
| 4491 | - * This sends immediately any EEM_Message::status_idle or EEM_Message::status_resend messages in the queue  | 
                                                        |
| 4492 | - *  | 
                                                        |
| 4493 | - * @since 4.9.0  | 
                                                        |
| 4494 | - * @throws EE_Error  | 
                                                        |
| 4495 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4496 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4497 | - * @throws InvalidArgumentException  | 
                                                        |
| 4498 | - * @throws ReflectionException  | 
                                                        |
| 4499 | - */  | 
                                                        |
| 4500 | - protected function _send_now()  | 
                                                        |
| 4501 | -    { | 
                                                        |
| 4502 | - EED_Messages::send_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4503 | - $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4504 | - }  | 
                                                        |
| 4505 | -  | 
                                                        |
| 4506 | -  | 
                                                        |
| 4507 | - /**  | 
                                                        |
| 4508 | - * Deletes EE_messages for IDs in the request.  | 
                                                        |
| 4509 | - *  | 
                                                        |
| 4510 | - * @since 4.9.0  | 
                                                        |
| 4511 | - * @throws EE_Error  | 
                                                        |
| 4512 | - * @throws InvalidDataTypeException  | 
                                                        |
| 4513 | - * @throws InvalidInterfaceException  | 
                                                        |
| 4514 | - * @throws InvalidArgumentException  | 
                                                        |
| 4515 | - */  | 
                                                        |
| 4516 | - protected function _delete_ee_messages()  | 
                                                        |
| 4517 | -    { | 
                                                        |
| 4518 | - $msg_ids = $this->_get_msg_ids_from_request();  | 
                                                        |
| 4519 | - $deleted_count = 0;  | 
                                                        |
| 4520 | -        foreach ($msg_ids as $msg_id) { | 
                                                        |
| 4521 | -            if (EEM_Message::instance()->delete_by_ID($msg_id)) { | 
                                                        |
| 4522 | - $deleted_count++;  | 
                                                        |
| 4523 | - }  | 
                                                        |
| 4524 | - }  | 
                                                        |
| 4525 | -        if ($deleted_count) { | 
                                                        |
| 4526 | - EE_Error::add_success(  | 
                                                        |
| 4527 | - esc_html(  | 
                                                        |
| 4528 | - _n(  | 
                                                        |
| 4529 | - 'Message successfully deleted',  | 
                                                        |
| 4530 | - 'Messages successfully deleted',  | 
                                                        |
| 4531 | - $deleted_count,  | 
                                                        |
| 4532 | - 'event_espresso'  | 
                                                        |
| 4533 | - )  | 
                                                        |
| 4534 | - )  | 
                                                        |
| 4535 | - );  | 
                                                        |
| 4536 | - $this->_redirect_after_action(  | 
                                                        |
| 4537 | - false,  | 
                                                        |
| 4538 | - '',  | 
                                                        |
| 4539 | - '',  | 
                                                        |
| 4540 | - array(),  | 
                                                        |
| 4541 | - true  | 
                                                        |
| 4542 | - );  | 
                                                        |
| 4543 | -        } else { | 
                                                        |
| 4544 | - EE_Error::add_error(  | 
                                                        |
| 4545 | -                _n('The message was not deleted.', 'The messages were not deleted', count($msg_ids), 'event_espresso'), | 
                                                        |
| 4546 | - __FILE__,  | 
                                                        |
| 4547 | - __FUNCTION__,  | 
                                                        |
| 4548 | - __LINE__  | 
                                                        |
| 4549 | - );  | 
                                                        |
| 4550 | - $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4551 | - }  | 
                                                        |
| 4552 | - }  | 
                                                        |
| 4553 | -  | 
                                                        |
| 4554 | -  | 
                                                        |
| 4555 | - /**  | 
                                                        |
| 4556 | - * This looks for 'MSG_ID' key in the request and returns an array of MSG_ID's if present.  | 
                                                        |
| 4557 | - *  | 
                                                        |
| 4558 | - * @since 4.9.0  | 
                                                        |
| 4559 | - * @return array  | 
                                                        |
| 4560 | - */  | 
                                                        |
| 4561 | - protected function _get_msg_ids_from_request()  | 
                                                        |
| 4562 | -    { | 
                                                        |
| 4563 | -        if (! isset($this->_req_data['MSG_ID'])) { | 
                                                        |
| 4564 | - return array();  | 
                                                        |
| 4565 | - }  | 
                                                        |
| 4566 | -  | 
                                                        |
| 4567 | - return is_array($this->_req_data['MSG_ID'])  | 
                                                        |
| 4568 | - ? array_keys($this->_req_data['MSG_ID'])  | 
                                                        |
| 4569 | - : array($this->_req_data['MSG_ID']);  | 
                                                        |
| 4570 | - }  | 
                                                        |
| 2650 | + $output = ob_get_contents();  | 
                                                        |
| 2651 | + ob_clean();  | 
                                                        |
| 2652 | + $this->_context_switcher = $output;  | 
                                                        |
| 2653 | + }  | 
                                                        |
| 2654 | +  | 
                                                        |
| 2655 | +  | 
                                                        |
| 2656 | + /**  | 
                                                        |
| 2657 | + * utility for sanitizing new values coming in.  | 
                                                        |
| 2658 | + * Note: this is only used when updating a context.  | 
                                                        |
| 2659 | + *  | 
                                                        |
| 2660 | + * @access protected  | 
                                                        |
| 2661 | + *  | 
                                                        |
| 2662 | + * @param int $index This helps us know which template field to select from the request array.  | 
                                                        |
| 2663 | + *  | 
                                                        |
| 2664 | + * @return array  | 
                                                        |
| 2665 | + */  | 
                                                        |
| 2666 | + protected function _set_message_template_column_values($index)  | 
                                                        |
| 2667 | +	{ | 
                                                        |
| 2668 | +		if (is_array($this->_req_data['MTP_template_fields'][ $index ]['content'])) { | 
                                                        |
| 2669 | +			foreach ($this->_req_data['MTP_template_fields'][ $index ]['content'] as $field => $value) { | 
                                                        |
| 2670 | + $this->_req_data['MTP_template_fields'][ $index ]['content'][ $field ] = $value;  | 
                                                        |
| 2671 | + }  | 
                                                        |
| 2672 | + }  | 
                                                        |
| 2673 | +  | 
                                                        |
| 2674 | +  | 
                                                        |
| 2675 | + $set_column_values = array(  | 
                                                        |
| 2676 | + 'MTP_ID' => absint($this->_req_data['MTP_template_fields'][ $index ]['MTP_ID']),  | 
                                                        |
| 2677 | + 'GRP_ID' => absint($this->_req_data['GRP_ID']),  | 
                                                        |
| 2678 | + 'MTP_user_id' => absint($this->_req_data['MTP_user_id']),  | 
                                                        |
| 2679 | + 'MTP_messenger' => strtolower($this->_req_data['MTP_messenger']),  | 
                                                        |
| 2680 | + 'MTP_message_type' => strtolower($this->_req_data['MTP_message_type']),  | 
                                                        |
| 2681 | + 'MTP_template_field' => strtolower($this->_req_data['MTP_template_fields'][ $index ]['name']),  | 
                                                        |
| 2682 | + 'MTP_context' => strtolower($this->_req_data['MTP_context']),  | 
                                                        |
| 2683 | + 'MTP_content' => $this->_req_data['MTP_template_fields'][ $index ]['content'],  | 
                                                        |
| 2684 | + 'MTP_is_global' => isset($this->_req_data['MTP_is_global'])  | 
                                                        |
| 2685 | + ? absint($this->_req_data['MTP_is_global'])  | 
                                                        |
| 2686 | + : 0,  | 
                                                        |
| 2687 | + 'MTP_is_override' => isset($this->_req_data['MTP_is_override'])  | 
                                                        |
| 2688 | + ? absint($this->_req_data['MTP_is_override'])  | 
                                                        |
| 2689 | + : 0,  | 
                                                        |
| 2690 | + 'MTP_deleted' => absint($this->_req_data['MTP_deleted']),  | 
                                                        |
| 2691 | + 'MTP_is_active' => absint($this->_req_data['MTP_is_active']),  | 
                                                        |
| 2692 | + );  | 
                                                        |
| 2693 | +  | 
                                                        |
| 2694 | +  | 
                                                        |
| 2695 | + return $set_column_values;  | 
                                                        |
| 2696 | + }  | 
                                                        |
| 2697 | +  | 
                                                        |
| 2698 | +  | 
                                                        |
| 2699 | + protected function _insert_or_update_message_template($new = false)  | 
                                                        |
| 2700 | +	{ | 
                                                        |
| 2701 | +  | 
                                                        |
| 2702 | +		do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 2703 | + $success = 0;  | 
                                                        |
| 2704 | + $override = false;  | 
                                                        |
| 2705 | +  | 
                                                        |
| 2706 | + // setup notices description  | 
                                                        |
| 2707 | + $messenger_slug = ! empty($this->_req_data['MTP_messenger']) ? $this->_req_data['MTP_messenger'] : '';  | 
                                                        |
| 2708 | +  | 
                                                        |
| 2709 | + // need the message type and messenger objects to be able to use the labels for the notices  | 
                                                        |
| 2710 | + $messenger_object = $this->_message_resource_manager->get_messenger($messenger_slug);  | 
                                                        |
| 2711 | + $messenger_label = $messenger_object instanceof EE_messenger  | 
                                                        |
| 2712 | + ? ucwords($messenger_object->label['singular'])  | 
                                                        |
| 2713 | + : '';  | 
                                                        |
| 2714 | +  | 
                                                        |
| 2715 | + $message_type_slug = ! empty($this->_req_data['MTP_message_type'])  | 
                                                        |
| 2716 | + ? $this->_req_data['MTP_message_type']  | 
                                                        |
| 2717 | + : '';  | 
                                                        |
| 2718 | + $message_type_object = $this->_message_resource_manager->get_message_type($message_type_slug);  | 
                                                        |
| 2719 | +  | 
                                                        |
| 2720 | + $message_type_label = $message_type_object instanceof EE_message_type  | 
                                                        |
| 2721 | + ? ucwords($message_type_object->label['singular'])  | 
                                                        |
| 2722 | + : '';  | 
                                                        |
| 2723 | +  | 
                                                        |
| 2724 | + $context_slug = ! empty($this->_req_data['MTP_context'])  | 
                                                        |
| 2725 | + ? $this->_req_data['MTP_context']  | 
                                                        |
| 2726 | + : '';  | 
                                                        |
| 2727 | +		$context = ucwords(str_replace('_', ' ', $context_slug)); | 
                                                        |
| 2728 | +  | 
                                                        |
| 2729 | + $item_desc = $messenger_label && $message_type_label  | 
                                                        |
| 2730 | + ? $messenger_label . ' ' . $message_type_label . ' ' . $context . ' '  | 
                                                        |
| 2731 | + : '';  | 
                                                        |
| 2732 | + $item_desc .= 'Message Template';  | 
                                                        |
| 2733 | + $query_args = array();  | 
                                                        |
| 2734 | + $edit_array = array();  | 
                                                        |
| 2735 | + $action_desc = '';  | 
                                                        |
| 2736 | +  | 
                                                        |
| 2737 | + // if this is "new" then we need to generate the default contexts for the selected messenger/message_type for  | 
                                                        |
| 2738 | + // user to edit.  | 
                                                        |
| 2739 | +		if ($new) { | 
                                                        |
| 2740 | + $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        |
| 2741 | +			if ($edit_array = $this->_generate_new_templates($messenger_slug, $message_type_slug, $GRP_ID)) { | 
                                                        |
| 2742 | +				if (empty($edit_array)) { | 
                                                        |
| 2743 | + $success = 0;  | 
                                                        |
| 2744 | +				} else { | 
                                                        |
| 2745 | + $success = 1;  | 
                                                        |
| 2746 | + $edit_array = $edit_array[0];  | 
                                                        |
| 2747 | + $query_args = array(  | 
                                                        |
| 2748 | + 'id' => $edit_array['GRP_ID'],  | 
                                                        |
| 2749 | + 'context' => $edit_array['MTP_context'],  | 
                                                        |
| 2750 | + 'action' => 'edit_message_template',  | 
                                                        |
| 2751 | + );  | 
                                                        |
| 2752 | + }  | 
                                                        |
| 2753 | + }  | 
                                                        |
| 2754 | + $action_desc = 'created';  | 
                                                        |
| 2755 | +		} else { | 
                                                        |
| 2756 | + $MTPG = EEM_Message_Template_Group::instance();  | 
                                                        |
| 2757 | + $MTP = EEM_Message_Template::instance();  | 
                                                        |
| 2758 | +  | 
                                                        |
| 2759 | +  | 
                                                        |
| 2760 | + // run update for each template field in displayed context  | 
                                                        |
| 2761 | +			if (! isset($this->_req_data['MTP_template_fields']) && empty($this->_req_data['MTP_template_fields'])) { | 
                                                        |
| 2762 | + EE_Error::add_error(  | 
                                                        |
| 2763 | + esc_html__(  | 
                                                        |
| 2764 | + 'There was a problem saving the template fields from the form because I didn\'t receive any actual template field data.',  | 
                                                        |
| 2765 | + 'event_espresso'  | 
                                                        |
| 2766 | + ),  | 
                                                        |
| 2767 | + __FILE__,  | 
                                                        |
| 2768 | + __FUNCTION__,  | 
                                                        |
| 2769 | + __LINE__  | 
                                                        |
| 2770 | + );  | 
                                                        |
| 2771 | + $success = 0;  | 
                                                        |
| 2772 | +			} else { | 
                                                        |
| 2773 | + // first validate all fields!  | 
                                                        |
| 2774 | + // this filter allows client code to add its own validation to the template fields as well.  | 
                                                        |
| 2775 | + // returning an empty array means everything passed validation.  | 
                                                        |
| 2776 | + // errors in validation should be represented in an array with the following shape:  | 
                                                        |
| 2777 | + // array(  | 
                                                        |
| 2778 | + // 'fieldname' => array(  | 
                                                        |
| 2779 | + // 'msg' => 'error message'  | 
                                                        |
| 2780 | + // 'value' => 'value for field producing error'  | 
                                                        |
| 2781 | + // )  | 
                                                        |
| 2782 | + $custom_validation = (array) apply_filters(  | 
                                                        |
| 2783 | + 'FHEE__Messages_Admin_Page___insert_or_update_message_template__validates',  | 
                                                        |
| 2784 | + array(),  | 
                                                        |
| 2785 | + $this->_req_data['MTP_template_fields'],  | 
                                                        |
| 2786 | + $context_slug,  | 
                                                        |
| 2787 | + $messenger_slug,  | 
                                                        |
| 2788 | + $message_type_slug  | 
                                                        |
| 2789 | + );  | 
                                                        |
| 2790 | +  | 
                                                        |
| 2791 | + $system_validation = $MTPG->validate(  | 
                                                        |
| 2792 | + $this->_req_data['MTP_template_fields'],  | 
                                                        |
| 2793 | + $context_slug,  | 
                                                        |
| 2794 | + $messenger_slug,  | 
                                                        |
| 2795 | + $message_type_slug  | 
                                                        |
| 2796 | + );  | 
                                                        |
| 2797 | +  | 
                                                        |
| 2798 | + $system_validation = ! is_array($system_validation) && $system_validation ? array()  | 
                                                        |
| 2799 | + : $system_validation;  | 
                                                        |
| 2800 | + $validates = array_merge($custom_validation, $system_validation);  | 
                                                        |
| 2801 | +  | 
                                                        |
| 2802 | + // if $validate returned error messages (i.e. is_array()) then we need to process them and setup an  | 
                                                        |
| 2803 | + // appropriate response. HMM, dang this isn't correct, $validates will ALWAYS be an array.  | 
                                                        |
| 2804 | + // WE need to make sure there is no actual error messages in validates.  | 
                                                        |
| 2805 | +				if (is_array($validates) && ! empty($validates)) { | 
                                                        |
| 2806 | + // add the transient so when the form loads we know which fields to highlight  | 
                                                        |
| 2807 | +					$this->_add_transient('edit_message_template', $validates); | 
                                                        |
| 2808 | +  | 
                                                        |
| 2809 | + $success = 0;  | 
                                                        |
| 2810 | +  | 
                                                        |
| 2811 | + // setup notices  | 
                                                        |
| 2812 | +					foreach ($validates as $field => $error) { | 
                                                        |
| 2813 | +						if (isset($error['msg'])) { | 
                                                        |
| 2814 | + EE_Error::add_error($error['msg'], __FILE__, __FUNCTION__, __LINE__);  | 
                                                        |
| 2815 | + }  | 
                                                        |
| 2816 | + }  | 
                                                        |
| 2817 | +				} else { | 
                                                        |
| 2818 | + $set_column_values = array();  | 
                                                        |
| 2819 | +					foreach ($this->_req_data['MTP_template_fields'] as $template_field => $content) { | 
                                                        |
| 2820 | + $set_column_values = $this->_set_message_template_column_values($template_field);  | 
                                                        |
| 2821 | +  | 
                                                        |
| 2822 | + $where_cols_n_values = array(  | 
                                                        |
| 2823 | + 'MTP_ID' => $this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'],  | 
                                                        |
| 2824 | + );  | 
                                                        |
| 2825 | + // if they aren't allowed to use all JS, restrict them to just posty-y tags  | 
                                                        |
| 2826 | +						if (! current_user_can('unfiltered_html')) { | 
                                                        |
| 2827 | +							if (is_array($set_column_values['MTP_content'])) { | 
                                                        |
| 2828 | +								foreach ($set_column_values['MTP_content'] as $key => $value) { | 
                                                        |
| 2829 | + // remove slashes so wp_kses works properly (its wp_kses_stripslashes() function  | 
                                                        |
| 2830 | + // only removes slashes from double-quotes, so attributes using single quotes always  | 
                                                        |
| 2831 | + // appear invalid.) But currently the models expect slashed data, so after wp_kses  | 
                                                        |
| 2832 | + // runs we need to re-slash the data. Sheesh. See  | 
                                                        |
| 2833 | + // https://events.codebasehq.com/projects/event-espresso/tickets/11211#update-47321587  | 
                                                        |
| 2834 | + $set_column_values['MTP_content'][ $key ] = addslashes(  | 
                                                        |
| 2835 | + wp_kses(  | 
                                                        |
| 2836 | + stripslashes($value),  | 
                                                        |
| 2837 | +											wp_kses_allowed_html('post') | 
                                                        |
| 2838 | + )  | 
                                                        |
| 2839 | + );  | 
                                                        |
| 2840 | + }  | 
                                                        |
| 2841 | +							} else { | 
                                                        |
| 2842 | + $set_column_values['MTP_content'] = wp_kses(  | 
                                                        |
| 2843 | + $set_column_values['MTP_content'],  | 
                                                        |
| 2844 | +									wp_kses_allowed_html('post') | 
                                                        |
| 2845 | + );  | 
                                                        |
| 2846 | + }  | 
                                                        |
| 2847 | + }  | 
                                                        |
| 2848 | + $message_template_fields = array(  | 
                                                        |
| 2849 | + 'GRP_ID' => $set_column_values['GRP_ID'],  | 
                                                        |
| 2850 | + 'MTP_template_field' => $set_column_values['MTP_template_field'],  | 
                                                        |
| 2851 | + 'MTP_context' => $set_column_values['MTP_context'],  | 
                                                        |
| 2852 | + 'MTP_content' => $set_column_values['MTP_content'],  | 
                                                        |
| 2853 | + );  | 
                                                        |
| 2854 | +						if ($updated = $MTP->update($message_template_fields, array($where_cols_n_values))) { | 
                                                        |
| 2855 | +							if ($updated === false) { | 
                                                        |
| 2856 | + EE_Error::add_error(  | 
                                                        |
| 2857 | + sprintf(  | 
                                                        |
| 2858 | +										esc_html__('%s field was NOT updated for some reason', 'event_espresso'), | 
                                                        |
| 2859 | + $template_field  | 
                                                        |
| 2860 | + ),  | 
                                                        |
| 2861 | + __FILE__,  | 
                                                        |
| 2862 | + __FUNCTION__,  | 
                                                        |
| 2863 | + __LINE__  | 
                                                        |
| 2864 | + );  | 
                                                        |
| 2865 | +							} else { | 
                                                        |
| 2866 | + $success = 1;  | 
                                                        |
| 2867 | + }  | 
                                                        |
| 2868 | +						} else { | 
                                                        |
| 2869 | + // only do this logic if we don't have a MTP_ID for this field  | 
                                                        |
| 2870 | +							if (empty($this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'])) { | 
                                                        |
| 2871 | + // this has already been through the template field validator and sanitized, so it will be  | 
                                                        |
| 2872 | + // safe to insert this field. Why insert? This typically happens when we introduce a new  | 
                                                        |
| 2873 | + // message template field in a messenger/message type and existing users don't have the  | 
                                                        |
| 2874 | + // default setup for it.  | 
                                                        |
| 2875 | + // @link https://events.codebasehq.com/projects/event-espresso/tickets/9465  | 
                                                        |
| 2876 | + $updated = $MTP->insert($message_template_fields);  | 
                                                        |
| 2877 | +								if (! $updated || is_wp_error($updated)) { | 
                                                        |
| 2878 | + EE_Error::add_error(  | 
                                                        |
| 2879 | + sprintf(  | 
                                                        |
| 2880 | +											esc_html__('%s field could not be updated.', 'event_espresso'), | 
                                                        |
| 2881 | + $template_field  | 
                                                        |
| 2882 | + ),  | 
                                                        |
| 2883 | + __FILE__,  | 
                                                        |
| 2884 | + __FUNCTION__,  | 
                                                        |
| 2885 | + __LINE__  | 
                                                        |
| 2886 | + );  | 
                                                        |
| 2887 | + $success = 0;  | 
                                                        |
| 2888 | +								} else { | 
                                                        |
| 2889 | + $success = 1;  | 
                                                        |
| 2890 | + }  | 
                                                        |
| 2891 | + }  | 
                                                        |
| 2892 | + }  | 
                                                        |
| 2893 | + $action_desc = 'updated';  | 
                                                        |
| 2894 | + }  | 
                                                        |
| 2895 | +  | 
                                                        |
| 2896 | + // we can use the last set_column_values for the MTPG update (because its the same for all of these specific MTPs)  | 
                                                        |
| 2897 | + $mtpg_fields = array(  | 
                                                        |
| 2898 | + 'MTP_user_id' => $set_column_values['MTP_user_id'],  | 
                                                        |
| 2899 | + 'MTP_messenger' => $set_column_values['MTP_messenger'],  | 
                                                        |
| 2900 | + 'MTP_message_type' => $set_column_values['MTP_message_type'],  | 
                                                        |
| 2901 | + 'MTP_is_global' => $set_column_values['MTP_is_global'],  | 
                                                        |
| 2902 | + 'MTP_is_override' => $set_column_values['MTP_is_override'],  | 
                                                        |
| 2903 | + 'MTP_deleted' => $set_column_values['MTP_deleted'],  | 
                                                        |
| 2904 | + 'MTP_is_active' => $set_column_values['MTP_is_active'],  | 
                                                        |
| 2905 | + 'MTP_name' => ! empty($this->_req_data['ee_msg_non_global_fields']['MTP_name'])  | 
                                                        |
| 2906 | + ? $this->_req_data['ee_msg_non_global_fields']['MTP_name']  | 
                                                        |
| 2907 | + : '',  | 
                                                        |
| 2908 | + 'MTP_description' => ! empty($this->_req_data['ee_msg_non_global_fields']['MTP_description'])  | 
                                                        |
| 2909 | + ? $this->_req_data['ee_msg_non_global_fields']['MTP_description']  | 
                                                        |
| 2910 | + : '',  | 
                                                        |
| 2911 | + );  | 
                                                        |
| 2912 | +  | 
                                                        |
| 2913 | +					$mtpg_where = array('GRP_ID' => $set_column_values['GRP_ID']); | 
                                                        |
| 2914 | + $updated = $MTPG->update($mtpg_fields, array($mtpg_where));  | 
                                                        |
| 2915 | +  | 
                                                        |
| 2916 | +					if ($updated === false) { | 
                                                        |
| 2917 | + EE_Error::add_error(  | 
                                                        |
| 2918 | + sprintf(  | 
                                                        |
| 2919 | + esc_html__(  | 
                                                        |
| 2920 | + 'The Message Template Group (%d) was NOT updated for some reason',  | 
                                                        |
| 2921 | + 'event_espresso'  | 
                                                        |
| 2922 | + ),  | 
                                                        |
| 2923 | + $set_column_values['GRP_ID']  | 
                                                        |
| 2924 | + ),  | 
                                                        |
| 2925 | + __FILE__,  | 
                                                        |
| 2926 | + __FUNCTION__,  | 
                                                        |
| 2927 | + __LINE__  | 
                                                        |
| 2928 | + );  | 
                                                        |
| 2929 | +					} else { | 
                                                        |
| 2930 | + // k now we need to ensure the template_pack and template_variation fields are set.  | 
                                                        |
| 2931 | + $template_pack = ! empty($this->_req_data['MTP_template_pack'])  | 
                                                        |
| 2932 | + ? $this->_req_data['MTP_template_pack']  | 
                                                        |
| 2933 | + : 'default';  | 
                                                        |
| 2934 | +  | 
                                                        |
| 2935 | + $template_variation = ! empty($this->_req_data['MTP_template_variation'])  | 
                                                        |
| 2936 | + ? $this->_req_data['MTP_template_variation']  | 
                                                        |
| 2937 | + : 'default';  | 
                                                        |
| 2938 | +  | 
                                                        |
| 2939 | + $mtpg_obj = $MTPG->get_one_by_ID($set_column_values['GRP_ID']);  | 
                                                        |
| 2940 | +						if ($mtpg_obj instanceof EE_Message_Template_Group) { | 
                                                        |
| 2941 | + $mtpg_obj->set_template_pack_name($template_pack);  | 
                                                        |
| 2942 | + $mtpg_obj->set_template_pack_variation($template_variation);  | 
                                                        |
| 2943 | + }  | 
                                                        |
| 2944 | + $success = 1;  | 
                                                        |
| 2945 | + }  | 
                                                        |
| 2946 | + }  | 
                                                        |
| 2947 | + }  | 
                                                        |
| 2948 | + }  | 
                                                        |
| 2949 | +  | 
                                                        |
| 2950 | + // we return things differently if doing ajax  | 
                                                        |
| 2951 | +		if (defined('DOING_AJAX') && DOING_AJAX) { | 
                                                        |
| 2952 | + $this->_template_args['success'] = $success;  | 
                                                        |
| 2953 | + $this->_template_args['error'] = ! $success ? true : false;  | 
                                                        |
| 2954 | + $this->_template_args['content'] = '';  | 
                                                        |
| 2955 | + $this->_template_args['data'] = array(  | 
                                                        |
| 2956 | + 'grpID' => $edit_array['GRP_ID'],  | 
                                                        |
| 2957 | + 'templateName' => $edit_array['template_name'],  | 
                                                        |
| 2958 | + );  | 
                                                        |
| 2959 | +			if ($success) { | 
                                                        |
| 2960 | + EE_Error::overwrite_success();  | 
                                                        |
| 2961 | + EE_Error::add_success(  | 
                                                        |
| 2962 | + esc_html__(  | 
                                                        |
| 2963 | + 'The new template has been created and automatically selected for this event. You can edit the new template by clicking the edit button. Note before this template is assigned to this event, the event must be saved.',  | 
                                                        |
| 2964 | + 'event_espresso'  | 
                                                        |
| 2965 | + )  | 
                                                        |
| 2966 | + );  | 
                                                        |
| 2967 | + }  | 
                                                        |
| 2968 | +  | 
                                                        |
| 2969 | + $this->_return_json();  | 
                                                        |
| 2970 | + }  | 
                                                        |
| 2971 | +  | 
                                                        |
| 2972 | +  | 
                                                        |
| 2973 | + // was a test send triggered?  | 
                                                        |
| 2974 | +		if (isset($this->_req_data['test_button'])) { | 
                                                        |
| 2975 | + EE_Error::overwrite_success();  | 
                                                        |
| 2976 | + $this->_do_test_send($context_slug, $messenger_slug, $message_type_slug);  | 
                                                        |
| 2977 | + $override = true;  | 
                                                        |
| 2978 | + }  | 
                                                        |
| 2979 | +  | 
                                                        |
| 2980 | +		if (empty($query_args)) { | 
                                                        |
| 2981 | + $query_args = array(  | 
                                                        |
| 2982 | + 'id' => $this->_req_data['GRP_ID'],  | 
                                                        |
| 2983 | + 'context' => $context_slug,  | 
                                                        |
| 2984 | + 'action' => 'edit_message_template',  | 
                                                        |
| 2985 | + );  | 
                                                        |
| 2986 | + }  | 
                                                        |
| 2987 | +  | 
                                                        |
| 2988 | + $this->_redirect_after_action($success, $item_desc, $action_desc, $query_args, $override);  | 
                                                        |
| 2989 | + }  | 
                                                        |
| 2990 | +  | 
                                                        |
| 2991 | +  | 
                                                        |
| 2992 | + /**  | 
                                                        |
| 2993 | + * processes a test send request to do an actual messenger delivery test for the given message template being tested  | 
                                                        |
| 2994 | + *  | 
                                                        |
| 2995 | + * @param string $context what context being tested  | 
                                                        |
| 2996 | + * @param string $messenger messenger being tested  | 
                                                        |
| 2997 | + * @param string $message_type message type being tested  | 
                                                        |
| 2998 | + * @throws EE_Error  | 
                                                        |
| 2999 | + * @throws InvalidArgumentException  | 
                                                        |
| 3000 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3001 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3002 | + */  | 
                                                        |
| 3003 | + protected function _do_test_send($context, $messenger, $message_type)  | 
                                                        |
| 3004 | +	{ | 
                                                        |
| 3005 | + // set things up for preview  | 
                                                        |
| 3006 | + $this->_req_data['messenger'] = $messenger;  | 
                                                        |
| 3007 | + $this->_req_data['message_type'] = $message_type;  | 
                                                        |
| 3008 | + $this->_req_data['context'] = $context;  | 
                                                        |
| 3009 | + $this->_req_data['GRP_ID'] = isset($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : '';  | 
                                                        |
| 3010 | + $active_messenger = $this->_message_resource_manager->get_active_messenger($messenger);  | 
                                                        |
| 3011 | +  | 
                                                        |
| 3012 | + // let's save any existing fields that might be required by the messenger  | 
                                                        |
| 3013 | + if (isset($this->_req_data['test_settings_fld'])  | 
                                                        |
| 3014 | + && $active_messenger instanceof EE_messenger  | 
                                                        |
| 3015 | + && apply_filters(  | 
                                                        |
| 3016 | + 'FHEE__Messages_Admin_Page__do_test_send__set_existing_test_settings',  | 
                                                        |
| 3017 | + true,  | 
                                                        |
| 3018 | + $this->_req_data['test_settings_fld'],  | 
                                                        |
| 3019 | + $active_messenger  | 
                                                        |
| 3020 | + )  | 
                                                        |
| 3021 | +		) { | 
                                                        |
| 3022 | + $active_messenger->set_existing_test_settings($this->_req_data['test_settings_fld']);  | 
                                                        |
| 3023 | + }  | 
                                                        |
| 3024 | +  | 
                                                        |
| 3025 | + /**  | 
                                                        |
| 3026 | + * Use filter to add additional controls on whether message can send or not  | 
                                                        |
| 3027 | + */  | 
                                                        |
| 3028 | + if (apply_filters(  | 
                                                        |
| 3029 | + 'FHEE__Messages_Admin_Page__do_test_send__can_send',  | 
                                                        |
| 3030 | + true,  | 
                                                        |
| 3031 | + $context,  | 
                                                        |
| 3032 | + $this->_req_data,  | 
                                                        |
| 3033 | + $messenger,  | 
                                                        |
| 3034 | + $message_type  | 
                                                        |
| 3035 | +		)) { | 
                                                        |
| 3036 | +			if (EEM_Event::instance()->count() > 0) { | 
                                                        |
| 3037 | + $success = $this->_preview_message(true);  | 
                                                        |
| 3038 | +				if ($success) { | 
                                                        |
| 3039 | +					EE_Error::add_success(__('Test message sent', 'event_espresso')); | 
                                                        |
| 3040 | +				} else { | 
                                                        |
| 3041 | + EE_Error::add_error(  | 
                                                        |
| 3042 | +						esc_html__('The test message was not sent', 'event_espresso'), | 
                                                        |
| 3043 | + __FILE__,  | 
                                                        |
| 3044 | + __FUNCTION__,  | 
                                                        |
| 3045 | + __LINE__  | 
                                                        |
| 3046 | + );  | 
                                                        |
| 3047 | + }  | 
                                                        |
| 3048 | +			} else { | 
                                                        |
| 3049 | + $this->noEventsErrorMessage(true);  | 
                                                        |
| 3050 | + }  | 
                                                        |
| 3051 | + }  | 
                                                        |
| 3052 | + }  | 
                                                        |
| 3053 | +  | 
                                                        |
| 3054 | +  | 
                                                        |
| 3055 | + /**  | 
                                                        |
| 3056 | + * _generate_new_templates  | 
                                                        |
| 3057 | + * This will handle the messenger, message_type selection when "adding a new custom template" for an event and will  | 
                                                        |
| 3058 | + * automatically create the defaults for the event. The user would then be redirected to edit the default context  | 
                                                        |
| 3059 | + * for the event.  | 
                                                        |
| 3060 | + *  | 
                                                        |
| 3061 | + *  | 
                                                        |
| 3062 | + * @param string $messenger the messenger we are generating templates for  | 
                                                        |
| 3063 | + * @param array $message_types array of message types that the templates are generated for.  | 
                                                        |
| 3064 | + * @param int $GRP_ID If this is a custom template being generated then a GRP_ID needs to be included to  | 
                                                        |
| 3065 | + * indicate the message_template_group being used as the base.  | 
                                                        |
| 3066 | + *  | 
                                                        |
| 3067 | + * @param bool $global  | 
                                                        |
| 3068 | + *  | 
                                                        |
| 3069 | + * @return array|bool array of data required for the redirect to the correct edit page or bool if  | 
                                                        |
| 3070 | + * encountering problems.  | 
                                                        |
| 3071 | + * @throws EE_Error  | 
                                                        |
| 3072 | + */  | 
                                                        |
| 3073 | + protected function _generate_new_templates($messenger, $message_types, $GRP_ID = 0, $global = false)  | 
                                                        |
| 3074 | +	{ | 
                                                        |
| 3075 | +  | 
                                                        |
| 3076 | + // if no $message_types are given then that's okay... this may be a messenger that just adds shortcodes, so we  | 
                                                        |
| 3077 | + // just don't generate any templates.  | 
                                                        |
| 3078 | +		if (empty($message_types)) { | 
                                                        |
| 3079 | + return true;  | 
                                                        |
| 3080 | + }  | 
                                                        |
| 3081 | +  | 
                                                        |
| 3082 | + return EEH_MSG_Template::generate_new_templates($messenger, $message_types, $GRP_ID, $global);  | 
                                                        |
| 3083 | + }  | 
                                                        |
| 3084 | +  | 
                                                        |
| 3085 | +  | 
                                                        |
| 3086 | + /**  | 
                                                        |
| 3087 | + * [_trash_or_restore_message_template]  | 
                                                        |
| 3088 | + *  | 
                                                        |
| 3089 | + * @param boolean $trash whether to move an item to trash/restore (TRUE) or restore it (FALSE)  | 
                                                        |
| 3090 | + * @param boolean $all whether this is going to trash/restore all contexts within a template group (TRUE) OR just  | 
                                                        |
| 3091 | + * an individual context (FALSE).  | 
                                                        |
| 3092 | + * @return void  | 
                                                        |
| 3093 | + * @throws EE_Error  | 
                                                        |
| 3094 | + * @throws InvalidArgumentException  | 
                                                        |
| 3095 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3096 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3097 | + */  | 
                                                        |
| 3098 | + protected function _trash_or_restore_message_template($trash = true, $all = false)  | 
                                                        |
| 3099 | +	{ | 
                                                        |
| 3100 | +		do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 3101 | + $MTP = EEM_Message_Template_Group::instance();  | 
                                                        |
| 3102 | +  | 
                                                        |
| 3103 | + $success = 1;  | 
                                                        |
| 3104 | +  | 
                                                        |
| 3105 | + // incoming GRP_IDs  | 
                                                        |
| 3106 | +		if ($all) { | 
                                                        |
| 3107 | + // Checkboxes  | 
                                                        |
| 3108 | +			if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3109 | + // if array has more than one element then success message should be plural.  | 
                                                        |
| 3110 | + // todo: what about nonce?  | 
                                                        |
| 3111 | + $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        |
| 3112 | +  | 
                                                        |
| 3113 | + // cycle through checkboxes  | 
                                                        |
| 3114 | +				while (list($GRP_ID, $value) = each($this->_req_data['checkbox'])) { | 
                                                        |
| 3115 | + $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        |
| 3116 | +					if (! $trashed_or_restored) { | 
                                                        |
| 3117 | + $success = 0;  | 
                                                        |
| 3118 | + }  | 
                                                        |
| 3119 | + }  | 
                                                        |
| 3120 | +			} else { | 
                                                        |
| 3121 | + // grab single GRP_ID and handle  | 
                                                        |
| 3122 | + $GRP_ID = isset($this->_req_data['id']) ? absint($this->_req_data['id']) : 0;  | 
                                                        |
| 3123 | +				if (! empty($GRP_ID)) { | 
                                                        |
| 3124 | + $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        |
| 3125 | +					if (! $trashed_or_restored) { | 
                                                        |
| 3126 | + $success = 0;  | 
                                                        |
| 3127 | + }  | 
                                                        |
| 3128 | +				} else { | 
                                                        |
| 3129 | + $success = 0;  | 
                                                        |
| 3130 | + }  | 
                                                        |
| 3131 | + }  | 
                                                        |
| 3132 | + }  | 
                                                        |
| 3133 | +  | 
                                                        |
| 3134 | + $action_desc = $trash  | 
                                                        |
| 3135 | +			? esc_html__('moved to the trash', 'event_espresso') | 
                                                        |
| 3136 | +			: esc_html__('restored', 'event_espresso'); | 
                                                        |
| 3137 | +  | 
                                                        |
| 3138 | +		$action_desc = ! empty($this->_req_data['template_switch']) ? esc_html__('switched', 'event_espresso') : $action_desc; | 
                                                        |
| 3139 | +  | 
                                                        |
| 3140 | + $item_desc = $all ? _n(  | 
                                                        |
| 3141 | + 'Message Template Group',  | 
                                                        |
| 3142 | + 'Message Template Groups',  | 
                                                        |
| 3143 | + $success,  | 
                                                        |
| 3144 | + 'event_espresso'  | 
                                                        |
| 3145 | +		) : _n('Message Template Context', 'Message Template Contexts', $success, 'event_espresso'); | 
                                                        |
| 3146 | +  | 
                                                        |
| 3147 | + $item_desc = ! empty($this->_req_data['template_switch']) ? _n(  | 
                                                        |
| 3148 | + 'template',  | 
                                                        |
| 3149 | + 'templates',  | 
                                                        |
| 3150 | + $success,  | 
                                                        |
| 3151 | + 'event_espresso'  | 
                                                        |
| 3152 | + ) : $item_desc;  | 
                                                        |
| 3153 | +  | 
                                                        |
| 3154 | + $this->_redirect_after_action($success, $item_desc, $action_desc, array());  | 
                                                        |
| 3155 | + }  | 
                                                        |
| 3156 | +  | 
                                                        |
| 3157 | +  | 
                                                        |
| 3158 | + /**  | 
                                                        |
| 3159 | + * [_delete_message_template]  | 
                                                        |
| 3160 | + * NOTE: this handles not only the deletion of the groups but also all the templates belonging to that group.  | 
                                                        |
| 3161 | + *  | 
                                                        |
| 3162 | + * @return void  | 
                                                        |
| 3163 | + * @throws EE_Error  | 
                                                        |
| 3164 | + * @throws InvalidArgumentException  | 
                                                        |
| 3165 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3166 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3167 | + */  | 
                                                        |
| 3168 | + protected function _delete_message_template()  | 
                                                        |
| 3169 | +	{ | 
                                                        |
| 3170 | +		do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        |
| 3171 | +  | 
                                                        |
| 3172 | + // checkboxes  | 
                                                        |
| 3173 | +		if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3174 | + // if array has more than one element then success message should be plural  | 
                                                        |
| 3175 | + $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        |
| 3176 | +  | 
                                                        |
| 3177 | + // cycle through bulk action checkboxes  | 
                                                        |
| 3178 | +			while (list($GRP_ID, $value) = each($this->_req_data['checkbox'])) { | 
                                                        |
| 3179 | + $success = $this->_delete_mtp_permanently($GRP_ID);  | 
                                                        |
| 3180 | + }  | 
                                                        |
| 3181 | +		} else { | 
                                                        |
| 3182 | + // grab single grp_id and delete  | 
                                                        |
| 3183 | + $GRP_ID = absint($this->_req_data['id']);  | 
                                                        |
| 3184 | + $success = $this->_delete_mtp_permanently($GRP_ID);  | 
                                                        |
| 3185 | + }  | 
                                                        |
| 3186 | +  | 
                                                        |
| 3187 | + $this->_redirect_after_action($success, 'Message Templates', 'deleted', array());  | 
                                                        |
| 3188 | + }  | 
                                                        |
| 3189 | +  | 
                                                        |
| 3190 | +  | 
                                                        |
| 3191 | + /**  | 
                                                        |
| 3192 | + * helper for permanently deleting a mtP group and all related message_templates  | 
                                                        |
| 3193 | + *  | 
                                                        |
| 3194 | + * @param int $GRP_ID The group being deleted  | 
                                                        |
| 3195 | + * @param bool $include_group whether to delete the Message Template Group as well.  | 
                                                        |
| 3196 | + * @return bool boolean to indicate the success of the deletes or not.  | 
                                                        |
| 3197 | + * @throws EE_Error  | 
                                                        |
| 3198 | + * @throws InvalidArgumentException  | 
                                                        |
| 3199 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3200 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3201 | + */  | 
                                                        |
| 3202 | + private function _delete_mtp_permanently($GRP_ID, $include_group = true)  | 
                                                        |
| 3203 | +	{ | 
                                                        |
| 3204 | + $success = 1;  | 
                                                        |
| 3205 | + $MTPG = EEM_Message_Template_Group::instance();  | 
                                                        |
| 3206 | + // first let's GET this group  | 
                                                        |
| 3207 | + $MTG = $MTPG->get_one_by_ID($GRP_ID);  | 
                                                        |
| 3208 | + // then delete permanently all the related Message Templates  | 
                                                        |
| 3209 | +		$deleted = $MTG->delete_related_permanently('Message_Template'); | 
                                                        |
| 3210 | +  | 
                                                        |
| 3211 | +		if ($deleted === 0) { | 
                                                        |
| 3212 | + $success = 0;  | 
                                                        |
| 3213 | + }  | 
                                                        |
| 3214 | +  | 
                                                        |
| 3215 | + // now delete permanently this particular group  | 
                                                        |
| 3216 | +  | 
                                                        |
| 3217 | +		if ($include_group && ! $MTG->delete_permanently()) { | 
                                                        |
| 3218 | + $success = 0;  | 
                                                        |
| 3219 | + }  | 
                                                        |
| 3220 | +  | 
                                                        |
| 3221 | + return $success;  | 
                                                        |
| 3222 | + }  | 
                                                        |
| 3223 | +  | 
                                                        |
| 3224 | +  | 
                                                        |
| 3225 | + /**  | 
                                                        |
| 3226 | + * _learn_more_about_message_templates_link  | 
                                                        |
| 3227 | + *  | 
                                                        |
| 3228 | + * @access protected  | 
                                                        |
| 3229 | + * @return string  | 
                                                        |
| 3230 | + */  | 
                                                        |
| 3231 | + protected function _learn_more_about_message_templates_link()  | 
                                                        |
| 3232 | +	{ | 
                                                        |
| 3233 | + return '<a class="hidden" style="margin:0 20px; cursor:pointer; font-size:12px;" >'  | 
                                                        |
| 3234 | +			   . esc_html__('learn more about how message templates works', 'event_espresso') | 
                                                        |
| 3235 | + . '</a>';  | 
                                                        |
| 3236 | + }  | 
                                                        |
| 3237 | +  | 
                                                        |
| 3238 | +  | 
                                                        |
| 3239 | + /**  | 
                                                        |
| 3240 | + * Used for setting up messenger/message type activation. This loads up the initial view. The rest is handled by  | 
                                                        |
| 3241 | + * ajax and other routes.  | 
                                                        |
| 3242 | + *  | 
                                                        |
| 3243 | + * @return void  | 
                                                        |
| 3244 | + * @throws DomainException  | 
                                                        |
| 3245 | + */  | 
                                                        |
| 3246 | + protected function _settings()  | 
                                                        |
| 3247 | +	{ | 
                                                        |
| 3248 | +  | 
                                                        |
| 3249 | +  | 
                                                        |
| 3250 | + $this->_set_m_mt_settings();  | 
                                                        |
| 3251 | +  | 
                                                        |
| 3252 | + $selected_messenger = isset($this->_req_data['selected_messenger'])  | 
                                                        |
| 3253 | + ? $this->_req_data['selected_messenger']  | 
                                                        |
| 3254 | + : 'email';  | 
                                                        |
| 3255 | +  | 
                                                        |
| 3256 | + // let's setup the messenger tabs  | 
                                                        |
| 3257 | + $this->_template_args['admin_page_header'] = EEH_Tabbed_Content::tab_text_links(  | 
                                                        |
| 3258 | + $this->_m_mt_settings['messenger_tabs'],  | 
                                                        |
| 3259 | + 'messenger_links',  | 
                                                        |
| 3260 | + '|',  | 
                                                        |
| 3261 | + $selected_messenger  | 
                                                        |
| 3262 | + );  | 
                                                        |
| 3263 | + $this->_template_args['before_admin_page_content'] = '<div class="ui-widget ui-helper-clearfix">';  | 
                                                        |
| 3264 | + $this->_template_args['after_admin_page_content'] = '</div><!-- end .ui-widget -->';  | 
                                                        |
| 3265 | +  | 
                                                        |
| 3266 | + $this->display_admin_page_with_sidebar();  | 
                                                        |
| 3267 | + }  | 
                                                        |
| 3268 | +  | 
                                                        |
| 3269 | +  | 
                                                        |
| 3270 | + /**  | 
                                                        |
| 3271 | + * This sets the $_m_mt_settings property for when needed (used on the Messages settings page)  | 
                                                        |
| 3272 | + *  | 
                                                        |
| 3273 | + * @access protected  | 
                                                        |
| 3274 | + * @return void  | 
                                                        |
| 3275 | + * @throws DomainException  | 
                                                        |
| 3276 | + */  | 
                                                        |
| 3277 | + protected function _set_m_mt_settings()  | 
                                                        |
| 3278 | +	{ | 
                                                        |
| 3279 | + // first if this is already set then lets get out no need to regenerate data.  | 
                                                        |
| 3280 | +		if (! empty($this->_m_mt_settings)) { | 
                                                        |
| 3281 | + return;  | 
                                                        |
| 3282 | + }  | 
                                                        |
| 3283 | +  | 
                                                        |
| 3284 | + // get all installed messengers and message_types  | 
                                                        |
| 3285 | + /** @type EE_messenger[] $messengers */  | 
                                                        |
| 3286 | + $messengers = $this->_message_resource_manager->installed_messengers();  | 
                                                        |
| 3287 | + /** @type EE_message_type[] $message_types */  | 
                                                        |
| 3288 | + $message_types = $this->_message_resource_manager->installed_message_types();  | 
                                                        |
| 3289 | +  | 
                                                        |
| 3290 | +  | 
                                                        |
| 3291 | + // assemble the array for the _tab_text_links helper  | 
                                                        |
| 3292 | +  | 
                                                        |
| 3293 | +		foreach ($messengers as $messenger) { | 
                                                        |
| 3294 | + $this->_m_mt_settings['messenger_tabs'][ $messenger->name ] = array(  | 
                                                        |
| 3295 | + 'label' => ucwords($messenger->label['singular']),  | 
                                                        |
| 3296 | + 'class' => $this->_message_resource_manager->is_messenger_active($messenger->name)  | 
                                                        |
| 3297 | + ? 'messenger-active'  | 
                                                        |
| 3298 | + : '',  | 
                                                        |
| 3299 | + 'href' => $messenger->name,  | 
                                                        |
| 3300 | +				'title' => esc_html__('Modify this Messenger', 'event_espresso'), | 
                                                        |
| 3301 | + 'slug' => $messenger->name,  | 
                                                        |
| 3302 | + 'obj' => $messenger,  | 
                                                        |
| 3303 | + );  | 
                                                        |
| 3304 | +  | 
                                                        |
| 3305 | +  | 
                                                        |
| 3306 | + $message_types_for_messenger = $messenger->get_valid_message_types();  | 
                                                        |
| 3307 | +  | 
                                                        |
| 3308 | +			foreach ($message_types as $message_type) { | 
                                                        |
| 3309 | + // first we need to verify that this message type is valid with this messenger. Cause if it isn't then  | 
                                                        |
| 3310 | + // it shouldn't show in either the inactive OR active metabox.  | 
                                                        |
| 3311 | +				if (! in_array($message_type->name, $message_types_for_messenger, true)) { | 
                                                        |
| 3312 | + continue;  | 
                                                        |
| 3313 | + }  | 
                                                        |
| 3314 | +  | 
                                                        |
| 3315 | + $a_or_i = $this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 3316 | + $messenger->name,  | 
                                                        |
| 3317 | + $message_type->name  | 
                                                        |
| 3318 | + )  | 
                                                        |
| 3319 | + ? 'active'  | 
                                                        |
| 3320 | + : 'inactive';  | 
                                                        |
| 3321 | +  | 
                                                        |
| 3322 | + $this->_m_mt_settings['message_type_tabs'][ $messenger->name ][ $a_or_i ][ $message_type->name ] = array(  | 
                                                        |
| 3323 | + 'label' => ucwords($message_type->label['singular']),  | 
                                                        |
| 3324 | + 'class' => 'message-type-' . $a_or_i,  | 
                                                        |
| 3325 | + 'slug_id' => $message_type->name . '-messagetype-' . $messenger->name,  | 
                                                        |
| 3326 | + 'mt_nonce' => wp_create_nonce($message_type->name . '_nonce'),  | 
                                                        |
| 3327 | + 'href' => 'espresso_' . $message_type->name . '_message_type_settings',  | 
                                                        |
| 3328 | + 'title' => $a_or_i === 'active'  | 
                                                        |
| 3329 | +						? esc_html__('Drag this message type to the Inactive window to deactivate', 'event_espresso') | 
                                                        |
| 3330 | +						: esc_html__('Drag this message type to the messenger to activate', 'event_espresso'), | 
                                                        |
| 3331 | + 'content' => $a_or_i === 'active'  | 
                                                        |
| 3332 | + ? $this->_message_type_settings_content($message_type, $messenger, true)  | 
                                                        |
| 3333 | + : $this->_message_type_settings_content($message_type, $messenger),  | 
                                                        |
| 3334 | + 'slug' => $message_type->name,  | 
                                                        |
| 3335 | + 'active' => $a_or_i === 'active',  | 
                                                        |
| 3336 | + 'obj' => $message_type,  | 
                                                        |
| 3337 | + );  | 
                                                        |
| 3338 | + }  | 
                                                        |
| 3339 | + }  | 
                                                        |
| 3340 | + }  | 
                                                        |
| 3341 | +  | 
                                                        |
| 3342 | +  | 
                                                        |
| 3343 | + /**  | 
                                                        |
| 3344 | + * This just prepares the content for the message type settings  | 
                                                        |
| 3345 | + *  | 
                                                        |
| 3346 | + * @param EE_message_type $message_type The message type object  | 
                                                        |
| 3347 | + * @param EE_messenger $messenger The messenger object  | 
                                                        |
| 3348 | + * @param boolean $active Whether the message type is active or not  | 
                                                        |
| 3349 | + * @return string html output for the content  | 
                                                        |
| 3350 | + * @throws DomainException  | 
                                                        |
| 3351 | + */  | 
                                                        |
| 3352 | + protected function _message_type_settings_content($message_type, $messenger, $active = false)  | 
                                                        |
| 3353 | +	{ | 
                                                        |
| 3354 | + // get message type fields  | 
                                                        |
| 3355 | + $fields = $message_type->get_admin_settings_fields();  | 
                                                        |
| 3356 | + $settings_template_args['template_form_fields'] = '';  | 
                                                        |
| 3357 | +  | 
                                                        |
| 3358 | +		if (! empty($fields) && $active) { | 
                                                        |
| 3359 | + $existing_settings = $message_type->get_existing_admin_settings($messenger->name);  | 
                                                        |
| 3360 | +			foreach ($fields as $fldname => $fldprops) { | 
                                                        |
| 3361 | + $field_id = $messenger->name . '-' . $message_type->name . '-' . $fldname;  | 
                                                        |
| 3362 | + $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3363 | + 'name' => 'message_type_settings[' . $fldname . ']',  | 
                                                        |
| 3364 | + 'label' => $fldprops['label'],  | 
                                                        |
| 3365 | + 'input' => $fldprops['field_type'],  | 
                                                        |
| 3366 | + 'type' => $fldprops['value_type'],  | 
                                                        |
| 3367 | + 'required' => $fldprops['required'],  | 
                                                        |
| 3368 | + 'validation' => $fldprops['validation'],  | 
                                                        |
| 3369 | + 'value' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3370 | + ? $existing_settings[ $fldname ]  | 
                                                        |
| 3371 | + : $fldprops['default'],  | 
                                                        |
| 3372 | + 'options' => isset($fldprops['options'])  | 
                                                        |
| 3373 | + ? $fldprops['options']  | 
                                                        |
| 3374 | + : array(),  | 
                                                        |
| 3375 | + 'default' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3376 | + ? $existing_settings[ $fldname ]  | 
                                                        |
| 3377 | + : $fldprops['default'],  | 
                                                        |
| 3378 | + 'css_class' => 'no-drag',  | 
                                                        |
| 3379 | + 'format' => $fldprops['format'],  | 
                                                        |
| 3380 | + );  | 
                                                        |
| 3381 | + }  | 
                                                        |
| 3382 | +  | 
                                                        |
| 3383 | +  | 
                                                        |
| 3384 | + $settings_template_args['template_form_fields'] = ! empty($template_form_field)  | 
                                                        |
| 3385 | + ? $this->_generate_admin_form_fields(  | 
                                                        |
| 3386 | + $template_form_field,  | 
                                                        |
| 3387 | + 'string',  | 
                                                        |
| 3388 | + 'ee_mt_activate_form'  | 
                                                        |
| 3389 | + )  | 
                                                        |
| 3390 | + : '';  | 
                                                        |
| 3391 | + }  | 
                                                        |
| 3392 | +  | 
                                                        |
| 3393 | + $settings_template_args['description'] = $message_type->description;  | 
                                                        |
| 3394 | + // we also need some hidden fields  | 
                                                        |
| 3395 | + $settings_template_args['hidden_fields'] = array(  | 
                                                        |
| 3396 | + 'message_type_settings[messenger]' => array(  | 
                                                        |
| 3397 | + 'type' => 'hidden',  | 
                                                        |
| 3398 | + 'value' => $messenger->name,  | 
                                                        |
| 3399 | + ),  | 
                                                        |
| 3400 | + 'message_type_settings[message_type]' => array(  | 
                                                        |
| 3401 | + 'type' => 'hidden',  | 
                                                        |
| 3402 | + 'value' => $message_type->name,  | 
                                                        |
| 3403 | + ),  | 
                                                        |
| 3404 | + 'type' => array(  | 
                                                        |
| 3405 | + 'type' => 'hidden',  | 
                                                        |
| 3406 | + 'value' => 'message_type',  | 
                                                        |
| 3407 | + ),  | 
                                                        |
| 3408 | + );  | 
                                                        |
| 3409 | +  | 
                                                        |
| 3410 | + $settings_template_args['hidden_fields'] = $this->_generate_admin_form_fields(  | 
                                                        |
| 3411 | + $settings_template_args['hidden_fields'],  | 
                                                        |
| 3412 | + 'array'  | 
                                                        |
| 3413 | + );  | 
                                                        |
| 3414 | + $settings_template_args['show_form'] = empty($settings_template_args['template_form_fields'])  | 
                                                        |
| 3415 | + ? ' hidden'  | 
                                                        |
| 3416 | + : '';  | 
                                                        |
| 3417 | +  | 
                                                        |
| 3418 | +  | 
                                                        |
| 3419 | + $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_mt_settings_content.template.php';  | 
                                                        |
| 3420 | + $content = EEH_Template::display_template($template, $settings_template_args, true);  | 
                                                        |
| 3421 | +  | 
                                                        |
| 3422 | + return $content;  | 
                                                        |
| 3423 | + }  | 
                                                        |
| 3424 | +  | 
                                                        |
| 3425 | +  | 
                                                        |
| 3426 | + /**  | 
                                                        |
| 3427 | + * Generate all the metaboxes for the message types and register them for the messages settings page.  | 
                                                        |
| 3428 | + *  | 
                                                        |
| 3429 | + * @access protected  | 
                                                        |
| 3430 | + * @return void  | 
                                                        |
| 3431 | + * @throws DomainException  | 
                                                        |
| 3432 | + */  | 
                                                        |
| 3433 | + protected function _messages_settings_metaboxes()  | 
                                                        |
| 3434 | +	{ | 
                                                        |
| 3435 | + $this->_set_m_mt_settings();  | 
                                                        |
| 3436 | + $m_boxes = $mt_boxes = array();  | 
                                                        |
| 3437 | + $m_template_args = $mt_template_args = array();  | 
                                                        |
| 3438 | +  | 
                                                        |
| 3439 | + $selected_messenger = isset($this->_req_data['selected_messenger'])  | 
                                                        |
| 3440 | + ? $this->_req_data['selected_messenger']  | 
                                                        |
| 3441 | + : 'email';  | 
                                                        |
| 3442 | +  | 
                                                        |
| 3443 | +		if (isset($this->_m_mt_settings['messenger_tabs'])) { | 
                                                        |
| 3444 | +			foreach ($this->_m_mt_settings['messenger_tabs'] as $messenger => $tab_array) { | 
                                                        |
| 3445 | + $hide_on_message = $this->_message_resource_manager->is_messenger_active($messenger) ? '' : 'hidden';  | 
                                                        |
| 3446 | + $hide_off_message = $this->_message_resource_manager->is_messenger_active($messenger) ? 'hidden' : '';  | 
                                                        |
| 3447 | + // messenger meta boxes  | 
                                                        |
| 3448 | + $active = $selected_messenger === $messenger;  | 
                                                        |
| 3449 | + $active_mt_tabs = isset(  | 
                                                        |
| 3450 | + $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3451 | + )  | 
                                                        |
| 3452 | + ? $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3453 | + : '';  | 
                                                        |
| 3454 | + $m_boxes[ $messenger . '_a_box' ] = sprintf(  | 
                                                        |
| 3455 | +					esc_html__('%s Settings', 'event_espresso'), | 
                                                        |
| 3456 | + $tab_array['label']  | 
                                                        |
| 3457 | + );  | 
                                                        |
| 3458 | + $m_template_args[ $messenger . '_a_box' ] = array(  | 
                                                        |
| 3459 | + 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        |
| 3460 | + 'inactive_message_types' => isset(  | 
                                                        |
| 3461 | + $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3462 | + )  | 
                                                        |
| 3463 | + ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3464 | + : '',  | 
                                                        |
| 3465 | + 'content' => $this->_get_messenger_box_content($tab_array['obj']),  | 
                                                        |
| 3466 | + 'hidden' => $active ? '' : ' hidden',  | 
                                                        |
| 3467 | + 'hide_on_message' => $hide_on_message,  | 
                                                        |
| 3468 | + 'messenger' => $messenger,  | 
                                                        |
| 3469 | + 'active' => $active,  | 
                                                        |
| 3470 | + );  | 
                                                        |
| 3471 | + // message type meta boxes  | 
                                                        |
| 3472 | + // (which is really just the inactive container for each messenger  | 
                                                        |
| 3473 | + // showing inactive message types for that messenger)  | 
                                                        |
| 3474 | +				$mt_boxes[ $messenger . '_i_box' ] = esc_html__('Inactive Message Types', 'event_espresso'); | 
                                                        |
| 3475 | + $mt_template_args[ $messenger . '_i_box' ] = array(  | 
                                                        |
| 3476 | + 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        |
| 3477 | + 'inactive_message_types' => isset(  | 
                                                        |
| 3478 | + $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3479 | + )  | 
                                                        |
| 3480 | + ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3481 | + : '',  | 
                                                        |
| 3482 | + 'hidden' => $active ? '' : ' hidden',  | 
                                                        |
| 3483 | + 'hide_on_message' => $hide_on_message,  | 
                                                        |
| 3484 | + 'hide_off_message' => $hide_off_message,  | 
                                                        |
| 3485 | + 'messenger' => $messenger,  | 
                                                        |
| 3486 | + 'active' => $active,  | 
                                                        |
| 3487 | + );  | 
                                                        |
| 3488 | + }  | 
                                                        |
| 3489 | + }  | 
                                                        |
| 3490 | +  | 
                                                        |
| 3491 | +  | 
                                                        |
| 3492 | + // register messenger metaboxes  | 
                                                        |
| 3493 | + $m_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_mt_meta_box.template.php';  | 
                                                        |
| 3494 | +		foreach ($m_boxes as $box => $label) { | 
                                                        |
| 3495 | +			$callback_args = array('template_path' => $m_template_path, 'template_args' => $m_template_args[ $box ]); | 
                                                        |
| 3496 | +			$msgr = str_replace('_a_box', '', $box); | 
                                                        |
| 3497 | + add_meta_box(  | 
                                                        |
| 3498 | + 'espresso_' . $msgr . '_settings',  | 
                                                        |
| 3499 | + $label,  | 
                                                        |
| 3500 | +				function ($post, $metabox) { | 
                                                        |
| 3501 | + echo EEH_Template::display_template(  | 
                                                        |
| 3502 | + $metabox["args"]["template_path"],  | 
                                                        |
| 3503 | + $metabox["args"]["template_args"],  | 
                                                        |
| 3504 | + true  | 
                                                        |
| 3505 | + );  | 
                                                        |
| 3506 | + },  | 
                                                        |
| 3507 | + $this->_current_screen->id,  | 
                                                        |
| 3508 | + 'normal',  | 
                                                        |
| 3509 | + 'high',  | 
                                                        |
| 3510 | + $callback_args  | 
                                                        |
| 3511 | + );  | 
                                                        |
| 3512 | + }  | 
                                                        |
| 3513 | +  | 
                                                        |
| 3514 | + // register message type metaboxes  | 
                                                        |
| 3515 | + $mt_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_meta_box.template.php';  | 
                                                        |
| 3516 | +		foreach ($mt_boxes as $box => $label) { | 
                                                        |
| 3517 | + $callback_args = array(  | 
                                                        |
| 3518 | + 'template_path' => $mt_template_path,  | 
                                                        |
| 3519 | + 'template_args' => $mt_template_args[ $box ],  | 
                                                        |
| 3520 | + );  | 
                                                        |
| 3521 | +			$mt = str_replace('_i_box', '', $box); | 
                                                        |
| 3522 | + add_meta_box(  | 
                                                        |
| 3523 | + 'espresso_' . $mt . '_inactive_mts',  | 
                                                        |
| 3524 | + $label,  | 
                                                        |
| 3525 | +				function ($post, $metabox) { | 
                                                        |
| 3526 | + echo EEH_Template::display_template(  | 
                                                        |
| 3527 | + $metabox["args"]["template_path"],  | 
                                                        |
| 3528 | + $metabox["args"]["template_args"],  | 
                                                        |
| 3529 | + true  | 
                                                        |
| 3530 | + );  | 
                                                        |
| 3531 | + },  | 
                                                        |
| 3532 | + $this->_current_screen->id,  | 
                                                        |
| 3533 | + 'side',  | 
                                                        |
| 3534 | + 'high',  | 
                                                        |
| 3535 | + $callback_args  | 
                                                        |
| 3536 | + );  | 
                                                        |
| 3537 | + }  | 
                                                        |
| 3538 | +  | 
                                                        |
| 3539 | + // register metabox for global messages settings but only when on the main site. On single site installs this  | 
                                                        |
| 3540 | + // will always result in the metabox showing, on multisite installs the metabox will only show on the main site.  | 
                                                        |
| 3541 | +		if (is_main_site()) { | 
                                                        |
| 3542 | + add_meta_box(  | 
                                                        |
| 3543 | + 'espresso_global_message_settings',  | 
                                                        |
| 3544 | +				esc_html__('Global Message Settings', 'event_espresso'), | 
                                                        |
| 3545 | + array($this, 'global_messages_settings_metabox_content'),  | 
                                                        |
| 3546 | + $this->_current_screen->id,  | 
                                                        |
| 3547 | + 'normal',  | 
                                                        |
| 3548 | + 'low',  | 
                                                        |
| 3549 | + array()  | 
                                                        |
| 3550 | + );  | 
                                                        |
| 3551 | + }  | 
                                                        |
| 3552 | + }  | 
                                                        |
| 3553 | +  | 
                                                        |
| 3554 | +  | 
                                                        |
| 3555 | + /**  | 
                                                        |
| 3556 | + * This generates the content for the global messages settings metabox.  | 
                                                        |
| 3557 | + *  | 
                                                        |
| 3558 | + * @return string  | 
                                                        |
| 3559 | + * @throws EE_Error  | 
                                                        |
| 3560 | + * @throws InvalidArgumentException  | 
                                                        |
| 3561 | + * @throws ReflectionException  | 
                                                        |
| 3562 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3563 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3564 | + */  | 
                                                        |
| 3565 | + public function global_messages_settings_metabox_content()  | 
                                                        |
| 3566 | +	{ | 
                                                        |
| 3567 | + $form = $this->_generate_global_settings_form();  | 
                                                        |
| 3568 | + echo $form->form_open(  | 
                                                        |
| 3569 | +			$this->add_query_args_and_nonce(array('action' => 'update_global_settings'), EE_MSG_ADMIN_URL), | 
                                                        |
| 3570 | + 'POST'  | 
                                                        |
| 3571 | + )  | 
                                                        |
| 3572 | + . $form->get_html()  | 
                                                        |
| 3573 | + . $form->form_close();  | 
                                                        |
| 3574 | + }  | 
                                                        |
| 3575 | +  | 
                                                        |
| 3576 | +  | 
                                                        |
| 3577 | + /**  | 
                                                        |
| 3578 | + * This generates and returns the form object for the global messages settings.  | 
                                                        |
| 3579 | + *  | 
                                                        |
| 3580 | + * @return EE_Form_Section_Proper  | 
                                                        |
| 3581 | + * @throws EE_Error  | 
                                                        |
| 3582 | + * @throws InvalidArgumentException  | 
                                                        |
| 3583 | + * @throws ReflectionException  | 
                                                        |
| 3584 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3585 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3586 | + */  | 
                                                        |
| 3587 | + protected function _generate_global_settings_form()  | 
                                                        |
| 3588 | +	{ | 
                                                        |
| 3589 | +		EE_Registry::instance()->load_helper('HTML'); | 
                                                        |
| 3590 | + /** @var EE_Network_Core_Config $network_config */  | 
                                                        |
| 3591 | + $network_config = EE_Registry::instance()->NET_CFG->core;  | 
                                                        |
| 3592 | +  | 
                                                        |
| 3593 | + return new EE_Form_Section_Proper(  | 
                                                        |
| 3594 | + array(  | 
                                                        |
| 3595 | + 'name' => 'global_messages_settings',  | 
                                                        |
| 3596 | + 'html_id' => 'global_messages_settings',  | 
                                                        |
| 3597 | + 'html_class' => 'form-table',  | 
                                                        |
| 3598 | + 'layout_strategy' => new EE_Admin_Two_Column_Layout(),  | 
                                                        |
| 3599 | + 'subsections' => apply_filters(  | 
                                                        |
| 3600 | + 'FHEE__Messages_Admin_Page__global_messages_settings_metabox_content__form_subsections',  | 
                                                        |
| 3601 | + array(  | 
                                                        |
| 3602 | + 'do_messages_on_same_request' => new EE_Select_Input(  | 
                                                        |
| 3603 | + array(  | 
                                                        |
| 3604 | +								true  => esc_html__("On the same request", "event_espresso"), | 
                                                        |
| 3605 | +								false => esc_html__("On a separate request", "event_espresso"), | 
                                                        |
| 3606 | + ),  | 
                                                        |
| 3607 | + array(  | 
                                                        |
| 3608 | + 'default' => $network_config->do_messages_on_same_request,  | 
                                                        |
| 3609 | + 'html_label_text' => esc_html__(  | 
                                                        |
| 3610 | + 'Generate and send all messages:',  | 
                                                        |
| 3611 | + 'event_espresso'  | 
                                                        |
| 3612 | + ),  | 
                                                        |
| 3613 | + 'html_help_text' => esc_html__(  | 
                                                        |
| 3614 | + 'By default the messages system uses a more efficient means of processing messages on separate requests and utilizes the wp-cron scheduling system. This makes things execute faster for people registering for your events. However, if the wp-cron system is disabled on your site and there is no alternative in place, then you can change this so messages are always executed on the same request.',  | 
                                                        |
| 3615 | + 'event_espresso'  | 
                                                        |
| 3616 | + ),  | 
                                                        |
| 3617 | + )  | 
                                                        |
| 3618 | + ),  | 
                                                        |
| 3619 | + 'delete_threshold' => new EE_Select_Input(  | 
                                                        |
| 3620 | + array(  | 
                                                        |
| 3621 | +								0  => esc_html__('Forever', 'event_espresso'), | 
                                                        |
| 3622 | +								3  => esc_html__('3 Months', 'event_espresso'), | 
                                                        |
| 3623 | +								6  => esc_html__('6 Months', 'event_espresso'), | 
                                                        |
| 3624 | +								9  => esc_html__('9 Months', 'event_espresso'), | 
                                                        |
| 3625 | +								12 => esc_html__('12 Months', 'event_espresso'), | 
                                                        |
| 3626 | +								24 => esc_html__('24 Months', 'event_espresso'), | 
                                                        |
| 3627 | +								36 => esc_html__('36 Months', 'event_espresso'), | 
                                                        |
| 3628 | + ),  | 
                                                        |
| 3629 | + array(  | 
                                                        |
| 3630 | + 'default' => EE_Registry::instance()->CFG->messages->delete_threshold,  | 
                                                        |
| 3631 | +								'html_label_text' => esc_html__('Cleanup of old messages:', 'event_espresso'), | 
                                                        |
| 3632 | + 'html_help_text' => esc_html__(  | 
                                                        |
| 3633 | + 'You can control how long a record of processed messages is kept via this option.',  | 
                                                        |
| 3634 | + 'event_espresso'  | 
                                                        |
| 3635 | + ),  | 
                                                        |
| 3636 | + )  | 
                                                        |
| 3637 | + ),  | 
                                                        |
| 3638 | + 'update_settings' => new EE_Submit_Input(  | 
                                                        |
| 3639 | + array(  | 
                                                        |
| 3640 | +								'default'         => esc_html__('Update', 'event_espresso'), | 
                                                        |
| 3641 | + 'html_label_text' => ' ',  | 
                                                        |
| 3642 | + )  | 
                                                        |
| 3643 | + ),  | 
                                                        |
| 3644 | + )  | 
                                                        |
| 3645 | + ),  | 
                                                        |
| 3646 | + )  | 
                                                        |
| 3647 | + );  | 
                                                        |
| 3648 | + }  | 
                                                        |
| 3649 | +  | 
                                                        |
| 3650 | +  | 
                                                        |
| 3651 | + /**  | 
                                                        |
| 3652 | + * This handles updating the global settings set on the admin page.  | 
                                                        |
| 3653 | + *  | 
                                                        |
| 3654 | + * @throws EE_Error  | 
                                                        |
| 3655 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3656 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3657 | + * @throws InvalidArgumentException  | 
                                                        |
| 3658 | + * @throws ReflectionException  | 
                                                        |
| 3659 | + */  | 
                                                        |
| 3660 | + protected function _update_global_settings()  | 
                                                        |
| 3661 | +	{ | 
                                                        |
| 3662 | + /** @var EE_Network_Core_Config $network_config */  | 
                                                        |
| 3663 | + $network_config = EE_Registry::instance()->NET_CFG->core;  | 
                                                        |
| 3664 | + $messages_config = EE_Registry::instance()->CFG->messages;  | 
                                                        |
| 3665 | + $form = $this->_generate_global_settings_form();  | 
                                                        |
| 3666 | +		if ($form->was_submitted()) { | 
                                                        |
| 3667 | + $form->receive_form_submission();  | 
                                                        |
| 3668 | +			if ($form->is_valid()) { | 
                                                        |
| 3669 | + $valid_data = $form->valid_data();  | 
                                                        |
| 3670 | +				foreach ($valid_data as $property => $value) { | 
                                                        |
| 3671 | + $setter = 'set_' . $property;  | 
                                                        |
| 3672 | +					if (method_exists($network_config, $setter)) { | 
                                                        |
| 3673 | +						$network_config->{$setter}($value); | 
                                                        |
| 3674 | + } elseif (property_exists($network_config, $property)  | 
                                                        |
| 3675 | +						&& $network_config->{$property} !== $value | 
                                                        |
| 3676 | +					) { | 
                                                        |
| 3677 | +						$network_config->{$property} = $value; | 
                                                        |
| 3678 | + } elseif (property_exists($messages_config, $property)  | 
                                                        |
| 3679 | +						&& $messages_config->{$property} !== $value | 
                                                        |
| 3680 | +					) { | 
                                                        |
| 3681 | +						$messages_config->{$property} = $value; | 
                                                        |
| 3682 | + }  | 
                                                        |
| 3683 | + }  | 
                                                        |
| 3684 | + // only update if the form submission was valid!  | 
                                                        |
| 3685 | + EE_Registry::instance()->NET_CFG->update_config(true, false);  | 
                                                        |
| 3686 | + EE_Registry::instance()->CFG->update_espresso_config();  | 
                                                        |
| 3687 | + EE_Error::overwrite_success();  | 
                                                        |
| 3688 | +				EE_Error::add_success(__('Global message settings were updated', 'event_espresso')); | 
                                                        |
| 3689 | + }  | 
                                                        |
| 3690 | + }  | 
                                                        |
| 3691 | +		$this->_redirect_after_action(0, '', '', array('action' => 'settings'), true); | 
                                                        |
| 3692 | + }  | 
                                                        |
| 3693 | +  | 
                                                        |
| 3694 | +  | 
                                                        |
| 3695 | + /**  | 
                                                        |
| 3696 | + * this prepares the messenger tabs that can be dragged in and out of messenger boxes to activate/deactivate  | 
                                                        |
| 3697 | + *  | 
                                                        |
| 3698 | + * @param array $tab_array This is an array of message type tab details used to generate the tabs  | 
                                                        |
| 3699 | + * @return string html formatted tabs  | 
                                                        |
| 3700 | + * @throws DomainException  | 
                                                        |
| 3701 | + */  | 
                                                        |
| 3702 | + protected function _get_mt_tabs($tab_array)  | 
                                                        |
| 3703 | +	{ | 
                                                        |
| 3704 | + $tab_array = (array) $tab_array;  | 
                                                        |
| 3705 | + $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_mt_settings_tab_item.template.php';  | 
                                                        |
| 3706 | + $tabs = '';  | 
                                                        |
| 3707 | +  | 
                                                        |
| 3708 | +		foreach ($tab_array as $tab) { | 
                                                        |
| 3709 | + $tabs .= EEH_Template::display_template($template, $tab, true);  | 
                                                        |
| 3710 | + }  | 
                                                        |
| 3711 | +  | 
                                                        |
| 3712 | + return $tabs;  | 
                                                        |
| 3713 | + }  | 
                                                        |
| 3714 | +  | 
                                                        |
| 3715 | +  | 
                                                        |
| 3716 | + /**  | 
                                                        |
| 3717 | + * This prepares the content of the messenger meta box admin settings  | 
                                                        |
| 3718 | + *  | 
                                                        |
| 3719 | + * @param EE_messenger $messenger The messenger we're setting up content for  | 
                                                        |
| 3720 | + * @return string html formatted content  | 
                                                        |
| 3721 | + * @throws DomainException  | 
                                                        |
| 3722 | + */  | 
                                                        |
| 3723 | + protected function _get_messenger_box_content(EE_messenger $messenger)  | 
                                                        |
| 3724 | +	{ | 
                                                        |
| 3725 | +  | 
                                                        |
| 3726 | + $fields = $messenger->get_admin_settings_fields();  | 
                                                        |
| 3727 | + $settings_template_args['template_form_fields'] = '';  | 
                                                        |
| 3728 | +  | 
                                                        |
| 3729 | + // is $messenger active?  | 
                                                        |
| 3730 | + $settings_template_args['active'] = $this->_message_resource_manager->is_messenger_active($messenger->name);  | 
                                                        |
| 3731 | +  | 
                                                        |
| 3732 | +  | 
                                                        |
| 3733 | +		if (! empty($fields)) { | 
                                                        |
| 3734 | + $existing_settings = $messenger->get_existing_admin_settings();  | 
                                                        |
| 3735 | +  | 
                                                        |
| 3736 | +			foreach ($fields as $fldname => $fldprops) { | 
                                                        |
| 3737 | + $field_id = $messenger->name . '-' . $fldname;  | 
                                                        |
| 3738 | + $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3739 | + 'name' => 'messenger_settings[' . $field_id . ']',  | 
                                                        |
| 3740 | + 'label' => $fldprops['label'],  | 
                                                        |
| 3741 | + 'input' => $fldprops['field_type'],  | 
                                                        |
| 3742 | + 'type' => $fldprops['value_type'],  | 
                                                        |
| 3743 | + 'required' => $fldprops['required'],  | 
                                                        |
| 3744 | + 'validation' => $fldprops['validation'],  | 
                                                        |
| 3745 | + 'value' => isset($existing_settings[ $field_id ])  | 
                                                        |
| 3746 | + ? $existing_settings[ $field_id ]  | 
                                                        |
| 3747 | + : $fldprops['default'],  | 
                                                        |
| 3748 | + 'css_class' => '',  | 
                                                        |
| 3749 | + 'format' => $fldprops['format'],  | 
                                                        |
| 3750 | + );  | 
                                                        |
| 3751 | + }  | 
                                                        |
| 3752 | +  | 
                                                        |
| 3753 | +  | 
                                                        |
| 3754 | + $settings_template_args['template_form_fields'] = ! empty($template_form_field)  | 
                                                        |
| 3755 | + ? $this->_generate_admin_form_fields($template_form_field, 'string', 'ee_m_activate_form')  | 
                                                        |
| 3756 | + : '';  | 
                                                        |
| 3757 | + }  | 
                                                        |
| 3758 | +  | 
                                                        |
| 3759 | + // we also need some hidden fields  | 
                                                        |
| 3760 | + $settings_template_args['hidden_fields'] = array(  | 
                                                        |
| 3761 | + 'messenger_settings[messenger]' => array(  | 
                                                        |
| 3762 | + 'type' => 'hidden',  | 
                                                        |
| 3763 | + 'value' => $messenger->name,  | 
                                                        |
| 3764 | + ),  | 
                                                        |
| 3765 | + 'type' => array(  | 
                                                        |
| 3766 | + 'type' => 'hidden',  | 
                                                        |
| 3767 | + 'value' => 'messenger',  | 
                                                        |
| 3768 | + ),  | 
                                                        |
| 3769 | + );  | 
                                                        |
| 3770 | +  | 
                                                        |
| 3771 | + // make sure any active message types that are existing are included in the hidden fields  | 
                                                        |
| 3772 | +		if (isset($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'])) { | 
                                                        |
| 3773 | +			foreach ($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'] as $mt => $values) { | 
                                                        |
| 3774 | + $settings_template_args['hidden_fields'][ 'messenger_settings[message_types][' . $mt . ']' ] = array(  | 
                                                        |
| 3775 | + 'type' => 'hidden',  | 
                                                        |
| 3776 | + 'value' => $mt,  | 
                                                        |
| 3777 | + );  | 
                                                        |
| 3778 | + }  | 
                                                        |
| 3779 | + }  | 
                                                        |
| 3780 | + $settings_template_args['hidden_fields'] = $this->_generate_admin_form_fields(  | 
                                                        |
| 3781 | + $settings_template_args['hidden_fields'],  | 
                                                        |
| 3782 | + 'array'  | 
                                                        |
| 3783 | + );  | 
                                                        |
| 3784 | + $active = $this->_message_resource_manager->is_messenger_active($messenger->name);  | 
                                                        |
| 3785 | +  | 
                                                        |
| 3786 | + $settings_template_args['messenger'] = $messenger->name;  | 
                                                        |
| 3787 | + $settings_template_args['description'] = $messenger->description;  | 
                                                        |
| 3788 | + $settings_template_args['show_hide_edit_form'] = $active ? '' : ' hidden';  | 
                                                        |
| 3789 | +  | 
                                                        |
| 3790 | +  | 
                                                        |
| 3791 | + $settings_template_args['show_hide_edit_form'] = $this->_message_resource_manager->is_messenger_active(  | 
                                                        |
| 3792 | + $messenger->name  | 
                                                        |
| 3793 | + )  | 
                                                        |
| 3794 | + ? $settings_template_args['show_hide_edit_form']  | 
                                                        |
| 3795 | + : ' hidden';  | 
                                                        |
| 3796 | +  | 
                                                        |
| 3797 | + $settings_template_args['show_hide_edit_form'] = empty($settings_template_args['template_form_fields'])  | 
                                                        |
| 3798 | + ? ' hidden'  | 
                                                        |
| 3799 | + : $settings_template_args['show_hide_edit_form'];  | 
                                                        |
| 3800 | +  | 
                                                        |
| 3801 | +  | 
                                                        |
| 3802 | + $settings_template_args['on_off_action'] = $active ? 'messenger-off' : 'messenger-on';  | 
                                                        |
| 3803 | +		$settings_template_args['nonce'] = wp_create_nonce('activate_' . $messenger->name . '_toggle_nonce'); | 
                                                        |
| 3804 | + $settings_template_args['on_off_status'] = $active ? true : false;  | 
                                                        |
| 3805 | + $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_m_settings_content.template.php';  | 
                                                        |
| 3806 | + $content = EEH_Template::display_template(  | 
                                                        |
| 3807 | + $template,  | 
                                                        |
| 3808 | + $settings_template_args,  | 
                                                        |
| 3809 | + true  | 
                                                        |
| 3810 | + );  | 
                                                        |
| 3811 | +  | 
                                                        |
| 3812 | + return $content;  | 
                                                        |
| 3813 | + }  | 
                                                        |
| 3814 | +  | 
                                                        |
| 3815 | +  | 
                                                        |
| 3816 | + /**  | 
                                                        |
| 3817 | + * used by ajax on the messages settings page to activate|deactivate the messenger  | 
                                                        |
| 3818 | + *  | 
                                                        |
| 3819 | + * @throws DomainException  | 
                                                        |
| 3820 | + * @throws EE_Error  | 
                                                        |
| 3821 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3822 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3823 | + * @throws InvalidArgumentException  | 
                                                        |
| 3824 | + * @throws ReflectionException  | 
                                                        |
| 3825 | + */  | 
                                                        |
| 3826 | + public function activate_messenger_toggle()  | 
                                                        |
| 3827 | +	{ | 
                                                        |
| 3828 | + $success = true;  | 
                                                        |
| 3829 | + $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        |
| 3830 | + // let's check that we have required data  | 
                                                        |
| 3831 | +		if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3832 | + EE_Error::add_error(  | 
                                                        |
| 3833 | +				esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3834 | + __FILE__,  | 
                                                        |
| 3835 | + __FUNCTION__,  | 
                                                        |
| 3836 | + __LINE__  | 
                                                        |
| 3837 | + );  | 
                                                        |
| 3838 | + $success = false;  | 
                                                        |
| 3839 | + }  | 
                                                        |
| 3840 | +  | 
                                                        |
| 3841 | + // do a nonce check here since we're not arriving via a normal route  | 
                                                        |
| 3842 | + $nonce = isset($this->_req_data['activate_nonce'])  | 
                                                        |
| 3843 | + ? sanitize_text_field($this->_req_data['activate_nonce'])  | 
                                                        |
| 3844 | + : '';  | 
                                                        |
| 3845 | + $nonce_ref = 'activate_' . $this->_req_data['messenger'] . '_toggle_nonce';  | 
                                                        |
| 3846 | +  | 
                                                        |
| 3847 | + $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 3848 | +  | 
                                                        |
| 3849 | +  | 
                                                        |
| 3850 | +		if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3851 | + EE_Error::add_error(  | 
                                                        |
| 3852 | + esc_html__(  | 
                                                        |
| 3853 | + 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        |
| 3854 | + 'event_espresso'  | 
                                                        |
| 3855 | + ),  | 
                                                        |
| 3856 | + __FILE__,  | 
                                                        |
| 3857 | + __FUNCTION__,  | 
                                                        |
| 3858 | + __LINE__  | 
                                                        |
| 3859 | + );  | 
                                                        |
| 3860 | + $success = false;  | 
                                                        |
| 3861 | + }  | 
                                                        |
| 3862 | +  | 
                                                        |
| 3863 | + // do check to verify we have a valid status.  | 
                                                        |
| 3864 | + $status = $this->_req_data['status'];  | 
                                                        |
| 3865 | +  | 
                                                        |
| 3866 | +		if ($status !== 'off' && $status !== 'on') { | 
                                                        |
| 3867 | + EE_Error::add_error(  | 
                                                        |
| 3868 | + sprintf(  | 
                                                        |
| 3869 | +					esc_html__('The given status (%s) is not valid. Must be "off" or "on"', 'event_espresso'), | 
                                                        |
| 3870 | + $this->_req_data['status']  | 
                                                        |
| 3871 | + ),  | 
                                                        |
| 3872 | + __FILE__,  | 
                                                        |
| 3873 | + __FUNCTION__,  | 
                                                        |
| 3874 | + __LINE__  | 
                                                        |
| 3875 | + );  | 
                                                        |
| 3876 | + $success = false;  | 
                                                        |
| 3877 | + }  | 
                                                        |
| 3878 | +  | 
                                                        |
| 3879 | +		if ($success) { | 
                                                        |
| 3880 | + // made it here? Stop dawdling then!!  | 
                                                        |
| 3881 | + $success = $status === 'off'  | 
                                                        |
| 3882 | + ? $this->_deactivate_messenger($this->_req_data['messenger'])  | 
                                                        |
| 3883 | + : $this->_activate_messenger($this->_req_data['messenger']);  | 
                                                        |
| 3884 | + }  | 
                                                        |
| 3885 | +  | 
                                                        |
| 3886 | + $this->_template_args['success'] = $success;  | 
                                                        |
| 3887 | +  | 
                                                        |
| 3888 | + // no special instructions so let's just do the json return (which should automatically do all the special stuff).  | 
                                                        |
| 3889 | + $this->_return_json();  | 
                                                        |
| 3890 | + }  | 
                                                        |
| 3891 | +  | 
                                                        |
| 3892 | +  | 
                                                        |
| 3893 | + /**  | 
                                                        |
| 3894 | + * used by ajax from the messages settings page to activate|deactivate a message type  | 
                                                        |
| 3895 | + *  | 
                                                        |
| 3896 | + * @throws DomainException  | 
                                                        |
| 3897 | + * @throws EE_Error  | 
                                                        |
| 3898 | + * @throws ReflectionException  | 
                                                        |
| 3899 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3900 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3901 | + * @throws InvalidArgumentException  | 
                                                        |
| 3902 | + */  | 
                                                        |
| 3903 | + public function activate_mt_toggle()  | 
                                                        |
| 3904 | +	{ | 
                                                        |
| 3905 | + $success = true;  | 
                                                        |
| 3906 | + $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        |
| 3907 | +  | 
                                                        |
| 3908 | + // let's make sure we have the necessary data  | 
                                                        |
| 3909 | +		if (! isset($this->_req_data['message_type'])) { | 
                                                        |
| 3910 | + EE_Error::add_error(  | 
                                                        |
| 3911 | +				esc_html__('Message Type name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3912 | + __FILE__,  | 
                                                        |
| 3913 | + __FUNCTION__,  | 
                                                        |
| 3914 | + __LINE__  | 
                                                        |
| 3915 | + );  | 
                                                        |
| 3916 | + $success = false;  | 
                                                        |
| 3917 | + }  | 
                                                        |
| 3918 | +  | 
                                                        |
| 3919 | +		if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3920 | + EE_Error::add_error(  | 
                                                        |
| 3921 | +				esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        |
| 3922 | + __FILE__,  | 
                                                        |
| 3923 | + __FUNCTION__,  | 
                                                        |
| 3924 | + __LINE__  | 
                                                        |
| 3925 | + );  | 
                                                        |
| 3926 | + $success = false;  | 
                                                        |
| 3927 | + }  | 
                                                        |
| 3928 | +  | 
                                                        |
| 3929 | +		if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3930 | + EE_Error::add_error(  | 
                                                        |
| 3931 | + esc_html__(  | 
                                                        |
| 3932 | + 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        |
| 3933 | + 'event_espresso'  | 
                                                        |
| 3934 | + ),  | 
                                                        |
| 3935 | + __FILE__,  | 
                                                        |
| 3936 | + __FUNCTION__,  | 
                                                        |
| 3937 | + __LINE__  | 
                                                        |
| 3938 | + );  | 
                                                        |
| 3939 | + $success = false;  | 
                                                        |
| 3940 | + }  | 
                                                        |
| 3941 | +  | 
                                                        |
| 3942 | +  | 
                                                        |
| 3943 | + // do check to verify we have a valid status.  | 
                                                        |
| 3944 | + $status = $this->_req_data['status'];  | 
                                                        |
| 3945 | +  | 
                                                        |
| 3946 | +		if ($status !== 'activate' && $status !== 'deactivate') { | 
                                                        |
| 3947 | + EE_Error::add_error(  | 
                                                        |
| 3948 | + sprintf(  | 
                                                        |
| 3949 | +					esc_html__('The given status (%s) is not valid. Must be "active" or "inactive"', 'event_espresso'), | 
                                                        |
| 3950 | + $this->_req_data['status']  | 
                                                        |
| 3951 | + ),  | 
                                                        |
| 3952 | + __FILE__,  | 
                                                        |
| 3953 | + __FUNCTION__,  | 
                                                        |
| 3954 | + __LINE__  | 
                                                        |
| 3955 | + );  | 
                                                        |
| 3956 | + $success = false;  | 
                                                        |
| 3957 | + }  | 
                                                        |
| 3958 | +  | 
                                                        |
| 3959 | +  | 
                                                        |
| 3960 | + // do a nonce check here since we're not arriving via a normal route  | 
                                                        |
| 3961 | + $nonce = isset($this->_req_data['mt_nonce']) ? sanitize_text_field($this->_req_data['mt_nonce']) : '';  | 
                                                        |
| 3962 | + $nonce_ref = $this->_req_data['message_type'] . '_nonce';  | 
                                                        |
| 3963 | +  | 
                                                        |
| 3964 | + $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        |
| 3965 | +  | 
                                                        |
| 3966 | +		if ($success) { | 
                                                        |
| 3967 | + // made it here? um, what are you waiting for then?  | 
                                                        |
| 3968 | + $success = $status === 'deactivate'  | 
                                                        |
| 3969 | + ? $this->_deactivate_message_type_for_messenger(  | 
                                                        |
| 3970 | + $this->_req_data['messenger'],  | 
                                                        |
| 3971 | + $this->_req_data['message_type']  | 
                                                        |
| 3972 | + )  | 
                                                        |
| 3973 | + : $this->_activate_message_type_for_messenger(  | 
                                                        |
| 3974 | + $this->_req_data['messenger'],  | 
                                                        |
| 3975 | + $this->_req_data['message_type']  | 
                                                        |
| 3976 | + );  | 
                                                        |
| 3977 | + }  | 
                                                        |
| 3978 | +  | 
                                                        |
| 3979 | + $this->_template_args['success'] = $success;  | 
                                                        |
| 3980 | + $this->_return_json();  | 
                                                        |
| 3981 | + }  | 
                                                        |
| 3982 | +  | 
                                                        |
| 3983 | +  | 
                                                        |
| 3984 | + /**  | 
                                                        |
| 3985 | + * Takes care of processing activating a messenger and preparing the appropriate response.  | 
                                                        |
| 3986 | + *  | 
                                                        |
| 3987 | + * @param string $messenger_name The name of the messenger being activated  | 
                                                        |
| 3988 | + * @return bool  | 
                                                        |
| 3989 | + * @throws DomainException  | 
                                                        |
| 3990 | + * @throws EE_Error  | 
                                                        |
| 3991 | + * @throws InvalidArgumentException  | 
                                                        |
| 3992 | + * @throws ReflectionException  | 
                                                        |
| 3993 | + * @throws InvalidDataTypeException  | 
                                                        |
| 3994 | + * @throws InvalidInterfaceException  | 
                                                        |
| 3995 | + */  | 
                                                        |
| 3996 | + protected function _activate_messenger($messenger_name)  | 
                                                        |
| 3997 | +	{ | 
                                                        |
| 3998 | + /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 3999 | + $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4000 | + $message_types_to_activate = $active_messenger instanceof EE_Messenger  | 
                                                        |
| 4001 | + ? $active_messenger->get_default_message_types()  | 
                                                        |
| 4002 | + : array();  | 
                                                        |
| 4003 | +  | 
                                                        |
| 4004 | + // ensure is active  | 
                                                        |
| 4005 | + $this->_message_resource_manager->activate_messenger($messenger_name, $message_types_to_activate);  | 
                                                        |
| 4006 | +  | 
                                                        |
| 4007 | + // set response_data for reload  | 
                                                        |
| 4008 | +		foreach ($message_types_to_activate as $message_type_name) { | 
                                                        |
| 4009 | + /** @var EE_message_type $message_type */  | 
                                                        |
| 4010 | + $message_type = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4011 | + if ($this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 4012 | + $messenger_name,  | 
                                                        |
| 4013 | + $message_type_name  | 
                                                        |
| 4014 | + )  | 
                                                        |
| 4015 | + && $message_type instanceof EE_message_type  | 
                                                        |
| 4016 | +			) { | 
                                                        |
| 4017 | + $this->_template_args['data']['active_mts'][] = $message_type_name;  | 
                                                        |
| 4018 | +				if ($message_type->get_admin_settings_fields()) { | 
                                                        |
| 4019 | + $this->_template_args['data']['mt_reload'][] = $message_type_name;  | 
                                                        |
| 4020 | + }  | 
                                                        |
| 4021 | + }  | 
                                                        |
| 4022 | + }  | 
                                                        |
| 4023 | +  | 
                                                        |
| 4024 | + // add success message for activating messenger  | 
                                                        |
| 4025 | + return $this->_setup_response_message_for_activating_messenger_with_message_types($active_messenger);  | 
                                                        |
| 4026 | + }  | 
                                                        |
| 4027 | +  | 
                                                        |
| 4028 | +  | 
                                                        |
| 4029 | + /**  | 
                                                        |
| 4030 | + * Takes care of processing deactivating a messenger and preparing the appropriate response.  | 
                                                        |
| 4031 | + *  | 
                                                        |
| 4032 | + * @param string $messenger_name The name of the messenger being activated  | 
                                                        |
| 4033 | + * @return bool  | 
                                                        |
| 4034 | + * @throws DomainException  | 
                                                        |
| 4035 | + * @throws EE_Error  | 
                                                        |
| 4036 | + * @throws InvalidArgumentException  | 
                                                        |
| 4037 | + * @throws ReflectionException  | 
                                                        |
| 4038 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4039 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4040 | + */  | 
                                                        |
| 4041 | + protected function _deactivate_messenger($messenger_name)  | 
                                                        |
| 4042 | +	{ | 
                                                        |
| 4043 | + /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4044 | + $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4045 | + $this->_message_resource_manager->deactivate_messenger($messenger_name);  | 
                                                        |
| 4046 | +  | 
                                                        |
| 4047 | + return $this->_setup_response_message_for_deactivating_messenger_with_message_types($active_messenger);  | 
                                                        |
| 4048 | + }  | 
                                                        |
| 4049 | +  | 
                                                        |
| 4050 | +  | 
                                                        |
| 4051 | + /**  | 
                                                        |
| 4052 | + * Takes care of processing activating a message type for a messenger and preparing the appropriate response.  | 
                                                        |
| 4053 | + *  | 
                                                        |
| 4054 | + * @param string $messenger_name The name of the messenger the message type is being activated for.  | 
                                                        |
| 4055 | + * @param string $message_type_name The name of the message type being activated for the messenger  | 
                                                        |
| 4056 | + * @return bool  | 
                                                        |
| 4057 | + * @throws DomainException  | 
                                                        |
| 4058 | + * @throws EE_Error  | 
                                                        |
| 4059 | + * @throws InvalidArgumentException  | 
                                                        |
| 4060 | + * @throws ReflectionException  | 
                                                        |
| 4061 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4062 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4063 | + */  | 
                                                        |
| 4064 | + protected function _activate_message_type_for_messenger($messenger_name, $message_type_name)  | 
                                                        |
| 4065 | +	{ | 
                                                        |
| 4066 | + /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4067 | + $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4068 | + /** @var EE_message_type $message_type_to_activate This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4069 | + $message_type_to_activate = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4070 | +  | 
                                                        |
| 4071 | + // ensure is active  | 
                                                        |
| 4072 | + $this->_message_resource_manager->activate_messenger($messenger_name, $message_type_name);  | 
                                                        |
| 4073 | +  | 
                                                        |
| 4074 | + // set response for load  | 
                                                        |
| 4075 | + if ($this->_message_resource_manager->is_message_type_active_for_messenger(  | 
                                                        |
| 4076 | + $messenger_name,  | 
                                                        |
| 4077 | + $message_type_name  | 
                                                        |
| 4078 | + )  | 
                                                        |
| 4079 | +		) { | 
                                                        |
| 4080 | + $this->_template_args['data']['active_mts'][] = $message_type_name;  | 
                                                        |
| 4081 | +			if ($message_type_to_activate->get_admin_settings_fields()) { | 
                                                        |
| 4082 | + $this->_template_args['data']['mt_reload'][] = $message_type_name;  | 
                                                        |
| 4083 | + }  | 
                                                        |
| 4084 | + }  | 
                                                        |
| 4085 | +  | 
                                                        |
| 4086 | + return $this->_setup_response_message_for_activating_messenger_with_message_types(  | 
                                                        |
| 4087 | + $active_messenger,  | 
                                                        |
| 4088 | + $message_type_to_activate  | 
                                                        |
| 4089 | + );  | 
                                                        |
| 4090 | + }  | 
                                                        |
| 4091 | +  | 
                                                        |
| 4092 | +  | 
                                                        |
| 4093 | + /**  | 
                                                        |
| 4094 | + * Takes care of processing deactivating a message type for a messenger and preparing the appropriate response.  | 
                                                        |
| 4095 | + *  | 
                                                        |
| 4096 | + * @param string $messenger_name The name of the messenger the message type is being deactivated for.  | 
                                                        |
| 4097 | + * @param string $message_type_name The name of the message type being deactivated for the messenger  | 
                                                        |
| 4098 | + * @return bool  | 
                                                        |
| 4099 | + * @throws DomainException  | 
                                                        |
| 4100 | + * @throws EE_Error  | 
                                                        |
| 4101 | + * @throws InvalidArgumentException  | 
                                                        |
| 4102 | + * @throws ReflectionException  | 
                                                        |
| 4103 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4104 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4105 | + */  | 
                                                        |
| 4106 | + protected function _deactivate_message_type_for_messenger($messenger_name, $message_type_name)  | 
                                                        |
| 4107 | +	{ | 
                                                        |
| 4108 | + /** @var EE_messenger $active_messenger This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4109 | + $active_messenger = $this->_message_resource_manager->get_messenger($messenger_name);  | 
                                                        |
| 4110 | + /** @var EE_message_type $message_type_to_activate This will be present because it can't be toggled if it isn't */  | 
                                                        |
| 4111 | + $message_type_to_deactivate = $this->_message_resource_manager->get_message_type($message_type_name);  | 
                                                        |
| 4112 | + $this->_message_resource_manager->deactivate_message_type_for_messenger($message_type_name, $messenger_name);  | 
                                                        |
| 4113 | +  | 
                                                        |
| 4114 | + return $this->_setup_response_message_for_deactivating_messenger_with_message_types(  | 
                                                        |
| 4115 | + $active_messenger,  | 
                                                        |
| 4116 | + $message_type_to_deactivate  | 
                                                        |
| 4117 | + );  | 
                                                        |
| 4118 | + }  | 
                                                        |
| 4119 | +  | 
                                                        |
| 4120 | +  | 
                                                        |
| 4121 | + /**  | 
                                                        |
| 4122 | + * This just initializes the defaults for activating messenger and message type responses.  | 
                                                        |
| 4123 | + */  | 
                                                        |
| 4124 | + protected function _prep_default_response_for_messenger_or_message_type_toggle()  | 
                                                        |
| 4125 | +	{ | 
                                                        |
| 4126 | + $this->_template_args['data']['active_mts'] = array();  | 
                                                        |
| 4127 | + $this->_template_args['data']['mt_reload'] = array();  | 
                                                        |
| 4128 | + }  | 
                                                        |
| 4129 | +  | 
                                                        |
| 4130 | +  | 
                                                        |
| 4131 | + /**  | 
                                                        |
| 4132 | + * Setup appropriate response for activating a messenger and/or message types  | 
                                                        |
| 4133 | + *  | 
                                                        |
| 4134 | + * @param EE_messenger $messenger  | 
                                                        |
| 4135 | + * @param EE_message_type|null $message_type  | 
                                                        |
| 4136 | + * @return bool  | 
                                                        |
| 4137 | + * @throws DomainException  | 
                                                        |
| 4138 | + * @throws EE_Error  | 
                                                        |
| 4139 | + * @throws InvalidArgumentException  | 
                                                        |
| 4140 | + * @throws ReflectionException  | 
                                                        |
| 4141 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4142 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4143 | + */  | 
                                                        |
| 4144 | + protected function _setup_response_message_for_activating_messenger_with_message_types(  | 
                                                        |
| 4145 | + $messenger,  | 
                                                        |
| 4146 | + EE_Message_Type $message_type = null  | 
                                                        |
| 4147 | +	) { | 
                                                        |
| 4148 | + // if $messenger isn't a valid messenger object then get out.  | 
                                                        |
| 4149 | +		if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4150 | + EE_Error::add_error(  | 
                                                        |
| 4151 | +				esc_html__('The messenger being activated is not a valid messenger', 'event_espresso'), | 
                                                        |
| 4152 | + __FILE__,  | 
                                                        |
| 4153 | + __FUNCTION__,  | 
                                                        |
| 4154 | + __LINE__  | 
                                                        |
| 4155 | + );  | 
                                                        |
| 4156 | +  | 
                                                        |
| 4157 | + return false;  | 
                                                        |
| 4158 | + }  | 
                                                        |
| 4159 | + // activated  | 
                                                        |
| 4160 | +		if ($this->_template_args['data']['active_mts']) { | 
                                                        |
| 4161 | + EE_Error::overwrite_success();  | 
                                                        |
| 4162 | + // activated a message type with the messenger  | 
                                                        |
| 4163 | +			if ($message_type instanceof EE_message_type) { | 
                                                        |
| 4164 | + EE_Error::add_success(  | 
                                                        |
| 4165 | + sprintf(  | 
                                                        |
| 4166 | + esc_html__(  | 
                                                        |
| 4167 | + '%s message type has been successfully activated with the %s messenger',  | 
                                                        |
| 4168 | + 'event_espresso'  | 
                                                        |
| 4169 | + ),  | 
                                                        |
| 4170 | + ucwords($message_type->label['singular']),  | 
                                                        |
| 4171 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4172 | + )  | 
                                                        |
| 4173 | + );  | 
                                                        |
| 4174 | +  | 
                                                        |
| 4175 | + // if message type was invoice then let's make sure we activate the invoice payment method.  | 
                                                        |
| 4176 | +				if ($message_type->name === 'invoice') { | 
                                                        |
| 4177 | +					EE_Registry::instance()->load_lib('Payment_Method_Manager'); | 
                                                        |
| 4178 | +					$pm = EE_Payment_Method_Manager::instance()->activate_a_payment_method_of_type('Invoice'); | 
                                                        |
| 4179 | +					if ($pm instanceof EE_Payment_Method) { | 
                                                        |
| 4180 | + EE_Error::add_attention(  | 
                                                        |
| 4181 | + esc_html__(  | 
                                                        |
| 4182 | + 'Activating the invoice message type also automatically activates the invoice payment method. If you do not wish the invoice payment method to be active, or to change its settings, visit the payment method admin page.',  | 
                                                        |
| 4183 | + 'event_espresso'  | 
                                                        |
| 4184 | + )  | 
                                                        |
| 4185 | + );  | 
                                                        |
| 4186 | + }  | 
                                                        |
| 4187 | + }  | 
                                                        |
| 4188 | + // just toggles the entire messenger  | 
                                                        |
| 4189 | +			} else { | 
                                                        |
| 4190 | + EE_Error::add_success(  | 
                                                        |
| 4191 | + sprintf(  | 
                                                        |
| 4192 | +						esc_html__('%s messenger has been successfully activated', 'event_espresso'), | 
                                                        |
| 4193 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4194 | + )  | 
                                                        |
| 4195 | + );  | 
                                                        |
| 4196 | + }  | 
                                                        |
| 4197 | +  | 
                                                        |
| 4198 | + return true;  | 
                                                        |
| 4199 | +  | 
                                                        |
| 4200 | + // possible error condition. This will happen when our active_mts data is empty because it is validated for actual active  | 
                                                        |
| 4201 | + // message types after the activation process. However its possible some messengers don't HAVE any default_message_types  | 
                                                        |
| 4202 | + // in which case we just give a success message for the messenger being successfully activated.  | 
                                                        |
| 4203 | +		} else { | 
                                                        |
| 4204 | +			if (! $messenger->get_default_message_types()) { | 
                                                        |
| 4205 | + // messenger doesn't have any default message types so still a success.  | 
                                                        |
| 4206 | + EE_Error::add_success(  | 
                                                        |
| 4207 | + sprintf(  | 
                                                        |
| 4208 | +						esc_html__('%s messenger was successfully activated.', 'event_espresso'), | 
                                                        |
| 4209 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4210 | + )  | 
                                                        |
| 4211 | + );  | 
                                                        |
| 4212 | +  | 
                                                        |
| 4213 | + return true;  | 
                                                        |
| 4214 | +			} else { | 
                                                        |
| 4215 | + EE_Error::add_error(  | 
                                                        |
| 4216 | + $message_type instanceof EE_message_type  | 
                                                        |
| 4217 | + ? sprintf(  | 
                                                        |
| 4218 | + esc_html__(  | 
                                                        |
| 4219 | + '%s message type was not successfully activated with the %s messenger',  | 
                                                        |
| 4220 | + 'event_espresso'  | 
                                                        |
| 4221 | + ),  | 
                                                        |
| 4222 | + ucwords($message_type->label['singular']),  | 
                                                        |
| 4223 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4224 | + )  | 
                                                        |
| 4225 | + : sprintf(  | 
                                                        |
| 4226 | +							esc_html__('%s messenger was not successfully activated', 'event_espresso'), | 
                                                        |
| 4227 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4228 | + ),  | 
                                                        |
| 4229 | + __FILE__,  | 
                                                        |
| 4230 | + __FUNCTION__,  | 
                                                        |
| 4231 | + __LINE__  | 
                                                        |
| 4232 | + );  | 
                                                        |
| 4233 | +  | 
                                                        |
| 4234 | + return false;  | 
                                                        |
| 4235 | + }  | 
                                                        |
| 4236 | + }  | 
                                                        |
| 4237 | + }  | 
                                                        |
| 4238 | +  | 
                                                        |
| 4239 | +  | 
                                                        |
| 4240 | + /**  | 
                                                        |
| 4241 | + * This sets up the appropriate response for deactivating a messenger and/or message type.  | 
                                                        |
| 4242 | + *  | 
                                                        |
| 4243 | + * @param EE_messenger $messenger  | 
                                                        |
| 4244 | + * @param EE_message_type|null $message_type  | 
                                                        |
| 4245 | + * @return bool  | 
                                                        |
| 4246 | + * @throws DomainException  | 
                                                        |
| 4247 | + * @throws EE_Error  | 
                                                        |
| 4248 | + * @throws InvalidArgumentException  | 
                                                        |
| 4249 | + * @throws ReflectionException  | 
                                                        |
| 4250 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4251 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4252 | + */  | 
                                                        |
| 4253 | + protected function _setup_response_message_for_deactivating_messenger_with_message_types(  | 
                                                        |
| 4254 | + $messenger,  | 
                                                        |
| 4255 | + EE_message_type $message_type = null  | 
                                                        |
| 4256 | +	) { | 
                                                        |
| 4257 | + EE_Error::overwrite_success();  | 
                                                        |
| 4258 | +  | 
                                                        |
| 4259 | + // if $messenger isn't a valid messenger object then get out.  | 
                                                        |
| 4260 | +		if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4261 | + EE_Error::add_error(  | 
                                                        |
| 4262 | +				esc_html__('The messenger being deactivated is not a valid messenger', 'event_espresso'), | 
                                                        |
| 4263 | + __FILE__,  | 
                                                        |
| 4264 | + __FUNCTION__,  | 
                                                        |
| 4265 | + __LINE__  | 
                                                        |
| 4266 | + );  | 
                                                        |
| 4267 | +  | 
                                                        |
| 4268 | + return false;  | 
                                                        |
| 4269 | + }  | 
                                                        |
| 4270 | +  | 
                                                        |
| 4271 | +		if ($message_type instanceof EE_message_type) { | 
                                                        |
| 4272 | + $message_type_name = $message_type->name;  | 
                                                        |
| 4273 | + EE_Error::add_success(  | 
                                                        |
| 4274 | + sprintf(  | 
                                                        |
| 4275 | + esc_html__(  | 
                                                        |
| 4276 | + '%s message type has been successfully deactivated for the %s messenger.',  | 
                                                        |
| 4277 | + 'event_espresso'  | 
                                                        |
| 4278 | + ),  | 
                                                        |
| 4279 | + ucwords($message_type->label['singular']),  | 
                                                        |
| 4280 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4281 | + )  | 
                                                        |
| 4282 | + );  | 
                                                        |
| 4283 | +		} else { | 
                                                        |
| 4284 | + $message_type_name = '';  | 
                                                        |
| 4285 | + EE_Error::add_success(  | 
                                                        |
| 4286 | + sprintf(  | 
                                                        |
| 4287 | +					esc_html__('%s messenger has been successfully deactivated.', 'event_espresso'), | 
                                                        |
| 4288 | + ucwords($messenger->label['singular'])  | 
                                                        |
| 4289 | + )  | 
                                                        |
| 4290 | + );  | 
                                                        |
| 4291 | + }  | 
                                                        |
| 4292 | +  | 
                                                        |
| 4293 | + // if messenger was html or message type was invoice then let's make sure we deactivate invoice payment method.  | 
                                                        |
| 4294 | +		if ($messenger->name === 'html' || $message_type_name === 'invoice') { | 
                                                        |
| 4295 | +			EE_Registry::instance()->load_lib('Payment_Method_Manager'); | 
                                                        |
| 4296 | +			$count_updated = EE_Payment_Method_Manager::instance()->deactivate_payment_method('invoice'); | 
                                                        |
| 4297 | +			if ($count_updated > 0) { | 
                                                        |
| 4298 | + $msg = $message_type_name === 'invoice'  | 
                                                        |
| 4299 | + ? esc_html__(  | 
                                                        |
| 4300 | + 'Deactivating the invoice message type also automatically deactivates the invoice payment method. In order for invoices to be generated the invoice message type must be active. If you completed this action by mistake, simply reactivate the invoice message type and then visit the payment methods admin page to reactivate the invoice payment method.',  | 
                                                        |
| 4301 | + 'event_espresso'  | 
                                                        |
| 4302 | + )  | 
                                                        |
| 4303 | + : esc_html__(  | 
                                                        |
| 4304 | + 'Deactivating the html messenger also automatically deactivates the invoice payment method. In order for invoices to be generated the html messenger must be be active. If you completed this action by mistake, simply reactivate the html messenger, then visit the payment methods admin page to reactivate the invoice payment method.',  | 
                                                        |
| 4305 | + 'event_espresso'  | 
                                                        |
| 4306 | + );  | 
                                                        |
| 4307 | + EE_Error::add_attention($msg);  | 
                                                        |
| 4308 | + }  | 
                                                        |
| 4309 | + }  | 
                                                        |
| 4310 | +  | 
                                                        |
| 4311 | + return true;  | 
                                                        |
| 4312 | + }  | 
                                                        |
| 4313 | +  | 
                                                        |
| 4314 | +  | 
                                                        |
| 4315 | + /**  | 
                                                        |
| 4316 | + * handles updating a message type form on messenger activation IF the message type has settings fields. (via ajax)  | 
                                                        |
| 4317 | + *  | 
                                                        |
| 4318 | + * @throws DomainException  | 
                                                        |
| 4319 | + */  | 
                                                        |
| 4320 | + public function update_mt_form()  | 
                                                        |
| 4321 | +	{ | 
                                                        |
| 4322 | +		if (! isset($this->_req_data['messenger']) || ! isset($this->_req_data['message_type'])) { | 
                                                        |
| 4323 | + EE_Error::add_error(  | 
                                                        |
| 4324 | +				esc_html__('Require message type or messenger to send an updated form', 'event_espresso'), | 
                                                        |
| 4325 | + __FILE__,  | 
                                                        |
| 4326 | + __FUNCTION__,  | 
                                                        |
| 4327 | + __LINE__  | 
                                                        |
| 4328 | + );  | 
                                                        |
| 4329 | + $this->_return_json();  | 
                                                        |
| 4330 | + }  | 
                                                        |
| 4331 | +  | 
                                                        |
| 4332 | + $message_types = $this->get_installed_message_types();  | 
                                                        |
| 4333 | +  | 
                                                        |
| 4334 | + $message_type = $message_types[ $this->_req_data['message_type'] ];  | 
                                                        |
| 4335 | + $messenger = $this->_message_resource_manager->get_active_messenger($this->_req_data['messenger']);  | 
                                                        |
| 4336 | +  | 
                                                        |
| 4337 | + $content = $this->_message_type_settings_content(  | 
                                                        |
| 4338 | + $message_type,  | 
                                                        |
| 4339 | + $messenger,  | 
                                                        |
| 4340 | + true  | 
                                                        |
| 4341 | + );  | 
                                                        |
| 4342 | + $this->_template_args['success'] = true;  | 
                                                        |
| 4343 | + $this->_template_args['content'] = $content;  | 
                                                        |
| 4344 | + $this->_return_json();  | 
                                                        |
| 4345 | + }  | 
                                                        |
| 4346 | +  | 
                                                        |
| 4347 | +  | 
                                                        |
| 4348 | + /**  | 
                                                        |
| 4349 | + * this handles saving the settings for a messenger or message type  | 
                                                        |
| 4350 | + *  | 
                                                        |
| 4351 | + */  | 
                                                        |
| 4352 | + public function save_settings()  | 
                                                        |
| 4353 | +	{ | 
                                                        |
| 4354 | +		if (! isset($this->_req_data['type'])) { | 
                                                        |
| 4355 | + EE_Error::add_error(  | 
                                                        |
| 4356 | + esc_html__(  | 
                                                        |
| 4357 | + 'Cannot save settings because type is unknown (messenger settings or messsage type settings?)',  | 
                                                        |
| 4358 | + 'event_espresso'  | 
                                                        |
| 4359 | + ),  | 
                                                        |
| 4360 | + __FILE__,  | 
                                                        |
| 4361 | + __FUNCTION__,  | 
                                                        |
| 4362 | + __LINE__  | 
                                                        |
| 4363 | + );  | 
                                                        |
| 4364 | + $this->_template_args['error'] = true;  | 
                                                        |
| 4365 | + $this->_return_json();  | 
                                                        |
| 4366 | + }  | 
                                                        |
| 4367 | +  | 
                                                        |
| 4368 | +  | 
                                                        |
| 4369 | +		if ($this->_req_data['type'] === 'messenger') { | 
                                                        |
| 4370 | + // this should be an array.  | 
                                                        |
| 4371 | + $settings = $this->_req_data['messenger_settings'];  | 
                                                        |
| 4372 | + $messenger = $settings['messenger'];  | 
                                                        |
| 4373 | + // let's setup the settings data  | 
                                                        |
| 4374 | +			foreach ($settings as $key => $value) { | 
                                                        |
| 4375 | +				switch ($key) { | 
                                                        |
| 4376 | + case 'messenger':  | 
                                                        |
| 4377 | + unset($settings['messenger']);  | 
                                                        |
| 4378 | + break;  | 
                                                        |
| 4379 | + case 'message_types':  | 
                                                        |
| 4380 | + unset($settings['message_types']);  | 
                                                        |
| 4381 | + break;  | 
                                                        |
| 4382 | + default:  | 
                                                        |
| 4383 | + $settings[ $key ] = $value;  | 
                                                        |
| 4384 | + break;  | 
                                                        |
| 4385 | + }  | 
                                                        |
| 4386 | + }  | 
                                                        |
| 4387 | + $this->_message_resource_manager->add_settings_for_messenger($messenger, $settings);  | 
                                                        |
| 4388 | +		} elseif ($this->_req_data['type'] === 'message_type') { | 
                                                        |
| 4389 | + $settings = $this->_req_data['message_type_settings'];  | 
                                                        |
| 4390 | + $messenger = $settings['messenger'];  | 
                                                        |
| 4391 | + $message_type = $settings['message_type'];  | 
                                                        |
| 4392 | +  | 
                                                        |
| 4393 | +			foreach ($settings as $key => $value) { | 
                                                        |
| 4394 | +				switch ($key) { | 
                                                        |
| 4395 | + case 'messenger':  | 
                                                        |
| 4396 | + unset($settings['messenger']);  | 
                                                        |
| 4397 | + break;  | 
                                                        |
| 4398 | + case 'message_type':  | 
                                                        |
| 4399 | + unset($settings['message_type']);  | 
                                                        |
| 4400 | + break;  | 
                                                        |
| 4401 | + default:  | 
                                                        |
| 4402 | + $settings[ $key ] = $value;  | 
                                                        |
| 4403 | + break;  | 
                                                        |
| 4404 | + }  | 
                                                        |
| 4405 | + }  | 
                                                        |
| 4406 | +  | 
                                                        |
| 4407 | + $this->_message_resource_manager->add_settings_for_message_type($messenger, $message_type, $settings);  | 
                                                        |
| 4408 | + }  | 
                                                        |
| 4409 | +  | 
                                                        |
| 4410 | + // okay we should have the data all setup. Now we just update!  | 
                                                        |
| 4411 | + $success = $this->_message_resource_manager->update_active_messengers_option();  | 
                                                        |
| 4412 | +  | 
                                                        |
| 4413 | +		if ($success) { | 
                                                        |
| 4414 | +			EE_Error::add_success(__('Settings updated', 'event_espresso')); | 
                                                        |
| 4415 | +		} else { | 
                                                        |
| 4416 | + EE_Error::add_error(  | 
                                                        |
| 4417 | + esc_html__(  | 
                                                        |
| 4418 | + 'Settings did not get updated',  | 
                                                        |
| 4419 | + 'event_espresso'  | 
                                                        |
| 4420 | + ),  | 
                                                        |
| 4421 | + __FILE__,  | 
                                                        |
| 4422 | + __FUNCTION__,  | 
                                                        |
| 4423 | + __LINE__  | 
                                                        |
| 4424 | + );  | 
                                                        |
| 4425 | + }  | 
                                                        |
| 4426 | +  | 
                                                        |
| 4427 | + $this->_template_args['success'] = $success;  | 
                                                        |
| 4428 | + $this->_return_json();  | 
                                                        |
| 4429 | + }  | 
                                                        |
| 4430 | +  | 
                                                        |
| 4431 | +  | 
                                                        |
| 4432 | +  | 
                                                        |
| 4433 | +  | 
                                                        |
| 4434 | + /** EE MESSAGE PROCESSING ACTIONS **/  | 
                                                        |
| 4435 | +  | 
                                                        |
| 4436 | +  | 
                                                        |
| 4437 | + /**  | 
                                                        |
| 4438 | + * This immediately generates any EE_Message ID's that are selected that are EEM_Message::status_incomplete  | 
                                                        |
| 4439 | + * However, this does not send immediately, it just queues for sending.  | 
                                                        |
| 4440 | + *  | 
                                                        |
| 4441 | + * @since 4.9.0  | 
                                                        |
| 4442 | + * @throws EE_Error  | 
                                                        |
| 4443 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4444 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4445 | + * @throws InvalidArgumentException  | 
                                                        |
| 4446 | + * @throws ReflectionException  | 
                                                        |
| 4447 | + */  | 
                                                        |
| 4448 | + protected function _generate_now()  | 
                                                        |
| 4449 | +	{ | 
                                                        |
| 4450 | + EED_Messages::generate_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4451 | + $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4452 | + }  | 
                                                        |
| 4453 | +  | 
                                                        |
| 4454 | +  | 
                                                        |
| 4455 | + /**  | 
                                                        |
| 4456 | + * This immediately generates AND sends any EE_Message's selected that are EEM_Message::status_incomplete or that  | 
                                                        |
| 4457 | + * are EEM_Message::status_resend or EEM_Message::status_idle  | 
                                                        |
| 4458 | + *  | 
                                                        |
| 4459 | + * @since 4.9.0  | 
                                                        |
| 4460 | + * @throws EE_Error  | 
                                                        |
| 4461 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4462 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4463 | + * @throws InvalidArgumentException  | 
                                                        |
| 4464 | + * @throws ReflectionException  | 
                                                        |
| 4465 | + */  | 
                                                        |
| 4466 | + protected function _generate_and_send_now()  | 
                                                        |
| 4467 | +	{ | 
                                                        |
| 4468 | + EED_Messages::generate_and_send_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4469 | + $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4470 | + }  | 
                                                        |
| 4471 | +  | 
                                                        |
| 4472 | +  | 
                                                        |
| 4473 | + /**  | 
                                                        |
| 4474 | + * This queues any EEM_Message::status_sent EE_Message ids in the request for resending.  | 
                                                        |
| 4475 | + *  | 
                                                        |
| 4476 | + * @since 4.9.0  | 
                                                        |
| 4477 | + * @throws EE_Error  | 
                                                        |
| 4478 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4479 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4480 | + * @throws InvalidArgumentException  | 
                                                        |
| 4481 | + * @throws ReflectionException  | 
                                                        |
| 4482 | + */  | 
                                                        |
| 4483 | + protected function _queue_for_resending()  | 
                                                        |
| 4484 | +	{ | 
                                                        |
| 4485 | + EED_Messages::queue_for_resending($this->_get_msg_ids_from_request());  | 
                                                        |
| 4486 | + $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4487 | + }  | 
                                                        |
| 4488 | +  | 
                                                        |
| 4489 | +  | 
                                                        |
| 4490 | + /**  | 
                                                        |
| 4491 | + * This sends immediately any EEM_Message::status_idle or EEM_Message::status_resend messages in the queue  | 
                                                        |
| 4492 | + *  | 
                                                        |
| 4493 | + * @since 4.9.0  | 
                                                        |
| 4494 | + * @throws EE_Error  | 
                                                        |
| 4495 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4496 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4497 | + * @throws InvalidArgumentException  | 
                                                        |
| 4498 | + * @throws ReflectionException  | 
                                                        |
| 4499 | + */  | 
                                                        |
| 4500 | + protected function _send_now()  | 
                                                        |
| 4501 | +	{ | 
                                                        |
| 4502 | + EED_Messages::send_now($this->_get_msg_ids_from_request());  | 
                                                        |
| 4503 | + $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4504 | + }  | 
                                                        |
| 4505 | +  | 
                                                        |
| 4506 | +  | 
                                                        |
| 4507 | + /**  | 
                                                        |
| 4508 | + * Deletes EE_messages for IDs in the request.  | 
                                                        |
| 4509 | + *  | 
                                                        |
| 4510 | + * @since 4.9.0  | 
                                                        |
| 4511 | + * @throws EE_Error  | 
                                                        |
| 4512 | + * @throws InvalidDataTypeException  | 
                                                        |
| 4513 | + * @throws InvalidInterfaceException  | 
                                                        |
| 4514 | + * @throws InvalidArgumentException  | 
                                                        |
| 4515 | + */  | 
                                                        |
| 4516 | + protected function _delete_ee_messages()  | 
                                                        |
| 4517 | +	{ | 
                                                        |
| 4518 | + $msg_ids = $this->_get_msg_ids_from_request();  | 
                                                        |
| 4519 | + $deleted_count = 0;  | 
                                                        |
| 4520 | +		foreach ($msg_ids as $msg_id) { | 
                                                        |
| 4521 | +			if (EEM_Message::instance()->delete_by_ID($msg_id)) { | 
                                                        |
| 4522 | + $deleted_count++;  | 
                                                        |
| 4523 | + }  | 
                                                        |
| 4524 | + }  | 
                                                        |
| 4525 | +		if ($deleted_count) { | 
                                                        |
| 4526 | + EE_Error::add_success(  | 
                                                        |
| 4527 | + esc_html(  | 
                                                        |
| 4528 | + _n(  | 
                                                        |
| 4529 | + 'Message successfully deleted',  | 
                                                        |
| 4530 | + 'Messages successfully deleted',  | 
                                                        |
| 4531 | + $deleted_count,  | 
                                                        |
| 4532 | + 'event_espresso'  | 
                                                        |
| 4533 | + )  | 
                                                        |
| 4534 | + )  | 
                                                        |
| 4535 | + );  | 
                                                        |
| 4536 | + $this->_redirect_after_action(  | 
                                                        |
| 4537 | + false,  | 
                                                        |
| 4538 | + '',  | 
                                                        |
| 4539 | + '',  | 
                                                        |
| 4540 | + array(),  | 
                                                        |
| 4541 | + true  | 
                                                        |
| 4542 | + );  | 
                                                        |
| 4543 | +		} else { | 
                                                        |
| 4544 | + EE_Error::add_error(  | 
                                                        |
| 4545 | +				_n('The message was not deleted.', 'The messages were not deleted', count($msg_ids), 'event_espresso'), | 
                                                        |
| 4546 | + __FILE__,  | 
                                                        |
| 4547 | + __FUNCTION__,  | 
                                                        |
| 4548 | + __LINE__  | 
                                                        |
| 4549 | + );  | 
                                                        |
| 4550 | + $this->_redirect_after_action(false, '', '', array(), true);  | 
                                                        |
| 4551 | + }  | 
                                                        |
| 4552 | + }  | 
                                                        |
| 4553 | +  | 
                                                        |
| 4554 | +  | 
                                                        |
| 4555 | + /**  | 
                                                        |
| 4556 | + * This looks for 'MSG_ID' key in the request and returns an array of MSG_ID's if present.  | 
                                                        |
| 4557 | + *  | 
                                                        |
| 4558 | + * @since 4.9.0  | 
                                                        |
| 4559 | + * @return array  | 
                                                        |
| 4560 | + */  | 
                                                        |
| 4561 | + protected function _get_msg_ids_from_request()  | 
                                                        |
| 4562 | +	{ | 
                                                        |
| 4563 | +		if (! isset($this->_req_data['MSG_ID'])) { | 
                                                        |
| 4564 | + return array();  | 
                                                        |
| 4565 | + }  | 
                                                        |
| 4566 | +  | 
                                                        |
| 4567 | + return is_array($this->_req_data['MSG_ID'])  | 
                                                        |
| 4568 | + ? array_keys($this->_req_data['MSG_ID'])  | 
                                                        |
| 4569 | + : array($this->_req_data['MSG_ID']);  | 
                                                        |
| 4570 | + }  | 
                                                        |
| 4571 | 4571 | }  | 
                                                        
@@ -141,8 +141,8 @@ discard block  | 
                                                    ||
| 141 | 141 | $i = 1;  | 
                                                        
| 142 | 142 |          foreach ($active_messengers as $active_messenger) { | 
                                                        
| 143 | 143 |              if ($active_messenger instanceof EE_Message) { | 
                                                        
| 144 | - $m_values[ $i ]['id'] = $active_messenger->messenger();  | 
                                                        |
| 145 | - $m_values[ $i ]['text'] = ucwords($active_messenger->messenger_label());  | 
                                                        |
| 144 | + $m_values[$i]['id'] = $active_messenger->messenger();  | 
                                                        |
| 145 | + $m_values[$i]['text'] = ucwords($active_messenger->messenger_label());  | 
                                                        |
| 146 | 146 | $i++;  | 
                                                        
| 147 | 147 | }  | 
                                                        
| 148 | 148 | }  | 
                                                        
@@ -178,8 +178,8 @@ discard block  | 
                                                    ||
| 178 | 178 | $i = 1;  | 
                                                        
| 179 | 179 |          foreach ($active_messages as $active_message) { | 
                                                        
| 180 | 180 |              if ($active_message instanceof EE_Message) { | 
                                                        
| 181 | - $mt_values[ $i ]['id'] = $active_message->message_type();  | 
                                                        |
| 182 | - $mt_values[ $i ]['text'] = ucwords($active_message->message_type_label());  | 
                                                        |
| 181 | + $mt_values[$i]['id'] = $active_message->message_type();  | 
                                                        |
| 182 | + $mt_values[$i]['text'] = ucwords($active_message->message_type_label());  | 
                                                        |
| 183 | 183 | $i++;  | 
                                                        
| 184 | 184 | }  | 
                                                        
| 185 | 185 | }  | 
                                                        
@@ -218,7 +218,7 @@ discard block  | 
                                                    ||
| 218 | 218 |                  if ($message_type instanceof EE_message_type) { | 
                                                        
| 219 | 219 | $message_type_contexts = $message_type->get_contexts();  | 
                                                        
| 220 | 220 |                      foreach ($message_type_contexts as $context => $context_details) { | 
                                                        
| 221 | - $contexts[ $context ] = $context_details['label'];  | 
                                                        |
| 221 | + $contexts[$context] = $context_details['label'];  | 
                                                        |
| 222 | 222 | }  | 
                                                        
| 223 | 223 | }  | 
                                                        
| 224 | 224 | }  | 
                                                        
@@ -709,53 +709,53 @@ discard block  | 
                                                    ||
| 709 | 709 | |
| 710 | 710 | public function messages_help_tab()  | 
                                                        
| 711 | 711 |      { | 
                                                        
| 712 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_help_tab.template.php');  | 
                                                        |
| 712 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_help_tab.template.php');  | 
                                                        |
| 713 | 713 | }  | 
                                                        
| 714 | 714 | |
| 715 | 715 | |
| 716 | 716 | public function messengers_help_tab()  | 
                                                        
| 717 | 717 |      { | 
                                                        
| 718 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messenger_help_tab.template.php');  | 
                                                        |
| 718 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messenger_help_tab.template.php');  | 
                                                        |
| 719 | 719 | }  | 
                                                        
| 720 | 720 | |
| 721 | 721 | |
| 722 | 722 | public function message_types_help_tab()  | 
                                                        
| 723 | 723 |      { | 
                                                        
| 724 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_type_help_tab.template.php');  | 
                                                        |
| 724 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_message_type_help_tab.template.php');  | 
                                                        |
| 725 | 725 | }  | 
                                                        
| 726 | 726 | |
| 727 | 727 | |
| 728 | 728 | public function messages_overview_help_tab()  | 
                                                        
| 729 | 729 |      { | 
                                                        
| 730 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_overview_help_tab.template.php');  | 
                                                        |
| 730 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_overview_help_tab.template.php');  | 
                                                        |
| 731 | 731 | }  | 
                                                        
| 732 | 732 | |
| 733 | 733 | |
| 734 | 734 | public function message_templates_help_tab()  | 
                                                        
| 735 | 735 |      { | 
                                                        
| 736 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_templates_help_tab.template.php');  | 
                                                        |
| 736 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_message_templates_help_tab.template.php');  | 
                                                        |
| 737 | 737 | }  | 
                                                        
| 738 | 738 | |
| 739 | 739 | |
| 740 | 740 | public function edit_message_template_help_tab()  | 
                                                        
| 741 | 741 |      { | 
                                                        
| 742 | - $args['img1'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/editor.png' . '" alt="'  | 
                                                        |
| 742 | + $args['img1'] = '<img src="'.EE_MSG_ASSETS_URL.'images/editor.png'.'" alt="'  | 
                                                        |
| 743 | 743 |                          . esc_attr__('Editor Title', 'event_espresso') | 
                                                        
| 744 | 744 | . '" />';  | 
                                                        
| 745 | - $args['img2'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/switch-context.png' . '" alt="'  | 
                                                        |
| 745 | + $args['img2'] = '<img src="'.EE_MSG_ASSETS_URL.'images/switch-context.png'.'" alt="'  | 
                                                        |
| 746 | 746 |                          . esc_attr__('Context Switcher and Preview', 'event_espresso') | 
                                                        
| 747 | 747 | . '" />';  | 
                                                        
| 748 | - $args['img3'] = '<img class="left" src="' . EE_MSG_ASSETS_URL . 'images/form-fields.png' . '" alt="'  | 
                                                        |
| 748 | + $args['img3'] = '<img class="left" src="'.EE_MSG_ASSETS_URL.'images/form-fields.png'.'" alt="'  | 
                                                        |
| 749 | 749 |                          . esc_attr__('Message Template Form Fields', 'event_espresso') | 
                                                        
| 750 | 750 | . '" />';  | 
                                                        
| 751 | - $args['img4'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/shortcodes-metabox.png' . '" alt="'  | 
                                                        |
| 751 | + $args['img4'] = '<img class="right" src="'.EE_MSG_ASSETS_URL.'images/shortcodes-metabox.png'.'" alt="'  | 
                                                        |
| 752 | 752 |                          . esc_attr__('Shortcodes Metabox', 'event_espresso') | 
                                                        
| 753 | 753 | . '" />';  | 
                                                        
| 754 | - $args['img5'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/publish-meta-box.png' . '" alt="'  | 
                                                        |
| 754 | + $args['img5'] = '<img class="right" src="'.EE_MSG_ASSETS_URL.'images/publish-meta-box.png'.'" alt="'  | 
                                                        |
| 755 | 755 |                          . esc_attr__('Publish Metabox', 'event_espresso') | 
                                                        
| 756 | 756 | . '" />';  | 
                                                        
| 757 | 757 | EEH_Template::display_template(  | 
                                                        
| 758 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_templates_editor_help_tab.template.php',  | 
                                                        |
| 758 | + EE_MSG_TEMPLATE_PATH.'ee_msg_messages_templates_editor_help_tab.template.php',  | 
                                                        |
| 759 | 759 | $args  | 
                                                        
| 760 | 760 | );  | 
                                                        
| 761 | 761 | }  | 
                                                        
@@ -766,7 +766,7 @@ discard block  | 
                                                    ||
| 766 | 766 | $this->_set_shortcodes();  | 
                                                        
| 767 | 767 | $args['shortcodes'] = $this->_shortcodes;  | 
                                                        
| 768 | 768 | EEH_Template::display_template(  | 
                                                        
| 769 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_shortcodes_help_tab.template.php',  | 
                                                        |
| 769 | + EE_MSG_TEMPLATE_PATH.'ee_msg_messages_shortcodes_help_tab.template.php',  | 
                                                        |
| 770 | 770 | $args  | 
                                                        
| 771 | 771 | );  | 
                                                        
| 772 | 772 | }  | 
                                                        
@@ -774,16 +774,16 @@ discard block  | 
                                                    ||
| 774 | 774 | |
| 775 | 775 | public function preview_message_help_tab()  | 
                                                        
| 776 | 776 |      { | 
                                                        
| 777 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_preview_help_tab.template.php');  | 
                                                        |
| 777 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_preview_help_tab.template.php');  | 
                                                        |
| 778 | 778 | }  | 
                                                        
| 779 | 779 | |
| 780 | 780 | |
| 781 | 781 | public function settings_help_tab()  | 
                                                        
| 782 | 782 |      { | 
                                                        
| 783 | - $args['img1'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png'  | 
                                                        |
| 784 | -                        . '" alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 785 | - $args['img2'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'  | 
                                                        |
| 786 | -                        . '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'; | 
                                                        |
| 783 | + $args['img1'] = '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-active.png'  | 
                                                        |
| 784 | +                        . '" alt="'.esc_attr__('Active Email Tab', 'event_espresso').'" />'; | 
                                                        |
| 785 | + $args['img2'] = '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-inactive.png'  | 
                                                        |
| 786 | +                        . '" alt="'.esc_attr__('Inactive Email Tab', 'event_espresso').'" />'; | 
                                                        |
| 787 | 787 | $args['img3'] = '<div class="switch">'  | 
                                                        
| 788 | 788 | . '<input class="ee-on-off-toggle ee-toggle-round-flat"'  | 
                                                        
| 789 | 789 | . ' type="checkbox" checked="checked">'  | 
                                                        
@@ -794,25 +794,25 @@ discard block  | 
                                                    ||
| 794 | 794 | . ' type="checkbox">'  | 
                                                        
| 795 | 795 | . '<label for="ee-on-off-toggle-on"></label>'  | 
                                                        
| 796 | 796 | . '</div>';  | 
                                                        
| 797 | - EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_settings_help_tab.template.php', $args);  | 
                                                        |
| 797 | + EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_settings_help_tab.template.php', $args);  | 
                                                        |
| 798 | 798 | }  | 
                                                        
| 799 | 799 | |
| 800 | 800 | |
| 801 | 801 | public function load_scripts_styles()  | 
                                                        
| 802 | 802 |      { | 
                                                        
| 803 | -        wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL . 'ee_message_admin.css', EVENT_ESPRESSO_VERSION); | 
                                                        |
| 803 | +        wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL.'ee_message_admin.css', EVENT_ESPRESSO_VERSION); | 
                                                        |
| 804 | 804 |          wp_enqueue_style('espresso_ee_msg'); | 
                                                        
| 805 | 805 | |
| 806 | 806 | wp_register_script(  | 
                                                        
| 807 | 807 | 'ee-messages-settings',  | 
                                                        
| 808 | - EE_MSG_ASSETS_URL . 'ee-messages-settings.js',  | 
                                                        |
| 808 | + EE_MSG_ASSETS_URL.'ee-messages-settings.js',  | 
                                                        |
| 809 | 809 |              array('jquery-ui-droppable', 'ee-serialize-full-array'), | 
                                                        
| 810 | 810 | EVENT_ESPRESSO_VERSION,  | 
                                                        
| 811 | 811 | true  | 
                                                        
| 812 | 812 | );  | 
                                                        
| 813 | 813 | wp_register_script(  | 
                                                        
| 814 | 814 | 'ee-msg-list-table-js',  | 
                                                        
| 815 | - EE_MSG_ASSETS_URL . 'ee_message_admin_list_table.js',  | 
                                                        |
| 815 | + EE_MSG_ASSETS_URL.'ee_message_admin_list_table.js',  | 
                                                        |
| 816 | 816 |              array('ee-dialog'), | 
                                                        
| 817 | 817 | EVENT_ESPRESSO_VERSION  | 
                                                        
| 818 | 818 | );  | 
                                                        
@@ -870,7 +870,7 @@ discard block  | 
                                                    ||
| 870 | 870 | |
| 871 | 871 | wp_register_script(  | 
                                                        
| 872 | 872 | 'ee_msgs_edit_js',  | 
                                                        
| 873 | - EE_MSG_ASSETS_URL . 'ee_message_editor.js',  | 
                                                        |
| 873 | + EE_MSG_ASSETS_URL.'ee_message_editor.js',  | 
                                                        |
| 874 | 874 |              array('jquery'), | 
                                                        
| 875 | 875 | EVENT_ESPRESSO_VERSION  | 
                                                        
| 876 | 876 | );  | 
                                                        
@@ -914,7 +914,7 @@ discard block  | 
                                                    ||
| 914 | 914 |      { | 
                                                        
| 915 | 915 | wp_register_style(  | 
                                                        
| 916 | 916 | 'ee-message-settings',  | 
                                                        
| 917 | - EE_MSG_ASSETS_URL . 'ee_message_settings.css',  | 
                                                        |
| 917 | + EE_MSG_ASSETS_URL.'ee_message_settings.css',  | 
                                                        |
| 918 | 918 | array(),  | 
                                                        
| 919 | 919 | EVENT_ESPRESSO_VERSION  | 
                                                        
| 920 | 920 | );  | 
                                                        
@@ -1000,7 +1000,7 @@ discard block  | 
                                                    ||
| 1000 | 1000 | }  | 
                                                        
| 1001 | 1001 | $status_bulk_actions = $common_bulk_actions;  | 
                                                        
| 1002 | 1002 | // unset bulk actions not applying to status  | 
                                                        
| 1003 | -            if (! empty($status_bulk_actions)) { | 
                                                        |
| 1003 | +            if ( ! empty($status_bulk_actions)) { | 
                                                        |
| 1004 | 1004 |                  switch ($status) { | 
                                                        
| 1005 | 1005 | case EEM_Message::status_idle:  | 
                                                        
| 1006 | 1006 | case EEM_Message::status_resend:  | 
                                                        
@@ -1029,7 +1029,7 @@ discard block  | 
                                                    ||
| 1029 | 1029 | continue;  | 
                                                        
| 1030 | 1030 | }  | 
                                                        
| 1031 | 1031 | |
| 1032 | - $this->_views[ strtolower($status) ] = array(  | 
                                                        |
| 1032 | + $this->_views[strtolower($status)] = array(  | 
                                                        |
| 1033 | 1033 | 'slug' => strtolower($status),  | 
                                                        
| 1034 | 1034 | 'label' => EEH_Template::pretty_status($status, false, 'sentence'),  | 
                                                        
| 1035 | 1035 | 'count' => 0,  | 
                                                        
@@ -1068,7 +1068,7 @@ discard block  | 
                                                    ||
| 1068 | 1068 |              if ($action_item === 'see_notifications_for') { | 
                                                        
| 1069 | 1069 | continue;  | 
                                                        
| 1070 | 1070 | }  | 
                                                        
| 1071 | - $action_items[ $action_item ] = array(  | 
                                                        |
| 1071 | + $action_items[$action_item] = array(  | 
                                                        |
| 1072 | 1072 | 'class' => $action_details['css_class'],  | 
                                                        
| 1073 | 1073 | 'desc' => $action_details['label'],  | 
                                                        
| 1074 | 1074 | );  | 
                                                        
@@ -1077,37 +1077,37 @@ discard block  | 
                                                    ||
| 1077 | 1077 | /** @type array $status_items status legend setup */  | 
                                                        
| 1078 | 1078 | $status_items = array(  | 
                                                        
| 1079 | 1079 | 'sent_status' => array(  | 
                                                        
| 1080 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_sent,  | 
                                                        |
| 1080 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_sent,  | 
                                                        |
| 1081 | 1081 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_sent, false, 'sentence'),  | 
                                                        
| 1082 | 1082 | ),  | 
                                                        
| 1083 | 1083 | 'idle_status' => array(  | 
                                                        
| 1084 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_idle,  | 
                                                        |
| 1084 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_idle,  | 
                                                        |
| 1085 | 1085 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_idle, false, 'sentence'),  | 
                                                        
| 1086 | 1086 | ),  | 
                                                        
| 1087 | 1087 | 'failed_status' => array(  | 
                                                        
| 1088 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_failed,  | 
                                                        |
| 1088 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_failed,  | 
                                                        |
| 1089 | 1089 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_failed, false, 'sentence'),  | 
                                                        
| 1090 | 1090 | ),  | 
                                                        
| 1091 | 1091 | 'messenger_executing_status' => array(  | 
                                                        
| 1092 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_messenger_executing,  | 
                                                        |
| 1092 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_messenger_executing,  | 
                                                        |
| 1093 | 1093 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_messenger_executing, false, 'sentence'),  | 
                                                        
| 1094 | 1094 | ),  | 
                                                        
| 1095 | 1095 | 'resend_status' => array(  | 
                                                        
| 1096 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_resend,  | 
                                                        |
| 1096 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_resend,  | 
                                                        |
| 1097 | 1097 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_resend, false, 'sentence'),  | 
                                                        
| 1098 | 1098 | ),  | 
                                                        
| 1099 | 1099 | 'incomplete_status' => array(  | 
                                                        
| 1100 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_incomplete,  | 
                                                        |
| 1100 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_incomplete,  | 
                                                        |
| 1101 | 1101 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_incomplete, false, 'sentence'),  | 
                                                        
| 1102 | 1102 | ),  | 
                                                        
| 1103 | 1103 | 'retry_status' => array(  | 
                                                        
| 1104 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_retry,  | 
                                                        |
| 1104 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_retry,  | 
                                                        |
| 1105 | 1105 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_retry, false, 'sentence'),  | 
                                                        
| 1106 | 1106 | ),  | 
                                                        
| 1107 | 1107 | );  | 
                                                        
| 1108 | 1108 |          if (EEM_Message::debug()) { | 
                                                        
| 1109 | 1109 | $status_items['debug_only_status'] = array(  | 
                                                        
| 1110 | - 'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_debug_only,  | 
                                                        |
| 1110 | + 'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_debug_only,  | 
                                                        |
| 1111 | 1111 | 'desc' => EEH_Template::pretty_status(EEM_Message::status_debug_only, false, 'sentence'),  | 
                                                        
| 1112 | 1112 | );  | 
                                                        
| 1113 | 1113 | }  | 
                                                        
@@ -1119,11 +1119,11 @@ discard block  | 
                                                    ||
| 1119 | 1119 | protected function _custom_mtps_preview()  | 
                                                        
| 1120 | 1120 |      { | 
                                                        
| 1121 | 1121 |          $this->_admin_page_title = esc_html__('Custom Message Templates (Preview)', 'event_espresso'); | 
                                                        
| 1122 | - $this->_template_args['preview_img'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/custom_mtps_preview.png"'  | 
                                                        |
| 1123 | - . ' alt="' . esc_attr__(  | 
                                                        |
| 1122 | + $this->_template_args['preview_img'] = '<img src="'.EE_MSG_ASSETS_URL.'images/custom_mtps_preview.png"'  | 
                                                        |
| 1123 | + . ' alt="'.esc_attr__(  | 
                                                        |
| 1124 | 1124 | 'Preview Custom Message Templates screenshot',  | 
                                                        
| 1125 | 1125 | 'event_espresso'  | 
                                                        
| 1126 | - ) . '" />';  | 
                                                        |
| 1126 | + ).'" />';  | 
                                                        |
| 1127 | 1127 | $this->_template_args['preview_text'] = '<strong>'  | 
                                                        
| 1128 | 1128 | . esc_html__(  | 
                                                        
| 1129 | 1129 | 'Custom Message Templates is a feature that is only available in the premium version of Event Espresso 4 which is available with a support license purchase on EventEspresso.com. With the Custom Message Templates feature, you are able to create custom message templates and assign them on a per-event basis.',  | 
                                                        
@@ -1203,7 +1203,7 @@ discard block  | 
                                                    ||
| 1203 | 1203 | $installed = array();  | 
                                                        
| 1204 | 1204 | |
| 1205 | 1205 |          foreach ($installed_message_types as $message_type) { | 
                                                        
| 1206 | - $installed[ $message_type->name ] = $message_type;  | 
                                                        |
| 1206 | + $installed[$message_type->name] = $message_type;  | 
                                                        |
| 1207 | 1207 | }  | 
                                                        
| 1208 | 1208 | |
| 1209 | 1209 | return $installed;  | 
                                                        
@@ -1348,7 +1348,7 @@ discard block  | 
                                                    ||
| 1348 | 1348 | // we need to assemble the title from Various details  | 
                                                        
| 1349 | 1349 | $context_label = sprintf(  | 
                                                        
| 1350 | 1350 |              esc_html__('(%s %s)', 'event_espresso'), | 
                                                        
| 1351 | - $c_config[ $context ]['label'],  | 
                                                        |
| 1351 | + $c_config[$context]['label'],  | 
                                                        |
| 1352 | 1352 | ucwords($c_label['label'])  | 
                                                        
| 1353 | 1353 | );  | 
                                                        
| 1354 | 1354 | |
@@ -1370,7 +1370,7 @@ discard block  | 
                                                    ||
| 1370 | 1370 | $message_template_group->message_type()  | 
                                                        
| 1371 | 1371 | );  | 
                                                        
| 1372 | 1372 | |
| 1373 | -        if (! $template_field_structure) { | 
                                                        |
| 1373 | +        if ( ! $template_field_structure) { | 
                                                        |
| 1374 | 1374 | $template_field_structure = false;  | 
                                                        
| 1375 | 1375 | $template_fields = esc_html__(  | 
                                                        
| 1376 | 1376 | 'There was an error in assembling the fields for this display (you should see an error message)',  | 
                                                        
@@ -1384,21 +1384,21 @@ discard block  | 
                                                    ||
| 1384 | 1384 | |
| 1385 | 1385 | // if we have the extra key.. then we need to remove the content index from the template_field_structure as it  | 
                                                        
| 1386 | 1386 | // will get handled in the "extra" array.  | 
                                                        
| 1387 | -        if (is_array($template_field_structure[ $context ]) && isset($template_field_structure[ $context ]['extra'])) { | 
                                                        |
| 1388 | -            foreach ($template_field_structure[ $context ]['extra'] as $reference_field => $new_fields) { | 
                                                        |
| 1389 | - unset($template_field_structure[ $context ][ $reference_field ]);  | 
                                                        |
| 1387 | +        if (is_array($template_field_structure[$context]) && isset($template_field_structure[$context]['extra'])) { | 
                                                        |
| 1388 | +            foreach ($template_field_structure[$context]['extra'] as $reference_field => $new_fields) { | 
                                                        |
| 1389 | + unset($template_field_structure[$context][$reference_field]);  | 
                                                        |
| 1390 | 1390 | }  | 
                                                        
| 1391 | 1391 | }  | 
                                                        
| 1392 | 1392 | |
| 1393 | 1393 | // let's loop through the template_field_structure and actually assemble the input fields!  | 
                                                        
| 1394 | -        if (! empty($template_field_structure)) { | 
                                                        |
| 1395 | -            foreach ($template_field_structure[ $context ] as $template_field => $field_setup_array) { | 
                                                        |
| 1394 | +        if ( ! empty($template_field_structure)) { | 
                                                        |
| 1395 | +            foreach ($template_field_structure[$context] as $template_field => $field_setup_array) { | 
                                                        |
| 1396 | 1396 | // if this is an 'extra' template field then we need to remove any existing fields that are keyed up in  | 
                                                        
| 1397 | 1397 | // the extra array and reset them.  | 
                                                        
| 1398 | 1398 |                  if ($template_field === 'extra') { | 
                                                        
| 1399 | 1399 | $this->_template_args['is_extra_fields'] = true;  | 
                                                        
| 1400 | 1400 |                      foreach ($field_setup_array as $reference_field => $new_fields_array) { | 
                                                        
| 1401 | - $message_template = $message_templates[ $context ][ $reference_field ];  | 
                                                        |
| 1401 | + $message_template = $message_templates[$context][$reference_field];  | 
                                                        |
| 1402 | 1402 | $content = $message_template instanceof EE_Message_Template  | 
                                                        
| 1403 | 1403 |                              ? $message_template->get('MTP_content') | 
                                                        
| 1404 | 1404 | : '';  | 
                                                        
@@ -1407,7 +1407,7 @@ discard block  | 
                                                    ||
| 1407 | 1407 | $continue = false;  | 
                                                        
| 1408 | 1408 |                              if (isset($extra_array['shortcodes_required'])) { | 
                                                        
| 1409 | 1409 |                                  foreach ((array) $extra_array['shortcodes_required'] as $shortcode) { | 
                                                        
| 1410 | -                                    if (! array_key_exists($shortcode, $this->_shortcodes)) { | 
                                                        |
| 1410 | +                                    if ( ! array_key_exists($shortcode, $this->_shortcodes)) { | 
                                                        |
| 1411 | 1411 | $continue = true;  | 
                                                        
| 1412 | 1412 | }  | 
                                                        
| 1413 | 1413 | }  | 
                                                        
@@ -1420,57 +1420,57 @@ discard block  | 
                                                    ||
| 1420 | 1420 | . '-'  | 
                                                        
| 1421 | 1421 | . $extra_field  | 
                                                        
| 1422 | 1422 | . '-content';  | 
                                                        
| 1423 | - $template_form_fields[ $field_id ] = $extra_array;  | 
                                                        |
| 1424 | - $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields['  | 
                                                        |
| 1423 | + $template_form_fields[$field_id] = $extra_array;  | 
                                                        |
| 1424 | + $template_form_fields[$field_id]['name'] = 'MTP_template_fields['  | 
                                                        |
| 1425 | 1425 | . $reference_field  | 
                                                        
| 1426 | 1426 | . '][content]['  | 
                                                        
| 1427 | - . $extra_field . ']';  | 
                                                        |
| 1427 | + . $extra_field.']';  | 
                                                        |
| 1428 | 1428 | $css_class = isset($extra_array['css_class'])  | 
                                                        
| 1429 | 1429 | ? $extra_array['css_class']  | 
                                                        
| 1430 | 1430 | : '';  | 
                                                        
| 1431 | 1431 | |
| 1432 | - $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1432 | + $template_form_fields[$field_id]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1433 | 1433 | && in_array($extra_field, $v_fields, true)  | 
                                                        
| 1434 | 1434 | &&  | 
                                                        
| 1435 | 1435 | (  | 
                                                        
| 1436 | - is_array($validators[ $extra_field ])  | 
                                                        |
| 1437 | - && isset($validators[ $extra_field ]['msg'])  | 
                                                        |
| 1436 | + is_array($validators[$extra_field])  | 
                                                        |
| 1437 | + && isset($validators[$extra_field]['msg'])  | 
                                                        |
| 1438 | 1438 | )  | 
                                                        
| 1439 | - ? 'validate-error ' . $css_class  | 
                                                        |
| 1439 | + ? 'validate-error '.$css_class  | 
                                                        |
| 1440 | 1440 | : $css_class;  | 
                                                        
| 1441 | 1441 | |
| 1442 | - $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1443 | - && isset($content[ $extra_field ])  | 
                                                        |
| 1444 | - ? $content[ $extra_field ]  | 
                                                        |
| 1442 | + $template_form_fields[$field_id]['value'] = ! empty($message_templates)  | 
                                                        |
| 1443 | + && isset($content[$extra_field])  | 
                                                        |
| 1444 | + ? $content[$extra_field]  | 
                                                        |
| 1445 | 1445 | : '';  | 
                                                        
| 1446 | 1446 | |
| 1447 | 1447 | // do we have a validation error? if we do then let's use that value instead  | 
                                                        
| 1448 | - $template_form_fields[ $field_id ]['value'] = isset($validators[ $extra_field ])  | 
                                                        |
| 1449 | - ? $validators[ $extra_field ]['value']  | 
                                                        |
| 1450 | - : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1448 | + $template_form_fields[$field_id]['value'] = isset($validators[$extra_field])  | 
                                                        |
| 1449 | + ? $validators[$extra_field]['value']  | 
                                                        |
| 1450 | + : $template_form_fields[$field_id]['value'];  | 
                                                        |
| 1451 | 1451 | |
| 1452 | 1452 | |
| 1453 | - $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1453 | + $template_form_fields[$field_id]['db-col'] = 'MTP_content';  | 
                                                        |
| 1454 | 1454 | |
| 1455 | 1455 | // shortcode selector  | 
                                                        
| 1456 | 1456 | $field_name_to_use = $extra_field === 'main'  | 
                                                        
| 1457 | 1457 | ? 'content'  | 
                                                        
| 1458 | 1458 | : $extra_field;  | 
                                                        
| 1459 | - $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1459 | + $template_form_fields[$field_id]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1460 | 1460 | $field_name_to_use,  | 
                                                        
| 1461 | 1461 | $field_id  | 
                                                        
| 1462 | 1462 | );  | 
                                                        
| 1463 | 1463 | |
| 1464 | 1464 |                              if (isset($extra_array['input']) && $extra_array['input'] === 'wp_editor') { | 
                                                        
| 1465 | 1465 | // we want to decode the entities  | 
                                                        
| 1466 | - $template_form_fields[ $field_id ]['value'] = $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1466 | + $template_form_fields[$field_id]['value'] = $template_form_fields[$field_id]['value'];  | 
                                                        |
| 1467 | 1467 | }/**/  | 
                                                        
| 1468 | 1468 | }  | 
                                                        
| 1469 | - $templatefield_MTP_id = $reference_field . '-MTP_ID';  | 
                                                        |
| 1470 | - $templatefield_templatename_id = $reference_field . '-name';  | 
                                                        |
| 1469 | + $templatefield_MTP_id = $reference_field.'-MTP_ID';  | 
                                                        |
| 1470 | + $templatefield_templatename_id = $reference_field.'-name';  | 
                                                        |
| 1471 | 1471 | |
| 1472 | - $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1473 | - 'name' => 'MTP_template_fields[' . $reference_field . '][MTP_ID]',  | 
                                                        |
| 1472 | + $template_form_fields[$templatefield_MTP_id] = array(  | 
                                                        |
| 1473 | + 'name' => 'MTP_template_fields['.$reference_field.'][MTP_ID]',  | 
                                                        |
| 1474 | 1474 | 'label' => null,  | 
                                                        
| 1475 | 1475 | 'input' => 'hidden',  | 
                                                        
| 1476 | 1476 | 'type' => 'int',  | 
                                                        
@@ -1482,8 +1482,8 @@ discard block  | 
                                                    ||
| 1482 | 1482 | 'db-col' => 'MTP_ID',  | 
                                                        
| 1483 | 1483 | );  | 
                                                        
| 1484 | 1484 | |
| 1485 | - $template_form_fields[ $templatefield_templatename_id ] = array(  | 
                                                        |
| 1486 | - 'name' => 'MTP_template_fields[' . $reference_field . '][name]',  | 
                                                        |
| 1485 | + $template_form_fields[$templatefield_templatename_id] = array(  | 
                                                        |
| 1486 | + 'name' => 'MTP_template_fields['.$reference_field.'][name]',  | 
                                                        |
| 1487 | 1487 | 'label' => null,  | 
                                                        
| 1488 | 1488 | 'input' => 'hidden',  | 
                                                        
| 1489 | 1489 | 'type' => 'string',  | 
                                                        
@@ -1497,36 +1497,36 @@ discard block  | 
                                                    ||
| 1497 | 1497 | }  | 
                                                        
| 1498 | 1498 | continue; // skip the next stuff, we got the necessary fields here for this dataset.  | 
                                                        
| 1499 | 1499 |                  } else { | 
                                                        
| 1500 | - $field_id = $template_field . '-content';  | 
                                                        |
| 1501 | - $template_form_fields[ $field_id ] = $field_setup_array;  | 
                                                        |
| 1502 | - $template_form_fields[ $field_id ]['name'] = 'MTP_template_fields[' . $template_field . '][content]';  | 
                                                        |
| 1503 | - $message_template = isset($message_templates[ $context ][ $template_field ])  | 
                                                        |
| 1504 | - ? $message_templates[ $context ][ $template_field ]  | 
                                                        |
| 1500 | + $field_id = $template_field.'-content';  | 
                                                        |
| 1501 | + $template_form_fields[$field_id] = $field_setup_array;  | 
                                                        |
| 1502 | + $template_form_fields[$field_id]['name'] = 'MTP_template_fields['.$template_field.'][content]';  | 
                                                        |
| 1503 | + $message_template = isset($message_templates[$context][$template_field])  | 
                                                        |
| 1504 | + ? $message_templates[$context][$template_field]  | 
                                                        |
| 1505 | 1505 | : null;  | 
                                                        
| 1506 | - $template_form_fields[ $field_id ]['value'] = ! empty($message_templates)  | 
                                                        |
| 1507 | - && is_array($message_templates[ $context ])  | 
                                                        |
| 1506 | + $template_form_fields[$field_id]['value'] = ! empty($message_templates)  | 
                                                        |
| 1507 | + && is_array($message_templates[$context])  | 
                                                        |
| 1508 | 1508 | && $message_template instanceof EE_Message_Template  | 
                                                        
| 1509 | 1509 |                          ? $message_template->get('MTP_content') | 
                                                        
| 1510 | 1510 | : '';  | 
                                                        
| 1511 | 1511 | |
| 1512 | 1512 | // do we have a validator error for this field? if we do then we'll use that value instead  | 
                                                        
| 1513 | - $template_form_fields[ $field_id ]['value'] = isset($validators[ $template_field ])  | 
                                                        |
| 1514 | - ? $validators[ $template_field ]['value']  | 
                                                        |
| 1515 | - : $template_form_fields[ $field_id ]['value'];  | 
                                                        |
| 1513 | + $template_form_fields[$field_id]['value'] = isset($validators[$template_field])  | 
                                                        |
| 1514 | + ? $validators[$template_field]['value']  | 
                                                        |
| 1515 | + : $template_form_fields[$field_id]['value'];  | 
                                                        |
| 1516 | 1516 | |
| 1517 | 1517 | |
| 1518 | - $template_form_fields[ $field_id ]['db-col'] = 'MTP_content';  | 
                                                        |
| 1518 | + $template_form_fields[$field_id]['db-col'] = 'MTP_content';  | 
                                                        |
| 1519 | 1519 | $css_class = isset($field_setup_array['css_class'])  | 
                                                        
| 1520 | 1520 | ? $field_setup_array['css_class']  | 
                                                        
| 1521 | 1521 | : '';  | 
                                                        
| 1522 | - $template_form_fields[ $field_id ]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1522 | + $template_form_fields[$field_id]['css_class'] = ! empty($v_fields)  | 
                                                        |
| 1523 | 1523 | && in_array($template_field, $v_fields, true)  | 
                                                        
| 1524 | - && isset($validators[ $template_field ]['msg'])  | 
                                                        |
| 1525 | - ? 'validate-error ' . $css_class  | 
                                                        |
| 1524 | + && isset($validators[$template_field]['msg'])  | 
                                                        |
| 1525 | + ? 'validate-error '.$css_class  | 
                                                        |
| 1526 | 1526 | : $css_class;  | 
                                                        
| 1527 | 1527 | |
| 1528 | 1528 | // shortcode selector  | 
                                                        
| 1529 | - $template_form_fields[ $field_id ]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1529 | + $template_form_fields[$field_id]['append_content'] = $this->_get_shortcode_selector(  | 
                                                        |
| 1530 | 1530 | $template_field,  | 
                                                        
| 1531 | 1531 | $field_id  | 
                                                        
| 1532 | 1532 | );  | 
                                                        
@@ -1534,12 +1534,12 @@ discard block  | 
                                                    ||
| 1534 | 1534 | |
| 1535 | 1535 | // k took care of content field(s) now let's take care of others.  | 
                                                        
| 1536 | 1536 | |
| 1537 | - $templatefield_MTP_id = $template_field . '-MTP_ID';  | 
                                                        |
| 1538 | - $templatefield_field_templatename_id = $template_field . '-name';  | 
                                                        |
| 1537 | + $templatefield_MTP_id = $template_field.'-MTP_ID';  | 
                                                        |
| 1538 | + $templatefield_field_templatename_id = $template_field.'-name';  | 
                                                        |
| 1539 | 1539 | |
| 1540 | 1540 | // foreach template field there are actually two form fields created  | 
                                                        
| 1541 | - $template_form_fields[ $templatefield_MTP_id ] = array(  | 
                                                        |
| 1542 | - 'name' => 'MTP_template_fields[' . $template_field . '][MTP_ID]',  | 
                                                        |
| 1541 | + $template_form_fields[$templatefield_MTP_id] = array(  | 
                                                        |
| 1542 | + 'name' => 'MTP_template_fields['.$template_field.'][MTP_ID]',  | 
                                                        |
| 1543 | 1543 | 'label' => null,  | 
                                                        
| 1544 | 1544 | 'input' => 'hidden',  | 
                                                        
| 1545 | 1545 | 'type' => 'int',  | 
                                                        
@@ -1551,8 +1551,8 @@ discard block  | 
                                                    ||
| 1551 | 1551 | 'db-col' => 'MTP_ID',  | 
                                                        
| 1552 | 1552 | );  | 
                                                        
| 1553 | 1553 | |
| 1554 | - $template_form_fields[ $templatefield_field_templatename_id ] = array(  | 
                                                        |
| 1555 | - 'name' => 'MTP_template_fields[' . $template_field . '][name]',  | 
                                                        |
| 1554 | + $template_form_fields[$templatefield_field_templatename_id] = array(  | 
                                                        |
| 1555 | + 'name' => 'MTP_template_fields['.$template_field.'][name]',  | 
                                                        |
| 1556 | 1556 | 'label' => null,  | 
                                                        
| 1557 | 1557 | 'input' => 'hidden',  | 
                                                        
| 1558 | 1558 | 'type' => 'string',  | 
                                                        
@@ -1695,10 +1695,10 @@ discard block  | 
                                                    ||
| 1695 | 1695 | 'value' => $GRP_ID,  | 
                                                        
| 1696 | 1696 | );  | 
                                                        
| 1697 | 1697 | $sidebar_form_fields['ee-msg-evt-nonce'] = array(  | 
                                                        
| 1698 | - 'name' => $action . '_nonce',  | 
                                                        |
| 1698 | + 'name' => $action.'_nonce',  | 
                                                        |
| 1699 | 1699 | 'input' => 'hidden',  | 
                                                        
| 1700 | 1700 | 'type' => 'string',  | 
                                                        
| 1701 | - 'value' => wp_create_nonce($action . '_nonce'),  | 
                                                        |
| 1701 | + 'value' => wp_create_nonce($action.'_nonce'),  | 
                                                        |
| 1702 | 1702 | );  | 
                                                        
| 1703 | 1703 | |
| 1704 | 1704 |              if (isset($this->_req_data['template_switch']) && $this->_req_data['template_switch']) { | 
                                                        
@@ -1738,7 +1738,7 @@ discard block  | 
                                                    ||
| 1738 | 1738 | ),  | 
                                                        
| 1739 | 1739 | $this->_admin_base_url  | 
                                                        
| 1740 | 1740 | );  | 
                                                        
| 1741 | - $preview_button = '<a href="' . $preview_url . '" class="button-secondary messages-preview-button">'  | 
                                                        |
| 1741 | + $preview_button = '<a href="'.$preview_url.'" class="button-secondary messages-preview-button">'  | 
                                                        |
| 1742 | 1742 |                            . esc_html__('Preview', 'event_espresso') | 
                                                        
| 1743 | 1743 | . '</a>';  | 
                                                        
| 1744 | 1744 | |
@@ -1775,7 +1775,7 @@ discard block  | 
                                                    ||
| 1775 | 1775 | |
| 1776 | 1776 | $this->_template_path = $this->_template_args['GRP_ID']  | 
                                                        
| 1777 | 1777 | ? EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_edit_meta_box.template.php'  | 
                                                        
| 1778 | - : EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_add_meta_box.template.php';  | 
                                                        |
| 1778 | + : EE_MSG_TEMPLATE_PATH.'ee_msg_details_main_add_meta_box.template.php';  | 
                                                        |
| 1779 | 1779 | |
| 1780 | 1780 | // send along EE_Message_Template_Group object for further template use.  | 
                                                        
| 1781 | 1781 | $this->_template_args['MTP'] = $message_template_group;  | 
                                                        
@@ -1830,7 +1830,7 @@ discard block  | 
                                                    ||
| 1830 | 1830 |      ) { | 
                                                        
| 1831 | 1831 | $template_args = array(  | 
                                                        
| 1832 | 1832 | 'context' => $context,  | 
                                                        
| 1833 | -            'nonce'                     => wp_create_nonce('activate_' . $context . '_toggle_nonce'), | 
                                                        |
| 1833 | +            'nonce'                     => wp_create_nonce('activate_'.$context.'_toggle_nonce'), | 
                                                        |
| 1834 | 1834 | 'is_active' => $message_template_group->is_context_active($context),  | 
                                                        
| 1835 | 1835 | 'on_off_action' => $message_template_group->is_context_active($context)  | 
                                                        
| 1836 | 1836 | ? 'context-off'  | 
                                                        
@@ -1839,7 +1839,7 @@ discard block  | 
                                                    ||
| 1839 | 1839 | 'message_template_group_id' => $message_template_group->ID(),  | 
                                                        
| 1840 | 1840 | );  | 
                                                        
| 1841 | 1841 | return EEH_Template::display_template(  | 
                                                        
| 1842 | - EE_MSG_TEMPLATE_PATH . 'ee_msg_editor_active_context_element.template.php',  | 
                                                        |
| 1842 | + EE_MSG_TEMPLATE_PATH.'ee_msg_editor_active_context_element.template.php',  | 
                                                        |
| 1843 | 1843 | $template_args,  | 
                                                        
| 1844 | 1844 | true  | 
                                                        
| 1845 | 1845 | );  | 
                                                        
@@ -1860,7 +1860,7 @@ discard block  | 
                                                    ||
| 1860 | 1860 |      { | 
                                                        
| 1861 | 1861 | $success = true;  | 
                                                        
| 1862 | 1862 | // check for required data  | 
                                                        
| 1863 | - if (! isset(  | 
                                                        |
| 1863 | + if ( ! isset(  | 
                                                        |
| 1864 | 1864 | $this->_req_data['message_template_group_id'],  | 
                                                        
| 1865 | 1865 | $this->_req_data['context'],  | 
                                                        
| 1866 | 1866 | $this->_req_data['status']  | 
                                                        
@@ -1877,7 +1877,7 @@ discard block  | 
                                                    ||
| 1877 | 1877 | $nonce = isset($this->_req_data['toggle_context_nonce'])  | 
                                                        
| 1878 | 1878 | ? sanitize_text_field($this->_req_data['toggle_context_nonce'])  | 
                                                        
| 1879 | 1879 | : '';  | 
                                                        
| 1880 | - $nonce_ref = 'activate_' . $this->_req_data['context'] . '_toggle_nonce';  | 
                                                        |
| 1880 | + $nonce_ref = 'activate_'.$this->_req_data['context'].'_toggle_nonce';  | 
                                                        |
| 1881 | 1881 | $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        
| 1882 | 1882 | $status = $this->_req_data['status'];  | 
                                                        
| 1883 | 1883 |          if ($status !== 'off' && $status !== 'on') { | 
                                                        
@@ -1895,7 +1895,7 @@ discard block  | 
                                                    ||
| 1895 | 1895 | $message_template_group = EEM_Message_Template_Group::instance()->get_one_by_ID(  | 
                                                        
| 1896 | 1896 | $this->_req_data['message_template_group_id']  | 
                                                        
| 1897 | 1897 | );  | 
                                                        
| 1898 | -        if (! $message_template_group instanceof EE_Message_Template_Group) { | 
                                                        |
| 1898 | +        if ( ! $message_template_group instanceof EE_Message_Template_Group) { | 
                                                        |
| 1899 | 1899 | EE_Error::add_error(  | 
                                                        
| 1900 | 1900 | sprintf(  | 
                                                        
| 1901 | 1901 | esc_html__(  | 
                                                        
@@ -2024,7 +2024,7 @@ discard block  | 
                                                    ||
| 2024 | 2024 | $templates = array();  | 
                                                        
| 2025 | 2025 | $GRP_ID = ! empty($this->_req_data['GRP_ID']) ? $this->_req_data['GRP_ID'] : 0;  | 
                                                        
| 2026 | 2026 | // we need to make sure we've got the info we need.  | 
                                                        
| 2027 | -        if (! isset($this->_req_data['msgr'], $this->_req_data['mt'], $this->_req_data['GRP_ID'])) { | 
                                                        |
| 2027 | +        if ( ! isset($this->_req_data['msgr'], $this->_req_data['mt'], $this->_req_data['GRP_ID'])) { | 
                                                        |
| 2028 | 2028 | EE_Error::add_error(  | 
                                                        
| 2029 | 2029 | esc_html__(  | 
                                                        
| 2030 | 2030 | 'In order to reset the template to its default we require the messenger, message type, and message template GRP_ID to know what is being reset. At least one of these is missing.',  | 
                                                        
@@ -2066,7 +2066,7 @@ discard block  | 
                                                    ||
| 2066 | 2066 | }  | 
                                                        
| 2067 | 2067 | |
| 2068 | 2068 | // any error messages?  | 
                                                        
| 2069 | -        if (! $success) { | 
                                                        |
| 2069 | +        if ( ! $success) { | 
                                                        |
| 2070 | 2070 | EE_Error::add_error(  | 
                                                        
| 2071 | 2071 | esc_html__(  | 
                                                        
| 2072 | 2072 | 'Something went wrong with deleting existing templates. Unable to reset to default',  | 
                                                        
@@ -2118,7 +2118,7 @@ discard block  | 
                                                    ||
| 2118 | 2118 | public function _preview_message($send = false)  | 
                                                        
| 2119 | 2119 |      { | 
                                                        
| 2120 | 2120 | // first make sure we've got the necessary parameters  | 
                                                        
| 2121 | - if (! isset(  | 
                                                        |
| 2121 | + if ( ! isset(  | 
                                                        |
| 2122 | 2122 | $this->_req_data['message_type'],  | 
                                                        
| 2123 | 2123 | $this->_req_data['messenger'],  | 
                                                        
| 2124 | 2124 | $this->_req_data['messenger'],  | 
                                                        
@@ -2170,7 +2170,7 @@ discard block  | 
                                                    ||
| 2170 | 2170 | $preview_title = sprintf(  | 
                                                        
| 2171 | 2171 |              esc_html__('Viewing Preview for %s %s Message Template', 'event_espresso'), | 
                                                        
| 2172 | 2172 | $active_messenger_label,  | 
                                                        
| 2173 | - ucwords($message_types[ $this->_req_data['message_type'] ]->label['singular'])  | 
                                                        |
| 2173 | + ucwords($message_types[$this->_req_data['message_type']]->label['singular'])  | 
                                                        |
| 2174 | 2174 | );  | 
                                                        
| 2175 | 2175 |          if (empty($preview)) { | 
                                                        
| 2176 | 2176 | $this->noEventsErrorMessage();  | 
                                                        
@@ -2178,7 +2178,7 @@ discard block  | 
                                                    ||
| 2178 | 2178 | // setup display of preview.  | 
                                                        
| 2179 | 2179 | $this->_admin_page_title = $preview_title;  | 
                                                        
| 2180 | 2180 | $this->_template_args['admin_page_title'] = $preview_title;  | 
                                                        
| 2181 | - $this->_template_args['admin_page_content'] = $preview_button . '<br />' . $preview;  | 
                                                        |
| 2181 | + $this->_template_args['admin_page_content'] = $preview_button.'<br />'.$preview;  | 
                                                        |
| 2182 | 2182 | $this->_template_args['data']['force_json'] = true;  | 
                                                        
| 2183 | 2183 | |
| 2184 | 2184 | return '';  | 
                                                        
@@ -2291,10 +2291,10 @@ discard block  | 
                                                    ||
| 2291 | 2291 |          foreach ($tp_collection as $tp) { | 
                                                        
| 2292 | 2292 | // only include template packs that support this messenger and message type!  | 
                                                        
| 2293 | 2293 | $supports = $tp->get_supports();  | 
                                                        
| 2294 | - if (! isset($supports[ $this->_message_template_group->messenger() ])  | 
                                                        |
| 2294 | + if ( ! isset($supports[$this->_message_template_group->messenger()])  | 
                                                        |
| 2295 | 2295 | || ! in_array(  | 
                                                        
| 2296 | 2296 | $this->_message_template_group->message_type(),  | 
                                                        
| 2297 | - $supports[ $this->_message_template_group->messenger() ],  | 
                                                        |
| 2297 | + $supports[$this->_message_template_group->messenger()],  | 
                                                        |
| 2298 | 2298 | true  | 
                                                        
| 2299 | 2299 | )  | 
                                                        
| 2300 | 2300 |              ) { | 
                                                        
@@ -2347,7 +2347,7 @@ discard block  | 
                                                    ||
| 2347 | 2347 | $template_args['template_pack_description'] = $template_pack_labels->template_pack_description;  | 
                                                        
| 2348 | 2348 | $template_args['template_variation_description'] = $template_pack_labels->template_variation_description;  | 
                                                        
| 2349 | 2349 | |
| 2350 | - $template = EE_MSG_TEMPLATE_PATH . 'template_pack_and_variations_metabox.template.php';  | 
                                                        |
| 2350 | + $template = EE_MSG_TEMPLATE_PATH.'template_pack_and_variations_metabox.template.php';  | 
                                                        |
| 2351 | 2351 | |
| 2352 | 2352 | EEH_Template::display_template($template, $template_args);  | 
                                                        
| 2353 | 2353 | }  | 
                                                        
@@ -2373,10 +2373,10 @@ discard block  | 
                                                    ||
| 2373 | 2373 | // first we need to see if there are any fields  | 
                                                        
| 2374 | 2374 | $fields = $this->_message_template_group->messenger_obj()->get_test_settings_fields();  | 
                                                        
| 2375 | 2375 | |
| 2376 | -        if (! empty($fields)) { | 
                                                        |
| 2376 | +        if ( ! empty($fields)) { | 
                                                        |
| 2377 | 2377 | // yup there be fields  | 
                                                        
| 2378 | 2378 |              foreach ($fields as $field => $config) { | 
                                                        
| 2379 | - $field_id = $this->_message_template_group->messenger() . '_' . $field;  | 
                                                        |
| 2379 | + $field_id = $this->_message_template_group->messenger().'_'.$field;  | 
                                                        |
| 2380 | 2380 | $existing = $this->_message_template_group->messenger_obj()->get_existing_test_settings();  | 
                                                        
| 2381 | 2381 | $default = isset($config['default']) ? $config['default'] : '';  | 
                                                        
| 2382 | 2382 | $default = isset($config['value']) ? $config['value'] : $default;  | 
                                                        
@@ -2384,22 +2384,22 @@ discard block  | 
                                                    ||
| 2384 | 2384 | // if type is hidden and the value is empty  | 
                                                        
| 2385 | 2385 | // something may have gone wrong so let's correct with the defaults  | 
                                                        
| 2386 | 2386 | $fix = $config['input'] === 'hidden'  | 
                                                        
| 2387 | - && isset($existing[ $field ])  | 
                                                        |
| 2388 | - && empty($existing[ $field ])  | 
                                                        |
| 2387 | + && isset($existing[$field])  | 
                                                        |
| 2388 | + && empty($existing[$field])  | 
                                                        |
| 2389 | 2389 | ? $default  | 
                                                        
| 2390 | 2390 | : '';  | 
                                                        
| 2391 | - $existing[ $field ] = isset($existing[ $field ]) && empty($fix)  | 
                                                        |
| 2392 | - ? $existing[ $field ]  | 
                                                        |
| 2391 | + $existing[$field] = isset($existing[$field]) && empty($fix)  | 
                                                        |
| 2392 | + ? $existing[$field]  | 
                                                        |
| 2393 | 2393 | : $fix;  | 
                                                        
| 2394 | 2394 | |
| 2395 | - $template_form_fields[ $field_id ] = array(  | 
                                                        |
| 2396 | - 'name' => 'test_settings_fld[' . $field . ']',  | 
                                                        |
| 2395 | + $template_form_fields[$field_id] = array(  | 
                                                        |
| 2396 | + 'name' => 'test_settings_fld['.$field.']',  | 
                                                        |
| 2397 | 2397 | 'label' => $config['label'],  | 
                                                        
| 2398 | 2398 | 'input' => $config['input'],  | 
                                                        
| 2399 | 2399 | 'type' => $config['type'],  | 
                                                        
| 2400 | 2400 | 'required' => $config['required'],  | 
                                                        
| 2401 | 2401 | 'validation' => $config['validation'],  | 
                                                        
| 2402 | - 'value' => isset($existing[ $field ]) ? $existing[ $field ] : $default,  | 
                                                        |
| 2402 | + 'value' => isset($existing[$field]) ? $existing[$field] : $default,  | 
                                                        |
| 2403 | 2403 | 'css_class' => $config['css_class'],  | 
                                                        
| 2404 | 2404 | 'options' => isset($config['options']) ? $config['options'] : array(),  | 
                                                        
| 2405 | 2405 | 'default' => $default,  | 
                                                        
@@ -2414,7 +2414,7 @@ discard block  | 
                                                    ||
| 2414 | 2414 | |
| 2415 | 2415 | $test_settings_html = '';  | 
                                                        
| 2416 | 2416 | // print out $test_settings_fields  | 
                                                        
| 2417 | -        if (! empty($test_settings_fields)) { | 
                                                        |
| 2417 | +        if ( ! empty($test_settings_fields)) { | 
                                                        |
| 2418 | 2418 | echo $test_settings_fields;  | 
                                                        
| 2419 | 2419 | $test_settings_html = '<input type="submit" class="button-primary mtp-test-button alignright" ';  | 
                                                        
| 2420 | 2420 | $test_settings_html .= 'name="test_button" value="';  | 
                                                        
@@ -2461,7 +2461,7 @@ discard block  | 
                                                    ||
| 2461 | 2461 | );  | 
                                                        
| 2462 | 2462 | |
| 2463 | 2463 | return EEH_Template::display_template(  | 
                                                        
| 2464 | - EE_MSG_TEMPLATE_PATH . 'shortcode_selector_skeleton.template.php',  | 
                                                        |
| 2464 | + EE_MSG_TEMPLATE_PATH.'shortcode_selector_skeleton.template.php',  | 
                                                        |
| 2465 | 2465 | $template_args,  | 
                                                        
| 2466 | 2466 | true  | 
                                                        
| 2467 | 2467 | );  | 
                                                        
@@ -2486,7 +2486,7 @@ discard block  | 
                                                    ||
| 2486 | 2486 | // $messenger = $this->_message_template_group->messenger_obj();  | 
                                                        
| 2487 | 2487 | // now let's set the content depending on the status of the shortcodes array  | 
                                                        
| 2488 | 2488 |          if (empty($shortcodes)) { | 
                                                        
| 2489 | -            $content = '<p>' . esc_html__('There are no valid shortcodes available', 'event_espresso') . '</p>'; | 
                                                        |
| 2489 | +            $content = '<p>'.esc_html__('There are no valid shortcodes available', 'event_espresso').'</p>'; | 
                                                        |
| 2490 | 2490 | echo $content;  | 
                                                        
| 2491 | 2491 |          } else { | 
                                                        
| 2492 | 2492 | // $alt = 0;  | 
                                                        
@@ -2524,7 +2524,7 @@ discard block  | 
                                                    ||
| 2524 | 2524 |      { | 
                                                        
| 2525 | 2525 | |
| 2526 | 2526 | // no need to run this if the property is already set  | 
                                                        
| 2527 | -        if (! empty($this->_shortcodes)) { | 
                                                        |
| 2527 | +        if ( ! empty($this->_shortcodes)) { | 
                                                        |
| 2528 | 2528 | return;  | 
                                                        
| 2529 | 2529 | }  | 
                                                        
| 2530 | 2530 | |
@@ -2578,7 +2578,7 @@ discard block  | 
                                                    ||
| 2578 | 2578 | protected function _set_message_template_group()  | 
                                                        
| 2579 | 2579 |      { | 
                                                        
| 2580 | 2580 | |
| 2581 | -        if (! empty($this->_message_template_group)) { | 
                                                        |
| 2581 | +        if ( ! empty($this->_message_template_group)) { | 
                                                        |
| 2582 | 2582 | return;  | 
                                                        
| 2583 | 2583 | } //get out if this is already set.  | 
                                                        
| 2584 | 2584 | |
@@ -2625,7 +2625,7 @@ discard block  | 
                                                    ||
| 2625 | 2625 | <?php  | 
                                                        
| 2626 | 2626 | }  | 
                                                        
| 2627 | 2627 | // setup nonce_url  | 
                                                        
| 2628 | - wp_nonce_field($args['action'] . '_nonce', $args['action'] . '_nonce', false);  | 
                                                        |
| 2628 | + wp_nonce_field($args['action'].'_nonce', $args['action'].'_nonce', false);  | 
                                                        |
| 2629 | 2629 | ?>  | 
                                                        
| 2630 | 2630 | <select name="context">  | 
                                                        
| 2631 | 2631 | <?php  | 
                                                        
@@ -2635,7 +2635,7 @@ discard block  | 
                                                    ||
| 2635 | 2635 | $checked = ($context === $args['context']) ? 'selected="selected"' : '';  | 
                                                        
| 2636 | 2636 | ?>  | 
                                                        
| 2637 | 2637 | <option value="<?php echo $context; ?>" <?php echo $checked; ?>>  | 
                                                        
| 2638 | - <?php echo $context_details[ $context ]['label']; ?>  | 
                                                        |
| 2638 | + <?php echo $context_details[$context]['label']; ?>  | 
                                                        |
| 2639 | 2639 | </option>  | 
                                                        
| 2640 | 2640 | <?php endforeach;  | 
                                                        
| 2641 | 2641 | endif; ?>  | 
                                                        
@@ -2665,22 +2665,22 @@ discard block  | 
                                                    ||
| 2665 | 2665 | */  | 
                                                        
| 2666 | 2666 | protected function _set_message_template_column_values($index)  | 
                                                        
| 2667 | 2667 |      { | 
                                                        
| 2668 | -        if (is_array($this->_req_data['MTP_template_fields'][ $index ]['content'])) { | 
                                                        |
| 2669 | -            foreach ($this->_req_data['MTP_template_fields'][ $index ]['content'] as $field => $value) { | 
                                                        |
| 2670 | - $this->_req_data['MTP_template_fields'][ $index ]['content'][ $field ] = $value;  | 
                                                        |
| 2668 | +        if (is_array($this->_req_data['MTP_template_fields'][$index]['content'])) { | 
                                                        |
| 2669 | +            foreach ($this->_req_data['MTP_template_fields'][$index]['content'] as $field => $value) { | 
                                                        |
| 2670 | + $this->_req_data['MTP_template_fields'][$index]['content'][$field] = $value;  | 
                                                        |
| 2671 | 2671 | }  | 
                                                        
| 2672 | 2672 | }  | 
                                                        
| 2673 | 2673 | |
| 2674 | 2674 | |
| 2675 | 2675 | $set_column_values = array(  | 
                                                        
| 2676 | - 'MTP_ID' => absint($this->_req_data['MTP_template_fields'][ $index ]['MTP_ID']),  | 
                                                        |
| 2676 | + 'MTP_ID' => absint($this->_req_data['MTP_template_fields'][$index]['MTP_ID']),  | 
                                                        |
| 2677 | 2677 | 'GRP_ID' => absint($this->_req_data['GRP_ID']),  | 
                                                        
| 2678 | 2678 | 'MTP_user_id' => absint($this->_req_data['MTP_user_id']),  | 
                                                        
| 2679 | 2679 | 'MTP_messenger' => strtolower($this->_req_data['MTP_messenger']),  | 
                                                        
| 2680 | 2680 | 'MTP_message_type' => strtolower($this->_req_data['MTP_message_type']),  | 
                                                        
| 2681 | - 'MTP_template_field' => strtolower($this->_req_data['MTP_template_fields'][ $index ]['name']),  | 
                                                        |
| 2681 | + 'MTP_template_field' => strtolower($this->_req_data['MTP_template_fields'][$index]['name']),  | 
                                                        |
| 2682 | 2682 | 'MTP_context' => strtolower($this->_req_data['MTP_context']),  | 
                                                        
| 2683 | - 'MTP_content' => $this->_req_data['MTP_template_fields'][ $index ]['content'],  | 
                                                        |
| 2683 | + 'MTP_content' => $this->_req_data['MTP_template_fields'][$index]['content'],  | 
                                                        |
| 2684 | 2684 | 'MTP_is_global' => isset($this->_req_data['MTP_is_global'])  | 
                                                        
| 2685 | 2685 | ? absint($this->_req_data['MTP_is_global'])  | 
                                                        
| 2686 | 2686 | : 0,  | 
                                                        
@@ -2727,7 +2727,7 @@ discard block  | 
                                                    ||
| 2727 | 2727 |          $context = ucwords(str_replace('_', ' ', $context_slug)); | 
                                                        
| 2728 | 2728 | |
| 2729 | 2729 | $item_desc = $messenger_label && $message_type_label  | 
                                                        
| 2730 | - ? $messenger_label . ' ' . $message_type_label . ' ' . $context . ' '  | 
                                                        |
| 2730 | + ? $messenger_label.' '.$message_type_label.' '.$context.' '  | 
                                                        |
| 2731 | 2731 | : '';  | 
                                                        
| 2732 | 2732 | $item_desc .= 'Message Template';  | 
                                                        
| 2733 | 2733 | $query_args = array();  | 
                                                        
@@ -2758,7 +2758,7 @@ discard block  | 
                                                    ||
| 2758 | 2758 | |
| 2759 | 2759 | |
| 2760 | 2760 | // run update for each template field in displayed context  | 
                                                        
| 2761 | -            if (! isset($this->_req_data['MTP_template_fields']) && empty($this->_req_data['MTP_template_fields'])) { | 
                                                        |
| 2761 | +            if ( ! isset($this->_req_data['MTP_template_fields']) && empty($this->_req_data['MTP_template_fields'])) { | 
                                                        |
| 2762 | 2762 | EE_Error::add_error(  | 
                                                        
| 2763 | 2763 | esc_html__(  | 
                                                        
| 2764 | 2764 | 'There was a problem saving the template fields from the form because I didn\'t receive any actual template field data.',  | 
                                                        
@@ -2820,10 +2820,10 @@ discard block  | 
                                                    ||
| 2820 | 2820 | $set_column_values = $this->_set_message_template_column_values($template_field);  | 
                                                        
| 2821 | 2821 | |
| 2822 | 2822 | $where_cols_n_values = array(  | 
                                                        
| 2823 | - 'MTP_ID' => $this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'],  | 
                                                        |
| 2823 | + 'MTP_ID' => $this->_req_data['MTP_template_fields'][$template_field]['MTP_ID'],  | 
                                                        |
| 2824 | 2824 | );  | 
                                                        
| 2825 | 2825 | // if they aren't allowed to use all JS, restrict them to just posty-y tags  | 
                                                        
| 2826 | -                        if (! current_user_can('unfiltered_html')) { | 
                                                        |
| 2826 | +                        if ( ! current_user_can('unfiltered_html')) { | 
                                                        |
| 2827 | 2827 |                              if (is_array($set_column_values['MTP_content'])) { | 
                                                        
| 2828 | 2828 |                                  foreach ($set_column_values['MTP_content'] as $key => $value) { | 
                                                        
| 2829 | 2829 | // remove slashes so wp_kses works properly (its wp_kses_stripslashes() function  | 
                                                        
@@ -2831,7 +2831,7 @@ discard block  | 
                                                    ||
| 2831 | 2831 | // appear invalid.) But currently the models expect slashed data, so after wp_kses  | 
                                                        
| 2832 | 2832 | // runs we need to re-slash the data. Sheesh. See  | 
                                                        
| 2833 | 2833 | // https://events.codebasehq.com/projects/event-espresso/tickets/11211#update-47321587  | 
                                                        
| 2834 | - $set_column_values['MTP_content'][ $key ] = addslashes(  | 
                                                        |
| 2834 | + $set_column_values['MTP_content'][$key] = addslashes(  | 
                                                        |
| 2835 | 2835 | wp_kses(  | 
                                                        
| 2836 | 2836 | stripslashes($value),  | 
                                                        
| 2837 | 2837 |                                              wp_kses_allowed_html('post') | 
                                                        
@@ -2867,14 +2867,14 @@ discard block  | 
                                                    ||
| 2867 | 2867 | }  | 
                                                        
| 2868 | 2868 |                          } else { | 
                                                        
| 2869 | 2869 | // only do this logic if we don't have a MTP_ID for this field  | 
                                                        
| 2870 | -                            if (empty($this->_req_data['MTP_template_fields'][ $template_field ]['MTP_ID'])) { | 
                                                        |
| 2870 | +                            if (empty($this->_req_data['MTP_template_fields'][$template_field]['MTP_ID'])) { | 
                                                        |
| 2871 | 2871 | // this has already been through the template field validator and sanitized, so it will be  | 
                                                        
| 2872 | 2872 | // safe to insert this field. Why insert? This typically happens when we introduce a new  | 
                                                        
| 2873 | 2873 | // message template field in a messenger/message type and existing users don't have the  | 
                                                        
| 2874 | 2874 | // default setup for it.  | 
                                                        
| 2875 | 2875 | // @link https://events.codebasehq.com/projects/event-espresso/tickets/9465  | 
                                                        
| 2876 | 2876 | $updated = $MTP->insert($message_template_fields);  | 
                                                        
| 2877 | -                                if (! $updated || is_wp_error($updated)) { | 
                                                        |
| 2877 | +                                if ( ! $updated || is_wp_error($updated)) { | 
                                                        |
| 2878 | 2878 | EE_Error::add_error(  | 
                                                        
| 2879 | 2879 | sprintf(  | 
                                                        
| 2880 | 2880 |                                              esc_html__('%s field could not be updated.', 'event_espresso'), | 
                                                        
@@ -3105,7 +3105,7 @@ discard block  | 
                                                    ||
| 3105 | 3105 | // incoming GRP_IDs  | 
                                                        
| 3106 | 3106 |          if ($all) { | 
                                                        
| 3107 | 3107 | // Checkboxes  | 
                                                        
| 3108 | -            if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3108 | +            if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3109 | 3109 | // if array has more than one element then success message should be plural.  | 
                                                        
| 3110 | 3110 | // todo: what about nonce?  | 
                                                        
| 3111 | 3111 | $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        
@@ -3113,16 +3113,16 @@ discard block  | 
                                                    ||
| 3113 | 3113 | // cycle through checkboxes  | 
                                                        
| 3114 | 3114 |                  while (list($GRP_ID, $value) = each($this->_req_data['checkbox'])) { | 
                                                        
| 3115 | 3115 | $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        
| 3116 | -                    if (! $trashed_or_restored) { | 
                                                        |
| 3116 | +                    if ( ! $trashed_or_restored) { | 
                                                        |
| 3117 | 3117 | $success = 0;  | 
                                                        
| 3118 | 3118 | }  | 
                                                        
| 3119 | 3119 | }  | 
                                                        
| 3120 | 3120 |              } else { | 
                                                        
| 3121 | 3121 | // grab single GRP_ID and handle  | 
                                                        
| 3122 | 3122 | $GRP_ID = isset($this->_req_data['id']) ? absint($this->_req_data['id']) : 0;  | 
                                                        
| 3123 | -                if (! empty($GRP_ID)) { | 
                                                        |
| 3123 | +                if ( ! empty($GRP_ID)) { | 
                                                        |
| 3124 | 3124 | $trashed_or_restored = $trash ? $MTP->delete_by_ID($GRP_ID) : $MTP->restore_by_ID($GRP_ID);  | 
                                                        
| 3125 | -                    if (! $trashed_or_restored) { | 
                                                        |
| 3125 | +                    if ( ! $trashed_or_restored) { | 
                                                        |
| 3126 | 3126 | $success = 0;  | 
                                                        
| 3127 | 3127 | }  | 
                                                        
| 3128 | 3128 |                  } else { | 
                                                        
@@ -3170,7 +3170,7 @@ discard block  | 
                                                    ||
| 3170 | 3170 |          do_action('AHEE_log', __FILE__, __FUNCTION__, ''); | 
                                                        
| 3171 | 3171 | |
| 3172 | 3172 | // checkboxes  | 
                                                        
| 3173 | -        if (! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3173 | +        if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) { | 
                                                        |
| 3174 | 3174 | // if array has more than one element then success message should be plural  | 
                                                        
| 3175 | 3175 | $success = count($this->_req_data['checkbox']) > 1 ? 2 : 1;  | 
                                                        
| 3176 | 3176 | |
@@ -3277,7 +3277,7 @@ discard block  | 
                                                    ||
| 3277 | 3277 | protected function _set_m_mt_settings()  | 
                                                        
| 3278 | 3278 |      { | 
                                                        
| 3279 | 3279 | // first if this is already set then lets get out no need to regenerate data.  | 
                                                        
| 3280 | -        if (! empty($this->_m_mt_settings)) { | 
                                                        |
| 3280 | +        if ( ! empty($this->_m_mt_settings)) { | 
                                                        |
| 3281 | 3281 | return;  | 
                                                        
| 3282 | 3282 | }  | 
                                                        
| 3283 | 3283 | |
@@ -3291,7 +3291,7 @@ discard block  | 
                                                    ||
| 3291 | 3291 | // assemble the array for the _tab_text_links helper  | 
                                                        
| 3292 | 3292 | |
| 3293 | 3293 |          foreach ($messengers as $messenger) { | 
                                                        
| 3294 | - $this->_m_mt_settings['messenger_tabs'][ $messenger->name ] = array(  | 
                                                        |
| 3294 | + $this->_m_mt_settings['messenger_tabs'][$messenger->name] = array(  | 
                                                        |
| 3295 | 3295 | 'label' => ucwords($messenger->label['singular']),  | 
                                                        
| 3296 | 3296 | 'class' => $this->_message_resource_manager->is_messenger_active($messenger->name)  | 
                                                        
| 3297 | 3297 | ? 'messenger-active'  | 
                                                        
@@ -3308,7 +3308,7 @@ discard block  | 
                                                    ||
| 3308 | 3308 |              foreach ($message_types as $message_type) { | 
                                                        
| 3309 | 3309 | // first we need to verify that this message type is valid with this messenger. Cause if it isn't then  | 
                                                        
| 3310 | 3310 | // it shouldn't show in either the inactive OR active metabox.  | 
                                                        
| 3311 | -                if (! in_array($message_type->name, $message_types_for_messenger, true)) { | 
                                                        |
| 3311 | +                if ( ! in_array($message_type->name, $message_types_for_messenger, true)) { | 
                                                        |
| 3312 | 3312 | continue;  | 
                                                        
| 3313 | 3313 | }  | 
                                                        
| 3314 | 3314 | |
@@ -3319,12 +3319,12 @@ discard block  | 
                                                    ||
| 3319 | 3319 | ? 'active'  | 
                                                        
| 3320 | 3320 | : 'inactive';  | 
                                                        
| 3321 | 3321 | |
| 3322 | - $this->_m_mt_settings['message_type_tabs'][ $messenger->name ][ $a_or_i ][ $message_type->name ] = array(  | 
                                                        |
| 3322 | + $this->_m_mt_settings['message_type_tabs'][$messenger->name][$a_or_i][$message_type->name] = array(  | 
                                                        |
| 3323 | 3323 | 'label' => ucwords($message_type->label['singular']),  | 
                                                        
| 3324 | - 'class' => 'message-type-' . $a_or_i,  | 
                                                        |
| 3325 | - 'slug_id' => $message_type->name . '-messagetype-' . $messenger->name,  | 
                                                        |
| 3326 | - 'mt_nonce' => wp_create_nonce($message_type->name . '_nonce'),  | 
                                                        |
| 3327 | - 'href' => 'espresso_' . $message_type->name . '_message_type_settings',  | 
                                                        |
| 3324 | + 'class' => 'message-type-'.$a_or_i,  | 
                                                        |
| 3325 | + 'slug_id' => $message_type->name.'-messagetype-'.$messenger->name,  | 
                                                        |
| 3326 | + 'mt_nonce' => wp_create_nonce($message_type->name.'_nonce'),  | 
                                                        |
| 3327 | + 'href' => 'espresso_'.$message_type->name.'_message_type_settings',  | 
                                                        |
| 3328 | 3328 | 'title' => $a_or_i === 'active'  | 
                                                        
| 3329 | 3329 |                          ? esc_html__('Drag this message type to the Inactive window to deactivate', 'event_espresso') | 
                                                        
| 3330 | 3330 |                          : esc_html__('Drag this message type to the messenger to activate', 'event_espresso'), | 
                                                        
@@ -3355,25 +3355,25 @@ discard block  | 
                                                    ||
| 3355 | 3355 | $fields = $message_type->get_admin_settings_fields();  | 
                                                        
| 3356 | 3356 | $settings_template_args['template_form_fields'] = '';  | 
                                                        
| 3357 | 3357 | |
| 3358 | -        if (! empty($fields) && $active) { | 
                                                        |
| 3358 | +        if ( ! empty($fields) && $active) { | 
                                                        |
| 3359 | 3359 | $existing_settings = $message_type->get_existing_admin_settings($messenger->name);  | 
                                                        
| 3360 | 3360 |              foreach ($fields as $fldname => $fldprops) { | 
                                                        
| 3361 | - $field_id = $messenger->name . '-' . $message_type->name . '-' . $fldname;  | 
                                                        |
| 3362 | - $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3363 | - 'name' => 'message_type_settings[' . $fldname . ']',  | 
                                                        |
| 3361 | + $field_id = $messenger->name.'-'.$message_type->name.'-'.$fldname;  | 
                                                        |
| 3362 | + $template_form_field[$field_id] = array(  | 
                                                        |
| 3363 | + 'name' => 'message_type_settings['.$fldname.']',  | 
                                                        |
| 3364 | 3364 | 'label' => $fldprops['label'],  | 
                                                        
| 3365 | 3365 | 'input' => $fldprops['field_type'],  | 
                                                        
| 3366 | 3366 | 'type' => $fldprops['value_type'],  | 
                                                        
| 3367 | 3367 | 'required' => $fldprops['required'],  | 
                                                        
| 3368 | 3368 | 'validation' => $fldprops['validation'],  | 
                                                        
| 3369 | - 'value' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3370 | - ? $existing_settings[ $fldname ]  | 
                                                        |
| 3369 | + 'value' => isset($existing_settings[$fldname])  | 
                                                        |
| 3370 | + ? $existing_settings[$fldname]  | 
                                                        |
| 3371 | 3371 | : $fldprops['default'],  | 
                                                        
| 3372 | 3372 | 'options' => isset($fldprops['options'])  | 
                                                        
| 3373 | 3373 | ? $fldprops['options']  | 
                                                        
| 3374 | 3374 | : array(),  | 
                                                        
| 3375 | - 'default' => isset($existing_settings[ $fldname ])  | 
                                                        |
| 3376 | - ? $existing_settings[ $fldname ]  | 
                                                        |
| 3375 | + 'default' => isset($existing_settings[$fldname])  | 
                                                        |
| 3376 | + ? $existing_settings[$fldname]  | 
                                                        |
| 3377 | 3377 | : $fldprops['default'],  | 
                                                        
| 3378 | 3378 | 'css_class' => 'no-drag',  | 
                                                        
| 3379 | 3379 | 'format' => $fldprops['format'],  | 
                                                        
@@ -3416,7 +3416,7 @@ discard block  | 
                                                    ||
| 3416 | 3416 | : '';  | 
                                                        
| 3417 | 3417 | |
| 3418 | 3418 | |
| 3419 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_mt_settings_content.template.php';  | 
                                                        |
| 3419 | + $template = EE_MSG_TEMPLATE_PATH.'ee_msg_mt_settings_content.template.php';  | 
                                                        |
| 3420 | 3420 | $content = EEH_Template::display_template($template, $settings_template_args, true);  | 
                                                        
| 3421 | 3421 | |
| 3422 | 3422 | return $content;  | 
                                                        
@@ -3447,20 +3447,20 @@ discard block  | 
                                                    ||
| 3447 | 3447 | // messenger meta boxes  | 
                                                        
| 3448 | 3448 | $active = $selected_messenger === $messenger;  | 
                                                        
| 3449 | 3449 | $active_mt_tabs = isset(  | 
                                                        
| 3450 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3450 | + $this->_m_mt_settings['message_type_tabs'][$messenger]['active']  | 
                                                        |
| 3451 | 3451 | )  | 
                                                        
| 3452 | - ? $this->_m_mt_settings['message_type_tabs'][ $messenger ]['active']  | 
                                                        |
| 3452 | + ? $this->_m_mt_settings['message_type_tabs'][$messenger]['active']  | 
                                                        |
| 3453 | 3453 | : '';  | 
                                                        
| 3454 | - $m_boxes[ $messenger . '_a_box' ] = sprintf(  | 
                                                        |
| 3454 | + $m_boxes[$messenger.'_a_box'] = sprintf(  | 
                                                        |
| 3455 | 3455 |                      esc_html__('%s Settings', 'event_espresso'), | 
                                                        
| 3456 | 3456 | $tab_array['label']  | 
                                                        
| 3457 | 3457 | );  | 
                                                        
| 3458 | - $m_template_args[ $messenger . '_a_box' ] = array(  | 
                                                        |
| 3458 | + $m_template_args[$messenger.'_a_box'] = array(  | 
                                                        |
| 3459 | 3459 | 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        
| 3460 | 3460 | 'inactive_message_types' => isset(  | 
                                                        
| 3461 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3461 | + $this->_m_mt_settings['message_type_tabs'][$messenger]['inactive']  | 
                                                        |
| 3462 | 3462 | )  | 
                                                        
| 3463 | - ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3463 | + ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])  | 
                                                        |
| 3464 | 3464 | : '',  | 
                                                        
| 3465 | 3465 | 'content' => $this->_get_messenger_box_content($tab_array['obj']),  | 
                                                        
| 3466 | 3466 | 'hidden' => $active ? '' : ' hidden',  | 
                                                        
@@ -3471,13 +3471,13 @@ discard block  | 
                                                    ||
| 3471 | 3471 | // message type meta boxes  | 
                                                        
| 3472 | 3472 | // (which is really just the inactive container for each messenger  | 
                                                        
| 3473 | 3473 | // showing inactive message types for that messenger)  | 
                                                        
| 3474 | -                $mt_boxes[ $messenger . '_i_box' ] = esc_html__('Inactive Message Types', 'event_espresso'); | 
                                                        |
| 3475 | - $mt_template_args[ $messenger . '_i_box' ] = array(  | 
                                                        |
| 3474 | +                $mt_boxes[$messenger.'_i_box'] = esc_html__('Inactive Message Types', 'event_espresso'); | 
                                                        |
| 3475 | + $mt_template_args[$messenger.'_i_box'] = array(  | 
                                                        |
| 3476 | 3476 | 'active_message_types' => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',  | 
                                                        
| 3477 | 3477 | 'inactive_message_types' => isset(  | 
                                                        
| 3478 | - $this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive']  | 
                                                        |
| 3478 | + $this->_m_mt_settings['message_type_tabs'][$messenger]['inactive']  | 
                                                        |
| 3479 | 3479 | )  | 
                                                        
| 3480 | - ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][ $messenger ]['inactive'])  | 
                                                        |
| 3480 | + ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])  | 
                                                        |
| 3481 | 3481 | : '',  | 
                                                        
| 3482 | 3482 | 'hidden' => $active ? '' : ' hidden',  | 
                                                        
| 3483 | 3483 | 'hide_on_message' => $hide_on_message,  | 
                                                        
@@ -3490,14 +3490,14 @@ discard block  | 
                                                    ||
| 3490 | 3490 | |
| 3491 | 3491 | |
| 3492 | 3492 | // register messenger metaboxes  | 
                                                        
| 3493 | - $m_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_mt_meta_box.template.php';  | 
                                                        |
| 3493 | + $m_template_path = EE_MSG_TEMPLATE_PATH.'ee_msg_details_messenger_mt_meta_box.template.php';  | 
                                                        |
| 3494 | 3494 |          foreach ($m_boxes as $box => $label) { | 
                                                        
| 3495 | -            $callback_args = array('template_path' => $m_template_path, 'template_args' => $m_template_args[ $box ]); | 
                                                        |
| 3495 | +            $callback_args = array('template_path' => $m_template_path, 'template_args' => $m_template_args[$box]); | 
                                                        |
| 3496 | 3496 |              $msgr = str_replace('_a_box', '', $box); | 
                                                        
| 3497 | 3497 | add_meta_box(  | 
                                                        
| 3498 | - 'espresso_' . $msgr . '_settings',  | 
                                                        |
| 3498 | + 'espresso_'.$msgr.'_settings',  | 
                                                        |
| 3499 | 3499 | $label,  | 
                                                        
| 3500 | -                function ($post, $metabox) { | 
                                                        |
| 3500 | +                function($post, $metabox) { | 
                                                        |
| 3501 | 3501 | echo EEH_Template::display_template(  | 
                                                        
| 3502 | 3502 | $metabox["args"]["template_path"],  | 
                                                        
| 3503 | 3503 | $metabox["args"]["template_args"],  | 
                                                        
@@ -3512,17 +3512,17 @@ discard block  | 
                                                    ||
| 3512 | 3512 | }  | 
                                                        
| 3513 | 3513 | |
| 3514 | 3514 | // register message type metaboxes  | 
                                                        
| 3515 | - $mt_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_meta_box.template.php';  | 
                                                        |
| 3515 | + $mt_template_path = EE_MSG_TEMPLATE_PATH.'ee_msg_details_messenger_meta_box.template.php';  | 
                                                        |
| 3516 | 3516 |          foreach ($mt_boxes as $box => $label) { | 
                                                        
| 3517 | 3517 | $callback_args = array(  | 
                                                        
| 3518 | 3518 | 'template_path' => $mt_template_path,  | 
                                                        
| 3519 | - 'template_args' => $mt_template_args[ $box ],  | 
                                                        |
| 3519 | + 'template_args' => $mt_template_args[$box],  | 
                                                        |
| 3520 | 3520 | );  | 
                                                        
| 3521 | 3521 |              $mt = str_replace('_i_box', '', $box); | 
                                                        
| 3522 | 3522 | add_meta_box(  | 
                                                        
| 3523 | - 'espresso_' . $mt . '_inactive_mts',  | 
                                                        |
| 3523 | + 'espresso_'.$mt.'_inactive_mts',  | 
                                                        |
| 3524 | 3524 | $label,  | 
                                                        
| 3525 | -                function ($post, $metabox) { | 
                                                        |
| 3525 | +                function($post, $metabox) { | 
                                                        |
| 3526 | 3526 | echo EEH_Template::display_template(  | 
                                                        
| 3527 | 3527 | $metabox["args"]["template_path"],  | 
                                                        
| 3528 | 3528 | $metabox["args"]["template_args"],  | 
                                                        
@@ -3668,7 +3668,7 @@ discard block  | 
                                                    ||
| 3668 | 3668 |              if ($form->is_valid()) { | 
                                                        
| 3669 | 3669 | $valid_data = $form->valid_data();  | 
                                                        
| 3670 | 3670 |                  foreach ($valid_data as $property => $value) { | 
                                                        
| 3671 | - $setter = 'set_' . $property;  | 
                                                        |
| 3671 | + $setter = 'set_'.$property;  | 
                                                        |
| 3672 | 3672 |                      if (method_exists($network_config, $setter)) { | 
                                                        
| 3673 | 3673 |                          $network_config->{$setter}($value); | 
                                                        
| 3674 | 3674 | } elseif (property_exists($network_config, $property)  | 
                                                        
@@ -3702,7 +3702,7 @@ discard block  | 
                                                    ||
| 3702 | 3702 | protected function _get_mt_tabs($tab_array)  | 
                                                        
| 3703 | 3703 |      { | 
                                                        
| 3704 | 3704 | $tab_array = (array) $tab_array;  | 
                                                        
| 3705 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_mt_settings_tab_item.template.php';  | 
                                                        |
| 3705 | + $template = EE_MSG_TEMPLATE_PATH.'ee_msg_details_mt_settings_tab_item.template.php';  | 
                                                        |
| 3706 | 3706 | $tabs = '';  | 
                                                        
| 3707 | 3707 | |
| 3708 | 3708 |          foreach ($tab_array as $tab) { | 
                                                        
@@ -3730,20 +3730,20 @@ discard block  | 
                                                    ||
| 3730 | 3730 | $settings_template_args['active'] = $this->_message_resource_manager->is_messenger_active($messenger->name);  | 
                                                        
| 3731 | 3731 | |
| 3732 | 3732 | |
| 3733 | -        if (! empty($fields)) { | 
                                                        |
| 3733 | +        if ( ! empty($fields)) { | 
                                                        |
| 3734 | 3734 | $existing_settings = $messenger->get_existing_admin_settings();  | 
                                                        
| 3735 | 3735 | |
| 3736 | 3736 |              foreach ($fields as $fldname => $fldprops) { | 
                                                        
| 3737 | - $field_id = $messenger->name . '-' . $fldname;  | 
                                                        |
| 3738 | - $template_form_field[ $field_id ] = array(  | 
                                                        |
| 3739 | - 'name' => 'messenger_settings[' . $field_id . ']',  | 
                                                        |
| 3737 | + $field_id = $messenger->name.'-'.$fldname;  | 
                                                        |
| 3738 | + $template_form_field[$field_id] = array(  | 
                                                        |
| 3739 | + 'name' => 'messenger_settings['.$field_id.']',  | 
                                                        |
| 3740 | 3740 | 'label' => $fldprops['label'],  | 
                                                        
| 3741 | 3741 | 'input' => $fldprops['field_type'],  | 
                                                        
| 3742 | 3742 | 'type' => $fldprops['value_type'],  | 
                                                        
| 3743 | 3743 | 'required' => $fldprops['required'],  | 
                                                        
| 3744 | 3744 | 'validation' => $fldprops['validation'],  | 
                                                        
| 3745 | - 'value' => isset($existing_settings[ $field_id ])  | 
                                                        |
| 3746 | - ? $existing_settings[ $field_id ]  | 
                                                        |
| 3745 | + 'value' => isset($existing_settings[$field_id])  | 
                                                        |
| 3746 | + ? $existing_settings[$field_id]  | 
                                                        |
| 3747 | 3747 | : $fldprops['default'],  | 
                                                        
| 3748 | 3748 | 'css_class' => '',  | 
                                                        
| 3749 | 3749 | 'format' => $fldprops['format'],  | 
                                                        
@@ -3769,9 +3769,9 @@ discard block  | 
                                                    ||
| 3769 | 3769 | );  | 
                                                        
| 3770 | 3770 | |
| 3771 | 3771 | // make sure any active message types that are existing are included in the hidden fields  | 
                                                        
| 3772 | -        if (isset($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'])) { | 
                                                        |
| 3773 | -            foreach ($this->_m_mt_settings['message_type_tabs'][ $messenger->name ]['active'] as $mt => $values) { | 
                                                        |
| 3774 | - $settings_template_args['hidden_fields'][ 'messenger_settings[message_types][' . $mt . ']' ] = array(  | 
                                                        |
| 3772 | +        if (isset($this->_m_mt_settings['message_type_tabs'][$messenger->name]['active'])) { | 
                                                        |
| 3773 | +            foreach ($this->_m_mt_settings['message_type_tabs'][$messenger->name]['active'] as $mt => $values) { | 
                                                        |
| 3774 | + $settings_template_args['hidden_fields']['messenger_settings[message_types]['.$mt.']'] = array(  | 
                                                        |
| 3775 | 3775 | 'type' => 'hidden',  | 
                                                        
| 3776 | 3776 | 'value' => $mt,  | 
                                                        
| 3777 | 3777 | );  | 
                                                        
@@ -3800,9 +3800,9 @@ discard block  | 
                                                    ||
| 3800 | 3800 | |
| 3801 | 3801 | |
| 3802 | 3802 | $settings_template_args['on_off_action'] = $active ? 'messenger-off' : 'messenger-on';  | 
                                                        
| 3803 | -        $settings_template_args['nonce'] = wp_create_nonce('activate_' . $messenger->name . '_toggle_nonce'); | 
                                                        |
| 3803 | +        $settings_template_args['nonce'] = wp_create_nonce('activate_'.$messenger->name.'_toggle_nonce'); | 
                                                        |
| 3804 | 3804 | $settings_template_args['on_off_status'] = $active ? true : false;  | 
                                                        
| 3805 | - $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_m_settings_content.template.php';  | 
                                                        |
| 3805 | + $template = EE_MSG_TEMPLATE_PATH.'ee_msg_m_settings_content.template.php';  | 
                                                        |
| 3806 | 3806 | $content = EEH_Template::display_template(  | 
                                                        
| 3807 | 3807 | $template,  | 
                                                        
| 3808 | 3808 | $settings_template_args,  | 
                                                        
@@ -3828,7 +3828,7 @@ discard block  | 
                                                    ||
| 3828 | 3828 | $success = true;  | 
                                                        
| 3829 | 3829 | $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        
| 3830 | 3830 | // let's check that we have required data  | 
                                                        
| 3831 | -        if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3831 | +        if ( ! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3832 | 3832 | EE_Error::add_error(  | 
                                                        
| 3833 | 3833 |                  esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        
| 3834 | 3834 | __FILE__,  | 
                                                        
@@ -3842,12 +3842,12 @@ discard block  | 
                                                    ||
| 3842 | 3842 | $nonce = isset($this->_req_data['activate_nonce'])  | 
                                                        
| 3843 | 3843 | ? sanitize_text_field($this->_req_data['activate_nonce'])  | 
                                                        
| 3844 | 3844 | : '';  | 
                                                        
| 3845 | - $nonce_ref = 'activate_' . $this->_req_data['messenger'] . '_toggle_nonce';  | 
                                                        |
| 3845 | + $nonce_ref = 'activate_'.$this->_req_data['messenger'].'_toggle_nonce';  | 
                                                        |
| 3846 | 3846 | |
| 3847 | 3847 | $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        
| 3848 | 3848 | |
| 3849 | 3849 | |
| 3850 | -        if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3850 | +        if ( ! isset($this->_req_data['status'])) { | 
                                                        |
| 3851 | 3851 | EE_Error::add_error(  | 
                                                        
| 3852 | 3852 | esc_html__(  | 
                                                        
| 3853 | 3853 | 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        
@@ -3906,7 +3906,7 @@ discard block  | 
                                                    ||
| 3906 | 3906 | $this->_prep_default_response_for_messenger_or_message_type_toggle();  | 
                                                        
| 3907 | 3907 | |
| 3908 | 3908 | // let's make sure we have the necessary data  | 
                                                        
| 3909 | -        if (! isset($this->_req_data['message_type'])) { | 
                                                        |
| 3909 | +        if ( ! isset($this->_req_data['message_type'])) { | 
                                                        |
| 3910 | 3910 | EE_Error::add_error(  | 
                                                        
| 3911 | 3911 |                  esc_html__('Message Type name needed to toggle activation. None given', 'event_espresso'), | 
                                                        
| 3912 | 3912 | __FILE__,  | 
                                                        
@@ -3916,7 +3916,7 @@ discard block  | 
                                                    ||
| 3916 | 3916 | $success = false;  | 
                                                        
| 3917 | 3917 | }  | 
                                                        
| 3918 | 3918 | |
| 3919 | -        if (! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3919 | +        if ( ! isset($this->_req_data['messenger'])) { | 
                                                        |
| 3920 | 3920 | EE_Error::add_error(  | 
                                                        
| 3921 | 3921 |                  esc_html__('Messenger name needed to toggle activation. None given', 'event_espresso'), | 
                                                        
| 3922 | 3922 | __FILE__,  | 
                                                        
@@ -3926,7 +3926,7 @@ discard block  | 
                                                    ||
| 3926 | 3926 | $success = false;  | 
                                                        
| 3927 | 3927 | }  | 
                                                        
| 3928 | 3928 | |
| 3929 | -        if (! isset($this->_req_data['status'])) { | 
                                                        |
| 3929 | +        if ( ! isset($this->_req_data['status'])) { | 
                                                        |
| 3930 | 3930 | EE_Error::add_error(  | 
                                                        
| 3931 | 3931 | esc_html__(  | 
                                                        
| 3932 | 3932 | 'Messenger status needed to know whether activation or deactivation is happening. No status is given',  | 
                                                        
@@ -3959,7 +3959,7 @@ discard block  | 
                                                    ||
| 3959 | 3959 | |
| 3960 | 3960 | // do a nonce check here since we're not arriving via a normal route  | 
                                                        
| 3961 | 3961 | $nonce = isset($this->_req_data['mt_nonce']) ? sanitize_text_field($this->_req_data['mt_nonce']) : '';  | 
                                                        
| 3962 | - $nonce_ref = $this->_req_data['message_type'] . '_nonce';  | 
                                                        |
| 3962 | + $nonce_ref = $this->_req_data['message_type'].'_nonce';  | 
                                                        |
| 3963 | 3963 | |
| 3964 | 3964 | $this->_verify_nonce($nonce, $nonce_ref);  | 
                                                        
| 3965 | 3965 | |
@@ -4146,7 +4146,7 @@ discard block  | 
                                                    ||
| 4146 | 4146 | EE_Message_Type $message_type = null  | 
                                                        
| 4147 | 4147 |      ) { | 
                                                        
| 4148 | 4148 | // if $messenger isn't a valid messenger object then get out.  | 
                                                        
| 4149 | -        if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4149 | +        if ( ! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4150 | 4150 | EE_Error::add_error(  | 
                                                        
| 4151 | 4151 |                  esc_html__('The messenger being activated is not a valid messenger', 'event_espresso'), | 
                                                        
| 4152 | 4152 | __FILE__,  | 
                                                        
@@ -4201,7 +4201,7 @@ discard block  | 
                                                    ||
| 4201 | 4201 | // message types after the activation process. However its possible some messengers don't HAVE any default_message_types  | 
                                                        
| 4202 | 4202 | // in which case we just give a success message for the messenger being successfully activated.  | 
                                                        
| 4203 | 4203 |          } else { | 
                                                        
| 4204 | -            if (! $messenger->get_default_message_types()) { | 
                                                        |
| 4204 | +            if ( ! $messenger->get_default_message_types()) { | 
                                                        |
| 4205 | 4205 | // messenger doesn't have any default message types so still a success.  | 
                                                        
| 4206 | 4206 | EE_Error::add_success(  | 
                                                        
| 4207 | 4207 | sprintf(  | 
                                                        
@@ -4257,7 +4257,7 @@ discard block  | 
                                                    ||
| 4257 | 4257 | EE_Error::overwrite_success();  | 
                                                        
| 4258 | 4258 | |
| 4259 | 4259 | // if $messenger isn't a valid messenger object then get out.  | 
                                                        
| 4260 | -        if (! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4260 | +        if ( ! $messenger instanceof EE_Messenger) { | 
                                                        |
| 4261 | 4261 | EE_Error::add_error(  | 
                                                        
| 4262 | 4262 |                  esc_html__('The messenger being deactivated is not a valid messenger', 'event_espresso'), | 
                                                        
| 4263 | 4263 | __FILE__,  | 
                                                        
@@ -4319,7 +4319,7 @@ discard block  | 
                                                    ||
| 4319 | 4319 | */  | 
                                                        
| 4320 | 4320 | public function update_mt_form()  | 
                                                        
| 4321 | 4321 |      { | 
                                                        
| 4322 | -        if (! isset($this->_req_data['messenger']) || ! isset($this->_req_data['message_type'])) { | 
                                                        |
| 4322 | +        if ( ! isset($this->_req_data['messenger']) || ! isset($this->_req_data['message_type'])) { | 
                                                        |
| 4323 | 4323 | EE_Error::add_error(  | 
                                                        
| 4324 | 4324 |                  esc_html__('Require message type or messenger to send an updated form', 'event_espresso'), | 
                                                        
| 4325 | 4325 | __FILE__,  | 
                                                        
@@ -4331,7 +4331,7 @@ discard block  | 
                                                    ||
| 4331 | 4331 | |
| 4332 | 4332 | $message_types = $this->get_installed_message_types();  | 
                                                        
| 4333 | 4333 | |
| 4334 | - $message_type = $message_types[ $this->_req_data['message_type'] ];  | 
                                                        |
| 4334 | + $message_type = $message_types[$this->_req_data['message_type']];  | 
                                                        |
| 4335 | 4335 | $messenger = $this->_message_resource_manager->get_active_messenger($this->_req_data['messenger']);  | 
                                                        
| 4336 | 4336 | |
| 4337 | 4337 | $content = $this->_message_type_settings_content(  | 
                                                        
@@ -4351,7 +4351,7 @@ discard block  | 
                                                    ||
| 4351 | 4351 | */  | 
                                                        
| 4352 | 4352 | public function save_settings()  | 
                                                        
| 4353 | 4353 |      { | 
                                                        
| 4354 | -        if (! isset($this->_req_data['type'])) { | 
                                                        |
| 4354 | +        if ( ! isset($this->_req_data['type'])) { | 
                                                        |
| 4355 | 4355 | EE_Error::add_error(  | 
                                                        
| 4356 | 4356 | esc_html__(  | 
                                                        
| 4357 | 4357 | 'Cannot save settings because type is unknown (messenger settings or messsage type settings?)',  | 
                                                        
@@ -4380,7 +4380,7 @@ discard block  | 
                                                    ||
| 4380 | 4380 | unset($settings['message_types']);  | 
                                                        
| 4381 | 4381 | break;  | 
                                                        
| 4382 | 4382 | default:  | 
                                                        
| 4383 | - $settings[ $key ] = $value;  | 
                                                        |
| 4383 | + $settings[$key] = $value;  | 
                                                        |
| 4384 | 4384 | break;  | 
                                                        
| 4385 | 4385 | }  | 
                                                        
| 4386 | 4386 | }  | 
                                                        
@@ -4399,7 +4399,7 @@ discard block  | 
                                                    ||
| 4399 | 4399 | unset($settings['message_type']);  | 
                                                        
| 4400 | 4400 | break;  | 
                                                        
| 4401 | 4401 | default:  | 
                                                        
| 4402 | - $settings[ $key ] = $value;  | 
                                                        |
| 4402 | + $settings[$key] = $value;  | 
                                                        |
| 4403 | 4403 | break;  | 
                                                        
| 4404 | 4404 | }  | 
                                                        
| 4405 | 4405 | }  | 
                                                        
@@ -4560,7 +4560,7 @@ discard block  | 
                                                    ||
| 4560 | 4560 | */  | 
                                                        
| 4561 | 4561 | protected function _get_msg_ids_from_request()  | 
                                                        
| 4562 | 4562 |      { | 
                                                        
| 4563 | -        if (! isset($this->_req_data['MSG_ID'])) { | 
                                                        |
| 4563 | +        if ( ! isset($this->_req_data['MSG_ID'])) { | 
                                                        |
| 4564 | 4564 | return array();  | 
                                                        
| 4565 | 4565 | }  | 
                                                        
| 4566 | 4566 | |
@@ -38,103 +38,103 @@  | 
                                                    ||
| 38 | 38 | * @since 4.0  | 
                                                        
| 39 | 39 | */  | 
                                                        
| 40 | 40 |  if (function_exists('espresso_version')) { | 
                                                        
| 41 | -    if (! function_exists('espresso_duplicate_plugin_error')) { | 
                                                        |
| 42 | - /**  | 
                                                        |
| 43 | - * espresso_duplicate_plugin_error  | 
                                                        |
| 44 | - * displays if more than one version of EE is activated at the same time  | 
                                                        |
| 45 | - */  | 
                                                        |
| 46 | - function espresso_duplicate_plugin_error()  | 
                                                        |
| 47 | -        { | 
                                                        |
| 48 | - ?>  | 
                                                        |
| 41 | +	if (! function_exists('espresso_duplicate_plugin_error')) { | 
                                                        |
| 42 | + /**  | 
                                                        |
| 43 | + * espresso_duplicate_plugin_error  | 
                                                        |
| 44 | + * displays if more than one version of EE is activated at the same time  | 
                                                        |
| 45 | + */  | 
                                                        |
| 46 | + function espresso_duplicate_plugin_error()  | 
                                                        |
| 47 | +		{ | 
                                                        |
| 48 | + ?>  | 
                                                        |
| 49 | 49 | <div class="error">  | 
                                                        
| 50 | 50 | <p>  | 
                                                        
| 51 | 51 | <?php  | 
                                                        
| 52 | - echo esc_html__(  | 
                                                        |
| 53 | - 'Can not run multiple versions of Event Espresso! One version has been automatically deactivated. Please verify that you have the correct version you want still active.',  | 
                                                        |
| 54 | - 'event_espresso'  | 
                                                        |
| 55 | - ); ?>  | 
                                                        |
| 52 | + echo esc_html__(  | 
                                                        |
| 53 | + 'Can not run multiple versions of Event Espresso! One version has been automatically deactivated. Please verify that you have the correct version you want still active.',  | 
                                                        |
| 54 | + 'event_espresso'  | 
                                                        |
| 55 | + ); ?>  | 
                                                        |
| 56 | 56 | </p>  | 
                                                        
| 57 | 57 | </div>  | 
                                                        
| 58 | 58 | <?php  | 
                                                        
| 59 | - espresso_deactivate_plugin(plugin_basename(__FILE__));  | 
                                                        |
| 60 | - }  | 
                                                        |
| 61 | - }  | 
                                                        |
| 62 | -    add_action('admin_notices', 'espresso_duplicate_plugin_error', 1); | 
                                                        |
| 59 | + espresso_deactivate_plugin(plugin_basename(__FILE__));  | 
                                                        |
| 60 | + }  | 
                                                        |
| 61 | + }  | 
                                                        |
| 62 | +	add_action('admin_notices', 'espresso_duplicate_plugin_error', 1); | 
                                                        |
| 63 | 63 |  } else { | 
                                                        
| 64 | -    define('EE_MIN_PHP_VER_REQUIRED', '5.4.0'); | 
                                                        |
| 65 | -    if (! version_compare(PHP_VERSION, EE_MIN_PHP_VER_REQUIRED, '>=')) { | 
                                                        |
| 66 | - /**  | 
                                                        |
| 67 | - * espresso_minimum_php_version_error  | 
                                                        |
| 68 | - *  | 
                                                        |
| 69 | - * @return void  | 
                                                        |
| 70 | - */  | 
                                                        |
| 71 | - function espresso_minimum_php_version_error()  | 
                                                        |
| 72 | -        { | 
                                                        |
| 73 | - ?>  | 
                                                        |
| 64 | +	define('EE_MIN_PHP_VER_REQUIRED', '5.4.0'); | 
                                                        |
| 65 | +	if (! version_compare(PHP_VERSION, EE_MIN_PHP_VER_REQUIRED, '>=')) { | 
                                                        |
| 66 | + /**  | 
                                                        |
| 67 | + * espresso_minimum_php_version_error  | 
                                                        |
| 68 | + *  | 
                                                        |
| 69 | + * @return void  | 
                                                        |
| 70 | + */  | 
                                                        |
| 71 | + function espresso_minimum_php_version_error()  | 
                                                        |
| 72 | +		{ | 
                                                        |
| 73 | + ?>  | 
                                                        |
| 74 | 74 | <div class="error">  | 
                                                        
| 75 | 75 | <p>  | 
                                                        
| 76 | 76 | <?php  | 
                                                        
| 77 | - printf(  | 
                                                        |
| 78 | - esc_html__(  | 
                                                        |
| 79 | - 'We\'re sorry, but Event Espresso requires PHP version %1$s or greater in order to operate. You are currently running version %2$s.%3$sIn order to update your version of PHP, you will need to contact your current hosting provider.%3$sFor information on stable PHP versions, please go to %4$s.',  | 
                                                        |
| 80 | - 'event_espresso'  | 
                                                        |
| 81 | - ),  | 
                                                        |
| 82 | - EE_MIN_PHP_VER_REQUIRED,  | 
                                                        |
| 83 | - PHP_VERSION,  | 
                                                        |
| 84 | - '<br/>',  | 
                                                        |
| 85 | - '<a href="http://php.net/downloads.php">http://php.net/downloads.php</a>'  | 
                                                        |
| 86 | - );  | 
                                                        |
| 87 | - ?>  | 
                                                        |
| 77 | + printf(  | 
                                                        |
| 78 | + esc_html__(  | 
                                                        |
| 79 | + 'We\'re sorry, but Event Espresso requires PHP version %1$s or greater in order to operate. You are currently running version %2$s.%3$sIn order to update your version of PHP, you will need to contact your current hosting provider.%3$sFor information on stable PHP versions, please go to %4$s.',  | 
                                                        |
| 80 | + 'event_espresso'  | 
                                                        |
| 81 | + ),  | 
                                                        |
| 82 | + EE_MIN_PHP_VER_REQUIRED,  | 
                                                        |
| 83 | + PHP_VERSION,  | 
                                                        |
| 84 | + '<br/>',  | 
                                                        |
| 85 | + '<a href="http://php.net/downloads.php">http://php.net/downloads.php</a>'  | 
                                                        |
| 86 | + );  | 
                                                        |
| 87 | + ?>  | 
                                                        |
| 88 | 88 | </p>  | 
                                                        
| 89 | 89 | </div>  | 
                                                        
| 90 | 90 | <?php  | 
                                                        
| 91 | - espresso_deactivate_plugin(plugin_basename(__FILE__));  | 
                                                        |
| 92 | - }  | 
                                                        |
| 91 | + espresso_deactivate_plugin(plugin_basename(__FILE__));  | 
                                                        |
| 92 | + }  | 
                                                        |
| 93 | 93 | |
| 94 | -        add_action('admin_notices', 'espresso_minimum_php_version_error', 1); | 
                                                        |
| 95 | -    } else { | 
                                                        |
| 96 | -        define('EVENT_ESPRESSO_MAIN_FILE', __FILE__); | 
                                                        |
| 97 | - /**  | 
                                                        |
| 98 | - * espresso_version  | 
                                                        |
| 99 | - * Returns the plugin version  | 
                                                        |
| 100 | - *  | 
                                                        |
| 101 | - * @return string  | 
                                                        |
| 102 | - */  | 
                                                        |
| 103 | - function espresso_version()  | 
                                                        |
| 104 | -        { | 
                                                        |
| 105 | -            return apply_filters('FHEE__espresso__espresso_version', '4.10.0.rc.016'); | 
                                                        |
| 106 | - }  | 
                                                        |
| 94 | +		add_action('admin_notices', 'espresso_minimum_php_version_error', 1); | 
                                                        |
| 95 | +	} else { | 
                                                        |
| 96 | +		define('EVENT_ESPRESSO_MAIN_FILE', __FILE__); | 
                                                        |
| 97 | + /**  | 
                                                        |
| 98 | + * espresso_version  | 
                                                        |
| 99 | + * Returns the plugin version  | 
                                                        |
| 100 | + *  | 
                                                        |
| 101 | + * @return string  | 
                                                        |
| 102 | + */  | 
                                                        |
| 103 | + function espresso_version()  | 
                                                        |
| 104 | +		{ | 
                                                        |
| 105 | +			return apply_filters('FHEE__espresso__espresso_version', '4.10.0.rc.016'); | 
                                                        |
| 106 | + }  | 
                                                        |
| 107 | 107 | |
| 108 | - /**  | 
                                                        |
| 109 | - * espresso_plugin_activation  | 
                                                        |
| 110 | - * adds a wp-option to indicate that EE has been activated via the WP admin plugins page  | 
                                                        |
| 111 | - */  | 
                                                        |
| 112 | - function espresso_plugin_activation()  | 
                                                        |
| 113 | -        { | 
                                                        |
| 114 | -            update_option('ee_espresso_activation', true); | 
                                                        |
| 115 | - }  | 
                                                        |
| 108 | + /**  | 
                                                        |
| 109 | + * espresso_plugin_activation  | 
                                                        |
| 110 | + * adds a wp-option to indicate that EE has been activated via the WP admin plugins page  | 
                                                        |
| 111 | + */  | 
                                                        |
| 112 | + function espresso_plugin_activation()  | 
                                                        |
| 113 | +		{ | 
                                                        |
| 114 | +			update_option('ee_espresso_activation', true); | 
                                                        |
| 115 | + }  | 
                                                        |
| 116 | 116 | |
| 117 | - register_activation_hook(EVENT_ESPRESSO_MAIN_FILE, 'espresso_plugin_activation');  | 
                                                        |
| 117 | + register_activation_hook(EVENT_ESPRESSO_MAIN_FILE, 'espresso_plugin_activation');  | 
                                                        |
| 118 | 118 | |
| 119 | - require_once __DIR__ . '/core/bootstrap_espresso.php';  | 
                                                        |
| 120 | - bootstrap_espresso();  | 
                                                        |
| 121 | - }  | 
                                                        |
| 119 | + require_once __DIR__ . '/core/bootstrap_espresso.php';  | 
                                                        |
| 120 | + bootstrap_espresso();  | 
                                                        |
| 121 | + }  | 
                                                        |
| 122 | 122 | }  | 
                                                        
| 123 | 123 |  if (! function_exists('espresso_deactivate_plugin')) { | 
                                                        
| 124 | - /**  | 
                                                        |
| 125 | - * deactivate_plugin  | 
                                                        |
| 126 | - * usage: espresso_deactivate_plugin( plugin_basename( __FILE__ ));  | 
                                                        |
| 127 | - *  | 
                                                        |
| 128 | - * @access public  | 
                                                        |
| 129 | - * @param string $plugin_basename - the results of plugin_basename( __FILE__ ) for the plugin's main file  | 
                                                        |
| 130 | - * @return void  | 
                                                        |
| 131 | - */  | 
                                                        |
| 132 | - function espresso_deactivate_plugin($plugin_basename = '')  | 
                                                        |
| 133 | -    { | 
                                                        |
| 134 | -        if (! function_exists('deactivate_plugins')) { | 
                                                        |
| 135 | - require_once ABSPATH . 'wp-admin/includes/plugin.php';  | 
                                                        |
| 136 | - }  | 
                                                        |
| 137 | - unset($_GET['activate'], $_REQUEST['activate']);  | 
                                                        |
| 138 | - deactivate_plugins($plugin_basename);  | 
                                                        |
| 139 | - }  | 
                                                        |
| 124 | + /**  | 
                                                        |
| 125 | + * deactivate_plugin  | 
                                                        |
| 126 | + * usage: espresso_deactivate_plugin( plugin_basename( __FILE__ ));  | 
                                                        |
| 127 | + *  | 
                                                        |
| 128 | + * @access public  | 
                                                        |
| 129 | + * @param string $plugin_basename - the results of plugin_basename( __FILE__ ) for the plugin's main file  | 
                                                        |
| 130 | + * @return void  | 
                                                        |
| 131 | + */  | 
                                                        |
| 132 | + function espresso_deactivate_plugin($plugin_basename = '')  | 
                                                        |
| 133 | +	{ | 
                                                        |
| 134 | +		if (! function_exists('deactivate_plugins')) { | 
                                                        |
| 135 | + require_once ABSPATH . 'wp-admin/includes/plugin.php';  | 
                                                        |
| 136 | + }  | 
                                                        |
| 137 | + unset($_GET['activate'], $_REQUEST['activate']);  | 
                                                        |
| 138 | + deactivate_plugins($plugin_basename);  | 
                                                        |
| 139 | + }  | 
                                                        |
| 140 | 140 | }  |