Home > Software design >  Wordpress how to use Ajax to show new data returned from successful insert_post()?
Wordpress how to use Ajax to show new data returned from successful insert_post()?

Time:12-01

After a successful Ajax insert of an entry, I would like to see what the ID and url of that same entry is and display it in a modal window without refreshing the page

Any way to get this data from success: function (response) {}? This is the code I have to make a new entry with ajax which works perfect:

  <script>
        
        $("#enquiry_email_form").on("submit", function (event) {
            event.preventDefault();
 
            var form= $(this);
            var ajaxurl = form.data("url");
            var detail_info = {
                post_title: form.find("#post_title").val(),
                post_description: form.find("#post_description").val()
            }
 
            if(detail_info.post_title === "" || detail_info.post_description === "") {
                alert("Fields cannot be blank");
                return;
            }
 
            $.ajax({
 
                url: ajaxurl,
                type: 'POST',
                data: {
                    post_details : detail_info,
                    action: 'save_post_details_form' // this is going to be used inside wordpress functions.php// *esto se utilizará dentro de las functions.php*
                },
                error: function(error) {
                    alert("Insert Failed"   error);
                },
      success: function(response) {
                modal.style.display = "block";  * abre la ventana modal*

                body.style.position = "static";
                body.style.height = "100%";
                body.style.overflow = "hidden";
                     
                     
                }
            });
        })
    </script>
<button id="btnModal">Abrir modal</button> 
<div id="tvesModal" class="modalContainer">
 <div class="modal-content">
 <span class="close">×</span> <h2>Modal</h2> * Ventana modal mostrar le url y ID generado *
 <p><?php ***echo $title_post, $url, $ID*** ?></p> 
 
 </div>
 </div> 

Archive funtions.php

 function save_enquiry_form_action() {
     
        $post_title = $_POST['post_details']['post_title'];
        $post_description = $_POST['post_details']['post_description'];
        $args = [
            'post_title'=> $post_title,
            'post_content'=>$post_description,
            'post_status'=> 'publish',
            'post_type'=> 'post',
            'show_in_rest' => true,
            'post_date'=> get_the_date()
        ];
     
        $is_post_inserted = wp_insert_post($args);
     
        if($is_post_inserted) {
            return "success";
        } else {
            return "failed";
        }
    }

CodePudding user response:

When you use enter image description here

  • Related