Permalink
102 lines (87 sloc)
2.56 KB
<?php | |
# No need for the template engine | |
define( 'WP_USE_THEMES', false ); | |
#find the base path | |
define( 'BASE_PATH', find_wordpress_base_path() . "/" ); | |
# Load WordPress Core | |
if ( !file_exists(BASE_PATH . 'wp-load.php') ) { | |
die("WordPress not installed here"); | |
} | |
require_once( BASE_PATH . 'wp-load.php' ); | |
require_once( BASE_PATH . 'wp-includes/class-phpass.php' ); | |
require_once( BASE_PATH . 'wp-admin/includes/image.php' ); | |
if ( isset( $_GET['nonce'] ) ) { | |
$nonce = $_GET['nonce']; | |
if ( ! wp_verify_nonce( $nonce, 'cmplz_csv_nonce' ) ) { | |
die( "1 invalid command" ); | |
} | |
} else { | |
die( "2 invalid command" ); | |
} | |
if ( ! is_user_logged_in() ) { | |
die( "no permission here, invalid command" ); | |
} | |
function array_to_csv_download( | |
$array, $filename = "export.csv", $delimiter = ";" | |
) { | |
header( 'Content-Type: application/csv;charset=UTF-8' ); | |
header( 'Content-Disposition: attachment; filename="' . $filename . '";' ); | |
//fix ö ë etc character encoding issues: | |
echo "\xEF\xBB\xBF"; // UTF-8 BOM | |
// open the "output" stream | |
// see http://www.php.net/manual/en/wrappers.php.php#refsect2-wrappers.php-unknown-unknown-unknown-descriptioq | |
$f = fopen( 'php://output', 'w' ); | |
foreach ( $array as $line ) { | |
fputcsv( $f, $line, $delimiter ); | |
} | |
} | |
$file_title = "cmplz-export-" . date( "j" ) . " " . __( date( "F" ) ) . " " | |
. date( "Y" ); | |
array_to_csv_download( | |
export_array(), | |
$file_title . ".csv" | |
); | |
function export_array() { | |
$users = COMPLIANZ::$DNSMPD->get_users( array( | |
'orderby' => 'ID', | |
'order' => 'DESC' | |
) ); | |
$output = array(); | |
$output[] = array( | |
__( "Name", 'complianz-gdpr' ), | |
__( "Email", 'complianz-gdpr' ) | |
); | |
foreach ( $users as $user ) { | |
$output[] = array( $user->name, $user->email ); | |
} | |
return $output; | |
} | |
function find_wordpress_base_path() | |
{ | |
$path = dirname(__FILE__); | |
do { | |
//it is possible to check for other files here | |
if (file_exists($path . "/wp-config.php")) { | |
//check if the wp-load.php file exists here. If not, we assume it's in a subdir. | |
if ( file_exists( $path . '/wp-load.php') ) { | |
return $path; | |
} else { | |
//wp not in this directory. Look in each folder to see if it's there. | |
if ( file_exists( $path ) && $handle = opendir( $path ) ) { | |
while ( false !== ( $file = readdir( $handle ) ) ) { | |
if ( $file != "." && $file != ".." ) { | |
$file = $path .'/' . $file; | |
if ( is_dir( $file ) && file_exists( $file . '/wp-load.php') ) { | |
$path = $file; | |
break; | |
} | |
} | |
} | |
closedir( $handle ); | |
} | |
} | |
return $path; | |
} | |
} while ($path = realpath("$path/..")); | |
return false; | |
} |