/**
  * __construct function.
  *
  * @access public
  * @return void
  */
 public function __construct()
 {
     //get form
     $this->form = RGFormsModel::get_form_meta_by_id($_GET['id']);
     $this->ggf_settings = isset($this->form[0]['ggf_settings']) ? $this->form[0]['ggf_settings'] : '';
     if (!isset($this->ggf_settings['address_fields']['use']) || $this->ggf_settings['address_fields']['use'] == 0) {
         return;
     }
     add_filter('gform_add_field_buttons', array($this, 'field_groups'), 10, 1);
     add_filter('gform_field_type_title', array($this, 'fields_title'), 10, 1);
     add_action('gform_field_standard_settings', array($this, 'fields_settings'), 10, 2);
     add_filter('gform_tooltips', array($this, 'tooltips'));
     add_action("gform_editor_js", array($this, 'js_editor'));
     add_action('gform_admin_pre_render', array($this, 'render_form'));
 }
Пример #2
0
 public static function maybe_export()
 {
     if (isset($_POST['export_lead'])) {
         check_admin_referer('rg_start_export', 'rg_start_export_nonce');
         //see if any fields chosen
         if (empty($_POST['export_field'])) {
             GFCommon::add_error_message(__('Please select the fields to be exported', 'gravityforms'));
             return;
         }
         $form_id = $_POST['export_form'];
         $form = RGFormsModel::get_form_meta($form_id);
         $filename = sanitize_title_with_dashes($form['title']) . '-' . gmdate('Y-m-d', GFCommon::get_local_timestamp(time())) . '.csv';
         $charset = get_option('blog_charset');
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename={$filename}");
         header('Content-Type: text/csv; charset=' . $charset, true);
         $buffer_length = ob_get_length();
         //length or false if no buffer
         if ($buffer_length > 1) {
             ob_clean();
         }
         self::start_export($form);
         die;
     } else {
         if (isset($_POST['export_forms'])) {
             check_admin_referer('gf_export_forms', 'gf_export_forms_nonce');
             $selected_forms = rgpost('gf_form_id');
             if (empty($selected_forms)) {
                 GFCommon::add_error_message(__('Please select the forms to be exported', 'gravityforms'));
                 return;
             }
             $forms = RGFormsModel::get_form_meta_by_id($selected_forms);
             $forms = self::prepare_forms_for_export($forms);
             $forms['version'] = GFForms::$version;
             $forms_json = json_encode($forms);
             $filename = 'gravityforms-export-' . date('Y-m-d') . '.json';
             header('Content-Description: File Transfer');
             header("Content-Disposition: attachment; filename={$filename}");
             header('Content-Type: application/json; charset=' . get_option('blog_charset'), true);
             echo $forms_json;
             die;
         }
     }
 }
Пример #3
0
 /**
  * Process the forms export request.
  */
 public static function maybe_export()
 {
     if (isset($_POST['export_forms'])) {
         check_admin_referer('gf_export_forms', 'gf_export_forms_nonce');
         $selected_forms = rgpost('gf_form_id');
         if (empty($selected_forms)) {
             GFCommon::add_error_message(__('Please select the forms to be exported', 'gravityforms'));
             return;
         }
         $forms = RGFormsModel::get_form_meta_by_id($selected_forms);
         $forms = self::prepare_forms_for_export($forms);
         $forms['version'] = GFForms::$version;
         $forms_json = json_encode($forms);
         $filename = 'gravityforms-export-' . date('Y-m-d') . '.json';
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename={$filename}");
         header('Content-Type: application/json; charset=' . get_option('blog_charset'), true);
         echo $forms_json;
         die;
     }
 }
