/**
 * Convert an object to an associative array.
 *
 * Can handle multidimensional arrays
 *
 * @since 1.7
 *
 * @param unknown $data
 * @return array
 */
function edd_object_to_array($data)
{
    if (is_array($data) || is_object($data)) {
        $result = array();
        foreach ($data as $key => $value) {
            $result[$key] = edd_object_to_array($value);
        }
        return $result;
    }
    return $data;
}
Exemplo n.º 2
0
 function fes_process_form_reset()
 {
     if (!isset($_POST['fes_action']) || empty($_POST['fes_action'])) {
         return;
     }
     if (!current_user_can('manage_shop_settings')) {
         return;
     }
     $form = $_POST['fes_action'];
     switch ($form) {
         case 'reset_login_form_settings':
             if (!wp_verify_nonce($_POST['reset_login_form_settings'], 'reset_login_form_settings')) {
                 return;
             }
             $import_file = fes_plugin_dir . 'assets/backups/login-form.json';
             // Retrieve the settings from the file and convert the json object to an array.
             $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
             // if there's no form, let's make one
             if (!EDD_FES()->helper->get_option('fes-login-form', false)) {
                 $page_data = array('post_status' => 'publish', 'post_type' => 'fes-forms', 'post_author' => get_current_user_id(), 'post_title' => __('Login Form', 'edd_fes'));
                 $page_id = wp_insert_post($page_data);
                 update_post_meta($page_id, 'fes-form', $settings);
             } else {
                 update_post_meta(EDD_FES()->helper->get_option('fes-login-form', false), 'fes-form', $settings);
             }
             wp_safe_redirect(admin_url('admin.php?page=fes-form-import-export&action=reset&form=login&result=success'));
             exit;
             break;
         case 'reset_registration_form_settings':
             if (!wp_verify_nonce($_POST['reset_registration_form_settings'], 'reset_registration_form_settings')) {
                 return;
             }
             $import_file = fes_plugin_dir . 'assets/backups/registration-form.json';
             // Retrieve the settings from the file and convert the json object to an array.
             $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
             // if there's no form, let's make one
             if (!EDD_FES()->helper->get_option('fes-registration-form', false)) {
                 $page_data = array('post_status' => 'publish', 'post_type' => 'fes-forms', 'post_author' => get_current_user_id(), 'post_title' => __('Registration Form', 'edd_fes'));
                 $page_id = wp_insert_post($page_data);
                 update_post_meta($page_id, 'fes-form', $settings);
             } else {
                 update_post_meta(EDD_FES()->helper->get_option('fes-registration-form', false), 'fes-form', $settings);
             }
             wp_safe_redirect(admin_url('admin.php?page=fes-form-import-export&action=reset&form=registration&result=success'));
             exit;
             break;
         case 'reset_submission_form_settings':
             if (!wp_verify_nonce($_POST['reset_submission_form_settings'], 'reset_submission_form_settings')) {
                 return;
             }
             $import_file = fes_plugin_dir . 'assets/backups/submission-form.json';
             // Retrieve the settings from the file and convert the json object to an array.
             $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
             // if there's no form, let's make one
             if (!EDD_FES()->helper->get_option('fes-submission-form', false)) {
                 $page_data = array('post_status' => 'publish', 'post_type' => 'fes-forms', 'post_author' => get_current_user_id(), 'post_title' => __('Submission Form', 'edd_fes'));
                 $page_id = wp_insert_post($page_data);
                 update_post_meta($page_id, 'fes-form', $settings);
             } else {
                 update_post_meta(EDD_FES()->helper->get_option('fes-submission-form', false), 'fes-form', $settings);
             }
             wp_safe_redirect(admin_url('admin.php?page=fes-form-import-export&action=reset&form=submission&result=success'));
             exit;
             break;
         case 'reset_profile_form_settings':
             if (!wp_verify_nonce($_POST['reset_profile_form_settings'], 'reset_profile_form_settings')) {
                 return;
             }
             $import_file = fes_plugin_dir . 'assets/backups/profile-form.json';
             // Retrieve the settings from the file and convert the json object to an array.
             $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
             // if there's no form, let's make one
             if (!EDD_FES()->helper->get_option('fes-profile-form', false)) {
                 $page_data = array('post_status' => 'publish', 'post_type' => 'fes-forms', 'post_author' => get_current_user_id(), 'post_title' => __('Profile Form', 'edd_fes'));
                 $page_id = wp_insert_post($page_data);
                 update_post_meta($page_id, 'fes-form', $settings);
             } else {
                 update_post_meta(EDD_FES()->helper->get_option('fes-profile-form', false), 'fes-form', $settings);
             }
             wp_safe_redirect(admin_url('admin.php?page=fes-form-import-export&action=reset&form=profile&result=success'));
             exit;
             break;
         case 'reset_contact_form_settings':
             if (!wp_verify_nonce($_POST['reset_contact_form_settings'], 'reset_contact_form_settings')) {
                 return;
             }
             $import_file = fes_plugin_dir . 'assets/backups/contact-form.json';
             // Retrieve the settings from the file and convert the json object to an array.
             $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
             // if there's no form, let's make one
             if (!EDD_FES()->helper->get_option('fes-vendor-contact-form', false)) {
                 $page_data = array('post_status' => 'publish', 'post_type' => 'fes-forms', 'post_author' => get_current_user_id(), 'post_title' => __('Contact Form', 'edd_fes'));
                 $page_id = wp_insert_post($page_data);
                 update_post_meta($page_id, 'fes-form', $settings);
             } else {
                 update_post_meta(EDD_FES()->helper->get_option('fes-vendor-contact-form', false), 'fes-form', $settings);
             }
             wp_safe_redirect(admin_url('admin.php?page=fes-form-import-export&action=reset&form=contact&result=success'));
             exit;
             break;
     }
 }
