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; }
/** * 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; }
/** * 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; }
/** * 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; }
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; }
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¤cy_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; }
/** * 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> {$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'); } }
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"> </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> <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;"/> <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"/> <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"/> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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&width=600&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"); ?> " /> <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='';"> <a href="#" onclick="SaveCustomChoices();" class="button" id="bulk_save_button"><?php _e("Save", "gravityforms"); ?> </a> <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&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> <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"); ?> <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"; }
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; }
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; }
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; }
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¤cy_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; }
/** * 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)); } } }
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 .= " <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 .= " <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 .= " <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'); ?> <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'); ?> <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'); ?> <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'); ?> <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'); ?> <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 .= " <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 .= " <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"); ?> <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"); ?> <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 }
/** * 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) . ';'; }
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¤cy_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; }
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; } }
} 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);
/** * 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; }