function bb_click_array_field_input($input, $field, $value, $lead_id, $form_id)
{
    if ($field["type"] == "bb_click_array") {
        $field_id = IS_ADMIN || $form_id == 0 ? "input_{$id}" : "input_" . $form_id . "_{$id}";
        $input_name = $form_id . '_' . $field["id"];
        $css = isset($field['cssClass']) ? $field['cssClass'] : "";
        $disabled_text = IS_ADMIN && RG_CURRENT_VIEW != "entry" ? "disabled='disabled'" : "";
        $amount = '';
        $clicked = '';
        if (is_array($value)) {
            $amount = esc_attr(rgget($field["id"] . ".1", $value));
            $clicked = rgget($field["id"] . ".5", $value);
        }
        $html = "<div id='{$field_id}' class='ginput_container bb-click-array-" . count($field['choices']) . " " . esc_attr($css) . "'>" . "\n";
        if (is_array($field["choices"])) {
            $choice_id = 0;
            $tabindex = GFCommon::get_tabindex();
            foreach ($field["choices"] as $choice) {
                $id = $field["id"] . '_' . $choice_id;
                $field_value = !empty($choice["value"]) || rgar($field, "enableChoiceValue") ? $choice["value"] : $choice["text"];
                if (rgblank($amount) && RG_CURRENT_VIEW != "entry") {
                    $active = rgar($choice, "isSelected") ? "checked='checked'" : "";
                } else {
                    $active = RGFormsModel::choice_value_match($field, $choice, $amount) ? "checked='checked'" : "";
                }
                if ($active) {
                    $amount = $field_value;
                }
                $field_class = $active ? 's-active' : 's-passive';
                if (rgar($field, 'field_bb_click_array_is_product')) {
                    require_once GFCommon::get_base_path() . '/currency.php';
                    $currency = new RGCurrency(GFCommon::get_currency());
                    $field_value = $currency->to_money($field_value);
                    $field_class .= ' s-currency';
                }
                $html .= sprintf('<div data-clickarray-value="%s" data-choice-id="%s" class="s-html-wrapper %s" id="%s">', esc_attr($field_value), $choice_id, $field_class, $id);
                $html .= sprintf('<div class="s-html-value">%s</div>', $field_value);
                $html .= sprintf("<label for='choice_%s' id='label_%s'>%s</label>", $id, $id, $choice["text"]);
                $html .= '</div>';
                $choice_id++;
            }
            $onblur = !IS_ADMIN ? 'if(jQuery(this).val().replace(" ", "") == "") { jQuery(this).val("' . $other_default_value . '"); }' : '';
            $onkeyup = empty($field["conditionalLogicFields"]) || IS_ADMIN ? '' : "onchange='gf_apply_rules(" . $field["formId"] . "," . GFCommon::json_encode($field["conditionalLogicFields"]) . ");' onkeyup='clearTimeout(__gf_timeout_handle); __gf_timeout_handle = setTimeout(\"gf_apply_rules(" . $field["formId"] . "," . GFCommon::json_encode($field["conditionalLogicFields"]) . ")\", 300);'";
            $value_exists = RGFormsModel::choices_value_match($field, $field["choices"], $value);
            $other_label = empty($field['field_bb_click_array_other_label']) ? 'My Best Gift' : $field['field_bb_click_array_other_label'];
            $other_class = rgar($field, 'enableOtherChoice') ? '' : 'hide';
            $html .= "<label for='input_{$field["formId"]}_{$field["id"]}_1' class='ginput_bb_click_array_other_label " . $other_class . "'>" . $other_label . "</label>";
            $other_class .= rgar($field, 'field_bb_click_array_is_product') ? ' ginput_amount gfield_price gfield_price_' . $field['formId'] . '_' . $field['id'] . '_1 gfield_product_' . $field['formId'] . '_' . $field['id'] . '_1' : '';
            $html .= "<input id='input_{$field["formId"]}_{$field["id"]}_1' name='input_{$field["id"]}_1' type='text' value='" . esc_attr($amount) . "' class='ginput_bb ginput_click_array_other " . $other_class . " " . $field['size'] . "' onblur='{$onblur}' {$tabindex} {$onkeyup} {$disabled_text}>";
            $html .= "<input id='input_{$field["formId"]}_{$field["id"]}_5' name='input_{$field["id"]}_5' type='hidden' value='" . esc_attr($clicked) . "' class='ginput_bb ginput_click_array_clicked'>";
        }
        $html .= "</div>";
        return $html;
    }
    return $input;
}
 public function get_value_save_entry($value, $form, $input_name, $lead_id, $lead)
 {
     // ignore submitted value and recalculate price in backend
     list($prefix, $field_id, $input_id) = rgexplode('_', $input_name, 3);
     if ($input_id == 2) {
         require_once GFCommon::get_base_path() . '/currency.php';
         $currency = new RGCurrency(GFCommon::get_currency());
         $lead = empty($lead) ? RGFormsModel::get_lead($lead_id) : $lead;
         $value = $currency->to_money(GFCommon::calculate($this, $form, $lead));
     }
     return $value;
 }
 public function get_value_submission($field_values, $get_from_post_global_var = true)
 {
     $value = $this->get_input_value_submission('input_' . $this->id, $this->inputName, $field_values, $get_from_post_global_var);
     $value = trim($value);
     if ($this->numberFormat == 'currency') {
         require_once GFCommon::get_base_path() . '/currency.php';
         $currency = new RGCurrency(GFCommon::get_currency());
         $value = $currency->to_number($value);
     } else {
         if ($this->numberFormat == 'decimal_comma') {
             $value = GFCommon::clean_number($value, 'decimal_comma');
         } else {
             if ($this->numberFormat == 'decimal_dot') {
                 $value = GFCommon::clean_number($value, 'decimal_dot');
             }
         }
     }
     return $value;
 }
Esempio n. 4
0
 /**
  * Adds special support for file upload, post image and multi input merge tags.
  */
 public static function preview_special_merge_tags($value, $input_id, $merge_tag, $field)
 {
     // added to prevent overriding :noadmin filter (and other filters that remove fields)
     if (!$value) {
         return $value;
     }
     $input_type = RGFormsModel::get_input_type($field);
     $is_upload_field = in_array($input_type, array('post_image', 'fileupload'));
     $is_multi_input = is_array(rgar($field, 'inputs'));
     $is_input = intval($input_id) != $input_id;
     if (!$is_upload_field && !$is_multi_input) {
         return $value;
     }
     // if is individual input of multi-input field, return just that input value
     if ($is_input) {
         return $value;
     }
     $form = RGFormsModel::get_form_meta($field['formId']);
     $lead = self::create_lead($form);
     $currency = GFCommon::get_currency();
     if (is_array(rgar($field, 'inputs'))) {
         $value = RGFormsModel::get_lead_field_value($lead, $field);
         return GFCommon::get_lead_field_display($field, $value, $currency);
     }
     switch ($input_type) {
         case 'fileupload':
             $value = self::preview_image_value("input_{$field['id']}", $field, $form, $lead);
             $value = self::preview_image_display($field, $form, $value);
             break;
         default:
             $value = self::preview_image_value("input_{$field['id']}", $field, $form, $lead);
             $value = GFCommon::get_lead_field_display($field, $value, $currency);
             break;
     }
     return $value;
 }
 protected function process_capture($authorization, $feed, $submission_data, $form, $entry)
 {
     $payment = rgar($authorization, "captured_payment");
     if (empty($payment)) {
         return;
     }
     if ($payment["is_success"]) {
         $entry["transaction_id"] = $payment["transaction_id"];
         $entry["transaction_type"] = "1";
         $entry["is_fulfilled"] = true;
         $entry["currency"] = GFCommon::get_currency();
         $entry["payment_amount"] = $payment["amount"];
         $entry["payment_status"] = "Paid";
         $entry["payment_date"] = gmdate("Y-m-d H:i:s");
         $entry["payment_method"] = $payment["payment_method"];
         $this->insert_transaction($entry["id"], "payment", $entry["transaction_id"], $entry["payment_amount"]);
         GFFormsModel::add_note($entry["id"], 0, "System", sprintf(__("Payment has been captured successfully. Amount: %s. Transaction Id: %s", "gravityforms"), GFCommon::to_money($payment["amount"], $entry["currency"]), $payment["transaction_id"]));
     } else {
         $entry["payment_status"] = "Failed";
         GFFormsModel::add_note($entry["id"], 0, "System", sprintf(__("Payment failed to be captured. Reason: %s", "gravityforms"), $payment["error_message"]));
     }
     GFAPI::update_entry($entry);
     return $entry;
 }
