PriMoThemes — now s2Member® (official notice)
This is now a very OLD forum system. It's in READ-ONLY mode.
	All community interaction now occurs at WP Sharks™. See: new forums @ WP Sharks™



(array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true)
<?php
/**
* Handles User Export requests ( innner processing routines ).
*
* Copyright: © 2009-2011
* {@link http://www.websharks-inc.com/ WebSharks, Inc.}
* ( coded in the USA )
*
* This WordPress® plugin ( s2Member Pro ) is comprised of two parts:
*
* o (1) Its PHP code is licensed under the GPL license, as is WordPress®.
*    You should have received a copy of the GNU General Public License,
*    along with this software. In the main directory, see: /licensing/
*    If not, see: {@link http://www.gnu.org/licenses/}.
*
* o (2) All other parts of ( s2Member Pro ); including, but not limited to:
*    the CSS code, some JavaScript code, images, and design;
*    are licensed according to the license purchased.
*    See: {@link http://www.s2member.com/prices/}
*
* Unless you have our prior written consent, you must NOT directly or indirectly license,
* sub-license, sell, resell, or provide for free; part (2) of the s2Member Pro Module;
* or make an offer to do any of these things. All of these things are strictly
* prohibited with part (2) of the s2Member Pro Module.
*
* Your purchase of s2Member Pro includes free lifetime upgrades via s2Member.com
* ( i.e. new features, bug fixes, updates, improvements ); along with full access
* to our video tutorial library: {@link http://www.s2member.com/videos/}
*
* @package s2Member\User_Exports
* @since 1.5
*/
if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
   exit ("Do not access this file directly.");
