/** * * Process the form submission * */ function process_entry() { $public_can_vote = avfr_get_option('avfr_public_voting', 'avfr_settings_main'); $allowed_type = explode(",", avfr_get_option('avfr_allowed_file_types', 'avfr_settings_features')); $allowed_size = avfr_get_option('avfr_max_file_size', 'avfr_settings_features'); $title = isset($_POST['avfr-title']) ? $_POST['avfr-title'] : null; $desc = isset($_POST['avfr-description']) ? $_POST['avfr-description'] : null; $uploadajx = isset($_POST['avfr-upload']) ? $_POST['avfr-upload'] : null; $uploadOk = 1; $must_approve = '1' == avfr_get_option('avfr_approve_features', 'avfr_settings_main') ? 'pending' : 'publish'; session_start(); if (isset($_POST['action']) && $_POST['action'] == 'process_entry') { // only run for logged in users or if public is allowed if (!is_user_logged_in() && 'on' !== $public_can_vote) { return; } // OK security passes so let's process some data if (wp_verify_nonce($_POST['nonce'], 'avfr-entry-nonce')) { // bail if we don't have required fields if (empty($title) || empty($desc)) { printf('<div class="error">%s</div>', __('Whoops! Looks like you forgot the Title and/or description.', 'feature-request')); } else { if ('on' == avfr_get_option('avfr_disable_captcha', 'avfr_settings_main') || isset($_POST["captcha"]) && $_POST["captcha"] != "" && $_SESSION["code"] == $_POST["captcha"]) { if (is_user_logged_in()) { $userid = get_current_user_ID(); } elseif (!is_user_logged_in() && $public_can_vote) { $userid = apply_filters('avfr_default_public_author', 1); } //get array of inserted tags in front-end $tags = str_replace(array('[', ']', '"', '\\'), '', $_POST['avfr-tags']); $groups = $_POST['group']; $tags_array = explode(',', $tags); // create an feature-request post type $post_args = array('post_title' => wp_strip_all_tags($title), 'post_content' => avfr_content_filter($desc), 'the_post_thumbnail' => avfr_image_filter($uploadajx), 'post_status' => $must_approve, 'post_type' => 'avfr', 'post_author' => (int) $userid); if (!is_user_logged_in()) { $email = $_POST['avfr-email']; if (!is_email($email)) { $response_array = array('success' => 'false', 'message' => __('<span class="dashicons dashicons-warning"></span>' . 'Please enter a valid email address.', 'feature-request')); echo json_encode($response_array); die; } } if ($_FILES) { $convert_byte_kb = $allowed_size * 1024; if ($_FILES["avfr-upload"]["size"] > $convert_byte_kb) { $response_array = array('success' => 'false', 'message' => __('<span class="dashicons dashicons-warning"></span>' . ' Your image size is greater than acceptable !', 'feature-request')); echo json_encode($response_array); die; } if (in_array($_FILES["avfr-upload"]["type"], $allowed_type)) { //continue } else { $response_array = array('success' => 'false', 'message' => __('<span class="dashicons dashicons-warning"></span>' . ' Please upload acceptable image format !', 'feature-request')); echo json_encode($response_array); die; } if ($_FILES['avfr-upload']['error'] !== UPLOAD_ERR_OK) { $response_array = array('success' => 'false', 'message' => __('<span class="dashicons dashicons-dismiss"></span>' . ' upload error :' . $_FILES['avfr-upload']['error'], 'feature-request')); echo json_encode($response_array); die; } else { $entry_id = wp_insert_post($post_args); $attach_id = media_handle_upload('avfr-upload', $entry_id); update_post_meta($entry_id, '_thumbnail_id', $attach_id); } } else { $entry_id = wp_insert_post($post_args); } $entry_groups = wp_set_object_terms($entry_id, $groups, 'groups'); $entry_avfrtags = wp_set_object_terms($entry_id, $tags_array, 'featureTags'); update_post_meta($entry_id, '_avfr_votes', 0); update_post_meta($entry_id, '_avfr_total_votes', 0); update_post_meta($entry_id, '_avfr_status', 'open'); update_post_meta($entry_id, '_flag', 0); if (!is_user_logged_in()) { update_post_meta($entry_id, '_avfr_author_email', $email); } do_action('avfr_entry_submitted', $entry_id, $userid); $response_array = array('success' => 'true', 'message' => __('<span class="dashicons dashicons-yes"></span>' . ' Thanks for your entry!', 'feature-request')); echo json_encode($response_array); if ($must_approve == 'pending') { echo "<br/>"; $response_array = array('success' => 'true', 'message' => __('<span class="dashicons dashicons-flag"></span>' . ' You suggestion is awaiting moderation.', 'feature-request')); echo json_encode($response_array); } } else { $response_array = array('success' => 'false', 'message' => __('<span class="dashicons dashicons-warning"></span>' . ' Captcha code is not correct!', 'feature-request')); echo json_encode($response_array); } } } } exit; // Ajax }
function avfr_submit_header() { $intro_message = avfr_get_option('avfr_welcome', 'avfr_settings_main'); ?> <aside class="avfr-layout-submit"> <div class="avfr-submit-left"> <?php echo avfr_content_filter($intro_message); ?> </div> <div class="avfr-submit-right"> <?php do_action('avfr_before_submit_button'); ?> <a href="#avfr-modal" class="avfr-button avfr-trigger"><?php _e('Submit feature', 'feature-request'); ?> </a> <?php do_action('avfr_after_submit_button'); ?> </div> </aside> <?php }