Esempio n. 6
0
 /**
  * Adds a single Entry object.
  *
  * Intended to be used for importing an entry object. The usual hooks that are triggered while saving entries are not fired here.
  * Checks that the form id, field ids and entry meta exist and ignores legacy values (i.e. values for fields that no longer exist).
  *
  * @since  1.8
  * @access public
  * @static
  *
  * @param array $entry The Entry object
  *
  * @return mixed Either the new Entry ID or a WP_Error instance
  */
 public static function add_entry($entry)
 {
     global $wpdb;
     if (!is_array($entry)) {
         return new WP_Error("invalid_entry_object", __("The entry object must be an array", "gravityforms"));
     }
     // make sure the form id exists
     $form_id = rgar($entry, "form_id");
     if (empty($form_id)) {
         return new WP_Error("empty_form_id", __("The form id must be specified", "gravityforms"));
     }
     if (false === self::form_id_exists($form_id)) {
         return new WP_Error("invalid_form_id", __("The form for this entry does not exist", "gravityforms"));
     }
     // use values in the entry object if present
     $post_id = isset($entry["post_id"]) ? intval($entry["post_id"]) : 'NULL';
     $date_created = isset($entry["date_created"]) && $entry["date_created"] != "" ? sprintf("'%s'", mysql_real_escape_string($entry["date_created"])) : "utc_timestamp()";
     $is_starred = isset($entry["is_starred"]) ? $entry["is_starred"] : 0;
     $is_read = isset($entry["is_read"]) ? $entry["is_read"] : 0;
     $ip = isset($entry["ip"]) ? $entry["ip"] : GFFormsModel::get_ip();
     $source_url = isset($entry["source_url"]) ? $entry["source_url"] : GFFormsModel::get_current_page_url();
     $user_agent = isset($entry["user_agent"]) ? $entry["user_agent"] : "API";
     $currency = isset($entry["currency"]) ? $entry["currency"] : GFCommon::get_currency();
     $payment_status = isset($entry["payment_status"]) ? sprintf("'%s'", mysql_real_escape_string($entry["payment_status"])) : 'NULL';
     $payment_date = strtotime(rgar($entry, "payment_date")) ? sprintf("'%s'", gmdate('Y-m-d H:i:s', strtotime("{$entry["payment_date"]}"))) : "NULL";
     $payment_amount = isset($entry["payment_amount"]) ? (double) $entry["payment_amount"] : 'NULL';
     $payment_method = isset($entry["payment_method"]) ? $entry["payment_method"] : '';
     $transaction_id = isset($entry["transaction_id"]) ? sprintf("'%s'", mysql_real_escape_string($entry["transaction_id"])) : 'NULL';
     $is_fulfilled = isset($entry["is_fulfilled"]) ? intval($entry["is_fulfilled"]) : 'NULL';
     $status = isset($entry["status"]) ? $entry["status"] : "active";
     global $current_user;
     $user_id = isset($entry["created_by"]) ? mysql_real_escape_string($entry["created_by"]) : "";
     if (empty($user_id)) {
         $user_id = $current_user && $current_user->ID ? $current_user->ID : 'NULL';
     }
     $transaction_type = isset($entry["transaction_type"]) ? intval($entry["transaction_type"]) : 'NULL';
     $lead_table = GFFormsModel::get_lead_table_name();
     $result = $wpdb->query($wpdb->prepare("\n                INSERT INTO {$lead_table}\n                (form_id, post_id, date_created, is_starred, is_read, ip, source_url, user_agent, currency, payment_status, payment_date, payment_amount, transaction_id, is_fulfilled, created_by, transaction_type, status, payment_method)\n                VALUES\n                (%d, {$post_id}, {$date_created}, %d,  %d, %s, %s, %s, %s, {$payment_status}, {$payment_date}, {$payment_amount}, {$transaction_id}, {$is_fulfilled}, {$user_id}, {$transaction_type}, %s, %s)\n                ", $form_id, $is_starred, $is_read, $ip, $source_url, $user_agent, $currency, $status, $payment_method));
     if (false === $result) {
         return new WP_Error("insert_entry_properties_failed", __("There was a problem while inserting the entry properties", "gravityforms"), $wpdb->last_error);
     }
     // reading newly created lead id
     $entry_id = $wpdb->insert_id;
     $entry["id"] = $entry_id;
     // only save field values for fields that currently exist in the form
     $form = GFFormsModel::get_form_meta($form_id);
     foreach ($form["fields"] as $field) {
         if (in_array($field["type"], array("html", "page", "section"))) {
             continue;
         }
         if (isset($field["inputs"]) && is_array($field["inputs"])) {
             foreach ($field["inputs"] as $input) {
                 $input_id = $input["id"];
                 if (isset($entry[(string) $input_id])) {
                     $result = GFFormsModel::update_lead_field_value($form, $entry, $field, 0, $input_id, $entry[(string) $input_id]);
                     if (false === $result) {
                         return new WP_Error("insert_input_value_failed", __("There was a problem while inserting one of the input values for the entry", "gravityforms"), $wpdb->last_error);
                     }
                 }
             }
         } else {
             $field_id = $field["id"];
             $field_value = isset($entry[(string) $field_id]) ? $entry[(string) $field_id] : "";
             $result = GFFormsModel::update_lead_field_value($form, $entry, $field, 0, $field_id, $field_value);
             if (false === $result) {
                 return new WP_Error("insert_field_values_failed", __("There was a problem while inserting the field values", "gravityforms"), $wpdb->last_error);
             }
         }
     }
     // add save the entry meta values - only for the entry meta currently available for the form, ignore the rest
     $entry_meta = GFFormsModel::get_entry_meta($form_id);
     if (is_array($entry_meta)) {
         foreach (array_keys($entry_meta) as $key) {
             if (isset($entry[$key])) {
                 gform_update_meta($entry_id, $key, $entry[$key]);
             }
         }
     }
     return $entry_id;
 }
 /**
  *
  * @global type $wpdb
  */
 function entries_import()
 {
     $wform = $_REQUEST['form'];
     $gform = $_REQUEST['gform'];
     $entry_index = $_REQUEST['entry_index'];
     $this->init();
     $field_map = maybe_unserialize(get_site_option('rt_wufoo_' . $wform . '_field_map'));
     $f = new RGFormsModel();
     $c = new GFCommon();
     $gform_meta = RGFormsModel::get_form_meta($gform);
     try {
         $entries = $this->wufoo->getEntries($wform, 'forms', 'pageStart=' . $entry_index . '&pageSize=' . RT_WUFOO_IMPORT_PAGE_SIZE);
     } catch (Exception $rt_importer_e) {
         $this->error($rt_importer_e);
     }
     $this->op = array();
     foreach ($entries as $index => $entry) {
         $lead_exists_id = $this->is_imported($entry->EntryId);
         print_r($lead_exists_id);
         if (!$lead_exists_id) {
             foreach ($field_map as $g_id => $w_id) {
                 if (isset($w_id) && $w_id != '') {
                     $this->op[$g_id] = '';
                     $field_meta = RGFormsModel::get_field($gform_meta, $g_id);
                     if ($field_meta['type'] == 'fileupload') {
                         $this->op[$g_id] = $this->import_file_upload($entry, $w_id);
                     } else {
                         $this->import_regular_field($wform, $entry, $g_id, $w_id, $field_meta);
                     }
                 }
             }
             $currency = $c->get_currency();
             $ip = $f->get_ip();
             $page = $f->get_current_page_url();
             $lead_table = $f->get_lead_table_name();
             $lead_id = $this->insert_lead($entry, $lead_table, $ip, $currency, $page, $wform, $gform);
         }
         if ($lead_id) {
             foreach ($this->op as $inputid => $value) {
                 $this->insert_fields($lead_id, $gform, $inputid, $value);
             }
             //Insert comments as notes for the corresponding user map
             $comments = $this->get_comments_by_entry($wform, $entry->EntryId);
             if (isset($comments) && !empty($comments)) {
                 foreach ($comments as $comment) {
                     $this->move_comments_for_entry($comment, $f->get_lead_notes_table_name(), $lead_id, $wform);
                 }
             }
         } else {
             $lead_id = $lead_exists_id;
         }
         gform_update_meta($lead_id, 'rt_wufoo_entry_id', $entry->EntryId);
     }
     //update_site_option('rt_wufoo_' . $wform . '_entry_complete_count','0');
     echo count($entries) + $entry_index;
     die;
 }
    private static function stats_page()
    {
        ?>
        <style>
          .authorizenet_graph_container{clear:both; padding-left:5px; min-width:789px; margin-right:50px;}
        .authorizenet_message_container{clear: both; padding-left:5px; text-align:center; padding-top:120px; border: 1px solid #CCC; background-color: #FFF; width:100%; height:160px;}
        .authorizenet_summary_container {margin:30px 60px; text-align: center; min-width:740px; margin-left:50px;}
        .authorizenet_summary_item {width:160px; background-color: #FFF; border: 1px solid #CCC; padding:14px 8px; margin:6px 3px 6px 0; display: -moz-inline-stack; display: inline-block; zoom: 1; *display: inline; text-align:center;}
        .authorizenet_summary_value {font-size:20px; margin:5px 0; font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif}
        .authorizenet_summary_title {}
        #authorizenet_graph_tooltip {border:4px solid #b9b9b9; padding:11px 0 0 0; background-color: #f4f4f4; text-align:center; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -khtml-border-radius: 4px;}
        #authorizenet_graph_tooltip .tooltip_tip {width:14px; height:14px; background-image:url(<?php 
        echo self::get_base_url();
        ?>
/images/tooltip_tip.png); background-repeat: no-repeat; position: absolute; bottom:-14px; left:68px;}

        .authorizenet_tooltip_date {line-height:130%; font-weight:bold; font-size:13px; color:#21759B;}
        .authorizenet_tooltip_sales {line-height:130%;}
        .authorizenet_tooltip_revenue {line-height:130%;}
            .authorizenet_tooltip_revenue .authorizenet_tooltip_heading {}
            .authorizenet_tooltip_revenue .authorizenet_tooltip_value {}
            .authorizenet_trial_disclaimer {clear:both; padding-top:20px; font-size:10px;}
        </style>
        <script type="text/javascript" src="<?php 
        echo self::get_base_url();
        ?>
/flot/jquery.flot.min.js"></script>
        <script type="text/javascript" src="<?php 
        echo self::get_base_url();
        ?>
/js/currency.js"></script>

        <div class="wrap">
            <img alt="<?php 
        _e("Authorize.Net", "gravityformsauthorizenet");
        ?>
" style="margin: 15px 7px 0pt 0pt; float: left;" src="<?php 
        echo self::get_base_url();
        ?>
/images/authorizenet_wordpress_icon_32.png"/>
            <h2><?php 
        _e("Authorize.Net Stats", "gravityformsauthorizenet");
        ?>
</h2>

            <form method="post" action="">
                <ul class="subsubsub">
                    <li><a class="<?php 
        echo !RGForms::get("tab") || RGForms::get("tab") == "daily" ? "current" : "";
        ?>
" href="?page=gf_authorizenet&view=stats&id=<?php 
        echo absint($_GET["id"]);
        ?>
"><?php 
        _e("Daily", "gravityforms");
        ?>
</a> | </li>
                    <li><a class="<?php 
        echo RGForms::get("tab") == "weekly" ? "current" : "";
        ?>
" href="?page=gf_authorizenet&view=stats&id=<?php 
        echo absint($_GET["id"]);
        ?>
&tab=weekly"><?php 
        _e("Weekly", "gravityforms");
        ?>
</a> | </li>
                    <li><a class="<?php 
        echo RGForms::get("tab") == "monthly" ? "current" : "";
        ?>
" href="?page=gf_authorizenet&view=stats&id=<?php 
        echo absint($_GET["id"]);
        ?>
&tab=monthly"><?php 
        _e("Monthly", "gravityforms");
        ?>
</a></li>
                </ul>
                <?php 
        $config = GFAuthorizeNetData::get_feed(RGForms::get("id"));
        switch (RGForms::get("tab")) {
            case "monthly":
                $chart_info = self::monthly_chart_info($config);
                break;
            case "weekly":
                $chart_info = self::weekly_chart_info($config);
                break;
            default:
                $chart_info = self::daily_chart_info($config);
                break;
        }
        if (!$chart_info["series"]) {
            ?>
                    <div class="authorizenet_message_container"><?php 
            _e("No payments have been made yet.", "gravityformsauthorizenet");
            ?>
 <?php 
            echo $config["meta"]["trial_period_enabled"] && empty($config["meta"]["trial_amount"]) ? " **" : "";
            ?>
</div>
                    <?php 
        } else {
            ?>
                    <div class="authorizenet_graph_container">
                        <div id="graph_placeholder" style="width:100%;height:300px;"></div>
                    </div>

                    <script type="text/javascript">
                        var authorizenet_graph_tooltips = <?php 
            echo $chart_info["tooltips"];
            ?>
;
                        jQuery.plot(jQuery("#graph_placeholder"), <?php 
            echo $chart_info["series"];
            ?>
, <?php 
            echo $chart_info["options"];
            ?>
);
                        jQuery(window).resize(function(){
                            jQuery.plot(jQuery("#graph_placeholder"), <?php 
            echo $chart_info["series"];
            ?>
, <?php 
            echo $chart_info["options"];
            ?>
);
                        });

                        var previousPoint = null;
                        jQuery("#graph_placeholder").bind("plothover", function (event, pos, item) {
                            startShowTooltip(item);
                        });

                        jQuery("#graph_placeholder").bind("plotclick", function (event, pos, item) {
                            startShowTooltip(item);
                        });

                        function startShowTooltip(item){
                            if (item) {
                                if (!previousPoint || previousPoint[0] != item.datapoint[0]) {
                                    previousPoint = item.datapoint;

                                    jQuery("#authorizenet_graph_tooltip").remove();
                                    var x = item.datapoint[0].toFixed(2),
                                        y = item.datapoint[1].toFixed(2);

                                    showTooltip(item.pageX, item.pageY, authorizenet_graph_tooltips[item.dataIndex]);
                                }
                            }
                            else {
                                jQuery("#authorizenet_graph_tooltip").remove();
                                previousPoint = null;
                            }
                        }
                        function showTooltip(x, y, contents) {
                            jQuery('<div id="authorizenet_graph_tooltip">' + contents + '<div class="tooltip_tip"></div></div>').css( {
                                position: 'absolute',
                                display: 'none',
                                opacity: 0.90,
                                width:'150px',
                                height:'<?php 
            echo $config["meta"]["type"] == "subscription" ? "75px" : "60px";
            ?>
',
                                top: y - <?php 
            echo $config["meta"]["type"] == "subscription" ? "100" : "89";
            ?>
,
                                left: x - 79
                            }).appendTo("body").fadeIn(200);
                        }
                        function convertToMoney(number){
                            var currency = getCurrentCurrency();
                            return currency.toMoney(number);
                        }
                        function formatWeeks(number){
                            number = number + "";
                            return "<?php 
            _e("Week ", "gravityformsauthorizenet");
            ?>
" + number.substring(number.length-2);
                        }
                        function getCurrentCurrency(){
                            <?php 
            if (!class_exists("RGCurrency")) {
                require_once ABSPATH . "/" . PLUGINDIR . "/gravityforms/currency.php";
            }
            $current_currency = RGCurrency::get_currency(GFCommon::get_currency());
            ?>
                            var currency = new Currency(<?php 
            echo GFCommon::json_encode($current_currency);
            ?>
);
                            return currency;
                        }
                    </script>
                <?php 
        }
        $payment_totals = RGFormsModel::get_form_payment_totals($config["form_id"]);
        $transaction_totals = GFAuthorizeNetData::get_transaction_totals($config["form_id"]);
        switch ($config["meta"]["type"]) {
            case "product":
                $total_sales = $payment_totals["orders"];
                $sales_label = __("Total Orders", "gravityformsauthorizenet");
                break;
            case "donation":
                $total_sales = $payment_totals["orders"];
                $sales_label = __("Total Donations", "gravityformsauthorizenet");
                break;
            case "subscription":
                $total_sales = $payment_totals["active"];
                $sales_label = __("Active Subscriptions", "gravityformsauthorizenet");
                break;
        }
        $total_revenue = empty($transaction_totals["payment"]["revenue"]) ? 0 : $transaction_totals["payment"]["revenue"];
        ?>
                <div class="authorizenet_summary_container">
                    <div class="authorizenet_summary_item">
                        <div class="authorizenet_summary_title"><?php 
        _e("Total Revenue", "gravityformsauthorizenet");
        ?>
</div>
                        <div class="authorizenet_summary_value"><?php 
        echo GFCommon::to_money($total_revenue);
        ?>
</div>
                    </div>
                    <div class="authorizenet_summary_item">
                        <div class="authorizenet_summary_title"><?php 
        echo $chart_info["revenue_label"];
        ?>
</div>
                        <div class="authorizenet_summary_value"><?php 
        echo $chart_info["revenue"];
        ?>
</div>
                    </div>
                    <div class="authorizenet_summary_item">
                        <div class="authorizenet_summary_title"><?php 
        echo $sales_label;
        ?>
</div>
                        <div class="authorizenet_summary_value"><?php 
        echo $total_sales;
        ?>
</div>
                    </div>
                    <div class="authorizenet_summary_item">
                        <div class="authorizenet_summary_title"><?php 
        echo $chart_info["sales_label"];
        ?>
</div>
                        <div class="authorizenet_summary_value"><?php 
        echo $chart_info["sales"];
        ?>
</div>
                    </div>
                </div>
                <?php 
        if (!$chart_info["series"] && $config["meta"]["trial_period_enabled"] && empty($config["meta"]["trial_amount"])) {
            ?>
                    <div class="authorizenet_trial_disclaimer"><?php 
            _e("** Free trial transactions will only be reflected in the graph after the first payment is made (i.e. after trial period ends)", "gravityformsauthorizenet");
            ?>
</div>
                    <?php 
        }
        ?>
            </form>
        </div>
        <?php 
    }
 public function complete_payment($entry, $action)
 {
     if (!rgar($action, 'payment_status')) {
         $action['payment_status'] = 'Paid';
     }
     if (!rgar($action, 'transaction_type')) {
         $action['transaction_type'] = 'payment';
     }
     if (!rgar($action, 'payment_date')) {
         $action['payment_date'] = gmdate('y-m-d H:i:s');
     }
     //set is_fulfilled in process_capture by gateways that are not url redirects
     //url redirects should not have this set yet, happens in post_callback for them
     $entry['is_fulfilled'] = "1";
     $entry['transaction_id'] = rgar($action, 'transaction_id');
     $entry['transaction_type'] = "1";
     $entry['payment_status'] = $action['payment_status'];
     $entry['payment_amount'] = rgar($action, 'amount');
     $entry['payment_date'] = $action['payment_date'];
     $entry['payment_method'] = rgar($action, 'payment_method');
     $entry['currency'] = GFCommon::get_currency();
     if (!rgar($action, 'note')) {
         $amount_formatted = GFCommon::to_money($action['amount'], $entry['currency']);
         $action['note'] = sprintf(__('Payment has been completed. Amount: %s. Transaction Id: %s.', 'gravityforms'), $amount_formatted, $action['transaction_id']);
     }
     GFAPI::update_entry($entry);
     $this->insert_transaction($entry['id'], $action['transaction_type'], $action['transaction_id'], $action['amount']);
     $this->add_note($entry['id'], $action['note'], "success");
     do_action("gform_post_payment_completed", $entry, $action);
     return true;
 }
Esempio n. 10
0
 /**
  * Prepare the value before saving it to the lead.
  *
  * @param mixed $form
  * @param mixed $field
  * @param mixed $value
  * @param mixed $input_name
  * @param mixed $lead_id the current lead ID, used for fields that are processed after other fields have been saved (ie Total, Calculations)
  * @param mixed $lead passed by the RGFormsModel::create_lead() method, lead ID is not available for leads created by this function
  */
 public static function prepare_value($form, $field, $value, $input_name, $lead_id, $lead = array())
 {
     $form_id = $form["id"];
     $input_type = self::get_input_type($field);
     switch ($input_type) {
         case "total":
             $lead = empty($lead) ? RGFormsModel::get_lead($lead_id) : $lead;
             $value = GFCommon::get_order_total($form, $lead);
             break;
         case "calculation":
             // ignore submitted value and recalculate price in backend
             list(, , $input_id) = rgexplode("_", $input_name, 3);
             if ($input_id == 2) {
                 require_once GFCommon::get_base_path() . '/currency.php';
                 $currency = new RGCurrency(GFCommon::get_currency());
                 $lead = empty($lead) ? RGFormsModel::get_lead($lead_id) : $lead;
                 $value = $currency->to_money(GFCommon::calculate($field, $form, $lead));
             }
             break;
         case "phone":
             if ($field["phoneFormat"] == "standard" && preg_match('/^\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})$/', $value, $matches)) {
                 $value = sprintf("(%s)%s-%s", $matches[1], $matches[2], $matches[3]);
             }
             break;
         case "time":
             if (!is_array($value) && !empty($value)) {
                 preg_match('/^(\\d*):(\\d*) ?(.*)$/', $value, $matches);
                 $value = array();
                 $value[0] = $matches[1];
                 $value[1] = $matches[2];
                 $value[2] = rgar($matches, 3);
             }
             $hour = empty($value[0]) ? "0" : strip_tags($value[0]);
             $minute = empty($value[1]) ? "0" : strip_tags($value[1]);
             $ampm = strip_tags(rgar($value, 2));
             if (!empty($ampm)) {
                 $ampm = " {$ampm}";
             }
             if (!(empty($hour) && empty($minute))) {
                 $value = sprintf("%02d:%02d%s", $hour, $minute, $ampm);
             } else {
                 $value = "";
             }
             break;
         case "date":
             $value = self::prepare_date($field["dateFormat"], $value);
             break;
         case "post_image":
             $url = self::get_fileupload_value($form_id, $input_name);
             $image_title = isset($_POST["{$input_name}_1"]) ? strip_tags($_POST["{$input_name}_1"]) : "";
             $image_caption = isset($_POST["{$input_name}_4"]) ? strip_tags($_POST["{$input_name}_4"]) : "";
             $image_description = isset($_POST["{$input_name}_7"]) ? strip_tags($_POST["{$input_name}_7"]) : "";
             $value = !empty($url) ? $url . "|:|" . $image_title . "|:|" . $image_caption . "|:|" . $image_description : "";
             break;
         case "fileupload":
             $value = self::get_fileupload_value($form_id, $input_name);
             break;
         case "number":
             $lead = empty($lead) ? RGFormsModel::get_lead($lead_id) : $lead;
             $value = GFCommon::has_field_calculation($field) ? GFCommon::round_number(GFCommon::calculate($field, $form, $lead), rgar($field, "calculationRounding")) : GFCommon::clean_number($value, rgar($field, "numberFormat"));
             //return the value as a string when it is zero and a calc so that the "==" comparison done when checking if the field has changed isn't treated as false
             if (GFCommon::has_field_calculation($field) && $value == 0) {
                 $value = "0";
             }
             break;
         case "website":
             if ($value == "http://") {
                 $value = "";
             }
             break;
         case "list":
             if (GFCommon::is_empty_array($value)) {
                 $value = "";
             } else {
                 $value = self::create_list_array($field, $value);
                 $value = serialize($value);
             }
             break;
         case "radio":
             if (rgar($field, 'enableOtherChoice') && $value == 'gf_other_choice') {
                 $value = rgpost("input_{$field['id']}_other");
             }
             break;
         case "multiselect":
             $value = empty($value) ? "" : implode(",", $value);
             break;
         case "creditcard":
             //saving last 4 digits of credit card
             list($input_token, $field_id_token, $input_id) = rgexplode("_", $input_name, 3);
             if ($input_id == "1") {
                 $value = str_replace(" ", "", $value);
                 $card_number_length = strlen($value);
                 $value = substr($value, -4, 4);
                 $value = str_pad($value, $card_number_length, "X", STR_PAD_LEFT);
             } else {
                 if ($input_id == "4") {
                     $card_number = rgpost("input_{$field_id_token}_1");
                     $card_type = GFCommon::get_card_type($card_number);
                     $value = $card_type ? $card_type["name"] : "";
                 } else {
                     $value = "";
                 }
             }
             break;
         default:
             //allow HTML for certain field types
             $allow_html = in_array($field["type"], array("post_custom_field", "post_title", "post_content", "post_excerpt", "post_tags")) || in_array($input_type, array("checkbox", "radio")) ? true : false;
             $allowable_tags = apply_filters("gform_allowable_tags_{$form_id}", apply_filters("gform_allowable_tags", $allow_html, $field, $form_id), $field, $form_id);
             if ($allowable_tags !== true) {
                 $value = strip_tags($value, $allowable_tags);
             }
             break;
     }
     // special format for Post Category fields
     if ($field['type'] == 'post_category') {
         $full_values = array();
         if (!is_array($value)) {
             $value = explode(',', $value);
         }
         foreach ($value as $cat_id) {
             $cat = get_term($cat_id, 'category');
             $full_values[] = !is_wp_error($cat) && is_object($cat) ? $cat->name . ":" . $cat_id : "";
         }
         $value = implode(',', $full_values);
     }
     //do not save price fields with blank price
     if (rgar($field, "enablePrice")) {
         $ary = explode("|", $value);
         $label = count($ary) > 0 ? $ary[0] : "";
         $price = count($ary) > 1 ? $ary[1] : "";
         $is_empty = strlen(trim($price)) <= 0;
         if ($is_empty) {
             $value = "";
         }
     }
     return $value;
 }
Esempio n. 11
0
 public static function gf_vars($echo = true)
 {
     if (!class_exists('RGCurrency')) {
         require_once 'currency.php';
     }
     $gf_vars = array();
     $gf_vars['active'] = esc_attr__('Active', 'gravityforms');
     $gf_vars['inactive'] = esc_attr__('Inactive', 'gravityforms');
     $gf_vars['save'] = esc_html__('Save', 'gravityforms');
     $gf_vars['update'] = esc_html__('Update', 'gravityforms');
     $gf_vars['previousLabel'] = esc_html__('Previous', 'gravityforms');
     $gf_vars['selectFormat'] = esc_html__('Select a format', 'gravityforms');
     $gf_vars['editToViewAll'] = esc_html__('5 of %d items shown. Edit field to view all', 'gravityforms');
     $gf_vars['enterValue'] = esc_html__('Enter a value', 'gravityforms');
     $gf_vars['formTitle'] = esc_html__('Untitled Form', 'gravityforms');
     $gf_vars['formDescription'] = esc_html__('We would love to hear from you! Please fill out this form and we will get in touch with you shortly.', 'gravityforms');
     $gf_vars['formConfirmationMessage'] = esc_html__('Thanks for contacting us! We will get in touch with you shortly.', 'gravityforms');
     $gf_vars['buttonText'] = esc_html__('Submit', 'gravityforms');
     $gf_vars['loading'] = esc_html__('Loading...', 'gravityforms');
     $gf_vars['thisFieldIf'] = esc_html__('this field if', 'gravityforms');
     $gf_vars['thisPage'] = esc_html__('this page', 'gravityforms');
     $gf_vars['thisFormButton'] = esc_html__('this form button if', 'gravityforms');
     $gf_vars['show'] = esc_html__('Show', 'gravityforms');
     $gf_vars['hide'] = esc_html__('Hide', 'gravityforms');
     $gf_vars['all'] = esc_html(_x('All', 'Conditional Logic', 'gravityforms'));
     $gf_vars['any'] = esc_html(_x('Any', 'Conditional Logic', 'gravityforms'));
     $gf_vars['ofTheFollowingMatch'] = esc_html('of the following match:', 'gravityforms');
     $gf_vars['is'] = esc_html('is', 'gravityforms');
     $gf_vars['isNot'] = esc_html('is not', 'gravityforms');
     $gf_vars['greaterThan'] = esc_html('greater than', 'gravityforms');
     $gf_vars['lessThan'] = esc_html('less than', 'gravityforms');
     $gf_vars['contains'] = esc_html('contains', 'gravityforms');
     $gf_vars['startsWith'] = esc_html('starts with', 'gravityforms');
     $gf_vars['endsWith'] = esc_html('ends with', 'gravityforms');
     $gf_vars['thisConfirmation'] = esc_html('Use this confirmation if', 'gravityforms');
     $gf_vars['thisNotification'] = esc_html('Send this notification if', 'gravityforms');
     $gf_vars['confirmationSave'] = esc_html('Save', 'gravityforms');
     $gf_vars['confirmationSaving'] = esc_html('Saving...', 'gravityforms');
     $gf_vars['confirmationAreYouSure'] = __('Are you sure you wish to cancel these changes?', 'gravityforms');
     $gf_vars['confirmationIssueSaving'] = __('There was an issue saving this confirmation.', 'gravityforms');
     $gf_vars['confirmationConfirmDelete'] = __('Are you sure you wish to delete this confirmation?', 'gravityforms');
     $gf_vars['confirmationIssueDeleting'] = __('There was an issue deleting this confirmation.', 'gravityforms');
     $gf_vars['confirmationConfirmDiscard'] = __('There are unsaved changes to the current confirmation. Would you like to discard these changes?', 'gravityforms');
     $gf_vars['confirmationDefaultName'] = __('Untitled Confirmation', 'gravityforms');
     $gf_vars['confirmationDefaultMessage'] = __('Thanks for contacting us! We will get in touch with you shortly.', 'gravityforms');
     $gf_vars['confirmationInvalidPageSelection'] = __('Please select a page.', 'gravityforms');
     $gf_vars['confirmationInvalidRedirect'] = __('Please enter a URL.', 'gravityforms');
     $gf_vars['confirmationInvalidName'] = __('Please enter a confirmation name.', 'gravityforms');
     $gf_vars['conditionalLogicDependency'] = __("This form contains conditional logic dependent upon this field. Are you sure you want to delete this field? 'OK' to delete, 'Cancel' to abort.", 'gravityforms');
     $gf_vars['conditionalLogicDependencyChoice'] = __("This form contains conditional logic dependent upon this choice. Are you sure you want to delete this choice? 'OK' to delete, 'Cancel' to abort.", 'gravityforms');
     $gf_vars['conditionalLogicDependencyChoiceEdit'] = __("This form contains conditional logic dependent upon this choice. Are you sure you want to modify this choice? 'OK' to delete, 'Cancel' to abort.", 'gravityforms');
     $gf_vars['mergeTagsTooltip'] = '<h6>' . esc_html__('Merge Tags', 'gravityforms') . '</h6>' . esc_html__('Merge tags allow you to dynamically populate submitted field values in your form content wherever this merge tag icon is present.', 'gravityforms');
     $gf_vars['baseUrl'] = GFCommon::get_base_url();
     $gf_vars['gf_currency_config'] = RGCurrency::get_currency(GFCommon::get_currency());
     $gf_vars['otherChoiceValue'] = GFCommon::get_other_choice_value();
     $gf_vars['isFormTrash'] = false;
     $gf_vars['currentlyAddingField'] = false;
     $gf_vars['addFieldFilter'] = esc_html__('Add a condition', 'gravityforms');
     $gf_vars['removeFieldFilter'] = esc_html__('Remove a condition', 'gravityforms');
     $gf_vars['filterAndAny'] = esc_html__('Include results if {0} match:', 'gravityforms');
     $gf_vars['customChoices'] = esc_html__('Custom Choices', 'gravityforms');
     $gf_vars['predefinedChoices'] = esc_html__('Predefined Choices', 'gravityforms');
     if (is_admin() && rgget('id')) {
         $form = RGFormsModel::get_form_meta(rgget('id'));
         $gf_vars['mergeTags'] = GFCommon::get_merge_tags($form['fields'], '', false);
     }
     $gf_vars_json = 'var gf_vars = ' . json_encode($gf_vars) . ';';
     if (!$echo) {
         return $gf_vars_json;
     } else {
         echo $gf_vars_json;
     }
 }
 public function complete_payment(&$entry, $action)
 {
     $this->log_debug(__METHOD__ . '(): Processing request.');
     if (!rgar($action, 'payment_status')) {
         $action['payment_status'] = 'Paid';
     }
     if (!rgar($action, 'transaction_type')) {
         $action['transaction_type'] = 'payment';
     }
     if (!rgar($action, 'payment_date')) {
         $action['payment_date'] = gmdate('y-m-d H:i:s');
     }
     $entry['is_fulfilled'] = '1';
     $entry['transaction_id'] = rgar($action, 'transaction_id');
     $entry['transaction_type'] = '1';
     $entry['payment_status'] = $action['payment_status'];
     $entry['payment_amount'] = rgar($action, 'amount');
     $entry['payment_date'] = $action['payment_date'];
     $entry['payment_method'] = rgar($action, 'payment_method');
     $entry['currency'] = GFCommon::get_currency();
     if (!rgar($action, 'note')) {
         $amount_formatted = GFCommon::to_money($action['amount'], $entry['currency']);
         $action['note'] = sprintf(__('Payment has been completed. Amount: %s. Transaction Id: %s.', 'gravityforms'), $amount_formatted, $action['transaction_id']);
     }
     GFAPI::update_entry($entry);
     $this->insert_transaction($entry['id'], $action['transaction_type'], $action['transaction_id'], $action['amount']);
     $this->add_note($entry['id'], $action['note'], 'success');
     do_action('gform_post_payment_completed', $entry, $action);
     if (has_filter('gform_post_payment_completed')) {
         $this->log_debug(__METHOD__ . '(): Executing functions hooked to gform_post_payment_completed.');
     }
     return true;
 }
Esempio n. 13
0
 public static function send_to_paypal($confirmation, $form, $entry, $ajax)
 {
     // ignore requests that are not the current form's submissions
     if (RGForms::post("gform_submit") != $form["id"]) {
         return $confirmation;
     }
     $config = self::get_active_config($form);
     if (!$config) {
         self::log_debug("NOT sending to PayPal: No PayPal setup was located for form_id = {$form['id']}.");
         return $confirmation;
     }
     // updating entry meta with current feed id
     gform_update_meta($entry["id"], "paypal_feed_id", $config["id"]);
     // updating entry meta with current payment gateway
     gform_update_meta($entry["id"], "payment_gateway", "paypal");
     //updating lead's payment_status to Processing
     RGFormsModel::update_lead_property($entry["id"], "payment_status", 'Processing');
     //Getting Url (Production or Sandbox)
     $url = $config["meta"]["mode"] == "production" ? self::$production_url : self::$sandbox_url;
     $invoice_id = apply_filters("gform_paypal_invoice", "", $form, $entry);
     $invoice = empty($invoice_id) ? "" : "&invoice={$invoice_id}";
     //Current Currency
     $currency = GFCommon::get_currency();
     //Customer fields
     $customer_fields = self::customer_query_string($config, $entry);
     //Page style
     $page_style = !empty($config["meta"]["style"]) ? "&page_style=" . urlencode($config["meta"]["style"]) : "";
     //Continue link text
     $continue_text = !empty($config["meta"]["continue_text"]) ? "&cbt=" . urlencode($config["meta"]["continue_text"]) : "&cbt=" . __("Click here to continue", "gravityformspaypal");
     //If page is HTTPS, set return mode to 2 (meaning PayPal will post info back to page)
     //If page is not HTTPS, set return mode to 1 (meaning PayPal will redirect back to page) to avoid security warning
     $return_mode = GFCommon::is_ssl() ? "2" : "1";
     $return_url = "&return=" . urlencode(self::return_url($form["id"], $entry["id"])) . "&rm={$return_mode}";
     //Cancel URL
     $cancel_url = !empty($config["meta"]["cancel_url"]) ? "&cancel_return=" . urlencode($config["meta"]["cancel_url"]) : "";
     //Don't display note section
     $disable_note = !empty($config["meta"]["disable_note"]) ? "&no_note=1" : "";
     //Don't display shipping section
     $disable_shipping = !empty($config["meta"]["disable_shipping"]) ? "&no_shipping=1" : "";
     //URL that will listen to notifications from PayPal
     $ipn_url = urlencode(get_bloginfo("url") . "/?page=gf_paypal_ipn");
     $business_email = urlencode(trim($config["meta"]["email"]));
     $custom_field = $entry["id"] . "|" . wp_hash($entry["id"]);
     $url .= "?notify_url={$ipn_url}&charset=UTF-8&currency_code={$currency}&business={$business_email}&custom={$custom_field}{$invoice}{$customer_fields}{$page_style}{$continue_text}{$cancel_url}{$disable_note}{$disable_shipping}{$return_url}";
     $query_string = "";
     switch ($config["meta"]["type"]) {
         case "product":
             $query_string = self::get_product_query_string($form, $entry);
             break;
         case "donation":
             $query_string = self::get_donation_query_string($form, $entry);
             break;
         case "subscription":
             $query_string = self::get_subscription_query_string($config, $form, $entry);
             break;
     }
     $query_string = apply_filters("gform_paypal_query_{$form['id']}", apply_filters("gform_paypal_query", $query_string, $form, $entry), $form, $entry);
     if (!$query_string) {
         self::log_debug("NOT sending to PayPal: The price is either zero or the gform_paypal_query filter was used to remove the querystring that is sent to PayPal.");
         return $confirmation;
     }
     $url .= $query_string;
     $url = apply_filters("gform_paypal_request_{$form['id']}", apply_filters("gform_paypal_request", $url, $form, $entry), $form, $entry);
     self::log_debug("Sending to PayPal: {$url}");
     if (headers_sent() || $ajax) {
         $confirmation = "<script>function gformRedirect(){document.location.href='{$url}';}";
         if (!$ajax) {
             $confirmation .= "gformRedirect();";
         }
         $confirmation .= "</script>";
     } else {
         $confirmation = array("redirect" => $url);
     }
     return $confirmation;
 }
Esempio n. 14
0
 /**
  * Subscribe the user to a Stripe plan. This process works like so:
  *
  * 1 - Get existing plan or create new plan (plan ID generated by feed name, id and recurring amount).
  * 2 - Create new customer.
  * 3 - Create new subscription by subscribing custerom to plan.
  *
  * @param  [type] $auth            [description]
  * @param  [type] $feed            [description]
  * @param  [type] $submission_data [description]
  * @param  [type] $form            [description]
  * @param  [type] $entry           [description]
  *
  * @return [type]                  [description]
  */
 public function subscribe($feed, $submission_data, $form, $entry)
 {
     $this->populate_credit_card_last_four($form);
     $this->include_stripe_api();
     if ($this->get_stripe_js_error()) {
         return $this->authorization_error($this->get_stripe_js_error());
     }
     $payment_amount = $submission_data['payment_amount'];
     $single_payment_amount = $submission_data['setup_fee'];
     $trial_period_days = rgars($feed, 'meta/trialPeriod') ? rgars($feed, 'meta/trialPeriod') : null;
     $plan_id = $this->get_subscription_plan_id($feed, $payment_amount);
     $plan = $this->get_plan($plan_id);
     if (rgar($plan, 'error_message')) {
         return $plan;
     }
     try {
         if (!$plan) {
             $plan = Stripe_Plan::create(array('interval' => $feed['meta']['billingCycle_unit'], 'interval_count' => $feed['meta']['billingCycle_length'], 'name' => $feed['meta']['feedName'], 'currency' => GFCommon::get_currency(), 'id' => $plan_id, 'amount' => $payment_amount * 100, 'trial_period_days' => $trial_period_days));
         }
         $stripe_response = $this->get_stripe_js_response();
         $email = $this->get_mapped_field_value('customerInformation_email', $form, $entry, $feed['meta']);
         $description = $this->get_mapped_field_value('customerInformation_description', $form, $entry, $feed['meta']);
         $customer = Stripe_Customer::create(array('description' => $description, 'email' => $email, 'card' => $stripe_response->id, 'account_balance' => $single_payment_amount * 100));
         $subscription = $customer->updateSubscription(array('plan' => $plan->id));
     } catch (Stripe_Error $e) {
         return $this->authorization_error($e->getMessage());
     }
     return array('is_success' => true, 'subscription_id' => $subscription->id, 'customer_id' => $customer->id, 'amount' => $payment_amount);
 }
 public static function get_form($form_id, $display_title = true, $display_description = true, $force_display = false, $field_values = null, $ajax = false, $tabindex = 1)
 {
     //looking up form id by form name
     if (!is_numeric($form_id)) {
         $form_id = RGFormsModel::get_form_id($form_id);
     }
     //reading form metadata
     $form = RGFormsModel::get_form_meta($form_id, true);
     $form = RGFormsModel::add_default_properties($form);
     //disable ajax if form has a reCAPTCHA field (not supported).
     if ($ajax && self::has_recaptcha_field($form)) {
         $ajax = false;
     }
     $is_postback = false;
     $is_valid = true;
     $confirmation_message = "";
     $page_number = 1;
     //If form was submitted, read variables set during form submission procedure
     $submission_info = isset(self::$submission[$form_id]) ? self::$submission[$form_id] : false;
     if ($submission_info) {
         $is_postback = true;
         $is_valid = $submission_info["is_valid"] || rgget("is_confirmation", $submission_info);
         $form = $submission_info["form"];
         $lead = $submission_info["lead"];
         $confirmation_message = rgget("confirmation_message", $submission_info);
         if ($is_valid && !RGForms::get("is_confirmation", $submission_info)) {
             if ($submission_info["page_number"] == 0) {
                 //post submission hook
                 do_action("gform_post_submission", $lead, $form);
                 do_action("gform_post_submission_{$form["id"]}", $lead, $form);
             } else {
                 //change page hook
                 do_action("gform_post_paging", $form, $submission_info["source_page_number"], $submission_info["page_number"]);
                 do_action("gform_post_paging_{$form["id"]}", $form, $submission_info["source_page_number"], $submission_info["page_number"]);
             }
         }
     } else {
         if (!current_user_can("administrator")) {
             RGFormsModel::insert_form_view($form_id, $_SERVER['REMOTE_ADDR']);
         }
     }
     if (rgar($form, "enableHoneypot")) {
         $form["fields"][] = self::get_honeypot_field($form);
     }
     //Fired right before the form rendering process. Allow users to manipulate the form object before it gets displayed in the front end
     $form = apply_filters("gform_pre_render_{$form_id}", apply_filters("gform_pre_render", $form));
     if ($form == null) {
         return "<p>" . __("Oops! We could not locate your form.", "gravityforms") . "</p>";
     }
     $has_pages = self::has_pages($form);
     //calling tab index filter
     GFCommon::$tab_index = apply_filters("gform_tabindex_{$form_id}", apply_filters("gform_tabindex", $tabindex, $form), $form);
     //Don't display inactive forms
     if (!$force_display && !$is_postback) {
         $form_info = RGFormsModel::get_form($form_id);
         if (!$form_info->is_active) {
             return "";
         }
         //If form has a schedule, make sure it is within the configured start and end dates
         if (rgar($form, "scheduleForm")) {
             $local_time_start = sprintf("%s %02d:%02d %s", $form["scheduleStart"], $form["scheduleStartHour"], $form["scheduleStartMinute"], $form["scheduleStartAmpm"]);
             $local_time_end = sprintf("%s %02d:%02d %s", $form["scheduleEnd"], $form["scheduleEndHour"], $form["scheduleEndMinute"], $form["scheduleEndAmpm"]);
             $timestamp_start = strtotime($local_time_start . ' +0000');
             $timestamp_end = strtotime($local_time_end . ' +0000');
             $now = current_time("timestamp");
             if (!empty($form["scheduleStart"]) && $now < $timestamp_start || !empty($form["scheduleEnd"]) && $now > $timestamp_end) {
                 return empty($form["scheduleMessage"]) ? "<p>" . __("Sorry. This form is no longer available.", "gravityforms") . "</p>" : "<p>" . GFCommon::gform_do_shortcode($form["scheduleMessage"]) . "</p>";
             }
         }
         //If form has a limit of entries, check current entry count
         if (rgar($form, "limitEntries")) {
             $period = rgar($form, "limitEntriesPeriod");
             $range = self::get_limit_period_dates($period);
             $entry_count = RGFormsModel::get_lead_count($form_id, "", null, null, $range["start_date"], $range["end_date"]);
             if ($entry_count >= $form["limitEntriesCount"]) {
                 return empty($form["limitEntriesMessage"]) ? "<p>" . __("Sorry. This form is no longer accepting new submissions.", "gravityforms") . "</p>" : "<p>" . GFCommon::gform_do_shortcode($form["limitEntriesMessage"]) . "</p>";
             }
         }
         // If form requires login, check if user is logged in
         if (rgar($form, "requireLogin")) {
             if (!is_user_logged_in()) {
                 return empty($form["requireLoginMessage"]) ? "<p>" . __("Sorry. You must be logged in to view this form.", "gravityforms") . "</p>" : "<p>" . GFCommon::gform_do_shortcode($form["requireLoginMessage"]) . "</p>";
             }
         }
     }
     $form_string = "";
     //When called via a template, this will enqueue the proper scripts
     //When called via a shortcode, this will be ignored (too late to enqueue), but the scripts will be enqueued via the enqueue_scripts event
     self::enqueue_form_scripts($form, $ajax);
     if (empty($confirmation_message)) {
         $wrapper_css_class = GFCommon::get_browser_class() . " gform_wrapper";
         if (!$is_valid) {
             $wrapper_css_class .= " gform_validation_error";
         }
         //Hidding entire form if conditional logic is on to prevent "hidden" fields from blinking. Form will be set to visible in the conditional_logic.php after the rules have been applied.
         $style = self::has_conditional_logic($form) ? "style='display:none'" : "";
         $form_string .= "\n                <div class='{$wrapper_css_class}' id='gform_wrapper_{$form_id}' " . $style . ">";
         $action = add_query_arg(array());
         $default_anchor = $has_pages || $ajax ? true : false;
         $use_anchor = apply_filters("gform_confirmation_anchor_{$form["id"]}", apply_filters("gform_confirmation_anchor", $default_anchor));
         if ($use_anchor !== false) {
             $form_string .= "<a name='gf_{$form_id}' class='gform_anchor' ></a>";
             $action .= "#gf_{$form_id}";
         }
         $target = $ajax ? "target='gform_ajax_frame_{$form_id}'" : "";
         $form_css_class = !empty($form["cssClass"]) ? "class='{$form["cssClass"]}'" : "";
         $action = esc_attr($action);
         $form_string .= apply_filters("gform_form_tag_{$form_id}", apply_filters("gform_form_tag", "<form method='post' enctype='multipart/form-data' {$target} id='gform_{$form_id}' {$form_css_class} action='{$action}'>", $form), $form);
         if ($display_title || $display_description) {
             $form_string .= "\n                        <div class='gform_heading'>";
             if ($display_title) {
                 $form_string .= "\n                            <h3 class='gform_title'>" . $form['title'] . "</h3>";
             }
             if ($display_description) {
                 $form_string .= "\n                            <span class='gform_description'>" . rgar($form, 'description') . "</span>";
             }
             $form_string .= "\n                        </div>";
         }
         if ($has_pages && !IS_ADMIN) {
             $page_count = self::get_max_page_number($form);
             $current_page = self::get_current_page($form_id);
             if ($form["pagination"]["type"] == "percentage") {
                 $percent = floor($current_page / $page_count * 100) . "%";
                 $page_name = rgar(rgar($form["pagination"], "pages"), $current_page - 1);
                 $page_name = !empty($page_name) ? " - " . $page_name : "";
                 $style = $form["pagination"]["style"];
                 $color = $style == "custom" ? " color:{$form["pagination"]["color"]};" : "";
                 $bgcolor = $style == "custom" ? " background-color:{$form["pagination"]["backgroundColor"]};" : "";
                 $form_string .= "\n                        <div id='gf_progressbar_wrapper_{$form_id}' class='gf_progressbar_wrapper'>\n                            <h3 class='gf_progressbar_title'>" . __("Step", "gravityforms") . " {$current_page} " . __("of", "gravityforms") . " {$page_count}{$page_name}</h3>\n                            <div class='gf_progressbar'>\n                                <div class='gf_progressbar_percentage percentbar_{$style}' style='width:{$percent};{$color}{$bgcolor}'><span>{$percent}</span></div>\n                            </div>\n                        </div>";
             } else {
                 if ($form["pagination"]["type"] == "steps") {
                     $form_string .= "\n                    <div id='gf_page_steps_{$form_id}' class='gf_page_steps'>";
                     for ($i = 0, $count = sizeof($form["pagination"]["pages"]); $i < $count; $i++) {
                         $step_number = $i + 1;
                         $active_class = $step_number == $current_page ? " gf_step_active" : "";
                         $first_class = $i == 0 ? " gf_step_first" : "";
                         $last_class = $i + 1 == $count ? " gf_step_last" : "";
                         $complete_class = $step_number < $current_page ? " gf_step_completed" : "";
                         $previous_class = $step_number + 1 == $current_page ? " gf_step_previous" : "";
                         $next_class = $step_number - 1 == $current_page ? " gf_step_next" : "";
                         $pending_class = $step_number > $current_page ? " gf_step_pending" : "";
                         $classes = "gf_step" . $active_class . $first_class . $last_class . $complete_class . $previous_class . $next_class . $pending_class;
                         $classes = GFCommon::trim_all($classes);
                         $form_string .= "\n                        <div id='gf_step_{$form_id}_{$step_number}' class='{$classes}'><span class='gf_step_number'>{$step_number}</span>&nbsp;{$form["pagination"]["pages"][$i]}</div>";
                     }
                     $form_string .= "\n                        <div class='gf_step_clear'></div>\n                    </div>";
                 }
             }
         }
         if ($is_postback && !$is_valid) {
             $validation_message = "<div class='validation_error'>" . __("There was a problem with your submission.", "gravityforms") . " " . __("Errors have been highlighted below.", "gravityforms") . "</div>";
             $form_string .= apply_filters("gform_validation_message_{$form["id"]}", apply_filters("gform_validation_message", $validation_message, $form), $form);
         }
         $form_string .= "\n                        <div class='gform_body'>";
         //add first page if this form has any page fields
         if ($has_pages) {
             $style = self::is_page_active($form_id, 1) ? "" : "style='display:none;'";
             $class = !empty($form["firstPageCssClass"]) ? " {$form["firstPageCssClass"]}" : "";
             $form_string .= "<div id='gform_page_{$form_id}_1' class='gform_page{$class}' {$style}>\n                                    <div class='gform_page_fields'>";
         }
         $description_class = rgar($form, "descriptionPlacement") == "above" ? "description_above" : "description_below";
         $form_string .= "\n                            <ul id='gform_fields_{$form_id}' class='gform_fields {$form['labelPlacement']} {$description_class}'>";
         if (is_array($form['fields'])) {
             foreach ($form['fields'] as $field) {
                 $field["conditionalLogicFields"] = self::get_conditional_logic_fields($form, $field["id"]);
                 $form_string .= self::get_field($field, RGFormsModel::get_field_value($field, $field_values), false, $form, $field_values);
             }
         }
         $form_string .= "\n                            </ul>";
         if ($has_pages) {
             $previous_button = self::get_form_button($form["id"], "gform_previous_button_{$form["id"]}", $form["lastPageButton"], __("Previous", "gravityforms"), "button gform_previous_button", __("Previous Page", "gravityforms"), self::get_current_page($form_id) - 1);
             $form_string .= "</div>" . self::gform_footer($form, "gform_page_footer " . $form['labelPlacement'], $ajax, $field_values, $previous_button, $display_title, $display_description, $is_postback) . "\n                            </div>";
             //closes gform_page
         }
         $form_string .= "</div>";
         //closes gform_body
         //suppress form footer for multi-page forms (footer will be included on the last page
         if (!$has_pages) {
             $form_string .= self::gform_footer($form, "gform_footer " . $form['labelPlacement'], $ajax, $field_values, "", $display_title, $display_description, $is_postback);
         }
         $form_string .= "\n                </form>\n                </div>";
         //adding conditional logic script if conditional logic is configured for this form.
         //get_conditional_logic also adds the chosen script for the enhanced dropdown option.
         //if this form does not have conditional logic, add chosen script separately
         if (self::has_conditional_logic($form)) {
             $form_string .= self::get_conditional_logic($form);
         } else {
             if (self::has_enhanced_dropdown($form)) {
                 $form_string .= "<script type='text/javascript'>//<![CDATA[\n" . self::get_chosen_init_script($form) . "\n//]]></script>";
             }
         }
         //adding currency config if there are any product fields in the form
         if (self::has_price_field($form)) {
             if (!class_exists("RGCurrency")) {
                 require_once "currency.php";
             }
             $form_string .= "<script type='text/javascript'>//<![CDATA[\n if(window[\"gformInitPriceFields\"]) jQuery(document).ready(function(){gformInitPriceFields();}); window['gf_currency_config'] = " . GFCommon::json_encode(RGCurrency::get_currency(GFCommon::get_currency())) . "; \n//]]></script>";
         }
         if (self::has_password_strength($form)) {
             $form_string .= "<script type='text/javascript'>//<![CDATA[\nif(!window['gf_text']){window['gf_text'] = new Array();} window['gf_text']['password_blank'] = '" . __("Strength indicator", "gravityforms") . "'; window['gf_text']['password_mismatch'] = '" . __("Mismatch", "gravityforms") . "';window['gf_text']['password_bad'] = '" . __("Bad", "gravityforms") . "'; window['gf_text']['password_short'] = '" . __("Short", "gravityforms") . "'; window['gf_text']['password_good'] = '" . __("Good", "gravityforms") . "'; window['gf_text']['password_strong'] = '" . __("Strong", "gravityforms") . "';\n//]]></script>";
         }
         if (GFCommon::has_credit_card_field($form)) {
             $card_rules = self::get_credit_card_rules();
             $form_string .= "<script type='text/javascript'>//<![CDATA[\n if(!window['gf_cc_rules']){window['gf_cc_rules'] = new Array(); } window['gf_cc_rules'] = " . GFCommon::json_encode($card_rules) . "; \n//]]></script>";
         }
         if ($ajax && $is_postback) {
             global $wp_scripts;
             $form_string = "<!DOCTYPE html><html><head>" . "<script type='text/javascript' src='" . $wp_scripts->base_url . $wp_scripts->registered["jquery"]->src . "'></script>" . "<script type='text/javascript' src='" . GFCommon::get_base_url() . "/js/conditional_logic.js'></script>" . "<meta charset='UTF-8' /></head><body>" . $form_string . "</body></html>";
         }
         if ($ajax && !$is_postback) {
             $spinner_url = apply_filters("gform_ajax_spinner_url_{$form_id}", apply_filters("gform_ajax_spinner_url", GFCommon::get_base_url() . "/images/spinner.gif", $form), $form);
             $scroll_position = array('default' => '', 'confirmation' => '');
             if ($use_anchor !== false) {
                 $scroll_position['default'] = is_numeric($use_anchor) ? "jQuery(document).scrollTop(" . intval($use_anchor) . ");" : "jQuery(document).scrollTop(jQuery('#gform_wrapper_{$form_id}').offset().top);";
                 $scroll_position['confirmation'] = is_numeric($use_anchor) ? "jQuery(document).scrollTop(" . intval($use_anchor) . ");" : "jQuery(document).scrollTop(jQuery('#gforms_confirmation_message').offset().top);";
             }
             $form_string .= "\n                <iframe style='display:none;width:0px; height:0px;' src='about:blank' name='gform_ajax_frame_{$form_id}' id='gform_ajax_frame_{$form_id}'></iframe>\n                <script type='text/javascript'>//<![CDATA[\n" . "function gformInitSpinner(){" . "jQuery('#gform_{$form_id}').submit(function(){" . "jQuery('#gform_submit_button_{$form_id}').attr('disabled', true).after('<' + 'img id=\"gform_ajax_spinner_{$form_id}\"  class=\"gform_ajax_spinner\" src=\"{$spinner_url}\" alt=\"\" />');" . "jQuery('#gform_wrapper_{$form_id} .gform_previous_button').attr('disabled', true); " . "jQuery('#gform_wrapper_{$form_id} .gform_next_button').attr('disabled', true).after('<' + 'img id=\"gform_ajax_spinner_{$form_id}\"  class=\"gform_ajax_spinner\" src=\"{$spinner_url}\" alt=\"\" />');" . "});" . "}" . "jQuery(document).ready(function(\$){" . "gformInitSpinner();" . "jQuery('#gform_ajax_frame_{$form_id}').load( function(){" . "var form_content = jQuery(this).contents().find('#gform_wrapper_{$form_id}');" . "var confirmation_content = jQuery(this).contents().find('#gforms_confirmation_message');" . "jQuery('#gform_submit_button_{$form_id}').removeAttr('disabled');" . "if(form_content.length > 0){" . "jQuery('#gform_wrapper_{$form_id}').html(form_content.html());" . "{$scroll_position['default']}" . "if(window['gformInitDatepicker']) {gformInitDatepicker();}" . "if(window['gformInitPriceFields']) {gformInitPriceFields();}" . "var current_page = jQuery('#gform_source_page_number_{$form_id}').val();" . "gformInitSpinner();" . "jQuery(document).trigger('gform_page_loaded', [{$form_id}, current_page]);" . "}" . "else if(confirmation_content.length > 0){" . "setTimeout(function(){" . "jQuery('#gform_wrapper_{$form_id}').replaceWith('<' + 'div id=\\'gforms_confirmation_message\\' class=\\'gform_confirmation_message_{$form_id}\\'' + '>' + confirmation_content.html() + '<' + '/div' + '>');" . "{$scroll_position['confirmation']}" . "jQuery(document).trigger('gform_confirmation_loaded', [{$form_id}]);" . "}, 50);" . "}" . "else{" . "jQuery('#gform_{$form_id}').append(jQuery(this).contents().find('*').html());" . "if(window['gformRedirect']) gformRedirect();" . "}" . "jQuery(document).trigger('gform_post_render', [{$form_id}, current_page]);" . "});" . "});" . "\n//]]></script>";
         }
         return apply_filters('gform_get_form_filter', $form_string);
     } else {
         if ($ajax) {
             $confirmation_message = "<!DOCTYPE html><html><head><meta charset='UTF-8' /></head><body>" . $confirmation_message . "</body></html>";
         }
         return $confirmation_message;
     }
 }
 public function sanitize_settings()
 {
     parent::sanitize_settings();
     $this->enableCalculation = (bool) $this->enableCalculation;
     if ($this->numberFormat == 'currency') {
         require_once GFCommon::get_base_path() . '/currency.php';
         $currency = new RGCurrency(GFCommon::get_currency());
         $this->rangeMin = $currency->to_number($this->rangeMin);
         $this->rangeMax = $currency->to_number($this->rangeMax);
     } elseif ($this->numberFormat == 'decimal_comma') {
         $this->rangeMin = GFCommon::clean_number($this->rangeMin, 'decimal_comma');
         $this->rangeMax = GFCommon::clean_number($this->rangeMax, 'decimal_comma');
     } elseif ($this->numberFormat == 'decimal_dot') {
         $this->rangeMin = GFCommon::clean_number($this->rangeMin, 'decimal_dot');
         $this->rangeMin = GFCommon::clean_number($this->rangeMin, 'decimal_dot');
     }
 }
Esempio n. 17
0
    public static function forms_page($form_id)
    {
        global $wpdb;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        $update_result = "";
        if (rgpost("operation") == "delete") {
            check_admin_referer('gforms_delete_form', 'gforms_delete_form');
            RGFormsModel::delete_form($form_id);
            ?>
                <script type="text/javascript">
                jQuery(document).ready(
                    function(){document.location.href="?page=gf_edit_forms";}
                );
                </script>
            <?php 
            exit;
        } else {
            if (!rgempty("gform_meta")) {
                check_admin_referer("gforms_update_form_{$form_id}", 'gforms_update_form');
                $update_result = self::save_form_info($form_id, rgpost("gform_meta", false));
            }
        }
        if (!GFCommon::is_wp_version("3.3")) {
            ?>
            <script type='text/javascript'>
                /* <![CDATA[
                *Needed for custom version of thickbox
                */
                var thickboxL10n = {
                    loadingAnimation: "<?php 
            echo includes_url();
            ?>
js/thickbox/loadingAnimation.gif",
                    closeImage: "<?php 
            echo includes_url();
            ?>
js/thickbox/tb-close.png"
                };
                try{convertEntities(thickboxL10n);}catch(e){};
                /* ]]> */
            </script>
            <?php 
            wp_register_script("gf_thickbox", GFCommon::get_base_url() . "/js/thickbox.js", null, GFCommon::$version);
            wp_register_style("gf_thickbox", GFCommon::get_base_url() . "/js/thickbox.css", null, GFCommon::$version);
            wp_print_scripts(array("gf_thickbox"));
            wp_print_styles(array("gf_thickbox"));
        } else {
            wp_print_scripts(array("thickbox"));
            wp_print_styles(array("thickbox"));
        }
        wp_register_script("gforms_gravityforms", GFCommon::get_base_url() . "/js/gravityforms.js", null, GFCommon::$version);
        wp_print_scripts(array("jquery-ui-core", "jquery-ui-sortable", "jquery-ui-tabs", "sack", "gforms_gravityforms"));
        require_once GFCommon::get_base_path() . '/currency.php';
        ?>
        <script type="text/javascript">
            var gf_global = {
                "gf_currency_config" : <?php 
        echo json_encode(RGCurrency::get_currency(GFCommon::get_currency()));
        ?>
            };

            var gf_vars = {
                "save": "<?php 
        _e("Save", "gravityforms");
        ?>
",
                "update": "<?php 
        _e("Update", "gravityforms");
        ?>
",
                "baseUrl": "<?php 
        echo GFCommon::get_base_url();
        ?>
",
                "previousLabel" : "<?php 
        _e("Previous", "gravityforms");
        ?>
",
                "selectFormat" : "<?php 
        _e("Select a format", "gravityforms");
        ?>
",
                "otherChoiceValue" : "<?php 
        echo GFCommon::get_other_choice_value();
        ?>
",
                "editToViewAll" : "<?php 
        _e("5 of %d items shown. Edit field to view all", "gravityforms");
        ?>
",
                "enterValue" : "<?php 
        _e("Enter a value", "gravityforms");
        ?>
",
                "formTitle" : "<?php 
        _e("Untitled Form", "gravityforms");
        ?>
",
                "formDescription" : "<?php 
        _e("We would love to hear from you! Please fill out this form and we will get in touch with you shortly.", "gravityforms");
        ?>
",
                "formConfirmationMessage" : "<?php 
        _e("Thanks for contacting us! We will get in touch with you shortly.", "gravityforms");
        ?>
",
                "buttonText" : "<?php 
        _e("Submit", "gravityforms");
        ?>
",
                /*"showValues" : "<?php 
        _e("show values", "gravityforms");
        ?>
",
                "hideValues" : "<?php 
        _e(" hide values", "gravityforms");
        ?>
",*/
                "loading" : "<?php 
        _e("Loading...", "gravityforms");
        ?>
"
            };
        </script>

        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/floatmenu_init.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/menu.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.json-1.3.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.simplemodal-1.3.min.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/forms.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery-ui/ui.datepicker.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>
        <script src="<?php 
        echo GFCommon::get_base_url();
        ?>
/js/jquery.placeholder.1.2.min.js?ver=<?php 
        echo GFCommon::$version;
        ?>
"></script>

        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/jquery-ui-1.7.2.custom.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" type="text/css" />
        <link rel="stylesheet" href="<?php 
        echo GFCommon::get_base_url();
        ?>
/css/admin.css?ver=<?php 
        echo GFCommon::$version;
        ?>
" type="text/css" />
        <script type="text/javascript">
            jQuery(document).ready(
                function() {
                    jQuery('.datepicker').datepicker({showOn: "both", buttonImage: "<?php 
        echo GFCommon::get_base_url();
        ?>
/images/calendar.png", buttonImageOnly: true} );
                }
            );

            function has_entry(fieldNumber){
                var submitted_fields = new Array(<?php 
        echo RGFormsModel::get_submitted_fields($form_id);
        ?>
);
                for(var i=0; i<submitted_fields.length; i++){
                    if(submitted_fields[i] == fieldNumber)
                        return true;
                }
                return false;
            }

            function InsertVariable(element_id, callback, variable){

                if(!variable)
                    variable = jQuery('#' + element_id + '_variable_select').val();

                var messageElement = jQuery("#" + element_id);

                if(document.selection) {
                    // Go the IE way
                    messageElement[0].focus();
                    document.selection.createRange().text=variable;
                }
                else if(messageElement[0].selectionStart) {
                    // Go the Gecko way
                    obj = messageElement[0]
                    obj.value = obj.value.substr(0, obj.selectionStart) + variable + obj.value.substr(obj.selectionEnd, obj.value.length);
                }
                else {
                    messageElement.val(variable + messageElement.val());
                }

                jQuery('#' + element_id + '_variable_select')[0].selectedIndex = 0;


                if(callback && window[callback]){
                    window[callback].call();
                }
            }

            function InsertPostImageVariable(element_id, callback){
                var variable = jQuery('#' + element_id + '_image_size_select').attr("variable");
                var size = jQuery('#' + element_id + '_image_size_select').val();
                if(size){
                    variable = "{" + variable + ":" + size + "}";
                    InsertVariable(element_id, callback, variable);
                    jQuery('#' + element_id + '_image_size_select').hide();
                    jQuery('#' + element_id + '_image_size_select')[0].selectedIndex = 0;
                }
            }

            function InsertPostContentVariable(element_id, callback){
                var variable = jQuery('#' + element_id + '_variable_select').val();
                var regex=/{([^{]*?: *(\d+\.?\d*).*?)}/;
                matches = regex.exec(variable);
                if(!matches){
                    InsertVariable(element_id, callback);
                    return;
                }

                variable = matches[1];
                field_id = matches[2];

                for(var i=0; i<form["fields"].length; i++){
                    if(form["fields"][i]["id"] == field_id){
                        if(form["fields"][i]["type"] == "post_image"){
                            jQuery('#' + element_id + '_image_size_select').attr("variable", variable);
                            jQuery('#' + element_id + '_image_size_select').show();
                            return;
                        }
                    }
                }

                InsertVariable(element_id, callback);
            }
        </script>

        <style>
            .field_type li {
                float:left;
                width:50%;
            }
            .field_type input {
                width: 120px;
                padding: 0 10px 2px !important;
            }

            .description-list { margin: 10px 0; padding: 0 20px; }
            .description-list li { padding: 0; list-style: disc; overflow: visible; }
            .custom_mask_instructions h5 { margin: 0 0 4px; font-size: 11px; }
            .custom_mask_instructions span.label { font-size: 11px; display: -moz-inline-stack; display: inline-block; zoom: 1; *display: inline;
                width: 80px; }
            .custom_mask_instructions li { margin: 0 0 14px; }

            .gf_calculation_buttons { float: right; margin-right: 55px; }
            .gf_calculation_buttons input[type=button]{ width: 22px; float: left; }
            #field_calculation_formula_variable_select { width: 150px; }
            #calculation_options p { margin: 0 0 14px; padding: 0; }

        </style>

        <?php 
        $form = !rgempty("meta", $update_result) ? rgar($update_result, "meta") : RGFormsModel::get_form_meta($form_id);
        $form = RGFormsModel::add_default_properties($form);
        if ($form == null) {
            $form = array("fields" => array());
        }
        $form = apply_filters("gform_admin_pre_render_" . $form_id, apply_filters("gform_admin_pre_render", $form));
        if (isset($form['id'])) {
            echo "<script type=\"text/javascript\">var form = " . GFCommon::json_encode($form) . ";</script>";
        } else {
            echo "<script type=\"text/javascript\">var form = new Form();</script>";
        }
        ?>

        <?php 
        echo GFCommon::get_remote_message();
        ?>
        <div class="wrap gforms_edit_form <?php 
        echo GFCommon::get_browser_class();
        ?>
">


            <div class="icon32" id="gravity-edit-icon"><br></div>


            <h2><?php 
        echo empty($form_id) ? __("New Form", "gravityforms") : __("Form Editor :", "gravityforms") . " " . esc_html($form["title"]);
        ?>
</h2>

            <?php 
        RGForms::top_toolbar();
        ?>

            <?php 
        switch (rgar($update_result, "status")) {
            case "invalid_json":
                ?>
                    <div class="error_base gform_editor_status" id="after_update_error_dialog">
                        <?php 
                _e("There was an error while saving your form.", "gravityforms");
                ?>
                        <?php 
                printf(__("Please %scontact our support team%s.", "gravityforms"), '<a href="http://www.gravityhelp.com">', '</a>');
                ?>
                    </div>
                    <?php 
                break;
            case "duplicate_title":
                ?>
                    <div class="error_base gform_editor_status" id="after_update_error_dialog">
                        <?php 
                _e("The form title you have entered is already taken. Please enter an unique form title.", "gravityforms");
                ?>
                    </div>
                    <?php 
                break;
            default:
                if (!empty($update_result)) {
                    ?>
                        <div class="updated_base gform_editor_status" id="after_update_dialog">
                            <strong><?php 
                    _e("Form updated successfully.", "gravityforms");
                    ?>
</strong>
                        </div>
                        <?php 
                }
                break;
        }
        ?>

            <table width="100%">
            <tr>
                <td class="pad_top" valign="top">

                    <div id="gform_heading" class="selectable">
                        <form method="post" id="form_delete">
                            <?php 
        wp_nonce_field('gforms_delete_form', 'gforms_delete_form');
        ?>


                            <div class="gform_admin_icons">
                                <div class="gform_admin_header_title"><?php 
        _e("Form Settings", "gravityforms");
        if (!rgempty("id", $_GET)) {
            echo " : " . __("Form ID", "gravityforms") . " " . rgget("id");
        }
        ?>
                                </div>
                                <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Form's properties", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                            </div>

                            <input type="hidden" value="delete" name="operation"/>
                        </form>
                        <h3 id="gform_title"></h3>
                        <span id="gform_description">&nbsp;</span>

                        <div id="form_settings" style="display:none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                                <li style="width:100px; padding:0px; "><a href="#gform_settings_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                                <li style="width:120px; padding:0px; "><a href="#gform_settings_tab_3"><?php 
        _e("Confirmation", "gravityforms");
        ?>
</a></li>
                            </ul>
                            <div id="gform_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <?php 
        do_action("gform_properties_settings", 100, $form_id);
        ?>
                                    <li>
                                        <label for="form_title_input" style="display:block;">
                                            <?php 
        _e("Title", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_tile");
        ?>
                                        </label>
                                        <input type="text" id="form_title_input" class="fieldwidth-3" onkeyup="UpdateFormProperty('title', this.value);" />
                                    </li>
                                    <?php 
        do_action("gform_properties_settings", 200, $form_id);
        ?>
                                    <li>
                                        <label for="form_description_input" style="display:block;">
                                            <?php 
        _e("Description", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_description");
        ?>
                                        </label>
                                        <textarea id="form_description_input" class="fieldwidth-3 fieldheight-2" onkeyup="UpdateFormProperty('description', this.value);"></textarea>
                                    </li>
                                    <?php 
        do_action("gform_properties_settings", 300, $form_id);
        ?>
                                    <li class="gform_setting_left_half">
                                        <label for="form_label_placement" style="display:block;">
                                            <?php 
        _e("Label Placement", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_label_placement");
        ?>
                                        </label>
                                        <select id="form_label_placement" onchange="UpdateLabelPlacement();">
                                            <option value="top_label"><?php 
        _e("Top aligned", "gravityforms");
        ?>
</option>
                                            <option value="left_label"><?php 
        _e("Left aligned", "gravityforms");
        ?>
</option>
                                            <option value="right_label"><?php 
        _e("Right aligned", "gravityforms");
        ?>
</option>
                                        </select>
                                    </li>
                                    <?php 
        do_action("gform_properties_settings", 400, $form_id);
        ?>
                                    <li id='description_placement_setting' class="gform_setting_right_half">
                                        <label for="form_description_placement" style="display:block;">
                                            <?php 
        _e("Description Placement", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_description_placement");
        ?>
                                        </label>
                                        <select id="form_description_placement" onchange="UpdateDescriptionPlacement();">
                                            <option value="below"><?php 
        _e("Below inputs", "gravityforms");
        ?>
</option>
                                            <option value="above"><?php 
        _e("Above inputs", "gravityforms");
        ?>
</option>
                                        </select>
                                    </li>
                                    <?php 
        do_action("gform_properties_settings", 500, $form_id);
        ?>
                                </ul>
                            </div>
                            <div id="gform_settings_tab_2">
                                <ul class="gforms_form_settings">
                                    <?php 
        do_action("gform_advanced_settings", 100, $form_id);
        ?>
                                    <li>
                                        <label><?php 
        _e("Form Button", "gravityforms");
        ?>
</label>
                                        <div class="form_button_options">
                                            <input type="radio" id="form_button_text" name="form_button" value="text" onclick="ToggleButton();"/>
                                            <label for="form_button_text" class="inline">
                                                <?php 
        _e("Default", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_button_text");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_button_image" name="form_button" value="image" onclick="ToggleButton();"/>
                                            <label for="form_button_image" class="inline">
                                                <?php 
        _e("Image", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_button_image");
        ?>
                                            </label>

                                            <div id="form_button_text_container" style="margin-top:5px;">
                                            <label for="form_button_text_input" class="float_label">
                                                    <?php 
        _e("Text:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="form_button_text_input" class="input_size_b" size="40" />
                                            </div>

                                            <div id="form_button_image_container" style="margin-top:5px;">
                                                <label for="form_button_image_url" class="inline">
                                                    <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="form_button_image_url" size="45"/>
                                            </div>

                                            <div style="margin-top:9px;">

                                                <input type="checkbox" id="form_button_conditional_logic" onclick="SetButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'form_button');"/>
                                                <label for="form_button_conditional_logic" class="inline"><?php 
        _e("Enable Conditional Logic", "gravityforms");
        gform_tooltip("form_button_conditional_logic");
        ?>
</label>
                                                <br/>
                                                <div id="form_button_conditional_logic_container" style="display:none; padding-top:10px;">
                                                    <!-- content dynamically created from js.php -->
                                                </div>
                                            </div>
                                        </div>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 200, $form_id);
        ?>
                                    <li>
                                        <label for="form_css_class" style="display:block;">
                                            <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_css_class");
        ?>
                                        </label>
                                        <input type="text" id="form_css_class" class="fieldwidth-3"/>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 300, $form_id);
        ?>
                                    <li>
                                        <input type="checkbox" id="gform_limit_entries" onclick="ToggleLimitEntry();"/> <label for="gform_limit_entries"><?php 
        _e("Limit number of entries", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_limit_entries");
        ?>
</label>

                                        <br/>
                                        <div id="gform_limit_entries_container" style="display:none;">
                                            <br/>
                                            <label for="gform_limit_entries_count" style="display:block;">
                                                <?php 
        _e("Number of Entries", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_limit_entries_count" style="width:70px;"/>
                                            &nbsp;
                                            <select id="gform_limit_entries_period" style="height:22px;">
                                                <option value=""><?php 
        _e("total entries", "gravityforms");
        ?>
</option>
                                                <option value="day"><?php 
        _e("per day", "gravityforms");
        ?>
</option>
                                                <option value="week"><?php 
        _e("per week", "gravityforms");
        ?>
</option>
                                                <option value="month"><?php 
        _e("per month", "gravityforms");
        ?>
</option>
                                                <option value="year"><?php 
        _e("per year", "gravityforms");
        ?>
</option>
                                            </select>
                                            <br/><br/>
                                            <label for="form_limit_entries_message" style="display:block;">
                                                <?php 
        _e("Entry Limit Reached Message", "gravityforms");
        ?>
                                            </label>
                                            <textarea id="form_limit_entries_message" class="fieldwidth-3"></textarea>
                                        </div>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 400, $form_id);
        ?>
                                    <li>
                                        <input type="checkbox" id="gform_schedule_form" onclick="ToggleSchedule();"/> <label for="gform_schedule_form"><?php 
        _e("Schedule form", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_schedule_form");
        ?>
</label>
                                        <br/>
                                        <div id="gform_schedule_form_container" style="display:none;">
                                            <br/>
                                            <label for="gform_schedule_start" style="display:block;">
                                                <?php 
        _e("Start Date/Time", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_schedule_start" name="gform_schedule_start" class="datepicker"/>
                                            &nbsp;&nbsp;
                                            <select id="gform_schedule_start_hour">
                                                <option value="1">1</option>
                                                <option value="2">2</option>
                                                <option value="3">3</option>
                                                <option value="4">4</option>
                                                <option value="5">5</option>
                                                <option value="6">6</option>
                                                <option value="7">7</option>
                                                <option value="8">8</option>
                                                <option value="9">9</option>
                                                <option value="10">10</option>
                                                <option value="11">11</option>
                                                <option value="12">12</option>
                                            </select>
                                            :
                                            <select id="gform_schedule_start_minute">
                                                <option value="00">00</option>
                                                <option value="15">15</option>
                                                <option value="30">30</option>
                                                <option value="45">45</option>
                                            </select>
                                            <select id="gform_schedule_start_ampm">
                                                <option value="am">AM</option>
                                                <option value="pm">PM</option>
                                            </select>
                                            <br/><br/>
                                            <label for="gform_schedule_end" style="display:block;">
                                                <?php 
        _e("End Date/Time", "gravityforms");
        ?>
                                            </label>
                                            <input type="text" id="gform_schedule_end" class="datepicker"/>
                                            &nbsp;&nbsp;
                                            <select id="gform_schedule_end_hour">
                                                <option value="1">1</option>
                                                <option value="2">2</option>
                                                <option value="3">3</option>
                                                <option value="4">4</option>
                                                <option value="5">5</option>
                                                <option value="6">6</option>
                                                <option value="7">7</option>
                                                <option value="8">8</option>
                                                <option value="9">9</option>
                                                <option value="10">10</option>
                                                <option value="11">11</option>
                                                <option value="12">12</option>
                                            </select>
                                            :
                                            <select id="gform_schedule_end_minute">
                                                <option value="00">00</option>
                                                <option value="15">15</option>
                                                <option value="30">30</option>
                                                <option value="45">45</option>
                                            </select>
                                            <select id="gform_schedule_end_ampm">
                                                <option value="am">AM</option>
                                                <option value="pm">PM</option>
                                            </select>

                                            <br/><br/>
                                            <label for="gform_schedule_message" style="display:block;">
                                                <?php 
        _e("Form Expired Message", "gravityforms");
        ?>
                                            </label>
                                            <textarea id="gform_schedule_message" class="fieldwidth-3"></textarea>
                                        </div>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 500, $form_id);
        ?>
                                    <li>
                                        <input type="checkbox" id="gform_enable_honeypot" /> <label for="gform_enable_honeypot"><?php 
        _e("Enable anti-spam honeypot", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_honeypot");
        ?>
</label>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 600, $form_id);
        ?>
                                    <li>
                                        <input type="checkbox" id="gform_enable_animation" /> <label for="gform_enable_animation"><?php 
        _e("Enable animation", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_animation");
        ?>
</label>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 700, $form_id);
        ?>
                                    <li>
                                        <input type="checkbox" id="gform_require_login" onclick="ToggleRequireLogin();"/> <label for="gform_require_login"><?php 
        _e("Require user to be logged in", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_require_login");
        ?>
</label>
                                        <br/>
                                        <div id="gform_require_login_container" style="display:none;">
                                            <br/>
                                            <label for="gform_require_login_message" style="display:block;">
                                                <?php 
        _e("Require Login Message", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_require_login_message");
        ?>
                                            </label>
                                            <textarea id="gform_require_login_message" class="fieldwidth-3"></textarea>
                                        </div>
                                    </li>
                                    <?php 
        do_action("gform_advanced_settings", 800, $form_id);
        ?>
                                </ul>
                            </div>
                            <div id="gform_settings_tab_3">
                                <ul class="gforms_form_settings">
                                    <?php 
        do_action("gform_confirmation_settings", 100, $form_id);
        ?>
                                    <li>
                                        <label><?php 
        _e("Confirmation Message", "gravityforms");
        ?>
</label>
                                        <div style="margin:4px 0;">
                                            <input type="radio" id="form_confirmation_show_message" name="form_confirmation" value="message" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_show_message" class="inline">
                                                <?php 
        _e("Text", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_confirmation_message");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_confirmation_show_page" name="form_confirmation" value="page" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_show_page" class="inline">
                                                <?php 
        _e("Page", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_redirect_to_webpage");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="form_confirmation_redirect" name="form_confirmation" value="redirect" onclick="ToggleConfirmation();" />
                                            <label for="form_confirmation_redirect" class="inline">
                                                <?php 
        _e("Redirect", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_redirect_to_url");
        ?>
                                            </label>

                                            <div id="form_confirmation_message_container" style="padding-top:10px;">
                                                <div>
                                                    <?php 
        GFCommon::insert_variables($form["fields"], "form_confirmation_message");
        ?>
                                                </div>
                                                <textarea id="form_confirmation_message" style="width:400px; height:300px;" ></textarea>
                                                <div style="margin-top:5px;">
                                                    <input type="checkbox" id="form_disable_autoformatting" /> <label for="form_disable_autoformatting"><?php 
        _e("Disable Auto-formatting", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_confirmation_autoformat");
        ?>
</label>
                                                </div>
                                            </div>

                                            <div id="form_confirmation_page_container" style="margin-top:5px;">
                                                <div>
                                                    <?php 
        wp_dropdown_pages(array("name" => "form_confirmation_page", "show_option_none" => __("Select a page", "gravityforms")));
        ?>
                                                </div>
                                            </div>

                                            <div id="form_confirmation_redirect_container" style="margin-top:5px;">
                                                <div>
                                                    <input type="text" id="form_confirmation_url" style="width:98%;"/>
                                                </div>
                                                <div style="margin-top:15px;">
                                                    <input type="checkbox" id="form_redirect_use_querystring" onclick="ToggleQueryString()"/> <label for="form_redirect_use_querystring"><?php 
        _e("Pass Field Data Via Query String", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_redirect_querystring");
        ?>
</label>
                                                    <br/>
                                                    <div id="form_redirect_querystring_container" style="display:none;">
                                                        <div style="margin-top:6px;">
                                                            <?php 
        GFCommon::insert_variables($form["fields"], "form_redirect_querystring", true, "", "", 40, null, "url");
        ?>
                                                        </div>
                                                        <textarea name="form_redirect_querystring" id="form_redirect_querystring" style="width:98%; height:100px;"></textarea><br/>
                                                        <div class="instruction"><?php 
        _e("Sample: phone={Phone:1}&email{Email:2}", "gravityforms");
        ?>
</div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </li>
                                    <?php 
        do_action("gform_confirmation_settings", 200, $form_id);
        ?>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <?php 
        $has_pages = GFCommon::has_pages($form);
        ?>
                    <div id="gform_pagination" class="selectable gform_settings_container" style="display:<?php 
        echo $has_pages ? "block" : "none";
        ?>
;">
                        <div class="settings_control_container">
                            <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Last Page", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </div>
                        <img src="<?php 
        echo GFCommon::get_base_url() . "/images/gf_pagebreak_first.png";
        ?>
" alt="<?php 
        __("First Page Options", "gravityforms");
        ?>
" title="<?php 
        __("First Page Options", "gravityforms");
        ?>
" />
                        <div id="pagination_settings" style="display: none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_pagination_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                                <li style="width:100px; padding:0px;"><a href="#gform_pagination_settings_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                            </ul>

                            <div id="gform_pagination_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="pagination_type_container">
                                            <?php 
        _e("Progress Indicator", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_progress_indicator");
        ?>
                                        </label>
                                        <div id="pagination_type_container" class="pagination_container" >
                                            <input type="radio" id="pagination_type_percentage" name="pagination_type" value="percentage" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_percentage" class="inline">
                                                <?php 
        _e("Progress Bar", "gravityforms");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="pagination_type_steps" name="pagination_type" value="steps" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_steps" class="inline">
                                                <?php 
        _e("Steps", "gravityforms");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="pagination_type_none" name="pagination_type" value="none" onclick='InitPaginationOptions();'/>
                                            <label for="pagination_type_none" class="inline">
                                                <?php 
        _e("None", "gravityforms");
        ?>
                                            </label>
                                        </div>
                                    </li>

                                    <li id="percentage_style_setting">

                                        <div class="percentage_style_setting" style="float:left; z-index: 99;">
                                             <label for="percentage_style" style="display:block;">
                                                <?php 
        _e("Style", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_percentage_style");
        ?>
                                            </label>
                                            <select id="percentage_style" onchange="TogglePercentageStyle();">
                                                <option value="blue">  <?php 
        _e("Blue", "gravityforms");
        ?>
  </option>
                                                <option value="gray">  <?php 
        _e("Gray", "gravityforms");
        ?>
  </option>
                                                <option value="green">  <?php 
        _e("Green", "gravityforms");
        ?>
  </option>
                                                <option value="orange">  <?php 
        _e("Orange", "gravityforms");
        ?>
  </option>
                                                <option value="red">  <?php 
        _e("Red", "gravityforms");
        ?>
  </option>
                                                <option value="custom">  <?php 
        _e("Custom", "gravityforms");
        ?>
  </option>
                                            </select>
                                        </div>

                                        <div class="percentage_custom_container" style="float:left; padding-left:20px;">
                                            <label for="percentage_background_color" style="display:block;">
                                                <?php 
        _e("Text Color", "gravityforms");
        ?>
                                            </label>
                                            <?php 
        self::color_picker("percentage_style_custom_color", "");
        ?>
                                        </div>

                                        <div class="percentage_custom_container" style="float:left; padding-left:20px;">
                                            <label for="percentage_background_bgcolor" style="display:block;">
                                                <?php 
        _e("Background Color", "gravityforms");
        ?>
                                            </label>
                                            <?php 
        self::color_picker("percentage_style_custom_bgcolor", "");
        ?>
                                        </div>
                                    </li>
                                    <li id="page_names_setting">
                                        <label for="page_names_container">
                                            <?php 
        _e("Page Names", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_page_names");
        ?>
                                        </label>
                                        <div id="page_names_container" style="margin-top:5px;">
                                            <!-- Populated dynamically from js.php -->
                                        </div>
                                    </li>
                                     <li id="percentage_confirmation_display_setting">
                                        <div class="percentage_confirmation_display_setting">
                                            <input type="checkbox" id="percentage_confirmation_display" onclick="TogglePercentageConfirmationText()">
                                            <label for="percentage_confirmation_display" class="inline">
                                                <?php 
        _e("Display completed progress bar on confirmation", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("form_percentage_confirmation_display");
        ?>
                                            </label>
                                        </div>
                                    </li>
                                    <li id="percentage_confirmation_page_name_setting">
                                        <div class="percentage_confirmation_page_name_setting">
                                            <label for="percentage_confirmation_page_name" style="display:block;">
                                                <?php 
        _e("Completion Text", "gravityforms");
        ?>
 <?php 
        gform_tooltip("percentage_confirmation_page_name");
        ?>
                                            </label>
                                            <input type="text" id="percentage_confirmation_page_name" class="fieldwidth-3"/>
                                        </div>
                                    </li>
                                </ul>
                            </div>

                            <div id="gform_pagination_settings_tab_2">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="first_page_css_class" style="display:block;">
                                            <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_field_css_class");
        ?>
                                        </label>
                                        <input type="text" id="first_page_css_class" size="30"/>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <?php 
        $description_class = rgar($form, "descriptionPlacement") == "above" ? "description_above" : "description_below";
        ?>
                    <ul id="gform_fields" class="<?php 
        echo rgar($form, "labelPlacement") . " " . $description_class;
        ?>
" style="position: relative;">

                        <?php 
        if (is_array($form["fields"])) {
            require_once GFCommon::get_base_path() . "/form_display.php";
            foreach ($form["fields"] as $field) {
                echo GFFormDisplay::get_field($field, "", true);
            }
        }
        ?>
                    </ul>

                    <div id="gform_last_page_settings" class="selectable gform_settings_container" style="display:<?php 
        echo $has_pages ? "block" : "none";
        ?>
;">
                        <div class="settings_control_container">
                            <a href="javascript:void(0);" class="form_edit_icon edit_icon_collapsed" title="<?php 
        _e("Edit Last Page", "gravityforms");
        ?>
"><?php 
        _e("Edit", "gravityforms");
        ?>
</a>
                        </div>
                        <img src="<?php 
        echo GFCommon::get_base_url() . "/images/gf_pagebreak_end.png";
        ?>
" alt="<?php 
        __("Last Page Options", "gravityforms");
        ?>
" title="<?php 
        __("Last Page Options", "gravityforms");
        ?>
" />
                        <div id="last_page_settings" style="display:none;">
                            <ul>
                                <li style="width:100px; padding:0px;"><a href="#gform_last_page_settings_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                            </ul>
                            <div id="gform_last_page_settings_tab_1">
                                <ul class="gforms_form_settings">
                                    <li>
                                        <label for="last_page_button_container">
                                            <?php 
        _e("Previous Button", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_field_last_page_button");
        ?>
                                        </label>
                                        <div class="last_page_button_options" id="last_page_button_container">
                                            <input type="radio" id="last_page_button_text" name="last_page_button" value="text" onclick="TogglePageButton('last_page');"/>
                                            <label for="last_page_button_text" class="inline">
                                                <?php 
        _e("Default", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("previous_button_text");
        ?>
                                            </label>
                                            &nbsp;&nbsp;
                                            <input type="radio" id="last_page_button_image" name="last_page_button" value="image" onclick="TogglePageButton('last_page');"/>
                                            <label for="last_page_button_image" class="inline">
                                                <?php 
        _e("Image", "gravityforms");
        ?>
                                                <?php 
        gform_tooltip("previous_button_image");
        ?>
                                            </label>

                                            <div id="last_page_button_text_container" style="margin-top:5px;">
                                                <label for="last_page_button_text_input" class="inline">
                                                    <?php 
        _e("Text:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="last_page_button_text_input" class="input_size_b" size="40" />
                                            </div>

                                            <div id="last_page_button_image_container" style="margin-top:5px;">
                                                <label for="last_page_button_image_url" class="inline">
                                                    <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                                </label>
                                                <input type="text" id="last_page_button_image_url" size="45"/>
                                            </div>
                                        </div>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>

                    <div>

                        <div id="after_insert_dialog" style="display:none;">
                            <h3><?php 
        _e("You have successfully saved your form!", "gravityforms");
        ?>
</h3>
                            <p><?php 
        _e("What would you like to do next?", "gravityforms");
        ?>
</p>
                            <div class="new-form-option"><a title="<?php 
        _e("Preview this form", "gravityforms");
        ?>
" id="preview_form_link" href="<?php 
        echo site_url();
        ?>
/?gf_page=preview&id={formid}" target="_blank"><?php 
        _e("Preview this Form", "gravityforms");
        ?>
</a></div>

                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_forms")) {
            ?>
                                <div class="new-form-option"><a title="<?php 
            _e("Setup email notifications for this form", "gravityforms");
            ?>
" id="notification_form_link" href="#"><?php 
            _e("Setup Email Notifications for this Form", "gravityforms");
            ?>
</a></div>
                            <?php 
        }
        ?>

                            <div class="new-form-option"><a title="<?php 
        _e("Continue editing this form", "gravityforms");
        ?>
" id="edit_form_link" href="#"><?php 
        _e("Continue Editing this Form", "gravityforms");
        ?>
</a></div>

                            <div class="new-form-option"><a title="<?php 
        _e("I am done. Take me back to form list", "gravityforms");
        ?>
" href="?page=gf_edit_forms"><?php 
        _e("Return to Form List", "gravityforms");
        ?>
</a></div>

                        </div>


                    </div>
                    <div id="field_settings" style="display: none;">
                        <ul>
                            <li style="width:100px; padding:0px;"><a href="#gform_tab_1"><?php 
        _e("Properties", "gravityforms");
        ?>
</a></li>
                            <li style="width:100px; padding:0px; "><a href="#gform_tab_2"><?php 
        _e("Advanced", "gravityforms");
        ?>
</a></li>
                        </ul>
                        <div id="gform_tab_1">
                            <ul>
                            <?php 
        do_action("gform_field_standard_settings", 0, $form_id);
        ?>
                            <li class="label_setting field_setting">
                                <label for="field_label">
                                    <?php 
        _e("Field Label", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_label");
        ?>
                                    <?php 
        gform_tooltip("form_field_label_html");
        ?>
                                </label>
                                <input type="text" id="field_label" class="fieldwidth-3" onkeyup="SetFieldLabel(this.value)" size="35"/>
                            </li>
                            <li class="product_field_setting field_setting">
                                <label for="product_field">
                                    <?php 
        _e("Product Field", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_product");
        ?>
                                </label>
                               <select id="product_field" onchange="SetFieldProperty('productField', jQuery(this).val());">
                                   <!-- will be populated when field is selected (js.php) -->
                               </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 25, $form_id);
        ?>
                            <li class="product_field_type_setting field_setting">
                                <label for="product_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="product_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeProductType(jQuery('#product_field_type').val());});">
                                    <option value="singleproduct"><?php 
        _e("Single Product", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                    <option value="price"><?php 
        _e("User Defined Price", "gravityforms");
        ?>
</option>
                                    <option value="hiddenproduct"><?php 
        _e("Hidden", "gravityforms");
        ?>
</option>
                                    <option value="calculation"><?php 
        _e("Calculation", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 37, $form_id);
        ?>
                            <li class="shipping_field_type_setting field_setting">
                                <label for="shipping_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="shipping_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeShippingType(jQuery('#shipping_field_type').val());});">
                                    <option value="singleshipping"><?php 
        _e("Single Method", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 50, $form_id);
        ?>
                            <li class="base_price_setting field_setting">
                                <label for="field_base_price">
                                    <?php 
        _e("Price", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_base_price");
        ?>
                                </label>
                                <input type="text" id="field_base_price" onchange="SetBasePrice(this.value)"/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 75, $form_id);
        ?>
                            <li class="disable_quantity_setting field_setting">
                                <input type="checkbox" name="field_disable_quantity" id="field_disable_quantity" onclick="SetDisableQuantity(jQuery(this).is(':checked'));"/>
                                <label for="field_disable_quantity" class="inline">
                                    <?php 
        _e("Disable quantity field", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_disable_quantity");
        ?>
                                </label>

                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 100, $form_id);
        ?>
                            <li class="option_field_type_setting field_setting">
                                <label for="option_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="option_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#option_field_type').val());});">
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                             <?php 
        do_action("gform_field_standard_settings", 125, $form_id);
        ?>
                            <li class="donation_field_type_setting field_setting">
                                <label for="donation_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="donation_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeDonationType(jQuery('#donation_field_type').val());});">
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="donation"><?php 
        _e("User Defined Price", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 150, $form_id);
        ?>
                            <li class="quantity_field_type_setting field_setting">
                                <label for="quantity_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="quantity_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#quantity_field_type').val());});">
                                    <option value="number"><?php 
        _e("Number", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="hidden"><?php 
        _e("Hidden", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 200, $form_id);
        ?>
                            <li class="content_setting field_setting">
                                <label for="field_content">
                                    <?php 
        _e("Content", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_content");
        ?>
                                </label>
                                <?php 
        self::insert_variable_prepopulate("field_content", "HtmlContentCallback");
        ?>
<br/>
                                <textarea id="field_content" class="fieldwidth-3 fieldheight-1" onkeyup="SetFieldProperty('content', this.value);"></textarea>

                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 225, $form_id);
        ?>
                            <li class="next_button_setting field_setting">
                                <label for="next_button_container">
                                    <?php 
        _e("Next Button", "gravityforms");
        ?>
                                </label>
                                <div class="next_button_options" id="next_button_container">
                                    <input type="radio" id="next_button_text" name="next_button" value="text" onclick="TogglePageButton('next'); SetPageButton('next');"/>
                                    <label for="next_button_text" class="inline">
                                        <?php 
        _e("Default", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("next_button_text");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="next_button_image" name="next_button" value="image" onclick="TogglePageButton('next'); SetPageButton('next');"/>
                                    <label for="next_button_image" class="inline">
                                        <?php 
        _e("Image", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("next_button_image");
        ?>
                                    </label>

                                    <div id="next_button_text_container" style="margin-top:5px;">
                                    <label for="next_button_text_input" class="inline">
                                            <?php 
        _e("Text:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="next_button_text_input" class="input_size_b" size="40" onkeyup="SetPageButton('next');"/>
                                    </div>

                                    <div id="next_button_image_container" style="margin-top:5px;">
                                        <label for="next_button_image_url" class="inline">
                                            <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="next_button_image_url" size="45" onkeyup="SetPageButton('next');"/>
                                    </div>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 237, $form_id);
        ?>
                            <li class="previous_button_setting field_setting">
                                <label for="previous_button_container">
                                    <?php 
        _e("Previous Button", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_previous_button");
        ?>
                                </label>
                                <div class="previous_button_options" id="previous_button_container">
                                    <input type="radio" id="previous_button_text" name="previous_button" value="text" onclick="TogglePageButton('previous'); SetPageButton('previous');"/>
                                    <label for="previous_button_text" class="inline">
                                        <?php 
        _e("Default", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("previous_button_text");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="previous_button_image" name="previous_button" value="image" onclick="TogglePageButton('previous'); SetPageButton('previous');"/>
                                    <label for="previous_button_image" class="inline">
                                        <?php 
        _e("Image", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("previous_button_image");
        ?>
                                    </label>

                                    <div id="previous_button_text_container" style="margin-top:5px;">
                                        <label for="previous_button_text_input" class="inline">
                                            <?php 
        _e("Text:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="previous_button_text_input" class="input_size_b" size="40" onkeyup="SetPageButton('previous');" />
                                    </div>

                                    <div id="previous_button_image_container" style="margin-top:5px;">
                                        <label for="previous_button_image_url" class="inline">
                                            <?php 
        _e("Image Path:", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="previous_button_image_url" size="45" onkeyup="SetPageButton('previous');"/>
                                    </div>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 250, $form_id);
        ?>
                            <li class="disable_margins_setting field_setting">
                                <input type="checkbox" id="field_margins" onclick="SetFieldProperty('disableMargins', this.checked);"/>
                                <label for="field_disable_margins" class="inline">
                                    <?php 
        _e("Disable default margins", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_disable_margins");
        ?>
                                </label><br/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 300, $form_id);
        ?>
                            <li class="post_custom_field_type_setting field_setting">
                                <label for="post_custom_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="post_custom_field_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#post_custom_field_type').val());});">
                                    <option value="" class="option_header"><?php 
        _e("Standard Fields", "gravityforms");
        ?>
</option>
                                    <option value="text"><?php 
        _e("Single line text", "gravityforms");
        ?>
</option>
                                    <option value="textarea"><?php 
        _e("Paragraph Text", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="multiselect"><?php 
        _e("Multi Select", "gravityforms");
        ?>
</option>
                                    <option value="number"><?php 
        _e("Number", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                    <option value="hidden"><?php 
        _e("Hidden", "gravityforms");
        ?>
</option>

                                    <option value="" class="option_header"><?php 
        _e("Advanced Fields", "gravityforms");
        ?>
</option>
                                    <option value="date"><?php 
        _e("Date", "gravityforms");
        ?>
</option>
                                    <option value="time"><?php 
        _e("Time", "gravityforms");
        ?>
</option>
                                    <option value="phone"><?php 
        _e("Phone", "gravityforms");
        ?>
</option>
                                    <option value="website"><?php 
        _e("Website", "gravityforms");
        ?>
</option>
                                    <option value="email"><?php 
        _e("Email", "gravityforms");
        ?>
</option>
                                    <option value="fileupload"><?php 
        _e("File Upload", "gravityforms");
        ?>
</option>
                                    <option value="list"><?php 
        _e("List", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 350, $form_id);
        ?>
                            <li class="post_tag_type_setting field_setting">
                                <label for="post_tag_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="post_tag_type" onchange="if(jQuery(this).val() == '') return; jQuery('#field_settings').slideUp(function(){StartChangeInputType(jQuery('#post_tag_type').val());});">
                                    <option value="text"><?php 
        _e("Single line text", "gravityforms");
        ?>
</option>
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="multiselect"><?php 
        _e("Multi Select", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 400, $form_id);
        ?>
                            <?php 
        if (class_exists("ReallySimpleCaptcha")) {
            ?>
                                <li class="captcha_type_setting field_setting">
                                    <label for="field_captcha_type">
                                        <?php 
            _e("Type", "gravityforms");
            ?>
                                        <?php 
            gform_tooltip("form_field_captcha_type");
            ?>
                                    </label>
                                    <select id="field_captcha_type" onchange="StartChangeCaptchaType(jQuery(this).val())">
                                        <option value="captcha"><?php 
            _e("reCAPTCHA", "gravityforms");
            ?>
</option>
                                        <option value="simple_captcha"><?php 
            _e("Really Simple CAPTCHA", "gravityforms");
            ?>
</option>
                                        <option value="math"><?php 
            _e("Math Challenge", "gravityforms");
            ?>
</option>
                                    </select>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 450, $form_id);
            ?>
                                <li class="captcha_size_setting field_setting">
                                    <label for="field_captcha_size">
                                        <?php 
            _e("Size", "gravityforms");
            ?>
                                    </label>
                                    <select id="field_captcha_size" onchange="SetCaptchaSize(jQuery(this).val());">
                                        <option value="small"><?php 
            _e("Small", "gravityforms");
            ?>
</option>
                                        <option value="medium"><?php 
            _e("Medium", "gravityforms");
            ?>
</option>
                                        <option value="large"><?php 
            _e("Large", "gravityforms");
            ?>
</option>
                                    </select>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 500, $form_id);
            ?>
                                <li class="captcha_fg_setting field_setting">
                                    <label for="field_captcha_fg">
                                        <?php 
            _e("Font Color", "gravityforms");
            ?>
                                    </label>
                                    <?php 
            self::color_picker("field_captcha_fg", "SetCaptchaFontColor");
            ?>
                                </li>
                                <?php 
            do_action("gform_field_standard_settings", 550, $form_id);
            ?>
                                <li class="captcha_bg_setting field_setting">
                                    <label for="field_captcha_bg">
                                        <?php 
            _e("Background Color", "gravityforms");
            ?>
                                    </label>
                                    <?php 
            self::color_picker("field_captcha_bg", "SetCaptchaBackgroundColor");
            ?>
                                </li>
                                <?php 
        }
        do_action("gform_field_standard_settings", 600, $form_id);
        ?>
                            <li class="captcha_theme_setting field_setting">
                                <label for="field_captcha_theme">
                                    <?php 
        _e("Theme", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_recaptcha_theme");
        ?>
                                </label>
                                <select id="field_captcha_theme" onchange="SetCaptchaTheme(this.value, '<?php 
        echo GFCommon::get_base_url();
        ?>
/images/captcha_' + this.value + '.jpg')">
                                    <option value="red"><?php 
        _e("Red", "gravityforms");
        ?>
</option>
                                    <option value="white"><?php 
        _e("White", "gravityforms");
        ?>
</option>
                                    <option value="blackglass"><?php 
        _e("Black Glass", "gravityforms");
        ?>
</option>
                                    <option value="clean"><?php 
        _e("Clean", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 650, $form_id);
        ?>
                            <li class="post_custom_field_setting field_setting">
                                <label for="field_custom_field_name">
                                    <?php 
        _e("Custom Field Name", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_custom_field_name");
        ?>
                                </label>
                                <div style="width:100px; float:left;">
                                    <input type="radio" name="field_custom" id="field_custom_existing" size="10" onclick="ToggleCustomField();" />
                                    <label for="field_custom_existing" class="inline">
                                        <?php 
        _e("Existing", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div style="width:100px; float:left;">
                                    <input type="radio" name="field_custom" id="field_custom_new" size="10" onclick="ToggleCustomField();" />
                                    <label for="field_custom_new" class="inline">
                                        <?php 
        _e("New", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div class="clear">
                                   <input type="text" id="field_custom_field_name_text" size="35" onkeyup="SetFieldProperty('postCustomFieldName', this.value);"/>
                                   <select id="field_custom_field_name_select" onchange="SetFieldProperty('postCustomFieldName', jQuery(this).val());">
                                        <option value=""><?php 
        _e("Select an existing custom field", "gravityforms");
        ?>
</option>
                                        <?php 
        $custom_field_names = RGFormsModel::get_custom_field_names();
        foreach ($custom_field_names as $name) {
            ?>
                                                <option value="<?php 
            echo $name;
            ?>
"><?php 
            echo $name;
            ?>
</option>
                                                <?php 
        }
        ?>
                                    </select>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 700, $form_id);
        ?>
                            <li class="post_status_setting field_setting">
                                <label for="field_post_status">
                                    <?php 
        _e("Post Status", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_status");
        ?>
                                </label>
                                <select id="field_post_status" name="field_post_status">
                                    <option value="draft"><?php 
        _e("Draft", "gravityforms");
        ?>
</option>
                                    <option value="pending"><?php 
        _e("Pending Review", "gravityforms");
        ?>
</option>
                                    <option value="publish"><?php 
        _e("Published", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 750, $form_id);
        ?>
                            <li class="post_author_setting field_setting">
                                <label for="field_post_author">
                                    <?php 
        _e("Default Post Author", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_author");
        ?>
                                </label>
                                <?php 
        $args = array('name' => 'field_post_author');
        $args = apply_filters("gform_author_dropdown_args_" . rgar($form, "id"), apply_filters("gform_author_dropdown_args", $args));
        wp_dropdown_users($args);
        ?>
                                <div>
                                    <input type="checkbox" id="gfield_current_user_as_author"/>
                                    <label for="gfield_current_user_as_author" class="inline"><?php 
        _e("Use logged in user as author", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_current_user_as_author");
        ?>
</label>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 775, $form_id);
        ?>

                            <?php 
        if (current_theme_supports('post-formats')) {
            ?>

                            <li class="post_format_setting field_setting">
                                <label for="field_post_format">
                                    <?php 
            _e("Post Format", "gravityforms");
            ?>
                                    <?php 
            gform_tooltip("form_field_post_format");
            ?>
                                </label>

                                <?php 
            $post_formats = get_theme_support('post-formats');
            $post_formats_dropdown = '<option value="0">Standard</option>';
            foreach ($post_formats[0] as $post_format) {
                $post_formats_dropdown .= "<option value='{$post_format}'>" . ucfirst($post_format) . "</option>";
            }
            echo '<select name="field_post_format" id="field_post_format">' . $post_formats_dropdown . '</select>';
            ?>

                            </li>

                            <?php 
        }
        // if theme supports post formats
        ?>

                            <?php 
        do_action("gform_field_standard_settings", 800, $form_id);
        ?>

                            <li class="post_category_setting field_setting">
                                <label for="field_post_category">
                                    <?php 
        _e("Post Category", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category");
        ?>
                                </label>
                                <?php 
        wp_dropdown_categories(array('selected' => get_option('default_category'), 'hide_empty' => 0, 'id' => 'field_post_category', 'name' => 'field_post_category', 'orderby' => 'name', 'selected' => 'field_post_category', 'hierarchical' => true));
        ?>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 825, $form_id);
        ?>

                            <li class="post_category_field_type_setting field_setting">
                                <label for="post_category_field_type">
                                    <?php 
        _e("Field Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_type");
        ?>
                                </label>
                                <select id="post_category_field_type" onchange="jQuery('#field_settings').slideUp(function(){StartChangeInputType( jQuery('#post_category_field_type').val() );});">
                                    <option value="select"><?php 
        _e("Drop Down", "gravityforms");
        ?>
</option>
                                    <option value="checkbox"><?php 
        _e("Checkboxes", "gravityforms");
        ?>
</option>
                                    <option value="radio"><?php 
        _e("Radio Buttons", "gravityforms");
        ?>
</option>
                                    <option value="multiselect"><?php 
        _e("Multi Select", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 850, $form_id);
        ?>
                            <li class="post_category_checkbox_setting field_setting">
                                <label for="field_post_category">
                                    <?php 
        _e("Category", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category_selection");
        ?>
                                </label>

                                <input type="radio" id="gfield_category_all" name="gfield_category" value="all" onclick="ToggleCategory();"/>
                                <label for="gfield_category_all" class="inline">
                                    <?php 
        _e("All Categories", "gravityforms");
        ?>

                                </label>
                                &nbsp;&nbsp;
                                <input type="radio" id="gfield_category_select" name="gfield_category" value="select" onclick="ToggleCategory();"/>
                                <label for="form_button_image" class="inline">
                                    <?php 
        _e("Select Categories", "gravityforms");
        ?>
                                </label>

                                <div id="gfield_settings_category_container">
                                    <table cellpadding="0" cellspacing="5">
                                    <?php 
        $categories = get_categories(array('hide_empty' => 0));
        $count = 0;
        $category_rows = '';
        self::_cat_rows($categories, $count, $category_rows);
        echo $category_rows;
        ?>
                                    </table>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 875, $form_id);
        ?>
                            <li class="post_category_initial_item_setting field_setting">
                                <input type="checkbox" id="gfield_post_category_initial_item_enabled" onclick="TogglePostCategoryInitialItem(); SetCategoryInitialItem();"/>
                                <label for="gfield_post_category_initial_item_enabled" class="inline">
                                    <?php 
        _e("Display placeholder", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_category_initial_item");
        ?>
                                </label>
                            </li>
                            <li id="gfield_post_category_initial_item_container">
                                <label for="field_post_category_initial_item">
                                    <?php 
        _e("Placeholder Label", "gravityforms");
        ?>
                                </label>
                                <input type="text" id="field_post_category_initial_item" onchange="SetCategoryInitialItem();" class="fieldwidth-3" size="35"/>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 900, $form_id);
        ?>
                            <li class="post_content_template_setting field_setting">
                                <input type="checkbox" id="gfield_post_content_enabled" onclick="TogglePostContentTemplate();"/>
                                <label for="gfield_post_content_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_content_template_enable");
        ?>
                                </label>

                                <div id="gfield_post_content_container">
                                    <div>
                                        <?php 
        GFCommon::insert_post_content_variables($form["fields"], "field_post_content_template", '', 25);
        ?>
                                    </div>
                                    <textarea id="field_post_content_template" class="fieldwidth-3 fieldheight-1"></textarea>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 950, $form_id);
        ?>
                            <li class="post_title_template_setting field_setting">
                                <input type="checkbox" id="gfield_post_title_enabled" onclick="TogglePostTitleTemplate();" />
                                <label for="gfield_post_title_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_post_title_template_enable");
        ?>
                                </label>

                                <div id="gfield_post_title_container">
                                    <div>
                                        <?php 
        GFCommon::insert_variables($form["fields"], "field_post_title_template", true, '', '', 25, array("post_image", "fileupload"));
        ?>
                                    </div>
                                    <input type="text" id="field_post_title_template" class="fieldwidth-3"/>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 975, $form_id);
        ?>
                            <li class="customfield_content_template_setting field_setting">
                                <input type="checkbox" id="gfield_customfield_content_enabled" onclick="ToggleCustomFieldTemplate(); SetCustomFieldTemplate();"/>
                                <label for="gfield_customfield_content_enabled" class="inline">
                                    <?php 
        _e("Create content template", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_customfield_content_template_enable");
        ?>
                                </label>

                                <div id="gfield_customfield_content_container">
                                    <div>
                                        <?php 
        GFCommon::insert_post_content_variables($form["fields"], "field_customfield_content_template", 'SetCustomFieldTemplate', 25);
        ?>
                                    </div>
                                    <textarea id="field_customfield_content_template" class="fieldwidth-3 fieldheight-1" onkeyup="SetCustomFieldTemplate();"></textarea>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1000, $form_id);
        ?>
                            <li class="post_image_setting field_setting">
                                <label><?php 
        _e("Image Metadata", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_image_meta");
        ?>
</label>
                                <input type="checkbox" id="gfield_display_title" onclick="SetPostImageMeta();" />
                                <label for="gfield_display_title" class="inline">
                                    <?php 
        _e("Title", "gravityforms");
        ?>
                                </label>
                                <br/>
                                <input type="checkbox" id="gfield_display_caption"  onclick="SetPostImageMeta();" />
                                <label for="gfield_display_caption" class="inline">
                                    <?php 
        _e("Caption", "gravityforms");
        ?>
                                </label>
                                <br/>
                                <input type="checkbox" id="gfield_display_description"  onclick="SetPostImageMeta();"/>
                                <label for="gfield_display_description" class="inline">
                                    <?php 
        _e("Description", "gravityforms");
        ?>
                                </label>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1025, $form_id);
        ?>

                            <li class="post_image_featured_image field_setting">
                                <input type="checkbox" id="gfield_featured_image" onclick="SetFeaturedImage();" />
                                <label for="gfield_featured_image" class="inline"><?php 
        _e('Set as Featured Image', 'gravityforms');
        ?>
 <?php 
        gform_tooltip("form_field_featured_image");
        ?>
</label>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1050, $form_id);
        ?>
                            <li class="address_setting field_setting">
                                <?php 
        $addressTypes = GFCommon::get_address_types(rgar($form, "id"));
        ?>
                                <label for="field_address_type">
                                    <?php 
        _e("Address Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_address_type");
        ?>
                                </label>
                                <select id="field_address_type" onchange="SetAddressType();">
                                    <?php 
        foreach ($addressTypes as $key => $addressType) {
            ?>
                                        <option value="<?php 
            echo $key;
            ?>
"><?php 
            echo $addressType["label"];
            ?>
</option>
                                        <?php 
        }
        ?>
                                </select>

                                <?php 
        foreach ($addressTypes as $key => $addressType) {
            $state_label = isset($addressType["state_label"]) ? $addressType["state_label"] : __("State", "gravityforms");
            ?>
                                    <div id="address_type_container_<?php 
            echo $key;
            ?>
" class="gfield_sub_setting gfield_address_type_container">
                                        <input type="hidden" id="field_address_country_<?php 
            echo $key;
            ?>
" value="<?php 
            echo isset($addressType["country"]) ? $addressType["country"] : "";
            ?>
" />
                                        <input type="hidden" id="field_address_zip_label_<?php 
            echo $key;
            ?>
" value="<?php 
            echo isset($addressType["zip_label"]) ? $addressType["zip_label"] : __("Postal Code", "gravityforms");
            ?>
" />
                                        <input type="hidden" id="field_address_state_label_<?php 
            echo $key;
            ?>
" value="<?php 
            echo $state_label;
            ?>
" />
                                        <input type="hidden" id="field_address_has_states_<?php 
            echo $key;
            ?>
" value="<?php 
            echo is_array(rgget("states", $addressType)) ? "1" : "";
            ?>
" />

                                        <?php 
            if (isset($addressType["states"]) && is_array($addressType["states"])) {
                ?>
                                            <label for="field_address_default_state_<?php 
                echo $key;
                ?>
">
                                                <?php 
                echo sprintf(__("Default %s", "gravityforms"), $state_label);
                ?>
                                                <?php 
                gform_tooltip("form_field_address_default_state_{$key}");
                ?>
                                            </label>

                                            <select id="field_address_default_state_<?php 
                echo $key;
                ?>
" class="field_address_default_state" onchange="SetAddressProperties();">
                                                <?php 
                echo GFCommon::get_state_dropdown($addressType["states"]);
                ?>
                                            </select>
                                            <?php 
            }
            ?>

                                        <?php 
            if (!isset($addressType["country"])) {
                ?>
                                             <label for="field_address_default_country_<?php 
                echo $key;
                ?>
">
                                                <?php 
                _e("Default Country", "gravityforms");
                ?>
                                                <?php 
                gform_tooltip("form_field_address_default_country");
                ?>
                                            </label>
                                            <select id="field_address_default_country_<?php 
                echo $key;
                ?>
" class="field_address_default_country" onchange="SetAddressProperties();">
                                                <?php 
                echo GFCommon::get_country_dropdown();
                ?>
                                            </select>

                                            <div class="gfield_sub_setting">
                                                <input type="checkbox" id="field_address_hide_country_<?php 
                echo $key;
                ?>
" onclick="SetAddressProperties();"/>
                                                <label for="field_address_hide_country" class="inline">
                                                    <?php 
                _e("Hide Country Field", "gravityforms");
                ?>
                                                    <?php 
                gform_tooltip("form_field_address_hide_country");
                ?>
                                                </label>
                                            </div>
                                            <?php 
            }
            ?>

                                        <div class="gfield_sub_setting">
                                            <input type="checkbox" id="field_address_hide_state_<?php 
            echo $key;
            ?>
" onclick="SetAddressProperties();"/>
                                            <label for="field_address_hide_state_<?php 
            echo $key;
            ?>
" class="inline">
                                                <?php 
            echo sprintf(__("Hide %s Field", "gravityforms"), $addressType["state_label"]);
            ?>
                                                <?php 
            gform_tooltip("form_field_address_hide_state_{$key}");
            ?>
                                            </label>
                                        </div>
                                    </div>
                                    <?php 
        }
        ?>

                                <div class="gfield_sub_setting">
                                    <input type="checkbox" id="field_address_hide_address2" onclick="SetAddressProperties();"/>
                                    <label for="field_address_hide_address2" class="inline">
                                        <?php 
        _e("Hide Address Line 2 Field", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_address_hide_address2");
        ?>
                                    </label>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1100, $form_id);
        ?>
                            <li class="name_format_setting field_setting">
                                <label for="field_name_format">
                                    <?php 
        _e("Name Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_name_format");
        ?>
                                </label>
                                <select id="field_name_format" onchange="StartChangeNameFormat(jQuery(this).val());">
                                    <option value="normal"><?php 
        _e("Normal", "gravityforms");
        ?>
</option>
                                    <option value="extended"><?php 
        _e("Extended", "gravityforms");
        ?>
</option>
                                    <option value="simple"><?php 
        _e("Simple", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1150, $form_id);
        ?>
                            <li class="date_input_type_setting field_setting">
                                <label for="field_date_input_type">
                                    <?php 
        _e("Date Input Type", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_date_input_type");
        ?>
                                </label>
                                <select id="field_date_input_type" onchange="SetDateInputType(jQuery(this).val());">
                                    <option value="datefield"><?php 
        _e("Date Field", "gravityforms");
        ?>
</option>
                                    <option value="datepicker"><?php 
        _e("Date Picker", "gravityforms");
        ?>
</option>
                                    <option value="datedropdown"><?php 
        _e("Date Drop Down", "gravityforms");
        ?>
</option>
                                </select>
                                <div id="date_picker_container">

                                    <input type="radio" id="gsetting_icon_none" name="gsetting_icon" value="none" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_none" class="inline">
                                        <?php 
        _e("No Icon", "gravityforms");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="gsetting_icon_calendar" name="gsetting_icon" value="calendar" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_calendar" class="inline">
                                        <?php 
        _e("Calendar Icon", "gravityforms");
        ?>
                                    </label>
                                    &nbsp;&nbsp;
                                    <input type="radio" id="gsetting_icon_custom" name="gsetting_icon" value="custom" onclick="SetCalendarIconType(this.value);"/>
                                    <label for="gsetting_icon_custom" class="inline">
                                        <?php 
        _e("Custom Icon", "gravityforms");
        ?>
                                    </label>

                                    <div id="gfield_icon_url_container">
                                        <label for="gfield_calendar_icon_url" class="inline">
                                            <?php 
        _e("Image Path: ", "gravityforms");
        ?>
                                        </label>
                                        <input type="text" id="gfield_calendar_icon_url" size="45" onkeyup="SetFieldProperty('calendarIconUrl', this.value);"/>
                                        <div class="instruction"><?php 
        _e("Preview this form to see your custom icon.", "gravityforms");
        ?>
</div>
                                    </div>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1200, $form_id);
        ?>
                            <li class="date_format_setting field_setting">
                                <label for="field_date_format">
                                    <?php 
        _e("Date Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_date_format");
        ?>
                                </label>
                                <select id="field_date_format" onchange="SetDateFormat(jQuery(this).val());">
                                    <option value="mdy">mm/dd/yyyy</option>
                                    <option value="dmy">dd/mm/yyyy</option>
                                    <option value="dmy_dash">dd-mm-yyyy</option>
                                    <option value="dmy_dot">dd.mm.yyyy</option>
                                    <option value="ymd_slash">yyyy/mm/dd</option>
                                    <option value="ymd_dash">yyyy-mm-dd</option>
                                    <option value="ymd_dot">yyyy.mm.dd</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1250, $form_id);
        ?>
                            <li class="file_extensions_setting field_setting">
                                <label for="field_file_extension">
                                    <?php 
        _e("Allowed file extensions", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_fileupload_allowed_extensions");
        ?>
                                </label>
                               <input type="text" id="field_file_extension" size="40" onkeyup="SetFieldProperty('allowedExtensions', this.value);"/>
                               <div><small><?php 
        _e("Separated with commas (i.e. jpg, gif, png, pdf)", "gravityforms");
        ?>
</small></div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1275, $form_id);
        ?>
                            <li class="columns_setting field_setting">

                                <input type="checkbox" id="field_columns_enabled" onclick="SetFieldProperty('enableColumns', this.checked); ToggleColumns();"/>
                                <label for="field_columns_enabled" class="inline"><?php 
        _e("Enable multiple columns", "gravityforms");
        gform_tooltip("form_field_columns");
        ?>
</label>
                                <br />
                                <div id="gfield_settings_columns_container">
                                    <ul id="field_columns"></ul>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1287, $form_id);
        ?>
                            <li class="maxrows_setting field_setting">
                                <label for="field_maxrows">
                                    <?php 
        _e("Maximum Rows", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_maxrows");
        ?>
                                </label>
                                <input type="text" id="field_maxrows" onkeyup="SetFieldProperty('maxRows', this.value);"/></input>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1300, $form_id);
        ?>

                            <li class="time_format_setting field_setting">
                                <label for="field_time_format">
                                    <?php 
        _e("Time Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_time_format");
        ?>
                                </label>
                                <select id="field_time_format" onchange="SetTimeFormat(this.value);">
                                    <option value="12"><?php 
        _e("12 hour", "gravityforms");
        ?>
</option>
                                    <option value="24"><?php 
        _e("24 hour", "gravityforms");
        ?>
</option>
                                </select>

                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1325, $form_id);
        ?>

                            <li class="phone_format_setting field_setting">
                                <label for="field_phone_format">
                                    <?php 
        _e("Phone Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_phone_format");
        ?>
                                </label>
                                <select id="field_phone_format" onchange="SetFieldPhoneFormat(jQuery(this).val());">
                                    <option value="standard">(###)### - ####</option>
                                    <option value="international"><?php 
        _e("International", "gravityforms");
        ?>
</option>
                                </select>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1350, $form_id);
        ?>
                            <li class="choices_setting field_setting">
                                <div style="float:right;">
                                    <input type="checkbox" id="field_choice_values_enabled" onclick="SetFieldProperty('enableChoiceValue', this.checked); ToggleChoiceValue(); SetFieldChoices();"/>
                                    <label for="field_choice_values_enabled" class="inline gfield_value_label"><?php 
        _e("show values", "gravityforms");
        ?>
</label>
                                </div>
                                <?php 
        $field_title = __("Choices", "gravityforms");
        echo apply_filters("gform_choices_setting_title", $field_title);
        ?>
 <?php 
        gform_tooltip("form_field_choices");
        ?>
<br />

                                <div id="gfield_settings_choices_container">
                                    <label class="gfield_choice_header_label"><?php 
        _e("Label", "gravityforms");
        ?>
</label><label class="gfield_choice_header_value"><?php 
        _e("Value", "gravityforms");
        ?>
</label><label class="gfield_choice_header_price"><?php 
        _e("Price", "gravityforms");
        ?>
</label>
                                    <ul id="field_choices"></ul>
                                </div>

                                <?php 
        $window_title = __("Bulk Add / Predefined Choices", "gravityforms");
        ?>
                                <input type='button' value='<?php 
        echo esc_attr($window_title);
        ?>
' onclick="tb_show('<?php 
        echo esc_js($window_title);
        ?>
', '#TB_inline?height=500&amp;width=600&amp;inlineId=gfield_bulk_add', '');" class="button"/>

                                <div id="gfield_bulk_add" style="display:none;">
                                    <div>
                                        <?php 
        $predefined_choices = array(__("Countries", "gravityforms") => GFCommon::get_countries(), __("U.S. States", "gravityforms") => GFCommon::get_us_states(), __("Canadian Province/Territory", "gravityforms") => GFCommon::get_canadian_provinces(), __("Continents", "gravityforms") => array(__("Africa", "gravityforms"), __("Antarctica", "gravityforms"), __("Asia", "gravityforms"), __("Australia", "gravityforms"), __("Europe", "gravityforms"), __("North America", "gravityforms"), __("South America", "gravityforms")), __("Gender", "gravityforms") => array(__("Male", "gravityforms"), __("Female", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Age", "gravityforms") => array(__("Under 18", "gravityforms"), __("18-24", "gravityforms"), __("25-34", "gravityforms"), __("35-44", "gravityforms"), __("45-54", "gravityforms"), __("55-64", "gravityforms"), __("65 or Above", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Marital Status", "gravityforms") => array(__("Single", "gravityforms"), __("Married", "gravityforms"), __("Divorced", "gravityforms"), __("Widowed", "gravityforms")), __("Employment", "gravityforms") => array(__("Employed Full-Time", "gravityforms"), __("Employed Part-Time", "gravityforms"), __("Self-employed", "gravityforms"), __("Not employed", "gravityforms"), __(" but looking for work", "gravityforms"), __("Not employed and not looking for work", "gravityforms"), __("Homemaker", "gravityforms"), __("Retired", "gravityforms"), __("Student", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Job Type", "gravityforms") => array(__("Full-Time", "gravityforms"), __("Part-Time", "gravityforms"), __("Per Diem", "gravityforms"), __("Employee", "gravityforms"), __("Temporary", "gravityforms"), __("Contract", "gravityforms"), __("Intern", "gravityforms"), __("Seasonal", "gravityforms")), __("Industry", "gravityforms") => array(__("Accounting/Finance", "gravityforms"), __("Advertising/Public Relations", "gravityforms"), __("Aerospace/Aviation", "gravityforms"), __("Arts/Entertainment/Publishing", "gravityforms"), __("Automotive", "gravityforms"), __("Banking/Mortgage", "gravityforms"), __("Business Development", "gravityforms"), __("Business Opportunity", "gravityforms"), __("Clerical/Administrative", "gravityforms"), __("Construction/Facilities", "gravityforms"), __("Consumer Goods", "gravityforms"), __("Customer Service", "gravityforms"), __("Education/Training", "gravityforms"), __("Energy/Utilities", "gravityforms"), __("Engineering", "gravityforms"), __("Government/Military", "gravityforms"), __("Green", "gravityforms"), __("Healthcare", "gravityforms"), __("Hospitality/Travel", "gravityforms"), __("Human Resources", "gravityforms"), __("Installation/Maintenance", "gravityforms"), __("Insurance", "gravityforms"), __("Internet", "gravityforms"), __("Job Search Aids", "gravityforms"), __("Law Enforcement/Security", "gravityforms"), __("Legal", "gravityforms"), __("Management/Executive", "gravityforms"), __("Manufacturing/Operations", "gravityforms"), __("Marketing", "gravityforms"), __("Non-Profit/Volunteer", "gravityforms"), __("Pharmaceutical/Biotech", "gravityforms"), __("Professional Services", "gravityforms"), __("QA/Quality Control", "gravityforms"), __("Real Estate", "gravityforms"), __("Restaurant/Food Service", "gravityforms"), __("Retail", "gravityforms"), __("Sales", "gravityforms"), __("Science/Research", "gravityforms"), __("Skilled Labor", "gravityforms"), __("Technology", "gravityforms"), __("Telecommunications", "gravityforms"), __("Transportation/Logistics", "gravityforms"), __("Other", "gravityforms")), __("Income", "gravityforms") => array(__("Under \$20,000", "gravityforms"), __("\$20,000 - \$30,000", "gravityforms"), __("\$30,000 - \$40,000", "gravityforms"), __("\$40,000 - \$50,000", "gravityforms"), __("\$50,000 - \$75,000", "gravityforms"), __("\$75,000 - \$100,000", "gravityforms"), __("\$100,000 - \$150,000", "gravityforms"), __("\$150,000 or more", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Education", "gravityforms") => array(__("High School", "gravityforms"), __("Associate Degree", "gravityforms"), __("Bachelor's Degree", "gravityforms"), __("Graduate of Professional Degree", "gravityforms"), __("Some College", "gravityforms"), __("Other", "gravityforms"), __("Prefer Not to Answer", "gravityforms")), __("Days of the Week", "gravityforms") => array(__("Sunday", "gravityforms"), __("Monday", "gravityforms"), __("Tuesday", "gravityforms"), __("Wednesday", "gravityforms"), __("Thursday", "gravityforms"), __("Friday", "gravityforms"), __("Saturday", "gravityforms")), __("Months of the Year", "gravityforms") => array(__("January", "gravityforms"), __("February", "gravityforms"), __("March", "gravityforms"), __("April", "gravityforms"), __("May", "gravityforms"), __("June", "gravityforms"), __("July", "gravityforms"), __("August", "gravityforms"), __("September", "gravityforms"), __("October", "gravityforms"), __("November", "gravityforms"), __("December", "gravityforms")), __("How Often", "gravityforms") => array(__("Everyday", "gravityforms"), __("Once a week", "gravityforms"), __("2 to 3 times a week", "gravityforms"), __("Once a month", "gravityforms"), __(" 2 to 3 times a month", "gravityforms"), __("Less than once a month", "gravityforms")), __("How Long", "gravityforms") => array(__("Less than a month", "gravityforms"), __("1-6 months", "gravityforms"), __("1-3 years", "gravityforms"), __("Over 3 Years", "gravityforms"), __("Never used", "gravityforms")), __("Satisfaction", "gravityforms") => array(__("Very Satisfied", "gravityforms"), __("Satisfied", "gravityforms"), __("Neutral", "gravityforms"), __("Unsatisfied", "gravityforms"), __("Very Unsatisfied", "gravityforms")), __("Importance", "gravityforms") => array(__("Very Important", "gravityforms"), __("Important", "gravityforms"), __("Somewhat Important", "gravityforms"), __("Not Important", "gravityforms")), __("Agreement", "gravityforms") => array(__("Strongly Agree", "gravityforms"), __("Agree", "gravityforms"), __("Disagree", "gravityforms"), __("Strongly Disagree", "gravityforms")), __("Comparison", "gravityforms") => array(__("Much Better", "gravityforms"), __("Somewhat Better", "gravityforms"), __("About the Same", "gravityforms"), __("Somewhat Worse", "gravityforms"), __("Much Worse", "gravityforms")), __("Would You", "gravityforms") => array(__("Definitely", "gravityforms"), __("Probably", "gravityforms"), __("Not Sure", "gravityforms"), __("Probably Not", "gravityforms"), __("Definitely Not", "gravityforms")), __("Size", "gravityforms") => array(__("Extra Small", "gravityforms"), __("Small", "gravityforms"), __("Medium", "gravityforms"), __("Large", "gravityforms"), __("Extra Large", "gravityforms")));
        $predefined_choices = apply_filters("gform_predefined_choices_" . rgar($form, "id"), apply_filters("gform_predefined_choices", $predefined_choices));
        $custom_choices = RGFormsModel::get_custom_choices();
        ?>

                                        <div class="panel-instructions"><?php 
        _e("Select a category and customize the predefined choices or paste your own list to bulk add choices.", "gravityforms");
        ?>
</div>

                                        <div class="bulk-left-panel">
                                            <ul id="bulk_items">
                                            <?php 
        foreach (array_keys($predefined_choices) as $name) {
            $key = str_replace("'", "\\'", $name);
            ?>
                                                <li><a href="#" onclick="SelectPredefinedChoice('<?php 
            echo $key;
            ?>
');" class="bulk-choice"><?php 
            echo $name;
            ?>
</a>
                                            <?php 
        }
        ?>
                                            </ul>
                                        </div>
                                        <div class="bulk-arrow-mid"></div>
                                        <textarea id="gfield_bulk_add_input"></textarea>
                                        <br style="clear:both;"/>
                                        <div class="panel-buttons" style="">
                                            <input type="button" onclick="InsertBulkChoices(jQuery('#gfield_bulk_add_input').val().split('\n')); tb_remove();" class="button-primary" value="<?php 
        _e("Insert Choices", "gravityforms");
        ?>
" />&nbsp;
                                            <input type="button" onclick="tb_remove();" class="button" value="Cancel" />
                                        </div>

                                        <div class="panel-custom" style="">
                                            <a href="#" onclick="LoadCustomChoicesPanel(true, 'slow');" id="bulk_save_as"><?php 
        _e("Save as new custom choice", "gravityforms");
        ?>
</a>
                                            <div id="bulk_custom_edit" style="display:none;">
                                                <?php 
        _e("Save as", "gravityforms");
        ?>
 <input type="text" id="custom_choice_name" value="<?php 
        _e("Enter name", "gravityforms");
        ?>
" onfocus="if(this.value == '<?php 
        _e("enter name", "gravityforms");
        ?>
') this.value='';">&nbsp;&nbsp;
                                                <a href="#" onclick="SaveCustomChoices();" class="button" id="bulk_save_button"><?php 
        _e("Save", "gravityforms");
        ?>
</a>&nbsp;
                                                <a href="#" onclick="CloseCustomChoicesPanel('slow');" id="bulk_cancel_link"><?php 
        _e("Cancel", "gravityforms");
        ?>
</a>
                                                <a href="#" onclick="DeleteCustomChoice();" id="bulk_delete_link"><?php 
        _e("Delete", "gravityforms");
        ?>
</a>
                                            </div>
                                            <div id="bulk_custom_message" class="alert_yellow" style="display:none; margin-top:8px; padding: 8px;">
                                                <!--Message will be added via javascript-->
                                            </div>
                                        </div>

                                        <script type="text/javascript">
                                            var gform_selected_custom_choice = "";
                                            var gform_custom_choices = <?php 
        echo GFCommon::json_encode($custom_choices);
        ?>
;
                                            var gform_predefined_choices = <?php 
        echo GFCommon::json_encode($predefined_choices);
        ?>
;
                                        </script>

                                    </div>
                                </div>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1362, $form_id);
        ?>

                            <li class="other_choice_setting field_setting">

                                <input type="checkbox" id="field_other_choice" onclick="var value = jQuery(this).is(':checked'); SetFieldProperty('enableOtherChoice', value); UpdateFieldChoices(GetInputType(field));" />
                                <label for="field_other_choice" class="inline">
                                    <?php 
        _e('Enable "other" choice', "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_other_choice");
        ?>
                                </label>

                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1368, $form_id);
        ?>

                            <li class="email_confirm_setting field_setting">
                                <input type="checkbox" id="gfield_email_confirm_enabled" onclick="SetEmailConfirmation(this.checked);"/>
                                <label for="gfield_email_confirm_enabled" class="inline">
                                    <?php 
        _e("Enable Email Confirmation", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_email_confirm_enable");
        ?>
                                </label>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1375, $form_id);
        ?>
                            <li class="password_strength_setting field_setting">
                                <input type="checkbox" id="gfield_password_strength_enabled" onclick="TogglePasswordStrength(); SetPasswordStrength(this.checked);"/>
                                <label for="gfield_password_strength_enabled" class="inline">
                                    <?php 
        _e("Enable Password Strength", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_password_strength_enable");
        ?>
                                </label>
                            </li>

                             <?php 
        do_action("gform_field_standard_settings", 1387, $form_id);
        ?>
                            <li class="enable_enhanced_ui_setting field_setting">
                                <input type="checkbox" id="gfield_enable_enhanced_ui" onclick="SetFieldProperty('enableEnhancedUI', jQuery(this).is(':checked') ? 1 : 0);"/>
                                <label for="gfield_enable_enhanced_ui" class="inline">
                                    <?php 
        _e("Enable enhanced user interface", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_enable_enhanced_ui");
        ?>
                                </label>
                            </li>

                            <li id="gfield_min_strength_container">
                                <label for="gfield_min_strength">
                                    <?php 
        _e("Minimum Strength", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_password_strength_enable");
        ?>
                                </label>
                                <select id="gfield_min_strength" onchange="SetFieldProperty('minPasswordStrength', jQuery(this).val());">
                                    <option value=""><?php 
        _e("None", "gravityforms");
        ?>
</option>
                                    <option value="short"><?php 
        _e("Short", "gravityforms");
        ?>
</option>
                                    <option value="bad"><?php 
        _e("Bad", "gravityforms");
        ?>
</option>
                                    <option value="good"><?php 
        _e("Good", "gravityforms");
        ?>
</option>
                                    <option value="strong"><?php 
        _e("Strong", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1400, $form_id);
        ?>

                            <li class="number_format_setting field_setting">
                                <label for="field_number_format">
                                    <?php 
        _e("Number Format", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_number_format");
        ?>
                                </label>
                                <select id="field_number_format" onchange="SetFieldProperty('numberFormat', this.value);">
                                    <option value="decimal_dot">9,999.99</option>
                                    <option value="decimal_comma">9.999,99</option>
                                </select>

                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1425, $form_id);
        ?>

                            <li class="description_setting field_setting">
                                <label for="field_description">
                                    <?php 
        _e("Description", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_description");
        ?>
                                </label>
                                <textarea id="field_description" class="fieldwidth-3 fieldheight-2" onkeyup="SetFieldDescription(this.value);"></textarea>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1430, $form_id);
        ?>
                            <li class="credit_card_setting field_setting">
                                <label>
                                    <?php 
        _e("Supported Credit Cards", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_credit_cards");
        ?>
                                </label>
                                <ul>
                                <?php 
        $cards = GFCommon::get_card_types();
        foreach ($cards as $card) {
            ?>

                                    <li>
                                        <input type="checkbox" id="field_credit_card_<?php 
            echo $card['slug'];
            ?>
" value="<?php 
            echo $card['slug'];
            ?>
" onclick="SetCardType(this, this.value);" />
                                        <label for="field_credit_card_<?php 
            echo $card['slug'];
            ?>
" class="inline"><?php 
            echo $card['name'];
            ?>
</label>
                                    </li>

                                <?php 
        }
        ?>
                                </ul>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1435, $form_id);
        ?>
                            <li class="credit_card_style_setting field_setting">
                                <label for="credit_card_style">
                                    <?php 
        _e("Card Icon Style", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_card_style");
        ?>
                                </label>
                                <select id="credit_card_style" onchange="SetFieldProperty('creditCardStyle', this.value);">
                                    <option value="style1"><?php 
        _e("Standard", "gravityforms");
        ?>
</option>
                                    <option value="style2"><?php 
        _e("3D", "gravityforms");
        ?>
</option>
                                </select>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1440, $form_id);
        ?>

                            <li class="input_mask_setting field_setting">

                                <input type="checkbox" id="field_input_mask" onclick="ToggleInputMask();"/>
                                <label for="field_input_mask" class="inline">
                                    <?php 
        _e("Input Mask", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_mask");
        ?>
                                </label><br />

                                <div id="gform_input_mask">

                                    <br />

                                    <div style="width:100px; float:left;">
                                        <input type="radio" name="field_mask_option" id="field_mask_standard" size="10" onclick="ToggleInputMaskOptions();" />
                                        <label for="field_mask_standard" class="inline">
                                            <?php 
        _e("Standard", "gravityforms");
        ?>
                                        </label>
                                    </div>
                                    <div style="width:100px; float:left;">
                                        <input type="radio" name="field_mask_option" id="field_mask_custom" size="10" onclick="ToggleInputMaskOptions();" />
                                        <label for="field_mask_custom" class="inline">
                                            <?php 
        _e("Custom", "gravityforms");
        ?>
                                        </label>
                                    </div>

                                    <div class="clear"></div>

                                    <input type="text" id="field_mask_text" size="35" onkeyup="SetFieldProperty('inputMaskValue', this.value);" />
                                    <p class="mask_text_description" style="margin:5px 0 0;">
                                        <?php 
        _e("Enter a custom mask", "gravityforms");
        ?>
.
                                        <a href="#" onclick="tb_show('<?php 
        _e("Custom Mask Instructions", "gravityforms");
        ?>
', '#TB_inline?width=350&amp;inlineId=custom_mask_instructions', '');"><?php 
        _e("Help", "gravityhelp");
        ?>
</a>
                                    </p>
                                    <div id="custom_mask_instructions" style="display:none;">
                                        <div class="custom_mask_instructions">

                                            <h4><?php 
        _e("Usage", "gravityforms");
        ?>
</h4>
                                            <ul class="description-list">
                                                <li><?php 
        _e("Use a <em>'9'</em> to indicate a numerical character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use a lower case <em>'a'</em> to indicate an alphabetical character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use an asterick <em>'*'</em> to indicate any alphanumeric character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use a question mark <em>'?'</em> to indicate optional characters. <em>Note:</em> All characters after the question mark will be optional.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("All other characters are literal values and will be displayed automatically.", "gravityforms");
        ?>
</li>
                                            </ul>

                                            <h4><?php 
        _e("Examples", "gravityforms");
        ?>
</h4>
                                            <ul class="examples-list">
                                                <li>
                                                    <h5><?php 
        _e("Date", "gravityforms");
        ?>
</h5>
                                                    <span class="label"><?php 
        _e("Mask", "gravityforms");
        ?>
</span> <code>99/99/9999</code><br />
                                                    <span class="label"><?php 
        _e("Valid Input", "gravityforms");
        ?>
</span> <code>10/21/2011</code>
                                                </li>
                                                <li>
                                                    <h5><?php 
        _e("Social Security Number", "gravityforms");
        ?>
</h5>
                                                    <span class="label"><?php 
        _e("Mask", "gravityforms");
        ?>
</span> <code>999-99-9999</code><br />
                                                    <span class="label"><?php 
        _e("Valid Input", "gravityforms");
        ?>
</span> <code>987-65-4329</code>
                                                </li>
                                                <li>
                                                    <h5><?php 
        _e("Course Code", "gravityforms");
        ?>
</h5>
                                                    <span class="label"><?php 
        _e("Mask", "gravityforms");
        ?>
</span> <code>aaa 999</code><br />
                                                    <span class="label"><?php 
        _e("Valid Input", "gravityforms");
        ?>
</span> <code>BIO 101</code>
                                                </li>
                                                <li>
                                                    <h5><?php 
        _e("License Key", "gravityforms");
        ?>
</h5>
                                                    <span class="label"><?php 
        _e("Mask", "gravityforms");
        ?>
</span> <code>***-***-***</code><br />
                                                    <span class="label"><?php 
        _e("Valid Input", "gravityforms");
        ?>
</span> <code>a9a-f0c-28Q</code>
                                                </li>
                                                <li>
                                                    <h5><?php 
        _e("Zip Code w/ Optional Plus Four", "gravityforms");
        ?>
</h5>
                                                    <span class="label"><?php 
        _e("Mask", "gravityforms");
        ?>
</span> <code>99999?-9999</code><br />
                                                    <span class="label"><?php 
        _e("Valid Input", "gravityforms");
        ?>
</span> <code>23462</code> or <code>23462-4062</code>
                                                </li>
                                            </ul>

                                        </div>
                                    </div>

                                    <select id="field_mask_select" onchange="SetFieldProperty('inputMaskValue', jQuery(this).val());">
                                        <option value=""><?php 
        _e("Select a Mask", "gravityforms");
        ?>
</option>
                                        <?php 
        $masks = RGFormsModel::get_input_masks();
        foreach ($masks as $mask_name => $mask_value) {
            ?>
                                                <option value="<?php 
            echo $mask_value;
            ?>
"><?php 
            echo $mask_name;
            ?>
</option>
                                                <?php 
        }
        ?>
                                    </select>

                                </div>

                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1450, $form_id);
        ?>

                            <li class="maxlen_setting field_setting">
                                <label for="field_maxlen">
                                    <?php 
        _e("Maximum Characters", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_maxlength");
        ?>
                                </label>
                                <input type="text" id="field_maxlen" onkeyup="SetFieldProperty('maxLength', this.value);"/></input>
                            </li>
                            <?php 
        do_action("gform_field_standard_settings", 1500, $form_id);
        ?>

                            <li class="range_setting field_setting">
                                <div style="clear:both;"><?php 
        _e("Range", "gravityforms");
        ?>
                                <?php 
        gform_tooltip("form_field_number_range");
        ?>
                                </div>
                                <div style="width:90px; float:left;">
                                <input type="text" id="field_range_min" size="10" onkeyup="SetFieldProperty('rangeMin', this.value);" />
                                    <label for="field_range_min" >
                                        <?php 
        _e("Min", "gravityforms");
        ?>
                                    </label>
                                </div>
                                <div style="width:90px; float:left;">
                                <input type="text" id="field_range_max" size="10" onkeyup="SetFieldProperty('rangeMax', this.value);" />
                                    <label for="field_range_max">
                                        <?php 
        _e("Max", "gravityforms");
        ?>
                                    </label>

                                </div>
                                <br class="clear" />
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1550, $form_id);
        ?>

                            <li class="calculation_setting field_setting">

                                <div class="field_enable_calculation">
                                    <input type="checkbox" id="field_enable_calculation" onclick="ToggleCalculationOptions(this.checked, field);" />
                                    <label for="field_enable_calculation" class="inline">
                                        <?php 
        _e("Enable Calculation", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_enable_calculation");
        ?>
                                    </label>
                                </div>

                                <div id="calculation_options" style="display:none;margin-top:10px;">

                                    <label for="field_calculation_formula">
                                        <?php 
        _e("Formula", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_calculation_formula");
        ?>
                                    </label>
                                    <div>
                                        <?php 
        GFCommon::insert_calculation_variables($form["fields"], "field_calculation_formula", '', 'FormulaContentCallback', 40);
        ?>
                                        <div class="gf_calculation_buttons">
                                            <?php 
        foreach (array('+', '-', '/', '*', '(', ')', '.') as $button) {
            ?>
                                                <input type="button" value="<?php 
            echo in_array($button, array('.')) ? $button : " {$button} ";
            ?>
" onclick="InsertVariable('field_calculation_formula', 'FormulaContentCallback', this.value);" />
                                            <?php 
        }
        ?>
                                        </div>
                                    </div>
                                    <textarea id="field_calculation_formula" onkeyup="SetFieldProperty('calculationFormula', this.value);" class="fieldwidth-3 fieldheight-2"></textarea>

                                    <div id="forumla_instructions" style="display:none;">
                                        <div class="forumla_instructions">

                                            <h4><?php 
        _e("Usage", "gravityforms");
        ?>
</h4>
                                            <ul class="description-list">
                                                <li><?php 
        _e("Use a <em>'9'</em> to indicate a numerical character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use a lower case <em>'a'</em> to indicate an alphabetical character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use an asterick <em>'*'</em> to indicate any alphanumeric character.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("Use a question mark <em>'?'</em> to indicate optional characters. <em>Note:</em> All characters after the question mark will be optional.", "gravityforms");
        ?>
</li>
                                                <li><?php 
        _e("All other characters are literal values and will be displayed automatically.", "gravityforms");
        ?>
</li>
                                            </ul>

                                        </div>
                                    </div>

                                    <div class="field_calculation_rounding">
                                        <label for="field_calculation_rounding" style="margin-top:10px;">
                                            <?php 
        _e("Rounding", "gravityforms");
        ?>
                                            <?php 
        gform_tooltip("form_field_calculation_rounding");
        ?>
                                        </label>
                                        <select id="field_calculation_rounding" onchange="SetFieldProperty('calculationRounding', this.value);">
                                            <option value="0">0</option>
                                            <option value="1">1</option>
                                            <option value="2">2</option>
                                            <option value="3">3</option>
                                            <option value="4">4</option>
                                            <option value="norounding">Do not round</option>
                                        </select>
                                    </div>

                                </div>

                                <br class="clear" />

                            </li>

                            <?php 
        do_action("gform_field_standard_settings", 1600, $form_id);
        ?>

                            <li class="rules_setting field_setting">
                                <?php 
        _e("Rules", "gravityforms");
        ?>
<br/>
                                <input type="checkbox" id="field_required" onclick="SetFieldRequired(this.checked);"/>
                                <label for="field_required" class="inline">
                                    <?php 
        _e("Required", "gravityforms");
        ?>
                                    <?php 
        gform_tooltip("form_field_required");
        ?>
                                </label><br/>
                                <div class="duplicate_setting field_setting">
                                    <input type="checkbox" id="field_no_duplicates" onclick="SetFieldProperty('noDuplicates', this.checked);"/>
                                    <label for="field_no_duplicates" class="inline">
                                        <?php 
        _e("No Duplicates", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_no_duplicate");
        ?>
                                    </label>
                                </div>
                            </li>

                            <?php 
        do_action("gform_field_standard_settings", -1, $form_id);
        ?>
                        </ul>
                        </div>
                        <div id="gform_tab_2">
                            <ul>
                                <?php 
        do_action("gform_field_advanced_settings", 0, $form_id);
        ?>
                                <li class="admin_label_setting field_setting">
                                    <label for="field_admin_label">
                                        <?php 
        _e("Admin Label", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_admin_label");
        ?>
                                    </label>
                                    <input type="text" id="field_admin_label" size="35" onkeyup="SetFieldProperty('adminLabel', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 50, $form_id);
        ?>
                                <li class="size_setting field_setting">
                                    <label for="field_size">
                                        <?php 
        _e("Field Size", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_size");
        ?>
                                    </label>
                                    <select id="field_size" onchange="SetFieldSize(jQuery(this).val());">
                                        <option value="small"><?php 
        _e("Small", "gravityforms");
        ?>
</option>
                                        <option value="medium"><?php 
        _e("Medium", "gravityforms");
        ?>
</option>
                                        <option value="large"><?php 
        _e("Large", "gravityforms");
        ?>
</option>
                                    </select>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 100, $form_id);
        ?>
                                <li class="default_value_setting field_setting">
                                    <label for="field_default_value">
                                        <?php 
        _e("Default Value", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_default_value");
        ?>
                                    </label>
                                    <?php 
        self::insert_variable_prepopulate("field_default_value", "DefaultValueCallback");
        ?>
<br/>
                                    <input type="text" id="field_default_value" class="fieldwidth-2" onkeyup="SetFieldDefaultValue(this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 150, $form_id);
        ?>
                                <li class="default_value_textarea_setting field_setting">
                                    <label for="field_default_value_textarea">
                                        <?php 
        _e("Default Value", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_default_value");
        ?>
                                    </label>
                                    <textarea id="field_default_value_textarea" onkeyup="SetFieldDefaultValue(this.value);" class="fieldwidth-3"></textarea>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 200, $form_id);
        ?>
                                <li class="error_message_setting field_setting">
                                    <label for="field_error_message">
                                        <?php 
        _e("Validation Message", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_validation_message");
        ?>
                                    </label>
                                    <input type="text" id="field_error_message" class="fieldwidth-2" onkeyup="SetFieldProperty('errorMessage', this.value);"/>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 225, $form_id);
        ?>

                                <li class="credit_card_icon_style_setting field_setting">
                                    <label>
                                        <?php 
        _e("Credit Card Icon Style", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_credit_card_icon_style");
        ?>
                                    </label>
                                    <ul>
                                    <?php 
        $cards = GFCommon::get_card_types();
        foreach ($cards as $card) {
            ?>
                                        <li>
                                            <input type="checkbox" id="field_credit_card_<?php 
            echo $card['slug'];
            ?>
" value="<?php 
            echo $card['slug'];
            ?>
" onclick="SetCardType(this, this.value);" />
                                            <label for="field_credit_card_<?php 
            echo $card['slug'];
            ?>
" class="inline"><?php 
            echo $card['name'];
            ?>
</label>
                                        </li>

                                    <?php 
        }
        ?>
                                    </ul>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 250, $form_id);
        ?>
                                <li class="captcha_language_setting field_setting">
                                    <label for="field_captcha_language">
                                        <?php 
        _e("Language", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_recaptcha_language");
        ?>
                                    </label>
                                    <select id="field_captcha_language" onchange="SetFieldProperty('captchaLanguage', this.value);">
                                        <option value="en"><?php 
        _e("English", "gravityforms");
        ?>
</option>
                                        <option value="nl"><?php 
        _e("Dutch", "gravityforms");
        ?>
</option>
                                        <option value="fr"><?php 
        _e("French", "gravityforms");
        ?>
</option>
                                        <option value="de"><?php 
        _e("German", "gravityforms");
        ?>
</option>
                                        <option value="pt"><?php 
        _e("Portuguese", "gravityforms");
        ?>
</option>
                                        <option value="ru"><?php 
        _e("Russian", "gravityforms");
        ?>
</option>
                                        <option value="es"><?php 
        _e("Spanish", "gravityforms");
        ?>
</option>
                                        <option value="tr"><?php 
        _e("Turkish", "gravityforms");
        ?>
</option>
                                    </select>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 300, $form_id);
        ?>
                                <li class="css_class_setting field_setting">
                                    <label for="field_css_class">
                                        <?php 
        _e("CSS Class Name", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_css_class");
        ?>
                                    </label>
                                    <input type="text" id="field_css_class" size="30" onkeyup="SetFieldProperty('cssClass', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 325, $form_id);
        ?>
                                <li class="add_icon_url_setting field_setting">
                                    <label for="field_add_icon_url">
                                        <?php 
        _e("Add Icon URL", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_add_icon_url");
        ?>
                                    </label>
                                    <input type="text" id="field_add_icon_url" class="fieldwidth-2" onkeyup="SetFieldProperty('addIconUrl', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 337, $form_id);
        ?>
                                <li class="delete_icon_url_setting field_setting">
                                    <label for="field_delete_icon_url">
                                        <?php 
        _e("Delete Icon URL", "gravityforms");
        ?>
                                        <?php 
        gform_tooltip("form_field_delete_icon_url");
        ?>
                                    </label>
                                    <input type="text" id="field_delete_icon_url" class="fieldwidth-2" onkeyup="SetFieldProperty('deleteIconUrl', this.value);"/>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 350, $form_id);
        ?>
                                <li class="password_field_setting field_setting">
                                    <input type="checkbox" id="field_password" onclick="SetPasswordProperty(this.checked);"/> <label for="field_password" class="inline"><?php 
        _e("Enable Password Input", "gravityforms");
        gform_tooltip("form_field_password");
        ?>
</label>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 375, $form_id);
        ?>
                                <li class="force_ssl_field_setting field_setting">
                                    <input type="checkbox" id="field_force_ssl" onclick="SetFieldProperty('forceSSL', this.checked);"/> <label for="field_force_ssl" class="inline"><?php 
        _e("Force SSL", "gravityforms");
        gform_tooltip("form_field_force_ssl");
        ?>
</label>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 400, $form_id);
        ?>
                                <li class="visibility_setting field_setting">
                                    <label><?php 
        _e("Visibility", "gravityforms");
        ?>
 <?php 
        gform_tooltip("form_field_visibility");
        ?>
</label>
                                    <div>
                                        <input type="radio" name="field_visibility" id="field_visibility_everyone" size="10" onclick="SetFieldAdminOnly(!this.checked);" />
                                        <label for="field_visibility_everyone" class="inline">
                                            <?php 
        _e("Everyone", "gravityforms");
        ?>
                                        </label>
                                        &nbsp;&nbsp;
                                        <input type="radio" name="field_visibility" id="field_visibility_admin" size="10" onclick="SetFieldAdminOnly(this.checked);" />
                                        <label for="field_visibility_admin" class="inline">
                                            <?php 
        _e("Admin Only", "gravityforms");
        ?>
                                        </label>
                                    </div>
                                    <br class="clear" />
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 450, $form_id);
        ?>
                                <li class="prepopulate_field_setting field_setting">
                                    <input type="checkbox" id="field_prepopulate" onclick="SetFieldProperty('allowsPrepopulate', this.checked); ToggleInputName()"/> <label for="field_prepopulate" class="inline"><?php 
        _e("Allow field to be populated dynamically", "gravityforms");
        gform_tooltip("form_field_prepopulate");
        ?>
</label>
                                    <br/>
                                    <div id="field_input_name_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>
                                <?php 
        do_action("gform_field_advanced_settings", 500, $form_id);
        ?>
                                <li class="conditional_logic_field_setting field_setting">
                                    <input type="checkbox" id="field_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'field');"/> <label for="field_conditional_logic" class="inline"><?php 
        _e("Enable Conditional Logic", "gravityforms");
        gform_tooltip("form_field_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="field_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 525, $form_id);
        ?>
                                <li class="conditional_logic_page_setting field_setting">
                                    <input type="checkbox" id="page_conditional_logic" onclick="SetFieldProperty('conditionalLogic', this.checked ? new ConditionalLogic() : null); ToggleConditionalLogic(false, 'page');"/> <label for="page_conditional_logic" class="inline"><?php 
        _e("Enable Page Conditional Logic", "gravityforms");
        gform_tooltip("form_page_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="page_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", 550, $form_id);
        ?>
                                <li class="conditional_logic_nextbutton_setting field_setting">
                                    <input type="checkbox" id="next_button_conditional_logic" onclick="SetNextButtonConditionalLogic(this.checked); ToggleConditionalLogic(false, 'next_button');"/>
                                    <label for="next_button_conditional_logic" class="inline"><?php 
        _e("Enable Next Button Conditional Logic", "gravityforms");
        gform_tooltip("form_nextbutton_conditional_logic");
        ?>
</label>
                                    <br/>
                                    <div id="next_button_conditional_logic_container" style="display:none; padding-top:10px;">
                                        <!-- content dynamically created from js.php -->
                                    </div>
                                </li>

                                <?php 
        do_action("gform_field_advanced_settings", -1, $form_id);
        ?>
                            </ul>
                        </div>
                    </div>
                </td>
                <td valign="top" align="right">
                    <div id="add_fields">
                        <div id="floatMenu">

                            <!-- begin add button boxes -->
                            <ul id="sidebarmenu1" class="menu collapsible expandfirst">

                            <?php 
        $standard_fields = array(array("class" => "button", "value" => GFCommon::get_field_type_title("text"), "onclick" => "StartAddField('text');"), array("class" => "button", "value" => GFCommon::get_field_type_title("textarea"), "onclick" => "StartAddField('textarea');"), array("class" => "button", "value" => GFCommon::get_field_type_title("select"), "onclick" => "StartAddField('select');"), array("class" => "button", "value" => GFCommon::get_field_type_title("multiselect"), "onclick" => "StartAddField('multiselect');"), array("class" => "button", "value" => GFCommon::get_field_type_title("number"), "onclick" => "StartAddField('number');"), array("class" => "button", "value" => GFCommon::get_field_type_title("checkbox"), "onclick" => "StartAddField('checkbox');"), array("class" => "button", "value" => GFCommon::get_field_type_title("radio"), "onclick" => "StartAddField('radio');"), array("class" => "button", "value" => GFCommon::get_field_type_title("hidden"), "onclick" => "StartAddField('hidden');"), array("class" => "button", "value" => GFCommon::get_field_type_title("html"), "onclick" => "StartAddField('html');"), array("class" => "button", "value" => GFCommon::get_field_type_title("section"), "onclick" => "StartAddField('section');"), array("class" => "button", "value" => GFCommon::get_field_type_title("page"), "onclick" => "StartAddField('page');"));
        $advanced_fields = array(array("class" => "button", "value" => GFCommon::get_field_type_title("name"), "onclick" => "StartAddField('name');"), array("class" => "button", "value" => GFCommon::get_field_type_title("date"), "onclick" => "StartAddField('date');"), array("class" => "button", "value" => GFCommon::get_field_type_title("time"), "onclick" => "StartAddField('time');"), array("class" => "button", "value" => GFCommon::get_field_type_title("phone"), "onclick" => "StartAddField('phone');"), array("class" => "button", "value" => GFCommon::get_field_type_title("address"), "onclick" => "StartAddField('address');"), array("class" => "button", "value" => GFCommon::get_field_type_title("website"), "onclick" => "StartAddField('website');"), array("class" => "button", "value" => GFCommon::get_field_type_title("email"), "onclick" => "StartAddField('email');"));
        if (apply_filters("gform_enable_password_field", false)) {
            $advanced_fields[] = array("class" => "button", "value" => GFCommon::get_field_type_title("password"), "onclick" => "StartAddField('password');");
        }
        $advanced_fields[] = array("class" => "button", "value" => GFCommon::get_field_type_title("fileupload"), "onclick" => "StartAddField('fileupload');");
        $advanced_fields[] = array("class" => "button", "value" => GFCommon::get_field_type_title("captcha"), "onclick" => "AddCaptchaField();");
        $advanced_fields[] = array("class" => "button", "value" => GFCommon::get_field_type_title("list"), "onclick" => "StartAddField('list');");
        $post_fields = array(array("class" => "button", "value" => GFCommon::get_field_type_title("post_title"), "onclick" => "StartAddField('post_title');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_content"), "onclick" => "StartAddField('post_content');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_excerpt"), "onclick" => "StartAddField('post_excerpt');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_tags"), "onclick" => "StartAddField('post_tags');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_category"), "onclick" => "StartAddField('post_category');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_image"), "onclick" => "StartAddField('post_image');"), array("class" => "button", "value" => GFCommon::get_field_type_title("post_custom_field"), "onclick" => "StartAddField('post_custom_field');"));
        $pricing_fields = array(array("class" => "button", "value" => GFCommon::get_field_type_title("product"), "onclick" => "StartAddField('product');"), array("class" => "button", "value" => GFCommon::get_field_type_title("quantity"), "onclick" => "StartAddField('quantity');"), array("class" => "button", "value" => GFCommon::get_field_type_title("option"), "onclick" => "StartAddField('option');"), array("class" => "button", "value" => GFCommon::get_field_type_title("shipping"), "onclick" => "StartAddField('shipping');"), array("class" => "button", "value" => GFCommon::get_field_type_title("total"), "onclick" => "StartAddField('total');"));
        if (apply_filters("gform_enable_credit_card_field", false)) {
            $pricing_fields[] = array("class" => "button", "value" => GFCommon::get_field_type_title("creditcard"), "onclick" => "StartAddField('creditcard');");
        }
        $field_groups = array(array("name" => "standard_fields", "label" => __("Standard Fields", "gravityforms"), "fields" => $standard_fields, "tooltip_class" => "tooltip_bottomleft"), array("name" => "advanced_fields", "label" => __("Advanced Fields", "gravityforms"), "fields" => $advanced_fields), array("name" => "post_fields", "label" => __("Post Fields", "gravityforms"), "fields" => $post_fields));
        $field_groups[] = array("name" => "pricing_fields", "label" => __("Pricing Fields", "gravityforms"), "fields" => $pricing_fields);
        $field_groups = apply_filters("gform_add_field_buttons", $field_groups);
        foreach ($field_groups as $group) {
            $tooltip_class = empty($group["tooltip_class"]) ? "tooltip_left" : $group["tooltip_class"];
            ?>
                                    <li id="add_<?php 
            echo $group["name"];
            ?>
" class="add_field_button_container">
                                        <div class="button-title-link <?php 
            echo $group["name"] == "standard_fields" ? "gf_button_title_active" : "";
            ?>
"><div class="add-buttons-title"><?php 
            echo $group["label"];
            ?>
 <?php 
            gform_tooltip("form_{$group["name"]}", $tooltip_class);
            ?>
</div></div>
                                        <ul>
                                            <li class="add-buttons">
                                                <ol class="field_type">
                                                    <?php 
            echo self::display_buttons($group["fields"]);
            ?>
                                                </ol>
                                            </li>
                                        </ul>
                                    </li>
                                    <?php 
        }
        ?>
                            </ul>
                            <br style="clear:both;"/>
                            <!--end add button boxes -->

                            <?php 
        if (GFCommon::current_user_can_any("gravityforms_delete_forms")) {
            $delete_link = '<a class="submitdelete" title="' . __("Delete this Form", "gravityforms") . '" onclick="if(confirm(\'' . __("Would you like to delete this form and ALL entries associated with it? \\'Cancel\\' to stop. \\'OK\\' to delete", "gravityforms") . '\')){jQuery(\'#form_delete\')[0].submit();} else{return false;}">' . __("Delete Form", "gravityforms") . '</a>';
            echo apply_filters("gform_form_delete_link", $delete_link);
        }
        $button_text = rgar($form, "id") > 0 ? __("Update Form", "gravityforms") : __("Save Form", "gravityforms");
        $isNew = rgar($form, "id") > 0 ? 0 : 1;
        $save_button = '<input type="button" class="button button-primary button-large update-form" value="' . $button_text . '" onclick="SaveForm(' . $isNew . ');" />';
        $save_button = apply_filters("gform_save_form_button", $save_button);
        echo $save_button;
        ?>

                            <span id="please_wait_container" style="display:none;"><img src="<?php 
        echo GFCommon::get_base_url();
        ?>
/images/loading.gif"></span>

                            <div class="updated_base" id="after_update_dialog" style="display:none;">
                                <strong><?php 
        _e("Form updated successfully.", "gravityforms");
        ?>
                                &nbsp;<a title="<?php 
        _e("Preview this form", "gravityforms");
        ?>
" href="<?php 
        echo site_url();
        ?>
/?gf_page=preview&id=<?php 
        echo absint(rgar($form, "id"));
        ?>
" target="_blank"><?php 
        _e("Preview", "gravityforms");
        ?>
</a></strong>
                            </div>
                            <div class="error_base" id="after_update_error_dialog" style="padding:10px 10px 16px 10px; display:none;">
                                <?php 
        _e("There was an error while saving your form.", "gravityforms");
        ?>
                                <?php 
        printf(__("Please %scontact our support team%s.", "gravityforms"), '<a href="http://www.gravityhelp.com">', '</a>');
        ?>
                            </div>

                            <form method="post" id="gform_update">
                                <?php 
        wp_nonce_field("gforms_update_form_{$form_id}", "gforms_update_form");
        ?>
                                <input type="hidden" id="gform_meta" name="gform_meta" />
                            </form>

                        </div>
                    </div>
                </td>
            </tr>
        </table>
        </div>

        <?php 
        require_once GFCommon::get_base_path() . "/js.php";
    }
Esempio n. 18
0
 public static function create_lead($form)
 {
     global $current_user;
     $total_fields = array();
     $calculation_fields = array();
     $lead = array();
     $lead['id'] = null;
     $lead['post_id'] = null;
     $lead['date_created'] = null;
     $lead['form_id'] = $form['id'];
     $lead['ip'] = self::get_ip();
     $source_url = self::truncate(self::get_current_page_url(), 200);
     $lead['source_url'] = esc_url_raw($source_url);
     $user_agent = strlen($_SERVER['HTTP_USER_AGENT']) > 250 ? substr($_SERVER['HTTP_USER_AGENT'], 0, 250) : $_SERVER['HTTP_USER_AGENT'];
     $lead['user_agent'] = sanitize_text_field($user_agent);
     $lead['created_by'] = $current_user && $current_user->ID ? $current_user->ID : 'NULL';
     /**
      * Allow the currency code to be overridden.
      *
      * @param string $currency The three character ISO currency code to be stored in the entry. Default is value returned by GFCommon::get_currency()
      * @param array $form The form currently being processed.
      *
      */
     $lead['currency'] = gf_apply_filters('gform_currency_pre_save_entry', $form['id'], GFCommon::get_currency(), $form);
     foreach ($form['fields'] as $field) {
         /* @var $field GF_Field */
         // ignore fields that are marked as display only
         if ($field->displayOnly && $field->type != 'password') {
             continue;
         }
         // process total field after all fields have been saved
         if ($field->type == 'total') {
             $total_fields[] = $field;
             continue;
         }
         // process calculation fields after all fields have been saved
         if ($field->has_calculation()) {
             $calculation_fields[] = $field;
             continue;
         }
         // only save fields that are not hidden
         if (!RGFormsModel::is_field_hidden($form, $field, array())) {
             if ($field->type == 'post_category') {
                 $field = GFCommon::add_categories_as_choices($field, '');
             }
             $inputs = $field->get_entry_inputs();
             if (is_array($inputs)) {
                 foreach ($inputs as $input) {
                     $lead[(string) $input['id']] = self::get_prepared_input_value($form, $field, $lead, $input['id']);
                 }
             } else {
                 $lead[$field->id] = self::get_prepared_input_value($form, $field, $lead, $field->id);
             }
         }
     }
     if (!empty($calculation_fields)) {
         foreach ($calculation_fields as $field) {
             /* @var $field GF_Field */
             // only save fields that are not hidden
             if (RGFormsModel::is_field_hidden($form, $field, array())) {
                 continue;
             }
             $inputs = $field->get_entry_inputs();
             if (is_array($inputs)) {
                 foreach ($inputs as $input) {
                     $lead[(string) $input['id']] = self::get_prepared_input_value($form, $field, $lead, $input['id']);
                 }
             } else {
                 $lead[$field->id] = self::get_prepared_input_value($form, $field, $lead, $field->id);
             }
         }
         self::refresh_product_cache($form, $lead);
     }
     // saving total field as the last field of the form.
     if (!empty($total_fields)) {
         foreach ($total_fields as $total_field) {
             $lead[$total_field->id] = self::get_prepared_input_value($form, $total_field, $lead, $total_field->id);
         }
     }
     return $lead;
 }
Esempio n. 19
0
 public function complete_payment(&$entry, $action)
 {
     $this->log_debug(__METHOD__ . '(): Processing request.');
     if (!rgar($action, 'payment_status')) {
         $action['payment_status'] = 'Paid';
     }
     if (!rgar($action, 'transaction_type')) {
         $action['transaction_type'] = 'payment';
     }
     if (!rgar($action, 'payment_date')) {
         $action['payment_date'] = gmdate('y-m-d H:i:s');
     }
     $entry['is_fulfilled'] = '1';
     $entry['transaction_id'] = rgar($action, 'transaction_id');
     $entry['transaction_type'] = '1';
     $entry['payment_status'] = $action['payment_status'];
     $entry['payment_amount'] = rgar($action, 'amount');
     $entry['payment_date'] = $action['payment_date'];
     $entry['payment_method'] = rgar($action, 'payment_method');
     $entry['currency'] = GFCommon::get_currency();
     if (!rgar($action, 'note')) {
         $amount_formatted = GFCommon::to_money($action['amount'], $entry['currency']);
         $action['note'] = sprintf(esc_html__('Payment has been completed. Amount: %s. Transaction Id: %s.', 'gravityforms'), $amount_formatted, $action['transaction_id']);
     }
     GFAPI::update_entry($entry);
     $this->insert_transaction($entry['id'], $action['transaction_type'], $action['transaction_id'], $action['amount']);
     $this->add_note($entry['id'], $action['note'], 'success');
     /**
      * Fires after a payment is completed through a form
      *
      * @param array $entry The Entry object
      * @param array $action The Action Object
      * $action = array(
      *     'type' => 'cancel_subscription',     // See Below
      *     'transaction_id' => '',              // What is the ID of the transaction made?
      *     'subscription_id' => '',             // What is the ID of the Subscription made?
      *     'amount' => '0.00',                  // Amount to charge?
      *     'entry_id' => 1,                     // What entry to check?
      *     'transaction_type' => '',
      *     'payment_status' => '',
      *     'note' => ''
      * );
      *
      * 'type' can be:
      *
      * - complete_payment
      * - refund_payment
      * - fail_payment
      * - add_pending_payment
      * - void_authorization
      * - create_subscription
      * - cancel_subscription
      * - expire_subscription
      * - add_subscription_payment
      * - fail_subscription_payment
      */
     do_action('gform_post_payment_completed', $entry, $action);
     if (has_filter('gform_post_payment_completed')) {
         $this->log_debug(__METHOD__ . '(): Executing functions hooked to gform_post_payment_completed.');
     }
     $this->post_payment_action($entry, $action);
     return true;
 }
Esempio n. 20
0
 public static function get_form_init_scripts($form)
 {
     $script_string = '';
     // temporary solution for output gf_global obj until wp min version raised to 3.3
     if (wp_script_is("gforms_gravityforms")) {
         require_once GFCommon::get_base_path() . '/currency.php';
         $gf_global_script = "if(typeof gf_global == 'undefined') var gf_global = {gf_currency_config: " . json_encode(RGCurrency::get_currency(GFCommon::get_currency())) . " };";
     }
     /* rendering initialization scripts */
     $init_scripts = rgar(self::$init_scripts, $form["id"]);
     if (!empty($init_scripts)) {
         $script_string = "<script type='text/javascript'>" . apply_filters("gform_cdata_open", "") . " ";
         $script_string .= isset($gf_global_script) ? $gf_global_script : '';
         $script_string .= "jQuery(document).bind('gform_post_render', function(event, formId, currentPage){" . "if(formId == {$form['id']}) {";
         foreach ($init_scripts as $init_script) {
             if ($init_script["location"] == self::ON_PAGE_RENDER) {
                 $script_string .= $init_script["script"];
             }
         }
         $script_string .= "} " . "} );" . "jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){";
         foreach ($init_scripts as $init_script) {
             if ($init_script["location"] == self::ON_CONDITIONAL_LOGIC) {
                 $script_string .= $init_script["script"];
             }
         }
         $script_string .= "} );" . apply_filters("gform_cdata_close", "") . "</script>";
     }
     return $script_string;
 }
Esempio n. 21
0
 public static function send_to_paypal($confirmation, $form, $entry, $ajax)
 {
     // ignore requests that are not the current form's submissions
     if (RGForms::post("gform_submit") != $form["id"]) {
         return $confirmation;
     }
     $config = self::get_active_config($form);
     if (!$config) {
         return $confirmation;
     }
     //updating lead's payment_status to Processing
     RGFormsModel::update_lead_property($entry["id"], "payment_status", 'Processing');
     //Getting Url (Production or Sandbox)
     $url = $config["meta"]["mode"] == "production" ? self::$production_url : self::$sandbox_url;
     $invoice_id = apply_filters("gform_paypal_invoice", "", $form, $entry);
     $invoice = empty($invoice_id) ? "" : "&invoice={$invoice_id}";
     //Current Currency
     $currency = GFCommon::get_currency();
     //Customer fields
     $customer_fields = self::customer_query_string($config, $entry);
     //Page style
     $page_style = !empty($config["meta"]["style"]) ? "&page_style=" . urlencode($config["meta"]["style"]) : "";
     //Continue link text
     $continue_text = !empty($config["meta"]["continue_text"]) ? "&cbt=" . urlencode($config["meta"]["continue_text"]) : "&cbt=" . __("Click here to continue", "gravityformspaypal");
     $return_url = "&return=" . urlencode(self::return_url($form["id"], $entry["id"])) . "&rm=2";
     //Cancel URL
     $cancel_url = !empty($config["meta"]["cancel_url"]) ? "&cancel_return=" . urlencode($config["meta"]["cancel_url"]) : "";
     //Don't display note section
     $disable_note = !empty($config["meta"]["disable_note"]) ? "&no_note=1" : "";
     //Don't display shipping section
     $disable_shipping = !empty($config["meta"]["disable_shipping"]) ? "&no_shipping=1" : "";
     //URL that will listen to notifications from PayPal
     $ipn_url = urlencode(get_bloginfo("url") . "/?page=gf_paypal_ipn");
     $business_email = urlencode(trim($config["meta"]["email"]));
     $custom_field = $entry["id"] . "|" . wp_hash($entry["id"]);
     $url .= "?notify_url={$ipn_url}&charset=UTF-8&currency_code={$currency}&business={$business_email}&custom={$custom_field}{$invoice}{$customer_fields}{$page_style}{$continue_text}{$cancel_url}{$disable_note}{$disable_shipping}{$return_url}";
     $query_string = "";
     switch ($config["meta"]["type"]) {
         case "product":
             $query_string = self::get_product_query_string($form, $entry);
             break;
         case "donation":
             $query_string = self::get_donation_query_string($form, $entry);
             break;
         case "subscription":
             $query_string = self::get_subscription_query_string($config, $form, $entry);
             break;
     }
     if (!$query_string) {
         return $confirmation;
     }
     $url .= apply_filters("gform_paypal_query_{$form['id']}", apply_filters("gform_paypal_query", $query_string, $form, $entry), $form, $entry);
     if (headers_sent() || $ajax) {
         $confirmation = "<script>function gformRedirect(){document.location.href='{$url}';}";
         if (!$ajax) {
             $confirmation .= "gformRedirect();";
         }
         $confirmation .= "</script>";
     } else {
         $confirmation = array("redirect" => $url);
     }
     return $confirmation;
 }
Esempio n. 22
0
/**
 * Duplicates the contents of a specified entry id into the specified form
 * Adapted from forms_model.php, RGFormsModel::save_lead($Form, $lead) and
 * gravity -forms-addons.php for the gravity forms addon plugin
 * @param  array $form Form object.
 * @param  array $lead Lead object
 * @return void
 */
function duplicate_entry_data($form_change, $current_entry_id)
{
    global $wpdb;
    $lead_table = GFFormsModel::get_lead_table_name();
    $lead_detail_table = GFFormsModel::get_lead_details_table_name();
    $lead_meta_table = GFFormsModel::get_lead_meta_table_name();
    //pull existing entries information
    $current_lead = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$lead_table}          WHERE      id=%d", $current_entry_id));
    $current_fields = $wpdb->get_results($wpdb->prepare("SELECT wp_rg_lead_detail.field_number, wp_rg_lead_detail.value, wp_rg_lead_detail_long.value as long_detail FROM {$lead_detail_table} left outer join wp_rg_lead_detail_long on  wp_rg_lead_detail_long.lead_detail_id = wp_rg_lead_detail.id WHERE lead_id=%d", $current_entry_id));
    // new lead
    $user_id = $current_user && $current_user->ID ? $current_user->ID : 'NULL';
    $user_agent = GFCommon::truncate_url($_SERVER["HTTP_USER_AGENT"], 250);
    $currency = GFCommon::get_currency();
    $source_url = GFCommon::truncate_url(RGFormsModel::get_current_page_url(), 200);
    $wpdb->query($wpdb->prepare("INSERT INTO {$lead_table}(form_id, ip, source_url, date_created, user_agent, currency, created_by) VALUES(%d, %s, %s, utc_timestamp(), %s, %s, {$user_id})", $form_change, RGFormsModel::get_ip(), $source_url, $user_agent, $currency));
    $lead_id = $wpdb->insert_id;
    echo 'Entry ' . $lead_id . ' created in Form ' . $form_change;
    //add a note to the new entry
    $results = mf_add_note($lead_id, 'Copied Entry ID:' . $current_entry_id . ' into form ' . $form_change . '. New Entry ID =' . $lead_id);
    foreach ($current_fields as $row) {
        $fieldValue = $row->field_number != 303 ? $row->value : 'Proposed';
        $wpdb->query($wpdb->prepare("INSERT INTO {$lead_detail_table}(lead_id, form_id, field_number, value) VALUES(%d, %s, %s, %s)", $lead_id, $form_change, $row->field_number, $fieldValue));
        //if detail long is set, add row for new record
        if ($row->long_detail != 'NULL') {
            $lead_detail_id = $wpdb->insert_id;
            $wpdb->query($wpdb->prepare("INSERT INTO wp_rg_lead_detail_long(lead_detail_id, value) VALUES(%d, %s)", $lead_detail_id, $row->long_detail));
        }
    }
}
Esempio n. 23
0
    public static function gravityforms_settings_page()
    {
        global $wpdb;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        if (isset($_GET['setup'])) {
            //forcing setup
            RGForms::setup(true);
        }
        require_once 'currency.php';
        if (isset($_POST['submit'])) {
            check_admin_referer('gforms_update_settings', 'gforms_update_settings');
            if (!GFCommon::current_user_can_any('gravityforms_edit_settings')) {
                die(esc_html__("You don't have adequate permission to edit settings.", 'gravityforms'));
            }
            RGFormsModel::save_key(sanitize_text_field($_POST['gforms_key']));
            update_option('rg_gforms_disable_css', (bool) rgpost('gforms_disable_css'));
            update_option('rg_gforms_enable_html5', (bool) rgpost('gforms_enable_html5'));
            update_option('gform_enable_noconflict', (bool) rgpost('gform_enable_noconflict'));
            update_option('gform_enable_background_updates', (bool) rgpost('gform_enable_background_updates'));
            update_option('rg_gforms_enable_akismet', self::get_posted_akismet_setting());
            // do not cast to bool, option is enabled by default; need a "1" or a "0"
            update_option('rg_gforms_captcha_public_key', sanitize_text_field(rgpost('gforms_captcha_public_key')));
            update_option('rg_gforms_captcha_private_key', sanitize_text_field(rgpost('gforms_captcha_private_key')));
            if (!rgempty('gforms_currency') && in_array(rgpost('gforms_currency'), array_keys(RGCurrency::get_currencies()))) {
                update_option('rg_gforms_currency', rgpost('gforms_currency'));
            }
            //Updating message because key could have been changed
            GFCommon::cache_remote_message();
            //Re-caching version info
            $version_info = GFCommon::get_version_info(false);
            ?>
			<div class="updated fade" style="padding:6px;">
				<?php 
            esc_html_e('Settings Updated', 'gravityforms');
            ?>
.
			</div>
		<?php 
        }
        if (!isset($version_info)) {
            $version_info = GFCommon::get_version_info();
        }
        self::page_header(__('General Settings', 'gravityforms'), '');
        ?>
		<form method="post">
			<?php 
        wp_nonce_field('gforms_update_settings', 'gforms_update_settings');
        ?>
			<h3><span><i class="fa fa-cogs"></i> <?php 
        esc_html_e('General Settings', 'gravityforms');
        ?>
</span></h3>
			<table class="form-table">
				<tr valign="top">
					<th scope="row">
						<label for="gforms_key"><?php 
        esc_html_e('Support License Key', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_license_key');
        ?>
					</th>
					<td>
						<?php 
        $key = GFCommon::get_key();
        $key_field = '<input type="password" name="gforms_key" id="gforms_key" style="width:350px;" value="' . $key . '" />';
        if (!rgempty('is_error', $version_info)) {
            $key_field .= "&nbsp;<img src='" . GFCommon::get_base_url() . "/images/exclamation.png' class='gf_keystatus_error gf_tooltip' alt='There was an error validating your key' title='<h6>" . esc_attr__('Validation Error', 'gravityforms') . '</h6>' . esc_attr__('There was an error while validating your license key. Gravity Forms will continue to work, but automatic upgrades will not be available. Please contact support to resolve this issue.', 'gravityforms') . "'/>";
        } else {
            if (rgar($version_info, 'is_valid_key')) {
                $key_field .= "&nbsp;<i class='fa fa-check gf_keystatus_valid'></i> <span class='gf_keystatus_valid_text'>" . esc_html__('Valid Key : Your license key has been successfully validated.', 'gravityforms') . '</span>';
            } else {
                if (!empty($key)) {
                    $key_field .= "&nbsp;<i class='fa fa-times gf_keystatus_invalid'></i> <span class='gf_keystatus_invalid_text'>" . esc_html__('Invalid or Expired Key : Please make sure you have entered the correct value and that your key is not expired.', 'gravityforms') . '</span>';
                }
            }
        }
        echo apply_filters('gform_settings_key_field', $key_field);
        ?>
						<br />
						<span class="gf_settings_description"><?php 
        esc_html_e('The license key is used for access to automatic upgrades and support.', 'gravityforms');
        ?>
</span>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row">
						<label for="gforms_disable_css"><?php 
        esc_html_e('Output CSS', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_output_css');
        ?>
					</th>
					<td>
						<input type="radio" name="gforms_disable_css" value="0" id="gforms_css_output_enabled" <?php 
        echo get_option('rg_gforms_disable_css') == 1 ? '' : "checked='checked'";
        ?>
 /> <?php 
        esc_html_e('Yes', 'gravityforms');
        ?>
&nbsp;&nbsp;
						<input type="radio" name="gforms_disable_css" value="1" id="gforms_css_output_disabled" <?php 
        echo get_option('rg_gforms_disable_css') == 1 ? "checked='checked'" : '';
        ?>
 /> <?php 
        esc_html_e('No', 'gravityforms');
        ?>
						<br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Set this to No if you would like to disable the plugin from outputting the form CSS.', 'gravityforms');
        ?>
</span>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row">
						<label for="gforms_enable_html5"><?php 
        esc_html_e('Output HTML5', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_html5');
        ?>
					</th>
					<td>
						<input type="radio" name="gforms_enable_html5" value="1" <?php 
        echo get_option('rg_gforms_enable_html5') == 1 ? "checked='checked'" : '';
        ?>
 id="gforms_enable_html5" /> <?php 
        esc_html_e('Yes', 'gravityforms');
        ?>
&nbsp;&nbsp;
						<input type="radio" name="gforms_enable_html5" value="0" <?php 
        echo get_option('rg_gforms_enable_html5') == 1 ? '' : "checked='checked'";
        ?>
 /> <?php 
        esc_html_e('No', 'gravityforms');
        ?>
						<br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Set this to No if you would like to disable the plugin from outputting HTML5 form fields.', 'gravityforms');
        ?>
</span>
					</td>
				</tr>

				<tr valign="top">
					<th scope="row">
						<label for="gform_enable_noconflict"><?php 
        esc_html_e('No-Conflict Mode', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_noconflict');
        ?>
					</th>
					<td>
						<input type="radio" name="gform_enable_noconflict" value="1" <?php 
        echo get_option('gform_enable_noconflict') == 1 ? "checked='checked'" : '';
        ?>
 id="gform_enable_noconflict" /> <?php 
        esc_html_e('On', 'gravityforms');
        ?>
&nbsp;&nbsp;
						<input type="radio" name="gform_enable_noconflict" value="0" <?php 
        echo get_option('gform_enable_noconflict') == 1 ? '' : "checked='checked'";
        ?>
 id="gform_disable_noconflict" /> <?php 
        esc_html_e('Off', 'gravityforms');
        ?>
						<br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Set this to ON to prevent extraneous scripts and styles from being printed on Gravity Forms admin pages, reducing conflicts with other plugins and themes.', 'gravityforms');
        ?>
</span>
					</td>
				</tr>

				<?php 
        if (GFCommon::has_akismet()) {
            ?>
					<tr valign="top">
						<th scope="row">
							<label for="gforms_enable_akismet"><?php 
            esc_html_e('Akismet Integration', 'gravityforms');
            ?>
</label>  <?php 
            gform_tooltip('settings_akismet');
            ?>
						</th>
						<td>
							<?php 
            $akismet_setting = get_option('rg_gforms_enable_akismet');
            $is_akismet_enabled = $akismet_setting === false || !empty($akismet_setting);
            //Akismet is enabled by default.
            ?>
							<input type="radio" name="gforms_enable_akismet" value="1" <?php 
            checked($is_akismet_enabled, true);
            ?>
 id="gforms_enable_akismet" /> <?php 
            esc_html_e('Yes', 'gravityforms');
            ?>
&nbsp;&nbsp;
							<input type="radio" name="gforms_enable_akismet" value="0" <?php 
            checked($is_akismet_enabled, false);
            ?>
 /> <?php 
            esc_html_e('No', 'gravityforms');
            ?>
							<br />
							<span class="gf_settings_description"><?php 
            esc_html_e('Protect your form entries from spam using Akismet.', 'gravityforms');
            ?>
</span>
						</td>
					</tr>
				<?php 
        }
        ?>

				<tr valign="top">
					<th scope="row">
						<label for="gforms_currency"><?php 
        esc_html_e('Currency', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_currency');
        ?>
					</th>
					<td>
						<?php 
        $disabled = apply_filters('gform_currency_disabled', false) ? "disabled='disabled'" : '';
        ?>

						<select id="gforms_currency" name="gforms_currency" <?php 
        echo $disabled;
        ?>
>
							<option><?php 
        esc_html_e('Select a Currency', 'gravityforms');
        ?>
</option>
							<?php 
        $current_currency = GFCommon::get_currency();
        foreach (RGCurrency::get_currencies() as $code => $currency) {
            ?>
								<option value="<?php 
            echo esc_attr($code);
            ?>
" <?php 
            echo $current_currency == $code ? "selected='selected'" : '';
            ?>
><?php 
            echo esc_html($currency['name']);
            ?>
</option>
							<?php 
        }
        ?>
						</select>
						<?php 
        do_action('gform_currency_setting_message', '');
        ?>
					</td>
				</tr>

				<tr valign="top">
					<th scope="row">
						<label for="gform_enable_background_updates"><?php 
        esc_html_e('Background updates', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_background_updates');
        ?>
					</th>
					<td>
						<input type="radio" name="gform_enable_background_updates" value="1" <?php 
        echo get_option('gform_enable_background_updates') == 1 ? "checked='checked'" : '';
        ?>
 id="gform_enable_background_updates" /> <?php 
        esc_html_e('On', 'gravityforms');
        ?>
&nbsp;&nbsp;
						<input type="radio" name="gform_enable_background_updates" value="0" <?php 
        echo get_option('gform_enable_background_updates') == 1 ? '' : "checked='checked'";
        ?>
 id="gform_disable_background_updates" /> <?php 
        esc_html_e('Off', 'gravityforms');
        ?>
						<br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Set this to ON to allow Gravity Forms to download and install bug fixes and security updates automatically in the background. Requires a valid license key.', 'gravityforms');
        ?>
</span>
					</td>
				</tr>
			</table>

			<div class="hr-divider"></div>

			<h3><span><i class="fa fa-cogs"></i> <?php 
        esc_html_e('reCAPTCHA Settings', 'gravityforms');
        ?>
</span></h3>

			<p style="text-align: left;"><?php 
        esc_html_e('Gravity Forms integrates with reCAPTCHA, a free CAPTCHA service that helps to digitize books while protecting your forms from spam bots. ', 'gravityforms');
        ?>
				<a href="http://www.google.com/recaptcha/" target="_blank"><?php 
        esc_html_e('Read more about reCAPTCHA', 'gravityforms');
        ?>
</a>.
			</p>

			<table class="form-table">

				<tr valign="top">
					<th scope="row">
						<label for="gforms_captcha_public_key"><?php 
        esc_html_e('reCAPTCHA Public Key', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_recaptcha_public');
        ?>
					</th>
					<td>
						<input type="text" name="gforms_captcha_public_key" style="width:350px;" value="<?php 
        echo esc_attr(get_option('rg_gforms_captcha_public_key'));
        ?>
" /><br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Required only if you decide to use the reCAPTCHA field.', 'gravityforms');
        ?>
 <?php 
        printf(esc_html__('%sSign up%s for a free account to get the key.', 'gravityforms'), '<a target="_blank" href="http://www.google.com/recaptcha">', '</a>');
        ?>
</span>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row">
						<label for="gforms_captcha_private_key"><?php 
        esc_html_e('reCAPTCHA Private Key', 'gravityforms');
        ?>
</label>  <?php 
        gform_tooltip('settings_recaptcha_private');
        ?>
					</th>
					<td>
						<input type="text" name="gforms_captcha_private_key" style="width:350px;" value="<?php 
        echo esc_attr(get_option('rg_gforms_captcha_private_key'));
        ?>
" /><br />
						<span class="gf_settings_description"><?php 
        esc_html_e('Required only if you decide to use the reCAPTCHA field.', 'gravityforms');
        ?>
 <?php 
        printf(esc_html__('%sSign up%s for a free account to get the key.', 'gravityforms'), '<a target="_blank" href="http://www.google.com/recaptcha">', '</a>');
        ?>
</span>
					</td>
				</tr>

			</table>

			<?php 
        if (GFCommon::current_user_can_any('gravityforms_edit_settings')) {
            ?>
				<p class="submit" style="text-align: left;">
					<?php 
            $save_button = '<input type="submit" name="submit" value="' . esc_html__('Save Settings', 'gravityforms') . '" class="button-primary gfbutton"/>';
            /**
             * Filters through and allows modification of the Settings save button HTML in a Form
             *
             * @param string $save_button
             */
            echo apply_filters('gform_settings_save_button', $save_button);
            ?>
				</p>
			<?php 
        }
        ?>
		</form>

		<div id='gform_upgrade_license' style="display:none;"></div>
		<script type="text/javascript">
			jQuery(document).ready(function () {
				jQuery.post(ajaxurl, {
						action            : 'gf_upgrade_license',
						gf_upgrade_license: "<?php 
        echo wp_create_nonce('gf_upgrade_license');
        ?>
"},

					function (data) {
						if (data.trim().length > 0)
							jQuery("#gform_upgrade_license").replaceWith(data);
					}
				);
			});
		</script>
		<?php 
        if (!apply_filters('gform_disable_installation_status', false)) {
            ?>
			<div class="hr-divider"></div>

			<h3><span><i class="fa fa-dashboard"></i> <?php 
            esc_html_e('Installation Status', 'gravityforms');
            ?>
<span></h3>
			<table class="form-table">

				<tr valign="top">
					<th scope="row"><label><?php 
            esc_html_e('PHP Version', 'gravityforms');
            ?>
</label></th>
					<td class="installation_item_cell">
						<strong><?php 
            echo phpversion();
            ?>
</strong>
					</td>
					<td>
						<?php 
            if (version_compare(phpversion(), '5.0.0', '>')) {
                ?>
							<i class="fa fa-check gf_valid"></i>
						<?php 
            } else {
                ?>
							<i class="fa fa-times gf_invalid"></i>
							<span class="installation_item_message"><?php 
                esc_html_e('Gravity Forms requires PHP 5 or above.', 'gravityforms');
                ?>
</span>
						<?php 
            }
            ?>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row"><label><?php 
            esc_html_e('MySQL Version', 'gravityforms');
            ?>
</label></th>
					<td class="installation_item_cell">
						<strong><?php 
            echo esc_html($wpdb->db_version());
            ?>
</strong>
					</td>
					<td>
						<?php 
            if (version_compare($wpdb->db_version(), '5.0.0', '>')) {
                ?>
							<i class="fa fa-check gf_valid"></i>
						<?php 
            } else {
                ?>
							<i class="fa fa-times gf_invalid"></i>
							<span class="installation_item_message"><?php 
                esc_html_e('Gravity Forms requires MySQL 5 or above.', 'gravityforms');
                ?>
</span>
						<?php 
            }
            ?>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row"><label><?php 
            esc_html_e('WordPress Version', 'gravityforms');
            ?>
</label></th>
					<td class="installation_item_cell">
						<strong><?php 
            echo esc_html(get_bloginfo('version'));
            ?>
</strong>
					</td>
					<td>
						<?php 
            if (version_compare(get_bloginfo('version'), '3.0', '>')) {
                ?>
							<i class="fa fa-check gf_valid"></i>
						<?php 
            } else {
                ?>
							<i class="fa fa-times gf_invalid"></i>
							<span class="installation_item_message"><?php 
                printf(esc_html__('Gravity Forms requires WordPress v%s or greater. You must upgrade WordPress in order to use this version of Gravity Forms.', 'gravityforms'), GF_MIN_WP_VERSION);
                ?>
</span>
						<?php 
            }
            ?>
					</td>
				</tr>
				<tr valign="top">
					<th scope="row"><label><?php 
            esc_html_e('Gravity Forms Version', 'gravityforms');
            ?>
</label></th>
					<td class="installation_item_cell">
						<strong><?php 
            echo esc_html(GFCommon::$version);
            ?>
</strong>
					</td>
					<td>
						<?php 
            if (version_compare(GFCommon::$version, $version_info['version'], '>=')) {
                ?>
							<i class="fa fa-check gf_valid"></i>
						<?php 
            } else {
                echo sprintf(esc_html__('New version %s available. Automatic upgrade available on the %splugins page%s', 'gravityforms'), esc_html($version_info['version']), '<a href="plugins.php">', '</a>');
            }
            ?>
					</td>
				</tr>
			</table>
		<?php 
        }
        self::page_footer();
    }
    public static function gravityforms_settings_page()
    {
        global $wpdb;
        if (!GFCommon::ensure_wp_version()) {
            return;
        }
        if (isset($_GET["setup"])) {
            //forcing setup
            RGForms::setup(true);
        }
        if (isset($_POST["submit"])) {
            check_admin_referer('gforms_update_settings', 'gforms_update_settings');
            if (!GFCommon::current_user_can_any("gravityforms_edit_settings")) {
                die(__("You don't have adequate permission to edit settings.", "gravityforms"));
            }
            RGFormsModel::save_key($_POST["gforms_key"]);
            update_option("rg_gforms_disable_css", $_POST["gforms_disable_css"]);
            update_option("rg_gforms_enable_html5", $_POST["gforms_enable_html5"]);
            update_option("rg_gforms_captcha_public_key", $_POST["gforms_captcha_public_key"]);
            update_option("rg_gforms_captcha_private_key", $_POST["gforms_captcha_private_key"]);
            if (!rgempty("gforms_currency")) {
                update_option("rg_gforms_currency", rgpost("gforms_currency"));
            }
            //Updating message because key could have been changed
            GFCommon::cache_remote_message();
            //Re-caching version info
            $version_info = GFCommon::get_version_info(false);
            ?>
            <div class="updated fade" style="padding:6px;">
                <?php 
            _e("Settings Updated", "gravityforms");
            ?>
.
             </div>
             <?php 
        } else {
            if (isset($_POST["uninstall"])) {
                if (!GFCommon::current_user_can_any("gravityforms_uninstall") || function_exists("is_multisite") && is_multisite() && !is_super_admin()) {
                    die(__("You don't have adequate permission to uninstall Gravity Forms.", "gravityforms"));
                }
                //droping all tables
                RGFormsModel::drop_tables();
                //removing options
                delete_option("rg_form_version");
                delete_option("rg_gforms_key");
                delete_option("rg_gforms_disable_css");
                delete_option("rg_gforms_enable_html5");
                delete_option("rg_gforms_captcha_public_key");
                delete_option("rg_gforms_captcha_private_key");
                delete_option("rg_gforms_message");
                delete_option("gf_dismissed_upgrades");
                delete_option("rg_gforms_currency");
                //removing gravity forms upload folder
                GFCommon::delete_directory(RGFormsModel::get_upload_root());
                //Deactivating plugin
                $plugin = "gravityforms/gravityforms.php";
                deactivate_plugins($plugin);
                update_option('recently_activated', array($plugin => time()) + (array) get_option('recently_activated'));
                ?>
            <div class="updated fade" style="padding:20px;"><?php 
                echo sprintf(__("Gravity Forms have been successfully uninstalled. It can be re-activated from the %splugins page%s.", "gravityforms"), "<a href='plugins.php'>", "</a>");
                ?>
</div>
            <?php 
                return;
            }
        }
        if (!isset($version_info)) {
            $version_info = GFCommon::get_version_info();
        }
        ?>
        <form method="post">
            <?php 
        wp_nonce_field('gforms_update_settings', 'gforms_update_settings');
        ?>
            <h3><?php 
        _e("General Settings", "gravityforms");
        ?>
</h3>
            <table class="form-table">
              <tr valign="top">
                   <th scope="row"><label for="gforms_key"><?php 
        _e("Support License Key", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_license_key");
        ?>
</th>
                    <td>
                        <?php 
        $key = GFCommon::get_key();
        $key_field = '<input type="password" name="gforms_key" id="gforms_key" style="width:350px;" value="' . $key . '" />';
        if ($version_info["is_valid_key"]) {
            $key_field .= "&nbsp;<img src='" . GFCommon::get_base_url() . "/images/tick.png' class='gf_keystatus_valid' alt='valid key' title='valid key'/>";
        } else {
            if (!empty($key)) {
                $key_field .= "&nbsp;<img src='" . GFCommon::get_base_url() . "/images/cross.png' class='gf_keystatus_invalid' alt='invalid key' title='invalid key'/>";
            }
        }
        echo apply_filters('gform_settings_key_field', $key_field);
        ?>
                        <br />
                        <?php 
        _e("The license key is used for access to automatic upgrades and support.", "gravityforms");
        ?>
                    </td>
                </tr>
               <tr valign="top">
                    <th scope="row"><label for="gforms_disable_css"><?php 
        _e("Output CSS", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_output_css");
        ?>
</th>
                    <td>
                        <input type="radio" name="gforms_disable_css" value="0" id="gforms_css_output_enabled" <?php 
        echo get_option('rg_gforms_disable_css') == 1 ? "" : "checked='checked'";
        ?>
 /> <?php 
        _e("Yes", "gravityforms");
        ?>
&nbsp;&nbsp;
                        <input type="radio" name="gforms_disable_css" value="1" id="gforms_css_output_disabled" <?php 
        echo get_option('rg_gforms_disable_css') == 1 ? "checked='checked'" : "";
        ?>
 /> <?php 
        _e("No", "gravityforms");
        ?>
<br />
                        <?php 
        _e("Set this to No if you would like to disable the plugin from outputting the form CSS.", "gravityforms");
        ?>
                    </td>
                </tr>
                <tr valign="top">
                     <th scope="row"><label for="gforms_enable_html5"><?php 
        _e("Output HTML5", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_html5");
        ?>
</th>
                    <td>
                        <input type="radio" name="gforms_enable_html5" value="1" <?php 
        echo get_option('rg_gforms_enable_html5') == 1 ? "checked='checked'" : "";
        ?>
 id="gforms_enable_html5"/> <?php 
        _e("Yes", "gravityforms");
        ?>
&nbsp;&nbsp;
                        <input type="radio" name="gforms_enable_html5" value="0" <?php 
        echo get_option('rg_gforms_enable_html5') == 1 ? "" : "checked='checked'";
        ?>
 /> <?php 
        _e("No", "gravityforms");
        ?>
<br />
                        <?php 
        _e("Set this to No if you would like to disable the plugin from outputting HTML5 form fields.", "gravityforms");
        ?>
                    </td>
                </tr>
                <tr valign="top">
                    <th scope="row"><label for="gforms_currency"><?php 
        _e("Currency", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_currency");
        ?>
</th>
                    <td>
                        <?php 
        $disabled = apply_filters("gform_currency_disabled", false) ? "disabled='disabled'" : "";
        ?>

                        <select id="gforms_currency" name="gforms_currency" <?php 
        echo $disabled;
        ?>
>
                            <?php 
        require_once "currency.php";
        $current_currency = GFCommon::get_currency();
        foreach (RGCurrency::get_currencies() as $code => $currency) {
            ?>
                                    <option value="<?php 
            echo $code;
            ?>
" <?php 
            echo $current_currency == $code ? "selected='selected'" : "";
            ?>
><?php 
            echo $currency["name"];
            ?>
</option>
                                    <?php 
        }
        ?>
                        </select>
                        <?php 
        do_action("gform_currency_setting_message", "");
        ?>
                    </td>
                </tr>
            </table>

            <div class="hr-divider"></div>

              <h3><?php 
        _e("reCAPTCHA Settings", "gravityforms");
        ?>
</h3>

              <p style="text-align: left;"><?php 
        _e("Gravity Forms integrates with reCAPTCHA, a free CAPTCHA service that helps to digitize books while protecting your forms from spam bots. ", "gravityforms");
        ?>
<a href="http://www.google.com/recaptcha/" target="_blank"><?php 
        _e("Read more about reCAPTCHA", "gravityforms");
        ?>
</a>.</p>

              <table class="form-table">


                <tr valign="top">
                   <th scope="row"><label for="gforms_captcha_public_key"><?php 
        _e("reCAPTCHA Public Key", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_recaptcha_public");
        ?>
</th>
                    <td>
                        <input type="text" name="gforms_captcha_public_key" style="width:350px;" value="<?php 
        echo get_option("rg_gforms_captcha_public_key");
        ?>
" /><br />
                        <?php 
        _e("Required only if you decide to use the reCAPTCHA field.", "gravityforms");
        ?>
 <?php 
        printf(__("%sSign up%s for a free account to get the key.", "gravityforms"), '<a target="_blank" href="http://www.google.com/recaptcha/whyrecaptcha">', '</a>');
        ?>
                    </td>
                </tr>
                <tr valign="top">
                   <th scope="row"><label for="gforms_captcha_private_key"><?php 
        _e("reCAPTCHA Private Key", "gravityforms");
        ?>
</label>  <?php 
        gform_tooltip("settings_recaptcha_private");
        ?>
</th>
                    <td>
                        <input type="text" name="gforms_captcha_private_key" style="width:350px;" value="<?php 
        echo esc_attr(get_option("rg_gforms_captcha_private_key"));
        ?>
" /><br />
                        <?php 
        _e("Required only if you decide to use the reCAPTCHA field.", "gravityforms");
        ?>
 <?php 
        printf(__("%sSign up%s for a free account to get the key.", "gravityforms"), '<a target="_blank" href="http://www.google.com/recaptcha/whyrecaptcha">', '</a>');
        ?>
                    </td>
                </tr>

              </table>

           <?php 
        if (GFCommon::current_user_can_any("gravityforms_edit_settings")) {
            ?>
                <br/><br/>
                <p class="submit" style="text-align: left;">
                <?php 
            $save_button = '<input type="submit" name="submit" value="' . __("Save Settings", "gravityforms") . '" class="button-primary gf_settings_savebutton"/>';
            echo apply_filters("gform_settings_save_button", $save_button);
            ?>
                </p>
           <?php 
        }
        ?>
        </form>

              <div id='gform_upgrade_license' style="display:none;"></div>
              <script type="text/javascript">
                jQuery(document).ready(function(){
                    jQuery.post(ajaxurl,{
                            action:"gf_upgrade_license",
                            gf_upgrade_license: "<?php 
        echo wp_create_nonce("gf_upgrade_license");
        ?>
",
                            cookie: encodeURIComponent(document.cookie)},

                            function(data){
                                if(data.trim().length > 0)
                                    jQuery("#gform_upgrade_license").replaceWith(data);
                            }
                    );
                });
              </script>

              <div class="hr-divider"></div>

              <h3><?php 
        _e("Installation Status", "gravityforms");
        ?>
</h3>
              <table class="form-table">

                <tr valign="top">
                   <th scope="row"><label><?php 
        _e("PHP Version", "gravityforms");
        ?>
</label></th>
                    <td class="installation_item_cell">
                        <strong><?php 
        echo phpversion();
        ?>
</strong>
                    </td>
                    <td>
                        <?php 
        if (version_compare(phpversion(), '5.0.0', '>')) {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/tick.png"/>
                                <?php 
        } else {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/cross.png"/>
                                <span class="installation_item_message"><?php 
            _e("Gravity Forms requires PHP 5 or above.", "gravityforms");
            ?>
</span>
                                <?php 
        }
        ?>
                    </td>
                </tr>
                <tr valign="top">
                   <th scope="row"><label><?php 
        _e("MySQL Version", "gravityforms");
        ?>
</label></th>
                    <td class="installation_item_cell">
                        <strong><?php 
        echo $wpdb->db_version();
        ?>
</strong>
                    </td>
                    <td>
                        <?php 
        if (version_compare($wpdb->db_version(), '5.0.0', '>')) {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/tick.png"/>
                                <?php 
        } else {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/cross.png"/>
                                <span class="installation_item_message"><?php 
            _e("Gravity Forms requires MySQL 5 or above.", "gravityforms");
            ?>
</span>
                                <?php 
        }
        ?>
                    </td>
                </tr>
                <tr valign="top">
                   <th scope="row"><label><?php 
        _e("WordPress Version", "gravityforms");
        ?>
</label></th>
                    <td class="installation_item_cell">
                        <strong><?php 
        echo get_bloginfo("version");
        ?>
</strong>
                    </td>
                    <td>
                        <?php 
        if (version_compare(get_bloginfo("version"), '2.8.0', '>')) {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/tick.png"/>
                                <?php 
        } else {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/cross.png"/>
                                <span class="installation_item_message"><?php 
            _e("Gravity Forms requires WordPress 2.8 or above.", "gravityforms");
            ?>
</span>
                                <?php 
        }
        ?>
                    </td>
                </tr>
                 <tr valign="top">
                   <th scope="row"><label><?php 
        _e("Gravity Forms Version", "gravityforms");
        ?>
</label></th>
                    <td class="installation_item_cell">
                        <strong><?php 
        echo GFCommon::$version;
        ?>
</strong>
                    </td>
                    <td>
                        <?php 
        if (version_compare(GFCommon::$version, $version_info["version"], '>=')) {
            ?>
                                <img src="<?php 
            echo GFCommon::get_base_url();
            ?>
/images/tick.png"/>
                                <?php 
        } else {
            echo sprintf(__("New version %s available. Automatic upgrade available on the %splugins page%s", "gravityforms"), $version_info["version"], '<a href="plugins.php">', '</a>');
        }
        ?>
                    </td>
                </tr>
            </table>



        <form action="" method="post">
            <?php 
        if (GFCommon::current_user_can_any("gravityforms_uninstall") && (!function_exists("is_multisite") || !is_multisite() || is_super_admin())) {
            ?>
                <div class="hr-divider"></div>

                <h3><?php 
            _e("Uninstall Gravity Forms", "gravityforms");
            ?>
</h3>
                <div class="delete-alert alert_red"><h3><?php 
            _e("Warning", "gravityforms");
            ?>
</h3><p><?php 
            _e("This operation deletes ALL Gravity Forms data. If you continue, You will not be able to retrieve or restore your forms or entries.", "gravityforms");
            ?>
</p>
                    <?php 
            $uninstall_button = '<input type="submit" name="uninstall" value="' . __("Uninstall Gravity Forms", "gravityforms") . '" class="button" onclick="return confirm(\'' . __("Warning! ALL Gravity Forms data, including form entries will be deleted. This cannot be undone. \\'OK\\' to delete, \\'Cancel\\' to stop", "gravityforms") . '\');"/>';
            echo apply_filters("gform_uninstall_button", $uninstall_button);
            ?>

                </div>
            <?php 
        }
        ?>
        </form>

        <?php 
    }
Esempio n. 25
0
 /**
  * Generates a map of fields IDs and their corresponding number formats used by the GFCalc JS object for correctly
  * converting field values to clean numbers.
  *
  * - Number fields have a 'numberFormat' setting (w/ UI).
  * - Single-input product fields (i.e. 'singleproduct', 'calculation', 'price' and 'hiddenproduct') should default to
  *   the number format of the configured currency.
  * - All other product fields will default to 'decimal_dot' for the number format.
  * - All other fields will have no format (false) and inherit the format of the formula field when the formula is
  *   calculated.
  *
  * @param mixed $form
  * @return string
  */
 public static function get_number_formats_script($form)
 {
     require_once GFCommon::get_base_path() . '/currency.php';
     $number_formats = array();
     $currency = RGCurrency::get_currency(GFCommon::get_currency());
     foreach ($form['fields'] as $field) {
         // default format is false, fields with no format will inherit the format of the formula field when calculated
         $format = false;
         switch (GFFormsModel::get_input_type($field)) {
             case 'number':
                 $format = $field->numberFormat ? $field->numberFormat : 'decimal_dot';
                 break;
             case 'singleproduct':
             case 'calculation':
             case 'price':
             case 'hiddenproduct':
             case 'singleshipping':
                 $format = $currency['decimal_separator'] == ',' ? 'decimal_comma' : 'decimal_dot';
                 break;
             default:
                 // we check above for all single-input product types, for all other products, assume decimal format
                 if (in_array($field->type, array('product', 'option', 'shipping'))) {
                     $format = 'decimal_dot';
                 }
         }
         $number_formats[$field->id] = $format;
     }
     return 'gf_global["number_formats"][' . $form['id'] . '] = ' . json_encode($number_formats) . ';';
 }
Esempio n. 26
0
 public function redirect_url($feed, $submission_data, $form, $entry)
 {
     //Don't process redirect url if request is a PayPal return
     if (!rgempty('gf_paypal_return', $_GET)) {
         return false;
     }
     //updating lead's payment_status to Processing
     GFAPI::update_entry_property($entry['id'], 'payment_status', 'Processing');
     //Getting Url (Production or Sandbox)
     $url = $feed['meta']['mode'] == 'production' ? $this->production_url : $this->sandbox_url;
     $invoice_id = apply_filters('gform_paypal_invoice', '', $form, $entry);
     $invoice = empty($invoice_id) ? '' : "&invoice={$invoice_id}";
     //Current Currency
     $currency = GFCommon::get_currency();
     //Customer fields
     $customer_fields = $this->customer_query_string($feed, $entry);
     //Page style
     $page_style = !empty($feed['meta']['pageStyle']) ? '&page_style=' . urlencode($feed['meta']['pageStyle']) : '';
     //Continue link text
     $continue_text = !empty($feed['meta']['continueText']) ? '&cbt=' . urlencode($feed['meta']['continueText']) : '&cbt=' . __('Click here to continue', 'gravityformspaypal');
     //Set return mode to 2 (PayPal will post info back to page). rm=1 seems to create lots of problems with the redirect back to the site. Defaulting it to 2.
     $return_mode = '2';
     $return_url = '&return=' . urlencode($this->return_url($form['id'], $entry['id'])) . "&rm={$return_mode}";
     //Cancel URL
     $cancel_url = !empty($feed['meta']['cancelUrl']) ? '&cancel_return=' . urlencode($feed['meta']['cancelUrl']) : '';
     //Don't display note section
     $disable_note = !empty($feed['meta']['disableNote']) ? '&no_note=1' : '';
     //Don't display shipping section
     $disable_shipping = !empty($feed['meta']['disableShipping']) ? '&no_shipping=1' : '';
     //URL that will listen to notifications from PayPal
     $ipn_url = urlencode(get_bloginfo('url') . '/?page=gf_paypal_ipn');
     $business_email = urlencode(trim($feed['meta']['paypalEmail']));
     $custom_field = $entry['id'] . '|' . wp_hash($entry['id']);
     $url .= "?notify_url={$ipn_url}&charset=UTF-8&currency_code={$currency}&business={$business_email}&custom={$custom_field}{$invoice}{$customer_fields}{$page_style}{$continue_text}{$cancel_url}{$disable_note}{$disable_shipping}{$return_url}";
     $query_string = '';
     switch ($feed['meta']['transactionType']) {
         case 'product':
             //build query string using $submission_data
             $query_string = $this->get_product_query_string($submission_data, $entry['id']);
             break;
         case 'donation':
             $query_string = $this->get_donation_query_string($submission_data, $entry['id']);
             break;
         case 'subscription':
             $query_string = $this->get_subscription_query_string($feed, $submission_data, $entry['id']);
             break;
     }
     $query_string = gf_apply_filters('gform_paypal_query', $form['id'], $query_string, $form, $entry, $feed, $submission_data);
     if (!$query_string) {
         $this->log_debug(__METHOD__ . '(): NOT sending to PayPal: The price is either zero or the gform_paypal_query filter was used to remove the querystring that is sent to PayPal.');
         return '';
     }
     $url .= $query_string;
     $url = gf_apply_filters('gform_paypal_request', $form['id'], $url, $form, $entry, $feed, $submission_data);
     //add the bn code (build notation code)
     $url .= '&bn=Rocketgenius_SP';
     $this->log_debug(__METHOD__ . "(): Sending to PayPal: {$url}");
     return $url;
 }
 public static function create_lead($form)
 {
     global $current_user;
     $total_fields = array();
     $calculation_fields = array();
     $lead = array();
     $lead['id'] = null;
     $lead['post_id'] = null;
     $lead['date_created'] = null;
     $lead['form_id'] = $form['id'];
     $lead['ip'] = self::get_ip();
     $lead['source_url'] = self::truncate(self::get_current_page_url(), 200);
     $lead['user_agent'] = strlen($_SERVER['HTTP_USER_AGENT']) > 250 ? substr($_SERVER['HTTP_USER_AGENT'], 0, 250) : $_SERVER['HTTP_USER_AGENT'];
     $lead['currency'] = GFCommon::get_currency();
     $lead['created_by'] = $current_user && $current_user->ID ? $current_user->ID : 'NULL';
     foreach ($form['fields'] as $field) {
         /* @var $field GF_Field */
         // ignore fields that are marked as display only
         if ($field->displayOnly && $field->type != 'password') {
             continue;
         }
         // process total field after all fields have been saved
         if ($field->type == 'total') {
             $total_fields[] = $field;
             continue;
         }
         // process calculation fields after all fields have been saved
         if ($field->has_calculation()) {
             $calculation_fields[] = $field;
             continue;
         }
         // only save fields that are not hidden
         if (!RGFormsModel::is_field_hidden($form, $field, array())) {
             if ($field->type == 'post_category') {
                 $field = GFCommon::add_categories_as_choices($field, '');
             }
             $inputs = $field->get_entry_inputs();
             if (is_array($inputs)) {
                 foreach ($inputs as $input) {
                     $lead[(string) $input['id']] = self::get_prepared_input_value($form, $field, $lead, $input['id']);
                 }
             } else {
                 $lead[$field->id] = self::get_prepared_input_value($form, $field, $lead, $field->id);
             }
         }
     }
     if (!empty($calculation_fields)) {
         foreach ($calculation_fields as $field) {
             /* @var $field GF_Field */
             // only save fields that are not hidden
             if (RGFormsModel::is_field_hidden($form, $field, array())) {
                 continue;
             }
             $inputs = $field->get_entry_inputs();
             if (is_array($inputs)) {
                 foreach ($inputs as $input) {
                     $lead[(string) $input['id']] = self::get_prepared_input_value($form, $field, $lead, $input['id']);
                 }
             } else {
                 $lead[$field->id] = self::get_prepared_input_value($form, $field, $lead, $field->id);
             }
         }
         self::refresh_product_cache($form, $lead);
     }
     // saving total field as the last field of the form.
     if (!empty($total_fields)) {
         foreach ($total_fields as $total_field) {
             $lead[$total_field->id] = self::get_prepared_input_value($form, $total_field, $lead, $total_field->id);
         }
     }
     return $lead;
 }
Esempio n. 28
0
 public static function gf_vars($echo = true)
 {
     if (!class_exists("RGCurrency")) {
         require_once "currency.php";
     }
     $gf_vars = array();
     $gf_vars["active"] = __("Active", "gravityforms");
     $gf_vars["inactive"] = __("Inactive", "gravityforms");
     $gf_vars["save"] = __("Save", "gravityforms");
     $gf_vars["update"] = __("Update", "gravityforms");
     $gf_vars["previousLabel"] = __("Previous", "gravityforms");
     $gf_vars["selectFormat"] = __("Select a format", "gravityforms");
     $gf_vars["editToViewAll"] = __("5 of %d items shown. Edit field to view all", "gravityforms");
     $gf_vars["enterValue"] = __("Enter a value", "gravityforms");
     $gf_vars["formTitle"] = __("Untitled Form", "gravityforms");
     $gf_vars["formDescription"] = __("We would love to hear from you! Please fill out this form and we will get in touch with you shortly.", "gravityforms");
     $gf_vars["formConfirmationMessage"] = __("Thanks for contacting us! We will get in touch with you shortly.", "gravityforms");
     $gf_vars["buttonText"] = __("Submit", "gravityforms");
     $gf_vars["loading"] = __("Loading...", "gravityforms");
     $gf_vars["thisFieldIf"] = __('this field if', 'gravityforms');
     $gf_vars["thisPage"] = __("this page", "gravityforms");
     $gf_vars["thisFormButton"] = __('this form button', 'gravityforms');
     $gf_vars["show"] = __('Show', 'gravityforms');
     $gf_vars["hide"] = __('Hide', 'gravityforms');
     $gf_vars["all"] = __('All', 'gravityforms');
     $gf_vars["any"] = __('Any', 'gravityforms');
     $gf_vars["ofTheFollowingMatch"] = __('of the following match:', 'gravityforms');
     $gf_vars["is"] = __('is', 'gravityforms');
     $gf_vars["isNot"] = __('is not', 'gravityforms');
     $gf_vars["greaterThan"] = __('greater than', 'gravityforms');
     $gf_vars["lessThan"] = __('less than', 'gravityforms');
     $gf_vars["contains"] = __('contains', 'gravityforms');
     $gf_vars["startsWith"] = __('starts with', 'gravityforms');
     $gf_vars["endsWith"] = __('ends with', 'gravityforms');
     $gf_vars["thisConfirmation"] = __('Use this confirmation if', 'gravityforms');
     $gf_vars["thisNotification"] = __('Send this notification if', 'gravityforms');
     $gf_vars["confirmationSave"] = __('Save', 'gravityforms');
     $gf_vars["confirmationSaving"] = __('Saving...', 'gravityforms');
     $gf_vars["confirmationAreYouSure"] = __('Are you sure you wish to cancel these changes?', 'gravityforms');
     $gf_vars["confirmationIssueSaving"] = __('There was an issue saving this confirmation.', 'gravityforms');
     $gf_vars["confirmationConfirmDelete"] = __('Are you sure you wish to delete this confirmation?', 'gravityforms');
     $gf_vars["confirmationIssueDeleting"] = __('There was an issue deleting this confirmation.', 'gravityforms');
     $gf_vars["confirmationConfirmDiscard"] = __('There are unsaved changes to the current confirmation. Would you like to discard these changes?', 'gravityforms');
     $gf_vars["confirmationDefaultName"] = __('Untitled Confirmation', 'gravityforms');
     $gf_vars["confirmationDefaultMessage"] = __('Thanks for contacting us! We will get in touch with you shortly.', 'gravityforms');
     $gf_vars["confirmationInvalidPageSelection"] = __('Please select a page.', "gravityforms");
     $gf_vars["confirmationInvalidRedirect"] = __('Please enter a URL.', "gravityforms");
     $gf_vars["confirmationInvalidName"] = __('Please enter a confirmation name.', "gravityforms");
     $gf_vars["conditionalLogicDependency"] = __('This form contains conditional logic dependent upon this field. Are you sure you want to delete this field? \'OK\' to delete, \'Cancel\' to abort.', 'gravityforms');
     $gf_vars["conditionalLogicDependencyChoice"] = __('This form contains conditional logic dependent upon this choice. Are you sure you want to delete this choice? \'OK\' to delete, \'Cancel\' to abort.', 'gravityforms');
     $gf_vars["conditionalLogicDependencyChoiceEdit"] = __('This form contains conditional logic dependent upon this choice. Are you sure you want to modify this choice? \'OK\' to delete, \'Cancel\' to abort.', 'gravityforms');
     $gf_vars["mergeTagsTooltip"] = __('<h6>Merge Tags</h6>Merge tags allow you to dynamically populate submitted field values in your form content wherever this merge tag icon is present.', 'gravityforms');
     $gf_vars["baseUrl"] = GFCommon::get_base_url();
     $gf_vars["gf_currency_config"] = RGCurrency::get_currency(GFCommon::get_currency());
     $gf_vars["otherChoiceValue"] = GFCommon::get_other_choice_value();
     $gf_vars["isFormDelete"] = false;
     if (is_admin() && rgget('id')) {
         $form = RGFormsModel::get_form_meta(rgget('id'));
         $gf_vars["mergeTags"] = GFCommon::get_merge_tags($form['fields'], '', false);
     }
     $gf_vars_json = 'var gf_vars = ' . json_encode($gf_vars) . ';';
     if (!$echo) {
         return $gf_vars_json;
     } else {
         echo $gf_vars_json;
     }
 }
Esempio n. 29
0

		}
		else {
			jQuery("#" + objectType + "_conditional_logic").prop("disabled", true).prop("checked", false);
			jQuery("#" + objectType + "_conditional_logic_container").show().html("<span class='instruction' style='margin-left:0'><?php 
_e('To use conditional logic, please create a field that supports conditional logic.', 'gravityforms');
?>
</span>");
		}
	}

	function GetCurrentCurrency() {
		<?php 
require_once 'currency.php';
$current_currency = RGCurrency::get_currency(GFCommon::get_currency());
?>
		var currency = new Currency(<?php 
echo GFCommon::json_encode($current_currency);
?>
);
		return currency;
	}

	function ToggleColumns(isInit) {
		var speed = isInit ? "" : "slow";
		var field = GetSelectedField();

		if (jQuery('#field_columns_enabled').is(":checked")) {
			jQuery('#gfield_settings_columns_container').show(speed);
Esempio n. 30
0
 /**
  * Adds a single Entry object.
  *
  * Intended to be used for importing an entry object. The usual hooks that are triggered while saving entries are not fired here.
  * Checks that the form id, field ids and entry meta exist and ignores legacy values (i.e. values for fields that no longer exist).
  *
  * @since  1.8
  * @access public
  * @static
  *
  * @param array $entry The Entry object
  *
  * @return mixed Either the new Entry ID or a WP_Error instance
  */
 public static function add_entry($entry)
 {
     global $wpdb;
     if (!is_array($entry)) {
         return new WP_Error('invalid_entry_object', __('The entry object must be an array', 'gravityforms'));
     }
     // make sure the form id exists
     $form_id = rgar($entry, 'form_id');
     if (empty($form_id)) {
         return new WP_Error('empty_form_id', __('The form id must be specified', 'gravityforms'));
     }
     if (false === self::form_id_exists($form_id)) {
         return new WP_Error('invalid_form_id', __('The form for this entry does not exist', 'gravityforms'));
     }
     // use values in the entry object if present
     $post_id = isset($entry['post_id']) ? intval($entry['post_id']) : 'NULL';
     $date_created = isset($entry['date_created']) && $entry['date_created'] != '' ? sprintf("'%s'", esc_sql($entry['date_created'])) : 'utc_timestamp()';
     $is_starred = isset($entry['is_starred']) ? $entry['is_starred'] : 0;
     $is_read = isset($entry['is_read']) ? $entry['is_read'] : 0;
     $ip = isset($entry['ip']) ? $entry['ip'] : GFFormsModel::get_ip();
     $source_url = isset($entry['source_url']) ? $entry['source_url'] : esc_url_raw(GFFormsModel::get_current_page_url());
     $user_agent = isset($entry['user_agent']) ? $entry['user_agent'] : 'API';
     $currency = isset($entry['currency']) ? $entry['currency'] : GFCommon::get_currency();
     $payment_status = isset($entry['payment_status']) ? sprintf("'%s'", esc_sql($entry['payment_status'])) : 'NULL';
     $payment_date = strtotime(rgar($entry, 'payment_date')) ? sprintf("'%s'", gmdate('Y-m-d H:i:s', strtotime("{$entry['payment_date']}"))) : 'NULL';
     $payment_amount = isset($entry['payment_amount']) ? (double) $entry['payment_amount'] : 'NULL';
     $payment_method = isset($entry['payment_method']) ? $entry['payment_method'] : '';
     $transaction_id = isset($entry['transaction_id']) ? sprintf("'%s'", esc_sql($entry['transaction_id'])) : 'NULL';
     $is_fulfilled = isset($entry['is_fulfilled']) ? intval($entry['is_fulfilled']) : 'NULL';
     $status = isset($entry['status']) ? $entry['status'] : 'active';
     global $current_user;
     $user_id = isset($entry['created_by']) ? absint($entry['created_by']) : '';
     if (empty($user_id)) {
         $user_id = $current_user && $current_user->ID ? absint($current_user->ID) : 'NULL';
     }
     $transaction_type = isset($entry['transaction_type']) ? intval($entry['transaction_type']) : 'NULL';
     $lead_table = GFFormsModel::get_lead_table_name();
     $result = $wpdb->query($wpdb->prepare("\n                INSERT INTO {$lead_table}\n                (form_id, post_id, date_created, is_starred, is_read, ip, source_url, user_agent, currency, payment_status, payment_date, payment_amount, transaction_id, is_fulfilled, created_by, transaction_type, status, payment_method)\n                VALUES\n                (%d, {$post_id}, {$date_created}, %d,  %d, %s, %s, %s, %s, {$payment_status}, {$payment_date}, {$payment_amount}, {$transaction_id}, {$is_fulfilled}, {$user_id}, {$transaction_type}, %s, %s)\n                ", $form_id, $is_starred, $is_read, $ip, $source_url, $user_agent, $currency, $status, $payment_method));
     if (false === $result) {
         return new WP_Error('insert_entry_properties_failed', __('There was a problem while inserting the entry properties', 'gravityforms'), $wpdb->last_error);
     }
     // reading newly created lead id
     $entry_id = $wpdb->insert_id;
     $entry['id'] = $entry_id;
     // only save field values for fields that currently exist in the form
     $form = GFFormsModel::get_form_meta($form_id);
     foreach ($form['fields'] as $field) {
         /* @var GF_Field $field */
         if (in_array($field->type, array('html', 'page', 'section'))) {
             continue;
         }
         $inputs = $field->get_entry_inputs();
         if (is_array($inputs)) {
             foreach ($inputs as $input) {
                 $input_id = (string) $input['id'];
                 if (isset($entry[$input_id])) {
                     $result = GFFormsModel::update_lead_field_value($form, $entry, $field, 0, $input_id, $entry[$input_id]);
                     if (false === $result) {
                         return new WP_Error('insert_input_value_failed', __('There was a problem while inserting one of the input values for the entry', 'gravityforms'), $wpdb->last_error);
                     }
                 }
             }
         } else {
             $field_id = $field->id;
             $field_value = isset($entry[(string) $field_id]) ? $entry[(string) $field_id] : '';
             $result = GFFormsModel::update_lead_field_value($form, $entry, $field, 0, $field_id, $field_value);
             if (false === $result) {
                 return new WP_Error('insert_field_values_failed', __('There was a problem while inserting the field values', 'gravityforms'), $wpdb->last_error);
             }
         }
     }
     // add save the entry meta values - only for the entry meta currently available for the form, ignore the rest
     $entry_meta = GFFormsModel::get_entry_meta($form_id);
     if (is_array($entry_meta)) {
         foreach (array_keys($entry_meta) as $key) {
             if (isset($entry[$key])) {
                 gform_update_meta($entry_id, $key, $entry[$key], $form['id']);
             }
         }
     }
     // Refresh the entry
     $entry = GFAPI::get_entry($entry['id']);
     /**
      * Fires after the Entry is added using the API.
      *
      * @since  1.9.14.26
      *
      * @param array $entry
      * @param array $form
      */
     do_action('gform_post_add_entry', $entry, $form);
     return $entry_id;
 }