Пример #4
0
 public static function maybe_export()
 {
     if (isset($_POST['export_lead'])) {
         check_admin_referer('rg_start_export', 'rg_start_export_nonce');
         //see if any fields chosen
         if (empty($_POST['export_field'])) {
             GFCommon::add_error_message(__('Please select the fields to be exported', 'gravityforms'));
             return;
         }
         $form_id = $_POST['export_form'];
         $form = RGFormsModel::get_form_meta($form_id);
         $filename = sanitize_title_with_dashes($form['title']) . '-' . gmdate('Y-m-d', GFCommon::get_local_timestamp(time())) . '.csv';
         $charset = get_option('blog_charset');
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename={$filename}");
         header('Content-Type: text/csv; charset=' . $charset, true);
         $buffer_length = ob_get_length();
         //length or false if no buffer
         if ($buffer_length > 1) {
             ob_clean();
         }
         GFExport::start_export($form);
         die;
     } else {
         if (isset($_POST['export_forms'])) {
             check_admin_referer('gf_export_forms', 'gf_export_forms_nonce');
             $selected_forms = rgpost('gf_form_id');
             if (empty($selected_forms)) {
                 GFCommon::add_error_message(__('Please select the forms to be exported', 'gravityforms'));
                 return;
             }
             $forms = RGFormsModel::get_form_meta_by_id($selected_forms);
             // clean up a bit before exporting
             foreach ($forms as &$form) {
                 foreach ($form['fields'] as &$field) {
                     $inputType = RGFormsModel::get_input_type($field);
                     if (isset($field->pageNumber)) {
                         unset($field->pageNumber);
                     }
                     if ($inputType != 'address') {
                         unset($field->addressType);
                     }
                     if ($inputType != 'date') {
                         unset($field->calendarIconType);
                         unset($field->dateType);
                     }
                     if ($inputType != 'creditcard') {
                         unset($field->creditCards);
                     }
                     if ($field->type == $field->inputType) {
                         unset($field->inputType);
                     }
                     // convert associative array to indexed
                     if (isset($form['confirmations'])) {
                         $form['confirmations'] = array_values($form['confirmations']);
                     }
                     if (isset($form['notifications'])) {
                         $form['notifications'] = array_values($form['notifications']);
                     }
                 }
                 /**
                  * Allows you to filter and modify the Export Form
                  *
                  * @param array $form Assign which Gravity Form to change the export form for
                  */
                 $form = gf_apply_filters('gform_export_form', $form['id'], $form);
             }
             $forms['version'] = GFForms::$version;
             $forms_json = json_encode($forms);
             $filename = 'gravityforms-export-' . date('Y-m-d') . '.json';
             header('Content-Description: File Transfer');
             header("Content-Disposition: attachment; filename={$filename}");
             header('Content-Type: application/json; charset=' . get_option('blog_charset'), true);
             echo $forms_json;
             die;
         }
     }
 }