/**/
if (!class_exists ("c_ws_plugin__s2member_pro_exports_in"))
   {
      /**
      * Handles User Export requests ( innner processing routines ).
      *
      * @package s2Member\User_Exports
      * @since 1.5
      */
      class c_ws_plugin__s2member_pro_exports_in
         {
            /**
            * Handles the exportation of Users/Members.
            *
            * @package s2Member\User_Exports
            * @since 1.5
            *
            * @attaches-to ``add_action("init");``
            *
            * @return null Or exits script execution after issuing file download prompt with CSV file.
            */
            public static function export ()
               {
                  if (!empty ($_POST["ws_plugin__s2member_pro_export"]) && ($nonce = $_POST["ws_plugin__s2member_pro_export"]) && wp_verify_nonce ($nonce, "ws-plugin--s2member-pro-export") && current_user_can ("create_users"))
                     {
                        global $wpdb; /* Global database object reference. */
                        global $current_site, $current_blog; /* Multisite Networking. */
                        /**/
                        @set_time_limit (0); /* Make time for processing. */
                        @ini_set ("memory_limit", "256M"); /* RAM. */
                        /**/
                        $format = !empty ($_POST["ws_plugin__s2member_pro_export_format"]) ? $_POST["ws_plugin__s2member_pro_export_format"] : "";
                        $start = !empty ($_POST["ws_plugin__s2member_pro_export_start"]) ? (int)$_POST["ws_plugin__s2member_pro_export_start"] : 1;
                        /**/
                        $start = ($start >= 1) ? $start : 1; /* Must be 1 or higher. */
                        $sql_s = ($start === 1) ? 0 : $start; /* 1 should be 0. */
                        /**/
                        $export = ""; /* Initialize the export file variable. */
                        /**/
                        $s2map = array ( /* Map s2Member fields. */
                        "custom" => $wpdb->prefix . "s2member_custom",/**/
                        "subscr_id" => $wpdb->prefix . "s2member_subscr_id",/**/
                        "subscr_gateway" => $wpdb->prefix . "s2member_subscr_gateway",/**/
                        "auto_eot_time" => $wpdb->prefix . "s2member_auto_eot_time",/**/
                        "last_payment_time" => $wpdb->prefix . "s2member_last_payment_time",/**/
                        "paid_registration_times" => $wpdb->prefix . "s2member_paid_registration_times",/**/
                        "custom_fields" => $wpdb->prefix . "s2member_custom_fields");
                        /**/
                        if (is_array ($_users = $wpdb->get_results ("SELECT `" . $wpdb->users . "`.`ID` FROM `" . $wpdb->users . "`, `" . $wpdb->usermeta . "` WHERE `" . $wpdb->users . "`.`ID` = `" . $wpdb->usermeta . "`.`user_id` AND `" . $wpdb->usermeta . "`.`meta_key` = '" . esc_sql ($wpdb->prefix . "capabilities") . "' LIMIT " . $sql_s . ", 250")))
                           {
                              if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ())
                                 $export .= '"ID","Username","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"' . "\n";
                              else /* Otherwise, we use the standardized format for exportation.*/
                              
                              
                              
                              
                              // Start Modification to labels
                              $s2_customFieldLabel_array = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
                                     $i = 0;
                                     
                                      foreach ($s2_customFieldLabel_array as $field) {
                                         ksort ($s2_customFieldLabel_array);
                                       if(i===0){
                                       $cfLabel .= "\"" . $field['id'] . "\"";
                                       }else{
                                       $cfLabel .= ",\"" . $field['id'] . "\"";
                                       }
                                       $i++;
                                      }
                                 // End Modification to labels - $cfLabel is called below
                              
                                 $export .= '"ID","Username","Password","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"' . $cfLabel .  "\n";
                              /**/
                              foreach ($_users as $_user) /* Go through each User/Member in this result set. */
                                 {
                                    if (is_object ($user = new WP_User ($_user->ID)) && $user->ID)
                                       {
                                          $custom_capabilities = ""; /* Reset each time. */
                                          /**/
                                          foreach ($user->allcaps as $cap => $cap_enabled)
                                             if (preg_match ("/^access_s2member_ccap_/", $cap))
                                                if ($cap = preg_replace ("/^access_s2member_ccap_/", "", $cap))
                                                   $custom_capabilities .= "," . $cap;
                                          /**/
                                          $custom_capabilities = trim ($custom_capabilities, ",");
                                          /**/
                                          $custom = (isset ($user->$s2map["custom"])) ? $user->$s2map["custom"] : "";
                                          $subscr_id = (isset ($user->$s2map["subscr_id"])) ? $user->$s2map["subscr_id"] : "";
                                          $subscr_gateway = (isset ($user->$s2map["subscr_gateway"])) ? $user->$s2map["subscr_gateway"] : "";
                                          /**/
                                          $auto_eot_time = (isset ($user->$s2map["auto_eot_time"])) ? $user->$s2map["auto_eot_time"] : "";
                                          $last_payment_time = (isset ($user->$s2map["last_payment_time"])) ? $user->$s2map["last_payment_time"] : "";
                                          $paid_registration_times = (isset ($user->$s2map["paid_registration_times"])) ? $user->$s2map["paid_registration_times"] : "";
                                          $custom_fields = (isset ($user->$s2map["custom_fields"]) && is_array ($user->$s2map["custom_fields"])) ? $user->$s2map["custom_fields"] : array ();
                                          /**/
                                          $paid_registration_date = ($paid_registration_times["level"]) ? date ("m/d/Y", $paid_registration_times["level"]) : "";
                                          $paid_registration_times = (is_array ($paid_registration_times) && !empty ($paid_registration_times)) ? serialize ($paid_registration_times) : "";
                                          $registration_date = ($user->user_registered) ? date ("m/d/Y", strtotime ($user->user_registered)) : "";
                                          $last_payment_date = ($last_payment_time) ? date ("m/d/Y", $last_payment_time) : "";
                                          $auto_eot_date = ($auto_eot_time) ? date ("m/d/Y", $auto_eot_time) : "";
                                          /**/
                                          ksort ($custom_fields); /* Make sure Custom Fields are always in the same order.
                                                /* This provides clarity/uniformity in the export file. */
                                          /**/
                                          if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ())
                                             {
                                                if ($format === "readable") /* Human readable format; easier for some. */
                                                   {
                                                      $line = '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->ID) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_login) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->first_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->last_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->display_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_email) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_url) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq (reset ($user->roles)) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_capabilities) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($paid_registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($last_payment_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($auto_eot_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_id) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_gateway) . '",';
                                                      /**/
                                                      foreach ($custom_fields as $custom_field_var => $custom_field_value)
                                                         {
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_field_var) . '",';
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq /* Implode array? */
                                                            (implode ("|", (array)$custom_field_value)) . '",';
                                                         }
                                                   }
                                                else /* Otherwise, we can just use the default re-importation format. */
                                                   {
                                                      $line = '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->ID) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_login) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->first_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->last_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->display_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_email) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_url) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq (reset ($user->roles)) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_capabilities) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($paid_registration_times) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($last_payment_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($auto_eot_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_id) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_gateway) . '",';
                                                      /**/
                                                      foreach ($custom_fields as $custom_field_var => $custom_field_value)
                                                         {
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_field_var) . '",';
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq /* Serialize? */
                                                            (maybe_serialize ($custom_field_value)) . '",';
                                                         }
                                                   }
                                             }
                                          else /* Otherwise, we use the standardized formats for exportation.*/
                                             {
                                                if ($format === "readable") /* Human readable format; easier for some. */
                                                   {
                                                      $line = '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->ID) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_login) . '",';
                                                      $line .= '"",'; /* The Password field is left blank on export. */
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->first_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->last_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->display_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_email) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_url) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq (reset ($user->roles)) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_capabilities) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($paid_registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($last_payment_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($auto_eot_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_id) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_gateway) . '",';
                                                      /**/
                                                      
                                                      $return = array();
                                                       $user = get_user_option('s2member_custom_fields', $user->ID);
                                                      $s2_customFieldValue_array = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
                                                      
                                                      foreach ($s2_customFieldValue_array as $field) {
                                                         
                                                            $return[$field['id']]['value'] = $user[$field['id']];
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($return[$field['id']]['value']) . '",';
                                                         }
                                                      
                                                      /*  Original Script
                                                      
                                                      foreach ($custom_fields as $custom_field_var => $custom_field_value)
                                                         {
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_field_var) . '",';
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq // Implode array?
                                                            (implode ("|", (array)$custom_field_value)) . '",';
                                                         }*/
                                                   }
                                                else /* Otherwise, we can just use the default re-importation format. */
                                                   {
                                                      $line = '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->ID) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_login) . '",';
                                                      $line .= '"",'; /* The Password field is left blank on export. */
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->first_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->last_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->display_name) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_email) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($user->user_url) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq (reset ($user->roles)) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_capabilities) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($registration_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($paid_registration_times) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($last_payment_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($auto_eot_date) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_id) . '",';
                                                      $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($subscr_gateway) . '",';
                                                      /**/
                                                      
                                                      // Start Modification to values
                                                      
                                                      $return = array();
                                                       $user = get_user_option('s2member_custom_fields', $user->ID);
                                                      $s2_cf_array = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
                                                      
                                                      foreach ($s2_cf_array as $field) {
                                                         
                                                             $return[$field['id']]['value'] = $user[$field['id']];
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($return[$field['id']]['value']) . '",';
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq // Serialize? 
                                                            (maybe_serialize ($custom_field_value)) . '",';
                                                         }
                                                      
                                                      // End Modification to values
                                                      
                                                         
                                                         
                                                         
                                                         /*
                                                         //Original Code:
                                                         
                                                         foreach ($custom_fields as $custom_field_var => $custom_field_value)
                                                         {
                                                            
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($custom_field_var) . '",';
                                                            $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq // Serialize? 
                                                            (maybe_serialize ($custom_field_value)) . '",';
                                                         }
                                                         */
                                                   }
                                             }
                                          /**/
                                          $export .= trim ($line, " \r\n\t\0\x0B,") . "\n";
                                       }
                                 }
                           }
                        /**/
                        @ini_set ("zlib.output_compression", 0);
                        /**/
                        header ("Accept-Ranges: none");
                        header ("Content-Encoding: none");
                        header ("Content-Type: text/csv; charset=utf-8");
                        header ("Content-Length: " . strlen ($export));
                        header ("Expires: " . gmdate ("D, d M Y H:i:s", strtotime ("-1 week")) . " GMT");
                        header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT");
                        header ("Cache-Control: no-cache, must-revalidate, max-age=0");
                        header ("Cache-Control: post-check=0, pre-check=0", false);
                        header ("Pragma: no-cache");
                        /**/
                        header ('Content-Disposition: attachment; filename="export-' . $start . '-' . ($start + 249) . '.csv"');
                        /**/
                        eval ('while (@ob_end_clean ());'); /* Clean output buffers. */
                        /**/
                        exit ($export);
                     }
               }
         }
   }
