__('Security check failed.', 'aetta-email-capture')], 403); } $options = AETTAEC_Plugin::get_plugin_options(); $submission_result = self::execute_submission_logic($options, $_POST); if ($submission_result === true) { wp_send_json_success(['message' => $options['success_message']]); } wp_send_json_error(['message' => $submission_result]); } public static function process_form_submission() { if (ob_get_level()) ob_end_clean(); $nonce_value = isset($_POST['aettaec_nonce']) ? sanitize_key(wp_unslash($_POST['aettaec_nonce'])) : ''; if (!wp_verify_nonce($nonce_value, 'aettaec_submit')) { wp_die('Security check failed.'); } $options = AETTAEC_Plugin::get_plugin_options(); $redirect_url = wp_get_referer() ?: home_url('/'); $redirect_url = remove_query_arg(['aetta_success', 'aetta_err'], $redirect_url); $submission_result = self::execute_submission_logic($options, $_POST); if ($submission_result === true) { self::execute_safe_redirect(add_query_arg('aetta_success', '1', $redirect_url)); } else { self::execute_safe_redirect(add_query_arg('aetta_err', urlencode($submission_result), $redirect_url)); } } private static function execute_safe_redirect($location) { if (!headers_sent()) { wp_safe_redirect($location); } echo ""; exit; } public static function render_shortcode($attributes = []) { $is_success = isset($_GET['aetta_success']) ? true : false; $error_msg = isset($_GET['aetta_err']) ? sanitize_text_field(wp_unslash($_GET['aetta_err'])) : ''; $options = AETTAEC_Plugin::get_plugin_options(); if ((int)$options['use_css'] === 1) { wp_enqueue_style('aettaec-form', AETTAEC_PLUGIN_URL . 'assets/css/form.css', [], AETTAEC_VERSION); } wp_enqueue_script('aettaec-form', AETTAEC_PLUGIN_URL . 'assets/js/form.js', [], AETTAEC_VERSION, true); $css_variables = [ '--aettaec-border-color:' . $options['ui_border_color'], '--aettaec-border-width:' . (int)$options['ui_border_width'] . 'px', '--aettaec-radius:' . (int)$options['ui_radius'] . 'px', '--aettaec-input-height:' . (int)$options['ui_input_height'] . 'px', '--aettaec-button-bg:' . $options['ui_button_bg'], '--aettaec-button-text:' . $options['ui_button_text'], '--aettaec-button-hover-bg:' . $options['ui_button_hover_bg'], '--aettaec-success-border:' . $options['ui_success_border'], '--aettaec-error-border:' . $options['ui_error_border'], '--aettaec-form-bg:' . $options['ui_form_bg'], '--aettaec-text-color:' . $options['ui_text_color'], '--aettaec-input-bg:' . $options['ui_input_bg'], '--aettaec-font-size:' . (int)$options['ui_font_size'] . 'px', '--aettaec-max-width:' . (int)$options['ui_max_width'] . 'px' ]; $style_attr = implode(';', $css_variables); $html = ''; if ($is_success) { $html .= '