Пример #5
0
 public static function maybe_export()
 {
     if (isset($_POST["export_lead"])) {
         check_admin_referer("rg_start_export", "rg_start_export_nonce");
         //see if any fields chosen
         if (empty($_POST["export_field"])) {
             GFCommon::add_error_message(__('Please select the fields to be exported', 'gravityforms'));
             return;
         }
         $form_id = $_POST["export_form"];
         $form = RGFormsModel::get_form_meta($form_id);
         $filename = sanitize_title_with_dashes($form["title"]) . "-" . gmdate("Y-m-d", GFCommon::get_local_timestamp(time())) . ".csv";
         $charset = get_option('blog_charset');
         header('Content-Description: File Transfer');
         header("Content-Disposition: attachment; filename={$filename}");
         header('Content-Type: text/plain; charset=' . $charset, true);
         $buffer_length = ob_get_length();
         //length or false if no buffer
         if ($buffer_length > 1) {
             ob_clean();
         }
         GFExport::start_export($form);
         die;
     } else {
         if (isset($_POST["export_forms"])) {
             check_admin_referer("gf_export_forms", "gf_export_forms_nonce");
             $selected_forms = rgpost("gf_form_id");
             if (empty($selected_forms)) {
                 GFCommon::add_error_message(__('Please select the forms to be exported', 'gravityforms'));
                 return;
             }
             $forms = RGFormsModel::get_form_meta_by_id($selected_forms);
             //removing the inputs for checkboxes (choices will be used during the import)
             foreach ($forms as &$form) {
                 foreach ($form["fields"] as &$field) {
                     $inputType = RGFormsModel::get_input_type($field);
                     if (isset($field["pageNumber"])) {
                         unset($field["pageNumber"]);
                     }
                     if ($inputType == "checkbox") {
                         unset($field["inputs"]);
                     }
                     if ($inputType != "address") {
                         unset($field["addressType"]);
                     }
                     if ($inputType != "date") {
                         unset($field["calendarIconType"]);
                         unset($field["dateType"]);
                     }
                     if ($inputType != "creditcard") {
                         unset($field["creditCards"]);
                     }
                     if ($field["type"] == rgar($field, "inputType")) {
                         unset($field["inputType"]);
                     }
                     if (in_array($inputType, array("checkbox", "radio", "select")) && !rgar($field, "enableChoiceValue")) {
                         foreach ($field["choices"] as &$choice) {
                             unset($choice["value"]);
                         }
                     }
                     // convert associative array to indexed
                     if (isset($form['confirmations'])) {
                         $form['confirmations'] = array_values($form['confirmations']);
                     }
                     if (isset($form['notifications'])) {
                         $form['notifications'] = array_values($form['notifications']);
                     }
                 }
             }
             require_once "xml.php";
             $options = array("version" => GFCommon::$version, "forms/form/id" => array("is_hidden" => true), "forms/form/nextFieldId" => array("is_hidden" => true), "forms/form/notification/routing" => array("array_tag" => "routing_item"), "forms/form/useCurrentUserAsAuthor" => array("is_attribute" => true), "forms/form/postAuthor" => array("is_attribute" => true), "forms/form/postCategory" => array("is_attribute" => true), "forms/form/postStatus" => array("is_attribute" => true), "forms/form/postAuthor" => array("is_attribute" => true), "forms/form/postFormat" => array("is_attribute" => true), "forms/form/labelPlacement" => array("is_attribute" => true), "forms/form/confirmation/type" => array("is_attribute" => true), "forms/form/lastPageButton/type" => array("is_attribute" => true), "forms/form/pagination/type" => array("is_attribute" => true), "forms/form/pagination/style" => array("is_attribute" => true), "forms/form/button/type" => array("is_attribute" => true), "forms/form/button/conditionalLogic/actionType" => array("is_attribute" => true), "forms/form/button/conditionalLogic/logicType" => array("is_attribute" => true), "forms/form/button/conditionalLogic/rules/rule/fieldId" => array("is_attribute" => true), "forms/form/button/conditionalLogic/rules/rule/operator" => array("is_attribute" => true), "forms/form/button/conditionalLogic/rules/rule/value" => array("allow_empty" => true), "forms/form/fields/field/id" => array("is_attribute" => true), "forms/form/fields/field/type" => array("is_attribute" => true), "forms/form/fields/field/inputType" => array("is_attribute" => true), "forms/form/fields/field/displayOnly" => array("is_attribute" => true), "forms/form/fields/field/size" => array("is_attribute" => true), "forms/form/fields/field/isRequired" => array("is_attribute" => true), "forms/form/fields/field/noDuplicates" => array("is_attribute" => true), "forms/form/fields/field/inputs/input/id" => array("is_attribute" => true), "forms/form/fields/field/inputs/input/name" => array("is_attribute" => true), "forms/form/fields/field/formId" => array("is_hidden" => true), "forms/form/fields/field/descriptionPlacement" => array("is_hidden" => true), "forms/form/fields/field/allowsPrepopulate" => array("is_attribute" => true), "forms/form/fields/field/adminOnly" => array("is_attribute" => true), "forms/form/fields/field/enableChoiceValue" => array("is_attribute" => true), "forms/form/fields/field/enableEnhancedUI" => array("is_attribute" => true), "forms/form/fields/field/conditionalLogic/actionType" => array("is_attribute" => true), "forms/form/fields/field/conditionalLogic/logicType" => array("is_attribute" => true), "forms/form/fields/field/conditionalLogic/rules/rule/fieldId" => array("is_attribute" => true), "forms/form/fields/field/conditionalLogic/rules/rule/operator" => array("is_attribute" => true), "forms/form/fields/field/conditionalLogic/rules/rule/value" => array("allow_empty" => true), "forms/form/fields/field/previousButton/type" => array("is_attribute" => true), "forms/form/fields/field/nextButton/type" => array("is_attribute" => true), "forms/form/fields/field/nextButton/conditionalLogic/actionType" => array("is_attribute" => true), "forms/form/fields/field/nextButton/conditionalLogic/logicType" => array("is_attribute" => true), "forms/form/fields/field/nextButton/conditionalLogic/rules/rule/fieldId" => array("is_attribute" => true), "forms/form/fields/field/nextButton/conditionalLogic/rules/rule/operator" => array("is_attribute" => true), "forms/form/fields/field/nextButton/conditionalLogic/rules/rule/value" => array("allow_empty" => true), "forms/form/fields/field/choices/choice/isSelected" => array("is_attribute" => true), "forms/form/fields/field/choices/choice/text" => array("allow_empty" => true), "forms/form/fields/field/choices/choice/value" => array("allow_empty" => true), "forms/form/fields/field/rangeMin" => array("is_attribute" => true), "forms/form/fields/field/rangeMax" => array("is_attribute" => true), "forms/form/fields/field/numberFormat" => array("is_attribute" => true), "forms/form/fields/field/calendarIconType" => array("is_attribute" => true), "forms/form/fields/field/dateFormat" => array("is_attribute" => true), "forms/form/fields/field/dateType" => array("is_attribute" => true), "forms/form/fields/field/nameFormat" => array("is_attribute" => true), "forms/form/fields/field/phoneFormat" => array("is_attribute" => true), "forms/form/fields/field/addressType" => array("is_attribute" => true), "forms/form/fields/field/hideCountry" => array("is_attribute" => true), "forms/form/fields/field/hideAddress2" => array("is_attribute" => true), "forms/form/fields/field/disableQuantity" => array("is_attribute" => true), "forms/form/fields/field/productField" => array("is_attribute" => true), "forms/form/fields/field/enablePrice" => array("is_attribute" => true), "forms/form/fields/field/displayTitle" => array("is_attribute" => true), "forms/form/fields/field/displayCaption" => array("is_attribute" => true), "forms/form/fields/field/displayDescription" => array("is_attribute" => true), "forms/form/fields/field/displayAllCategories" => array("is_attribute" => true), "forms/form/fields/field/postCustomFieldName" => array("is_attribute" => true), "forms/form/confirmations/confirmation/id" => array("is_attribute" => true), "forms/form/confirmations/confirmation/type" => array("is_attribute" => true), "forms/form/confirmations/confirmation/isDefault" => array("is_attribute" => true), "forms/form/confirmations/confirmation/disableAutoformatting" => array("is_attribute" => true), "forms/form/notifications/notification/id" => array("is_attribute" => true));
             $serializer = new RGXML($options);
             $xml = $serializer->serialize("forms", $forms);
             if (!seems_utf8($xml)) {
                 $value = utf8_encode($xml);
             }
             $filename = "gravityforms-export-" . date("Y-m-d") . ".xml";
             header('Content-Description: File Transfer');
             header("Content-Disposition: attachment; filename={$filename}");
             header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
             echo $xml;
             die;
         }
     }
 }