?>

// Start Modification to labels
$s2_customFieldLabel_array = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
$i = 0;
foreach ($s2_customFieldLabel_array as $field) {
    ksort ($s2_customFieldLabel_array);
    if(i===0){
        $cfLabel .= "\"" . $field['id'] . "\"";
    }else{
        $cfLabel .= ",\"" . $field['id'] . "\"";
    }
    $i++;
}
// End Modification to labels - $cfLabel is called below
                              
$export .= '"ID","Username","Password","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"' . $cfLabel .  "\n";
 $export .= '"ID","Username","Password","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"';
$cfields = ksort((array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true));
foreach ($cfields as $cfield)
    $export .= ',"' . $cfield['id'] . '"';
$export .= "\n";
 // Start Modification to values
$return = array();
$user = get_user_option('s2member_custom_fields', $user->ID);
$s2_cf_array = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
foreach ($s2_cf_array as $field) {
    $return[$field['id']]['value'] = $user[$field['id']];
    $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq ($return[$field['id']]['value']) . '",';
    $line .= '"' . c_ws_plugin__s2member_utils_strings::esc_dq // Serialize?
    (maybe_serialize ($custom_field_value)) . '",';
}
// End Modification to values
 foreach ($cfields as $cfield)
    $line .= '"' . (isset($custom_field[$cfield['id']]) ? c_ws_plugin__s2member_utils_strings::esc_dq(maybe_serialize($custom_field[$cfield['id']])) : '') . '",';
  

    $export .= '"ID","Username","Password","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"';
    $cfields = ksort((array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true));
    foreach ($cfields as $cfield)
        $export .= ',"' . $cfield['id'] . '"';
    $export .= "\n";
      $export .= '"ID","Username","Password","First Name","Last Name","Display Name","Email","Website","Role","Custom Capabilities","Registration Date","First Payment Date","Last Payment Date","Auto-EOT Date","Custom Value","Paid Subscr. ID","Paid Subscr. Gateway"';
$cfields = (array)json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], true);
ksort($cfields);
foreach ($cfields as $cfield)
    $export .= ',"' . $cfield['id'] . '"';
$export .= "\n"; 




Users browsing this forum: Google [Bot], Yahoo [Bot] and 1 guest