Title: CSV Download
Author: desie314
Published: <strong>August 2, 2016</strong>
Last modified: August 2, 2016

---

Search plugins

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://s.w.org/plugins/geopattern-icon/csv-download.svg)

# CSV Download

 By [desie314](https://profiles.wordpress.org/desie314/)

[Download](https://downloads.wordpress.org/plugin/csv-download.zip)

 * [Details](https://wordpress.org/plugins/csv-download/#description)
 * [Reviews](https://wordpress.org/plugins/csv-download/#reviews)
 *  [Installation](https://wordpress.org/plugins/csv-download/#installation)
 * [Development](https://wordpress.org/plugins/csv-download/#developers)

 [Support](https://wordpress.org/support/plugin/csv-download/)

## Description

A plugin for WP developers to easily add CSV download links to the admin section
or front end. When a specific GET variable is detected (from the download link) 
your data, which needs to be a multi-dimensional array, is passed to a function 
that converts it to a csv file and triggers the download.

Add the following code to **functions.php**.

#### Admin Example

    ```
    /**
     * Instantiate CSVDownload class with appropriate arguments (listed in class).
     * Arguments are optional
     */
    if (class_exists('CSVDownload')) {
      $csv_button = New CSVDownload(array(
        'post_types' => array('page'),
        'post_type_ids' => array(420, 114, 749),
        'metabox_title' => 'Download CSV Data',
        'help_text' => 'CSV file containing useful data.',
        'parameter' => 'csv_export_button',
        'button_text' => 'Download'
      ));
    }

    /**
     * Get results, convert to csv file, and trigger download.
     */
    if(isset($_GET[$csv_button->parameter])) {
      add_action('admin_init', function(){
        // Get results array
        $results = get_csv_file_results();
        // Convert results array to csv file and trigger download.
        CSVDownload::download_csv_results(array(
          'results' => $results,
          'file_name' => 'csv_data'
        ));
        exit;
      }, 1);
    }

    /**
     * Get the results array for the csv button download.
     *
     * @return array
     */
    function get_csv_file_results(){

      // Create multi-dimensional array.
      $results_array = array(
        array('Email','User Name','Favorite Color'), // Column headers
        array('fake@email.com','coolguy1','blue'),
        array('fake@email.com','coolguy2','orange'),
        array('fake@email.com','coolguy3','pink'),
        array('fake@email.com','coolguy4','red'),
      );

      // Return results array
      return $results_array;
    }
    ```

#### Front End Example

Add a button element to your HTML.

    ```
    <a href="<?php echo $_SERVER["REQUEST_URI"]; ?>?csv_export_button=1">Download</a>
    ```

Add init action callback and provide array data.

    ```
    /**
     * Get results, convert to csv file, and trigger download.
     */
    if(isset($_GET['csv_export_button'])) {
      add_action('init', function(){
        // Get results array
        $results = get_csv_file_results();
        // Convert results array to csv file and trigger download.
        CSVDownload::download_csv_results(array(
          'results' => $results,
          'file_name' => 'csv_data'
        ));
        exit;
      }, 1);
    }

    /**
     * Get the results array for the csv button download.
     *
     * @return array
     */
    function get_csv_file_results(){

      // Create multi-dimensional array.
      $results_array = array(
        array('Email','User Name','Favorite Color'), // Column headers
        array('fake@email.com','coolguy1','blue'),
        array('fake@email.com','coolguy2','orange'),
        array('fake@email.com','coolguy3','pink'),
        array('fake@email.com','coolguy4','red'),
      );

      // Return results array
      return $results_array;
    }
    ```

[AgencyLabs.com](http://agencylabs.com/) – A digital production studio.

## Screenshots

 * [[
 * Admin section example metabox.

## Installation

 1. Upload the plugin files to the `/wp-content/plugins/csv-download` directory, or
    install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress

## Reviews

![](https://secure.gravatar.com/avatar/9155e309b408a49e4935180198cf8ac5f6fbae6576b4b60cab34d230a81bad57?
s=60&d=retro&r=g)

### 󠀁[Heck I use it.](https://wordpress.org/support/topic/heck-i-use-it/)󠁿

 [desie314](https://profiles.wordpress.org/desie314/) September 3, 2016

No complaints so far.

 [ Read all 1 review ](https://wordpress.org/support/plugin/csv-download/reviews/)

## Contributors & Developers

“CSV Download” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ desie314 ](https://profiles.wordpress.org/desie314/)

[Translate “CSV Download” into your language.](https://translate.wordpress.org/projects/wp-plugins/csv-download)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/csv-download/), check
out the [SVN repository](https://plugins.svn.wordpress.org/csv-download/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/csv-download/) by
[RSS](https://plugins.trac.wordpress.org/log/csv-download/?limit=100&mode=stop_on_copy&format=rss).

## Meta

 *  Version **1.0.0**
 *  Last updated **10 years ago**
 *  Active installations **10+**
 *  Tested up to **4.5.33**
 * Tag
 * [csv](https://wordpress.org/plugins/tags/csv/)
 *  [Advanced View](https://wordpress.org/plugins/csv-download/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/csv-download/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/csv-download/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/csv-download/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/csv-download/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/csv-download/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/csv-download/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/csv-download/reviews/)

## Contributors

 *   [ desie314 ](https://profiles.wordpress.org/desie314/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/csv-download/)