Пример #6
0
function get_meta_all_fields($id)
{
    $fledarr = array();
    $frmarr = RGFormsModel::get_form_meta_by_id($id);
    /*Changed from get_forms_by_id as noted by Redpik https://wordpress.org/support/profile/redpik*/
    $fldobj = $frmarr[0]['fields'];
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($fldobj));
    $i = 0;
    $arrfor = array();
    $valarr = array();
    $currid = 0;
    foreach ($iterator as $key => $value) {
        if ($currid != $i && $i != 0) {
            $arrfor['value'] = implode(",", $valarr);
            $fledarr[$i - 1] = $arrfor;
            $arrfor = array();
            $valarr = array();
            $arrfor['value'] = '';
            $currid += 1;
        }
        if ($key == 'id') {
            $arrfor[$key] = $value;
        }
        if ($key == 'label') {
            $arrfor[$key] = $value;
        }
        if ($key == 'type') {
            $arrfor[$key] = $value;
            $i++;
        }
        if ($key == 'value') {
            array_push($valarr, $value);
        }
    }
    return $fledarr;
}
Пример #7
0
 /**
  * Update users location using "User registration" gravity forms add-on
  */
 function add_user_location($user_id, $config, $entry, $user_pass)
 {
     //get form details
     $form = RGFormsModel::get_form_meta_by_id($config['form_id']);
     $form = $form[0];
     //get options
     $ggfSettings = $form['ggf_settings'];
     //get GEO user registration fields
     $ggfURSettings = $config['meta']['ggf_settings'];
     if (!isset($ggfSettings['address_fields']['use']) || $ggfSettings['address_fields']['use'] == 0) {
         return;
     }
     //when single address field
     if (isset($ggfSettings['address_fields']['use']) && $ggfSettings['address_fields']['use'] == 1) {
         //find the address field and get its value
         foreach ($form['fields'] as $field) {
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'address') {
                 $address = $entry[$field['id']];
             }
         }
         //cehck if fields avaialbe with form posting. This means that using is being activated automatically
         //on form subbmittion. Otherwise, if activated manually we need to get the address fields
         //from the entry, geocode it and do the rest
         if (isset($_POST['ggf_field_location']) && !empty($_POST['ggf_field_location'])) {
             $ggfLocation = $_POST['ggf_field_location'];
         } else {
             include_once GGF_PATH . '/includes/ggf-geocoder.php';
             $ggfLocation = ggf_geocoder($address, false);
         }
         //get location information into array
         $org_location['street'] = $ggfLocation['street'];
         $org_location['apt'] = isset($ggfLocation['apt']) && !empty($ggfLocation['apt']) ? $ggfLocation['apt'] : '';
         $org_location['city'] = $ggfLocation['city'];
         $org_location['state'] = $ggfLocation['state'];
         $org_location['zipcode'] = $ggfLocation['zipcode'];
         $org_location['country'] = $ggfLocation['country'];
         $ggfLocation['org_location'] = $org_location;
         $ggfLocation['address'] = $address;
     } else {
         foreach ($form['fields'] as $field) {
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'street') {
                 $org_location['street'] = $entry[$field['id']];
             }
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'apt') {
                 $org_location['apt'] = $entry[$field['id']];
             }
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'city') {
                 $org_location['city'] = $entry[$field['id']];
             }
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'state') {
                 $org_location['state'] = $entry[$field['id']];
             }
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'zipcode') {
                 $org_location['zipcode'] = $entry[$field['id']];
             }
             if (isset($field['ggf_fields']) && $field['ggf_fields'] == 'country') {
                 $org_location['country'] = $entry[$field['id']];
             }
         }
         //cehck if fields avaialbe with form posting. This means that using is being activated automatically
         //on form subbmittion. Otherwise, if activated manually we need to get the address fields
         //from the entry, geocode it and do the rest
         if (isset($_POST['ggf_field_location']) && !empty($_POST['ggf_field_location'])) {
             $ggfLocation = $_POST['ggf_field_location'];
         } else {
             include_once GGF_PATH . '/includes/ggf-geocoder.php';
             $ggfLocation = ggf_geocoder(implode(' ', $org_location), false);
         }
         $ggfLocation['org_location'] = $org_location;
         $ggfLocation['address'] = implode(' ', $org_location);
     }
     $user_meta_fields = isset($ggfURSettings['address_fields']['user_meta_fields']) && !empty($ggfURSettings['address_fields']['user_meta_fields']) ? $ggfURSettings['address_fields']['user_meta_fields'] : array();
     //save location to user meta
     foreach ($user_meta_fields as $key => $value) {
         if ($key == 'street') {
             if (isset($ggfLocation['org_location']['street']) && !empty($ggfLocation['org_location']['street'])) {
                 update_user_meta($user_id, $value, $ggfLocation['org_location']['street']);
             } else {
                 update_user_meta($user_id, $value, $ggfLocation['street']);
             }
         } elseif ($key == 'apt') {
             if (isset($ggfLocation['org_location']['apt']) && !empty($ggfLocation['org_location']['apt'])) {
                 update_user_meta($user_id, $value, $ggfLocation['org_location']['apt']);
             }
         } elseif ($key == 'city') {
             if (isset($ggfLocation['org_location']['city']) && !empty($ggfLocation['org_location']['city'])) {
                 update_user_meta($user_id, $value, $ggfLocation['org_location']['city']);
             } else {
                 update_user_meta($user_id, $value, $ggfLocation['city']);
             }
         } elseif ($key == 'zipcode') {
             if (isset($ggfLocation['org_location']['zipcode']) && !empty($ggfLocation['org_location']['zipcode'])) {
                 update_user_meta($user_id, $value, $ggfLocation['org_location']['zipcode']);
             } else {
                 update_user_meta($user_id, $value, $ggfLocation['zipcode']);
             }
         } else {
             if (isset($ggfLocation[$key]) && !empty($ggfLocation[$key])) {
                 update_user_meta($user_id, $value, $ggfLocation[$key]);
             }
         }
     }
     //check if buddypress activated
     if (class_exists('BuddyPress')) {
         //get the xprofile fiields
         $user_xprofile_fields = isset($ggfURSettings['address_fields']['bp_fields']) && !empty($ggfURSettings['address_fields']['bp_fields']) ? $ggfURSettings['address_fields']['bp_fields'] : array();
         //save location to xprofile fields
         foreach ($user_xprofile_fields as $key => $value) {
             if ($key == 'street') {
                 if (isset($ggfLocation['org_location']['street']) && !empty($ggfLocation['org_location']['street'])) {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['org_location']['street']);
                 } else {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['street']);
                 }
             } elseif ($key == 'apt') {
                 if (isset($ggfLocation['org_location']['apt']) && !empty($ggfLocation['org_location']['apt'])) {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['org_location']['apt']);
                 }
             } elseif ($key == 'city') {
                 if (isset($ggfLocation['org_location']['city']) && !empty($ggfLocation['org_location']['city'])) {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['org_location']['city']);
                 } else {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['city']);
                 }
             } elseif ($key == 'zipcode') {
                 if (isset($ggfLocation['org_location']['zipcode']) && !empty($ggfLocation['org_location']['zipcode'])) {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['org_location']['zipcode']);
                 } else {
                     xprofile_set_field_data($value, $user_id, $ggfLocation['zipcode']);
                 }
             } else {
                 if (isset($ggfLocation[$key]) && !empty($ggfLocation[$key])) {
                     xprofile_set_field_data($value, $user_id, $ggfLocation[$key]);
                 }
             }
         }
     }
     //check if GEO my WP activated and we need to save locaiton to member
     if (isset($ggfURSettings['address_fields']['gmwbp']['use']) && $ggfURSettings['address_fields']['gmwbp']['use'] == 1 && (class_exists('GEO_my_WP') || function_exists('gmw_loaded'))) {
         $map_icon = isset($_POST['map_icon']) ? $_POST['map_icon'] : '_default.png';
         //save location into GEO my WP members table in database
         if (isset($ggfLocation['lat']) && !empty($ggfLocation['lat'])) {
             global $wpdb;
             $wpdb->replace('wppl_friends_locator', array('member_id' => $user_id, 'street' => $ggfLocation['org_location']['street'], 'apt' => $ggfLocation['org_location']['apt'], 'city' => $ggfLocation['org_location']['city'], 'state' => $ggfLocation['state'], 'state_long' => $ggfLocation['state_long'], 'zipcode' => $ggfLocation['zipcode'], 'country' => $ggfLocation['country'], 'country_long' => $ggfLocation['country_long'], 'address' => $ggfLocation['address'], 'formatted_address' => $ggfLocation['formatted_address'], 'lat' => $ggfLocation['lat'], 'long' => $ggfLocation['lng'], 'map_icon' => $map_icon));
         }
     }
     //hook and do something with the information
     do_action('ggf_after_member_location_saved', $user_id, $config, $entry, $user_pass, $ggfLocation);
 }