Formulário de Envio de Correio Front-End

Estou trabalhando em um site que será alimentado pela comunidade. Vai ter o formulário para que os usuários registrados enviem rascunhos, que serão então aprovados ou excluídos pelos editores do site. A maneira como eu estou tentando implementá-lo é com um modelo de página personalizado, que inclui um formulário que permitirá que as pessoas apresentem rascunhos para revisão.

Eu queria saber se alguém poderia me apontar para algum código que faça isso e que funciona. Eu tentei pesquisar, mas até agora o código que estou encontrando não está funcionando.

Estou usando wordpress 3.1

Obrigado 🙂

Solutions Collecting From Web of "Formulário de Envio de Correio Front-End"

Eu sei que esta é uma pergunta antiga …
mas! há uma contagem de vistas agradável, o que significa que as pessoas ainda precisam disso.
Talvez também o ajude a fechar esta questão;)

Aqui está uma versão ajax

  • A própria página
  • o código JS
  • O receptor de PHP Ajax e o código de publicação.

Dentro do seu modelo de página
– este é um exemplo – personalize a estrutura do seu tema

< ?php $content = ''; $editorSettings = array( 'wpautop' => true, 'media_buttons' => false, 'textarea_name' => 'articleEditor', 'editor_class' => 'articleEditor', 'theme' => 'advanced', 'textarea_rows' => get_option('default_post_edit_rows', 12), 'tinymce' => array( 'theme_advanced_buttons1' => 'bold,italic,strikethrough,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,|,link,unlink,wp_more,|,spellchecker,fullscreen,wp_adv', 'theme_advanced_buttons2' => 'formatselect,underline,justifyfull,forecolor,backcolor,|,pastetext,pasteword,removeformat,|,media,charmap,|,outdent,indent,|,undo,redo,wp_help', 'theme_advanced_buttons3' => '', 'theme_advanced_buttons4' => '' ), 'quicktags' => array( 'buttons' => 'b,i,ul,ol,li,link,close' ) ); // BUILD CATEGORY SELECT $client_select = ''; $categories = get_categories('hide_empty=0'); $optionname = "articlecat"; $emptyvalue = ""; // SELECT DROP DOWN TERMS $client_select .= ''; ?>

< ?php wp_editor($content, 'articlebody', $editorSettings); ?>

O Código JQuery Ajax
– eu criaria um arquivo submit-article.js em alguma pasta

 jQuery(function($){ //********************************************* // INSERT NEW ARTICLE //********************************************* $('.insert_article_btn').click(function () { $('.topAjaxLoader').fadeIn(); var parentbox = $('#submit-post'); var title = $(parentbox).find('input#title').val(); var body = $(parentbox).find('#articlebody').val(); var body_ifr = $('#articlebody_ifr').contents().find('body').html(); var category = $(parentbox).find('#articlecat option:selected').val(); $.post(ajax_object.ajaxurl, { action: 'insert_article', title: title, body: body, body_ifr: body_ifr, category: category, }, function(data) { var $response = $(data); var postid = $response.filter('div#postID').html(); var success = $response.filter('div#success').html(); var error = $response.filter('div#error').html(); if(error) { // DO SOMETHING WITH ERROR MESSAGE } if(success) { // DO SOMETHING WITH SUCCESS $(parentbox).find('input#title').val(''); $(parentbox).find('#articlebody').val(''); $("#articlebody_ifr").contents().find("body").html(''); $(parentbox).find("#articlecat").val([]); } }); }); }); 

O código PHP Ajax

  • Eu criaria um arquivo submit-article.php em alguma pasta
  • Certifique-se de que o URL na primeira linha aponte para o arquivo JS

      wp_enqueue_script('ajax-insert-article', get_stylesheet_directory_uri().'/ajax/submit-article.js', array('jquery'), 1.0 ); wp_localize_script('ajax-insert-article', 'ajax_object', array( 'ajaxurl' => admin_url('admin-ajax.php'))); add_action('wp_ajax_insert_article', 'insert_article'); function insert_article() { $title = sanitize_text_field( $_POST['title'] ); $body = sanitize_text_field( $_POST['body'] ); $body_ifr = sanitize_text_field( $_POST['body_ifr'] ); $category = intval( $_POST['category'] ); // SET WHICH ARTICLE BODY if(!$body) {$body = $body_ifr;} // VERIFY ALL FIELDS EXISTS if(!$title) {echo '
    '.__('You forgot the', THEME_NAME).' '.__('Title', THEME_NAME).'
    ';} elseif(!$body) {echo '
    '.__('You forgot the', THEME_NAME).' '.__('article body', THEME_NAME).'
    ';} elseif(!$category) {echo '
    '.__('You forgot the', THEME_NAME).' '.__('article category', THEME_NAME).'
    ';} else{ // INSERT POST $post = array( 'post_title' => $title, 'post_content' => stripslashes($body), 'post_status' => 'publish', 'post_type' => 'post', 'post_category' => array($category) ); $postid = wp_insert_post($post, 10, 1); do_action('wp_insert_post', 'wp_insert_post', 10, 1); echo '
    Article Published!
    '; } wp_die();

    }