79302954

Date: 2024-12-23 11:44:28
Score: 0.5
Natty:
Report link

$('.btn-export').on('click',function(){
   $.ajax({
    url:"<?php echo admin_url('admin-ajax.php') ?>",
    type:"POST",
    data:{
        action:"export_news_cpt",
    },
    success:function(response)
    {
           if (response !== 0) {
                        Swal.fire({
                            icon: "success",
                            title: "Downloaded",
                            text: "Thankyou for downloading this file",
                        });
                        var link = document.createElement('a');
                        link.href = 'data:text/csv,' + encodeURIComponent(response);
                        link.download = 'news_data.csv';
                        link.click();

                    } else {
                        Swal.fire({
                            icon: "error",
                            title: response.data.message,
                            text: "Something went wrong!",
                        });
                    }
    },
    error : function (xhr , status,error)
    {
        alert("AJAX Response:"+error);
    },
    
   });

   });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
add_action("wp_ajax_export_news_cpt", "export_news_cpt");
add_action("wp_ajax_nopriv_export_news_cpt", "export_news_cpt");
function export_news_cpt()
{
    if ($_SERVER['REQUEST_METHOD'] == "POST") {

        $args = [
            'post_type' => 'news',
            'posts_per_page' => -1,
        ];

        $query = new WP_Query($args);
        if ($query->have_posts()) {
            $csv = 'Post_ID,Post_Title,Post_Date,Post Time,Category,Post Content,Post Excerpt,Thumbnail_url' . "\n";
            while ($query->have_posts()) {
                $query->the_post();
                $post = $query->post;
                $thumbnail_url = get_the_post_thumbnail_url($post->ID);
                $post_date = get_the_date('Y-m-d');
                $post_time = get_the_time('H:i:s');
                $post_content = wp_strip_all_tags(trim($post->post_content));
                $post_excerpt = get_the_excerpt();
                $post_id = get_the_ID();
                $post_title = get_the_title();
                $category = get_the_terms($post->ID, 'news_taxonomy');
                if ($category && !is_wp_error($category)) {
                    $category_name = $category[0]->name;
                }
                $csv .= '"' . $post_id . '","' . $post_title . '","' . $post_date . '","'  . $post_time . '","' . $category_name . '","' . $post_content . '","' . $post_excerpt . '","' . $thumbnail_url . '"' . "\n";
            }
            wp_reset_postdata();
            header('Content-Type: text/csv');
            header('Content-Disposition: attachment; filename=news_data.csv');
            echo $csv;
            wp_die();
        } else {
            echo 0;
        }
    } else {
        wp_send_json_error(array('message' => 'Error'));
    }
    wp_die();
}

Reasons:
  • Blacklisted phrase (1): Thankyou
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: shweta mishra