function get_dln_question_form() { if (is_dln_page('edit')) { $question = $wp_query->posts[0]; if (!current_user_can('edit_question', $question->ID)) { return; } $question->tags = wp_get_object_terms($question->ID, 'dln_question_tag', array('fields' => 'names')); $args = apply_filters('dln_category_args', array('fields' => 'ids')); $cats = wp_get_object_terms($question->ID, 'dln_question_category', $args); $question->cat = empty($cats) ? false : reset($cats); } else { $question = (object) array('ID' => '', 'post_content' => '', 'post_title' => '', 'tags' => array(), 'cat' => false); } $out = ''; $out .= '<form id="question-form" method="post" action="' . dln_get_url('archive') . '">'; $out .= wp_nonce_field('dln_edit', "_wpnonce", true, false); $out .= '<input type="hidden" name="dln_action" value="edit_question" />'; $out .= '<input type="hidden" name="question_id" value="' . esc_attr($question->ID) . '" />'; $out .= '<table id="question-form-table">'; $out .= '<tr>'; $out .= '<td id="question-title-label">'; $out .= '<label for="question-title">' . __('Title:', DLN_SLUG) . '</label>'; $out .= '</td>'; $out .= '<td id="question-title-td">'; $out .= '<input type="text" id="question-title" name="question_title" value="' . esc_attr($question->post_title) . '" />'; $out .= '</td> </tr> </table>'; $out .= '<textarea name="question_content" class="wp32">' . esc_textarea($question->post_content) . '</textarea>'; $out .= '<table id="question-taxonomies"> <tr> <td id="question-category-td">'; $out .= wp_dropdown_categories(array('orderby' => 'name', 'order' => 'ASC', 'taxonomy' => 'dln_question_category', 'selected' => $question->cat, 'hide_empty' => false, 'hierarchical' => true, 'name' => 'question_cat', 'class' => '', 'show_option_none' => __('Select category...', DLN_SLUG), 'echo' => 0)); $out .= '</td> <td id="question-tags-label"> <label for="question-tags">' . __('Tags:', DLN_SLUG) . '</label> </td> <td id="question-tags-td"> <input type="text" id="question-tags" name="question_tags" value="' . implode(', ', $question->tags) . '" /> </td> </tr> </table>'; $out .= get_the_dln_submit_button(); $out .= '</form>'; return $out; }
public function handle_forms() { if (!isset($_REQUEST['_wpnonce'])) { return; } // Handle actions if (isset($_REQUEST['dln_delete']) && wp_verify_nonce($_REQUEST['_wpnonce'], 'dln_delete')) { $post = get_post($_REQUEST['dln_delete']); if ($post && current_user_can('delete_post', $post->ID)) { if ('answer' == $post->post_type) { wp_delete_post($post->ID); $url = qa_get_url('single', $post->post_parent); } elseif ('question' == $post->post_type) { wp_delete_post($post->ID); $url = add_query_arg('dln_msg', 'deleted', dln_get_url('archive')); } } } elseif (isset($_POST['dln_action'])) { $action = $_POST['dln_action']; var_dump($_POST); die; switch ($action) { case 'edit_question': $url = $this->handle_question_editing(); break; case 'edit_answer': $url = $this->handle_answer_editing(); break; } } else { return; } if (!$url) { $url = add_query_arg('dln_error', 1, dln_get_url('archive')); } wp_redirect($url); die; }