Exemplo n.º 3
0
/**
 * Process a settings import from a json file
 *
 * @since 1.7
 * @return void
 */
function edd_process_settings_import()
{
    if (empty($_POST['edd_import_nonce'])) {
        return;
    }
    if (!wp_verify_nonce($_POST['edd_import_nonce'], 'edd_import_nonce')) {
        return;
    }
    if (!current_user_can('manage_shop_settings')) {
        return;
    }
    $import_file = $_FILES['import_file']['tmp_name'];
    if (empty($import_file)) {
        wp_die(__('Please upload a file to import', 'edd'));
    }
    // Retrieve the settings from the file and convert the json object to an array
    $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
    update_option('edd_general', $settings['general']);
    update_option('edd_gateways', $settings['gateways']);
    update_option('edd_emails', $settings['emails']);
    update_option('edd_styles', $settings['styles']);
    update_option('edd_taxes', $settings['taxes']);
    update_option('edd_extensions', $settings['extensions']);
    update_option('edd_misc', $settings['misc']);
    wp_safe_redirect(admin_url('tools.php?page=edd-settings-export-import&edd-message=settings-imported'));
    exit;
}
/**
 * Given an object or array of objects, convert them to arrays
 *
 * @since    1.7
 * @internal Updated in 2.6
 * @param    object|array $object An object or an array of objects
 * @return   array                An array or array of arrays, converted from the provided object(s)
 */
function edd_object_to_array($object = array())
{
    if (empty($object) || !is_object($object) && !is_array($object)) {
        return $object;
    }
    if (is_array($object)) {
        $return = array();
        foreach ($object as $item) {
            if (is_a($object, 'EDD_Payment')) {
                $return[] = $object->array_convert();
            } else {
                $return[] = edd_object_to_array($item);
            }
        }
    } else {
        if (is_a($object, 'EDD_Payment')) {
            $return = $object->array_convert();
        } else {
            $return = get_object_vars($object);
            // Now look at the items that came back and convert any nested objects to arrays
            foreach ($return as $key => $value) {
                $value = is_array($value) || is_object($value) ? edd_object_to_array($value) : $value;
                $return[$key] = $value;
            }
        }
    }
    return $return;
}
Exemplo n.º 5
0
/**
 * Process a settings import from a json file
 *
 * @since 1.7
 * @return void
 */
function edd_tools_import_export_process_import()
{
    if (empty($_POST['edd_import_nonce'])) {
        return;
    }
    if (!wp_verify_nonce($_POST['edd_import_nonce'], 'edd_import_nonce')) {
        return;
    }
    if (!current_user_can('manage_shop_settings')) {
        return;
    }
    if (edd_get_file_extension($_FILES['import_file']['name']) != 'json') {
        wp_die(__('Please upload a valid .json file', 'edd'));
    }
    $import_file = $_FILES['import_file']['tmp_name'];
    if (empty($import_file)) {
        wp_die(__('Please upload a file to import', 'edd'));
    }
    // Retrieve the settings from the file and convert the json object to an array
    $settings = edd_object_to_array(json_decode(file_get_contents($import_file)));
    update_option('edd_settings', $settings);
    wp_safe_redirect(admin_url('edit.php?post_type=download&page=edd-tools&edd-message=settings-imported'));
    exit;
}