本文整理汇总了PHP中GFCommon::replace_variables方法的典型用法代码示例。如果您正苦于以下问题:PHP GFCommon::replace_variables方法的具体用法?PHP GFCommon::replace_variables怎么用?PHP GFCommon::replace_variables使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GFCommon
的用法示例。
在下文中一共展示了GFCommon::replace_variables方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: send_webhook
function send_webhook()
{
$entry = $this->get_entry();
$url = $this->url;
$this->log_debug(__METHOD__ . '() - url before replacing variables: ' . $url);
$url = GFCommon::replace_variables($url, $this->get_form(), $entry, true, false, false, 'text');
$this->log_debug(__METHOD__ . '() - url after replacing variables: ' . $url);
$method = strtoupper($this->method);
$body = null;
$headers = array();
if (in_array($method, array('POST', 'PUT'))) {
if ($this->format == 'json') {
$headers = array('Content-type' => 'application/json');
$body = json_encode($entry);
} else {
$headers = array();
$body = $entry;
}
}
$args = array('method' => $method, 'timeout' => 45, 'redirection' => 3, 'blocking' => true, 'headers' => $headers, 'body' => $body, 'cookies' => array());
$args = apply_filters('gravityflow_webhook_args', $args, $entry, $this);
$response = wp_remote_request($url, $args);
$this->log_debug(__METHOD__ . '() - response: ' . print_r($response, true));
if (is_wp_error($response)) {
$step_status = 'error';
} else {
$step_status = 'success';
}
$note = esc_html__('Webhook sent. Url: ' . $url);
$this->add_note($note, 0, 'webhook');
do_action('gravityflow_post_webhook', $response, $args, $entry, $this);
return $step_status;
}
示例2: replace_variables
/**
* Check for merge tags before passing to Gravity Forms to improve speed.
*
* GF doesn't check for whether `{` exists before it starts diving in. They not only replace fields, they do `str_replace()` on things like ip address, which is a lot of work just to check if there's any hint of a replacement variable.
*
* We check for the basics first, which is more efficient.
*
* @since 1.8.4 - Moved to GravityView_Merge_Tags
* @since 1.15.1 - Add support for $url_encode and $esc_html arguments
*
* @param string $text Text to replace variables in
* @param array $form GF Form array
* @param array $entry GF Entry array
* @param bool $url_encode Pass return value through `url_encode()`
* @param bool $esc_html Pass return value through `esc_html()`
* @return string Text with variables maybe replaced
*/
public static function replace_variables($text, $form = array(), $entry = array(), $url_encode = false, $esc_html = true)
{
/**
* @filter `gravityview_do_replace_variables` Turn off merge tag variable replacements.\n
* Useful where you want to process variables yourself. We do this in the Math Extension.
* @since 1.13
* @param[in,out] boolean $do_replace_variables True: yes, replace variables for this text; False: do not replace variables.
* @param[in] string $text Text to replace variables in
* @param[in] array $form GF Form array
* @param[in] array $entry GF Entry array
*/
$do_replace_variables = apply_filters('gravityview/merge_tags/do_replace_variables', true, $text, $form, $entry);
if (strpos($text, '{') === false || !$do_replace_variables) {
return $text;
}
/**
* Replace GravityView merge tags before going to Gravity Forms
* This allows us to replace our tags first.
* @since 1.15
*/
$text = self::replace_gv_merge_tags($text, $form, $entry);
// Check for fields - if they exist, we let Gravity Forms handle it.
preg_match_all('/{[^{]*?:(\\d+(\\.\\d+)?)(:(.*?))?}/mi', $text, $matches, PREG_SET_ORDER);
if (empty($matches)) {
// Check for form variables
if (!preg_match('/\\{(all_fields(:(.*?))?|all_fields_display_empty|pricing_fields|form_title|entry_url|ip|post_id|admin_email|post_edit_url|form_id|entry_id|embed_url|date_mdy|date_dmy|embed_post:(.*?)|custom_field:(.*?)|user_agent|referer|gv:(.*?)|get:(.*?)|user:(.*?)|created_by:(.*?))\\}/ism', $text)) {
return $text;
}
}
return GFCommon::replace_variables($text, $form, $entry, $url_encode, $esc_html);
}
示例3: replace_merge_tags
function replace_merge_tags($post_content)
{
$entry = $this->get_entry();
if (!$entry) {
return $post_content;
}
$form = GFFormsModel::get_form_meta($entry['form_id']);
$post_content = $this->replace_field_label_merge_tags($post_content, $form);
$post_content = GFCommon::replace_variables($post_content, $form, $entry, false, false, false);
return $post_content;
}
示例4: replace_variables
/**
* Check for merge tags before passing to Gravity Forms to improve speed.
*
* GF doesn't check for whether `{` exists before it starts diving in. They not only replace fields, they do `str_replace()` on things like ip address, which is a lot of work just to check if there's any hint of a replacement variable.
*
* We check for the basics first, which is more efficient.
*
* @since 1.8.4 - Moved to GravityView_Merge_Tags
*
* @param string $text Text to replace variables in
* @param array $form GF Form array
* @param array $entry GF Entry array
* @return string Text with variables maybe replaced
*/
public static function replace_variables($text, $form, $entry)
{
if (strpos($text, '{') === false) {
return $text;
}
// Check for fields - if they exist, we let Gravity Forms handle it.
preg_match_all('/{[^{]*?:(\\d+(\\.\\d+)?)(:(.*?))?}/mi', $text, $matches, PREG_SET_ORDER);
if (empty($matches)) {
// Check for form variables
if (!preg_match('/\\{(all_fields(:(.*?))?|pricing_fields|form_title|entry_url|ip|post_id|admin_email|post_edit_url|form_id|entry_id|embed_url|date_mdy|date_dmy|embed_post:(.*?)|custom_field:(.*?)|user_agent|referer|gv:(.*?)|user:(.*?)|created_by:(.*?))\\}/ism', $text)) {
return $text;
}
}
return GFCommon::replace_variables($text, $form, $entry, false, false, false, "html");
}
示例5: test_gf_merge_tags
/**
* We want to make sure that GravityView doesn't mess with Texas
* @since 1.15.1
*/
function test_gf_merge_tags()
{
remove_all_filters('gform_pre_replace_merge_tags');
remove_all_filters('gform_merge_tag_filter');
global $post;
$form = $this->factory->form->create_and_get();
$post = $this->factory->post->create_and_get();
$entry = $this->factory->entry->create_and_get(array('post_id' => $post->ID, 'form_id' => $form['id']));
$tests = array('{form_title}' => $form['title'], '{entry_id}' => $entry['id'], '{entry_url}' => get_bloginfo('wpurl') . '/wp-admin/admin.php?page=gf_entries&view=entry&id=' . $form['id'] . '&lid=' . rgar($entry, 'id'), '{admin_email}' => get_bloginfo('admin_email'), '{post_id}' => $post->ID, '{embed_post:post_title}' => $post->post_title);
foreach ($tests as $merge_tag => $expected) {
$this->assertEquals($expected, GravityView_Merge_Tags::replace_variables($merge_tag, $form, $entry));
$this->assertEquals(urlencode($expected), GravityView_Merge_Tags::replace_variables($merge_tag, $form, $entry, true));
remove_filter('gform_replace_merge_tags', array('GravityView_Merge_Tags', 'replace_gv_merge_tags'), 10);
$this->assertEquals($expected, GFCommon::replace_variables($merge_tag, $form, $entry));
$this->assertEquals(urlencode($expected), GFCommon::replace_variables($merge_tag, $form, $entry, true));
add_filter('gform_replace_merge_tags', array('GravityView_Merge_Tags', 'replace_gv_merge_tags'), 10, 7);
}
wp_reset_postdata();
}
示例6: handle_confirmation
public static function handle_confirmation($form, $lead, $ajax = false)
{
if ($form["confirmation"]["type"] == "message") {
$default_anchor = self::has_pages($form) ? 1 : 0;
$anchor = apply_filters("gform_confirmation_anchor_{$form["id"]}", apply_filters("gform_confirmation_anchor", $default_anchor)) ? "<a id='gf_{$form["id"]}' name='gf_{$form["id"]}' class='gform_anchor' ></a>" : "";
$nl2br = rgar($form["confirmation"], "disableAutoformat") ? false : true;
$confirmation = empty($form["confirmation"]["message"]) ? "{$anchor} " : "{$anchor}<div id='gforms_confirmation_message' class='gform_confirmation_message_{$form["id"]}'>" . GFCommon::replace_variables($form["confirmation"]["message"], $form, $lead, false, true, $nl2br) . "</div>";
} else {
if (!empty($form["confirmation"]["pageId"])) {
$url = get_permalink($form["confirmation"]["pageId"]);
} else {
$url = GFCommon::replace_variables(trim($form["confirmation"]["url"]), $form, $lead, false, true);
$url_info = parse_url($url);
$query_string = $url_info["query"];
$dynamic_query = GFCommon::replace_variables(trim($form["confirmation"]["queryString"]), $form, $lead, true);
$query_string .= empty($url_info["query"]) || empty($dynamic_query) ? $dynamic_query : "&" . $dynamic_query;
if (!empty($url_info["fragment"])) {
$query_string .= "#" . $url_info["fragment"];
}
$url = $url_info["scheme"] . "://" . $url_info["host"];
if (!empty($url_info["port"])) {
$url .= ":{$url_info["port"]}";
}
$url .= rgar($url_info, "path");
if (!empty($query_string)) {
$url .= "?{$query_string}";
}
}
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($url, $ajax);
} else {
$confirmation = array("redirect" => $url);
}
}
$confirmation = apply_filters("gform_confirmation_{$form["id"]}", apply_filters("gform_confirmation", $confirmation, $form, $lead, $ajax), $form, $lead, $ajax);
if (!is_array($confirmation)) {
$confirmation = GFCommon::gform_do_shortcode($confirmation);
//enabling shortcodes
} else {
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($confirmation["redirect"], $ajax);
//redirecting via client side
}
}
return $confirmation;
}
示例7: handle_save_email_confirmation
public static function handle_save_email_confirmation($form, $ajax)
{
$resume_email = $_POST['gform_resume_email'];
if (!GFCommon::is_valid_email($resume_email)) {
GFCommon::log_debug('GFFormDisplay::handle_save_email_confirmation(): Invalid email address: ' . $resume_email);
return new WP_Error('invalid_email');
}
$resume_token = $_POST['gform_resume_token'];
$submission_details = GFFormsModel::get_incomplete_submission_values($resume_token);
$submission_json = $submission_details['submission'];
$submission = json_decode($submission_json, true);
$entry = $submission['partial_entry'];
$form = self::update_confirmation($form, $entry, 'form_save_email_sent');
$confirmation = '<div class="form_saved_message_sent"><span>' . rgar($form['confirmation'], 'message') . '</span></div>';
$nl2br = rgar($form['confirmation'], 'disableAutoformat') ? false : true;
$save_email_confirmation = self::replace_save_variables($confirmation, $form, $resume_token, $resume_email);
$save_email_confirmation = GFCommon::replace_variables($save_email_confirmation, $form, $entry, false, true, $nl2br);
$save_email_confirmation = GFCommon::gform_do_shortcode($save_email_confirmation);
$form_id = absint($form['id']);
$has_pages = self::has_pages($form);
$default_anchor = $has_pages || $ajax ? true : false;
$use_anchor = gf_apply_filters(array('gform_confirmation_anchor', $form_id), $default_anchor);
if ($use_anchor !== false) {
$save_email_confirmation = "<a id='gf_{$form_id}' class='gform_anchor' ></a>" . $save_email_confirmation;
}
if ($ajax) {
$save_email_confirmation = "<!DOCTYPE html><html><head><meta charset='UTF-8' /></head><body class='GF_AJAX_POSTBACK'>" . $save_email_confirmation . '</body></html>';
}
GFCommon::log_debug('GFFormDisplay::handle_save_email_confirmation(): Confirmation => ' . print_r($save_email_confirmation, true));
return $save_email_confirmation;
}
示例8: create_post
public static function create_post($form, &$lead)
{
$has_post_field = false;
foreach ($form["fields"] as $field) {
$is_hidden = self::is_field_hidden($form, $field, array(), $lead);
if (!$is_hidden && in_array($field["type"], array("post_category", "post_title", "post_content", "post_excerpt", "post_tags", "post_custom_field", "post_image"))) {
$has_post_field = true;
break;
}
}
//if this form does not have any post fields, don't create a post
if (!$has_post_field) {
return $lead;
}
//processing post fields
$post_data = self::get_post_fields($form, $lead);
//allowing users to change post fields before post gets created
$post_data = apply_filters("gform_post_data_{$form["id"]}", apply_filters("gform_post_data", $post_data, $form, $lead), $form, $lead);
//adding default title if none of the required post fields are in the form (will make sure wp_insert_post() inserts the post)
if (empty($post_data["post_title"]) && empty($post_data["post_content"]) && empty($post_data["post_excerpt"])) {
$post_data["post_title"] = self::get_default_post_title();
}
//inserting post
if (GFCommon::is_bp_active()) {
//disable buddy press action so save_post is not called because the post data is not yet complete at this point
remove_action("save_post", "bp_blogs_record_post");
}
$post_id = wp_insert_post($post_data);
//adding form id and entry id hidden custom fields
add_post_meta($post_id, "_gform-form-id", $form["id"]);
add_post_meta($post_id, "_gform-entry-id", $lead["id"]);
//creating post images
$post_images = array();
foreach ($post_data["images"] as $image) {
$image_meta = array("post_excerpt" => $image["caption"], "post_content" => $image["description"]);
//adding title only if it is not empty. It will default to the file name if it is not in the array
if (!empty($image["title"])) {
$image_meta["post_title"] = $image["title"];
}
if (!empty($image["url"])) {
$media_id = self::media_handle_upload($image["url"], $post_id, $image_meta);
if ($media_id) {
//save media id for post body/title template variable replacement (below)
$post_images[$image["field_id"]] = $media_id;
$lead[$image["field_id"]] .= "|:|{$media_id}";
// set featured image
$field = RGFormsModel::get_field($form, $image["field_id"]);
if (rgar($field, 'postFeaturedImage')) {
set_post_thumbnail($post_id, $media_id);
}
}
}
}
//adding custom fields
foreach ($post_data["post_custom_fields"] as $meta_name => $meta_value) {
if (!is_array($meta_value)) {
$meta_value = array($meta_value);
}
$meta_index = 0;
foreach ($meta_value as $value) {
$custom_field = self::get_custom_field($form, $meta_name, $meta_index);
//replacing template variables if template is enabled
if ($custom_field && rgget("customFieldTemplateEnabled", $custom_field)) {
//replacing post image variables
$value = GFCommon::replace_variables_post_image($custom_field["customFieldTemplate"], $post_images, $lead);
//replacing all other variables
$value = GFCommon::replace_variables($value, $form, $lead, false, false, false);
// replace conditional shortcodes
$value = do_shortcode($value);
}
switch (RGFormsModel::get_input_type($custom_field)) {
case "list":
$value = maybe_unserialize($value);
if (is_array($value)) {
foreach ($value as $item) {
if (is_array($item)) {
$item = implode("|", $item);
}
if (!rgblank($item)) {
add_post_meta($post_id, $meta_name, $item);
}
}
}
break;
case "multiselect":
case "checkbox":
$value = explode(",", $value);
if (is_array($value)) {
foreach ($value as $item) {
if (!rgblank($item)) {
add_post_meta($post_id, $meta_name, $item);
}
}
}
break;
case "date":
$value = GFCommon::date_display($value, rgar($custom_field, "dateFormat"));
if (!rgblank($value)) {
add_post_meta($post_id, $meta_name, $value);
}
//.........这里部分代码省略.........
示例9: process_feed
/**
* Process feed.
*
* @access public
* @param array $feed
* @param array $entry
* @param array $form
* @return void
*/
public function process_feed($feed, $entry, $form)
{
$this->log_debug(__METHOD__ . '(): Processing feed.');
/* If HipChat instance is not initialized, exit. */
if (!$this->initialize_api()) {
$this->add_feed_error(esc_html__('Feed was not processed because API was not initialized.', 'gravityformsslack'), $feed, $entry, $form);
return;
}
/* Prepare notification array. */
$notification = array('color' => $feed['meta']['color'], 'from' => 'Gravity Forms', 'message' => $feed['meta']['message'], 'notify' => $feed['meta']['notify'], 'room_id' => $feed['meta']['room']);
/* Replace merge tags on notification message. */
$notification['message'] = GFCommon::replace_variables($notification['message'], $form, $entry);
/* Strip unallowed tags */
$notification['message'] = strip_tags($notification['message'], '<a><b><i><strong><em><br><img><pre><code><lists><tables>');
/* If message is empty, exit. */
if (rgblank($notification['message'])) {
$this->add_feed_error(esc_html__('Notification was not posted to room because message was empty.', 'gravityformshipchat'), $feed, $entry, $form);
return;
}
/* If message is too long, cut it off at 10,000 characters. */
if (strlen($notification['message']) > 10000) {
$notification['message'] = substr($notification['message'], 0, 10000);
}
/* Post notification to room. */
$this->log_debug(__METHOD__ . '(): Posting notification: ' . print_r($notification, true));
$notify_room = $this->api->notify_room($notification);
if (isset($notify_room['status']) && $notify_room['status'] == 'sent') {
$this->log_debug(__METHOD__ . '(): Notification was posted to room.');
} else {
$this->add_feed_error(esc_html__('Notification was not posted to room.', 'gravityformshipchat'), $feed, $entry, $form);
}
}
示例10: handle_confirmation
public static function handle_confirmation($form, $lead, $ajax = false)
{
//run the function to populate the legacy confirmation format to be safe
$form = self::update_confirmation($form, $lead);
if ($form["confirmation"]["type"] == "message") {
$default_anchor = self::has_pages($form) ? 1 : 0;
$anchor = apply_filters("gform_confirmation_anchor_{$form["id"]}", apply_filters("gform_confirmation_anchor", $default_anchor)) ? "<a id='gf_{$form["id"]}' name='gf_{$form["id"]}' class='gform_anchor' ></a>" : "";
$nl2br = rgar($form["confirmation"], "disableAutoformat") ? false : true;
$cssClass = rgar($form, "cssClass");
if (function_exists('qtranxf_getLanguage') && !empty($form["confirmation"]["message"])) {
$form["confirmation"]["message"] = apply_filters('the_title', $form["confirmation"]["message"]);
}
//$confirmation = empty($form["confirmation"]["message"]) ? "{$anchor} " : "{$anchor}<div id='gform_confirmation_wrapper_{$form["id"]}' class='gform_confirmation_wrapper {$cssClass}'><div id='gforms_confirmation_message' class='gform_confirmation_message_{$form["id"]}'>" . GFCommon::replace_variables($form["confirmation"]["message"], $form, $lead, false, true, $nl2br) . "</div></div>";
$confirmation = empty($form["confirmation"]["message"]) ? "{$anchor} " : "{$anchor}<div id='gform_confirmation_wrapper_{$form["id"]}' class='validation_error alert alert-danger alert-dismissible fade in gform_confirmation_wrapper {$cssClass}'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><div id='gforms_confirmation_message' class='gform_confirmation_message_{$form["id"]}'>" . GFCommon::replace_variables($form["confirmation"]["message"], $form, $lead, false, true, $nl2br) . "<a onclick='document.location.reload(true)'> Please, click to proceed</a></div></div>";
} else {
if (!empty($form["confirmation"]["pageId"])) {
$url = get_permalink($form["confirmation"]["pageId"]);
} else {
$url = GFCommon::replace_variables(trim($form["confirmation"]["url"]), $form, $lead, false, true);
$url_info = parse_url($url);
$query_string = $url_info["query"];
$dynamic_query = GFCommon::replace_variables(trim($form["confirmation"]["queryString"]), $form, $lead, true);
$query_string .= empty($url_info["query"]) || empty($dynamic_query) ? $dynamic_query : "&" . $dynamic_query;
if (!empty($url_info["fragment"])) {
$query_string .= "#" . $url_info["fragment"];
}
$url = $url_info["scheme"] . "://" . $url_info["host"];
if (!empty($url_info["port"])) {
$url .= ":{$url_info["port"]}";
}
$url .= rgar($url_info, "path");
if (!empty($query_string)) {
$url .= "?{$query_string}";
}
}
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($url, $ajax);
} else {
$confirmation = array("redirect" => $url);
}
}
$confirmation = apply_filters("gform_confirmation_{$form["id"]}", apply_filters("gform_confirmation", $confirmation, $form, $lead, $ajax), $form, $lead, $ajax);
if (!is_array($confirmation)) {
$confirmation = GFCommon::gform_do_shortcode($confirmation);
//enabling shortcodes
} else {
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($confirmation["redirect"], $ajax);
//redirecting via client side
}
}
return $confirmation;
}
示例11: send_admin_notification
public static function send_admin_notification($form, $lead)
{
$form_id = $form["id"];
//handling admin notification email
$subject = GFCommon::replace_variables($form["notification"]["subject"], $form, $lead, false, false);
$message = GFCommon::replace_variables($form["notification"]["message"], $form, $lead, false, false, !$form["notification"]["disableAutoformat"]);
$message = do_shortcode($message);
$from = empty($form["notification"]["fromField"]) ? $form["notification"]["from"] : $lead[$form["notification"]["fromField"]];
if (empty($form["notification"]["fromNameField"])) {
$from_name = $form["notification"]["fromName"];
} else {
$field = RGFormsModel::get_field($form, $form["notification"]["fromNameField"]);
$value = RGFormsModel::get_lead_field_value($lead, $field);
$from_name = GFCommon::get_lead_field_display($field, $value);
}
$replyTo = empty($form["notification"]["replyToField"]) ? $form["notification"]["replyTo"] : $lead[$form["notification"]["replyToField"]];
if (empty($form["notification"]["routing"])) {
$email_to = $form["notification"]["to"];
} else {
$email_to = array();
foreach ($form["notification"]["routing"] as $routing) {
$source_field = RGFormsModel::get_field($form, $routing["fieldId"]);
$field_value = RGFormsModel::get_field_value($source_field, array());
$is_value_match = is_array($field_value) ? in_array($routing["value"], $field_value) : $field_value == $routing["value"];
if ($routing["operator"] == "is" && $is_value_match || $routing["operator"] == "isnot" && !$is_value_match) {
$email_to[] = $routing["email"];
}
}
$email_to = join(",", $email_to);
}
//Running through variable replacement
$email_to = GFCommon::replace_variables($email_to, $form, $lead, false, false);
$from = GFCommon::replace_variables($from, $form, $lead, false, false);
$bcc = GFCommon::replace_variables($form["notification"]["bcc"], $form, $lead, false, false);
$reply_to = GFCommon::replace_variables($replyTo, $form, $lead, false, false);
$from_name = GFCommon::replace_variables($from_name, $form, $lead, false, false);
//Filters the admin notification email to address. Allows users to change email address before notification is sent
$to = apply_filters("gform_notification_email_{$form_id}", apply_filters("gform_notification_email", $email_to, $lead), $lead);
self::send_email($from, $to, $bcc, $replyTo, $subject, $message, $from_name);
}
示例12: lead_detail_page
//.........这里部分代码省略.........
_e("Add Note", "gravityforms");
?>
" class="button" style="width:60px;" onclick="jQuery('#action').val('add_quick_note');"/>
</span>
</div>
</div>
</div>
</div>
<!-- end side notes -->
<?php
}
?>
<!-- begin print button -->
<div class="detail-view-print">
<a href="javascript:;" onclick="var notes_qs = jQuery('#gform_print_notes').is(':checked') ? '¬es=1' : ''; var url='<?php
echo GFCommon::get_base_url();
?>
/print-entry.php?fid=<?php
echo $form['id'];
?>
&lid=<?php
echo $lead['id'];
?>
' + notes_qs; window.open (url,'printwindow');" class="button">Print</a>
<?php
if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
?>
<input type="checkbox" name="print_notes" value="print_notes" checked="checked" id="gform_print_notes"/>
<label for="print_notes">include notes</label>
<?php
}
?>
</div>
<!-- end print button -->
</div>
<div id="post-body" class="has-sidebar">
<div id="post-body-content" class="has-sidebar-content">
<?php
if ($mode == "view") {
self::lead_detail_grid($form, $lead, true);
} else {
self::lead_detail_edit($form, $lead);
}
?>
<?php
if (GFCommon::current_user_can_any("gravityforms_view_entry_notes")) {
?>
<div id="namediv" class="stuffbox">
<h3>
<label for="name"><?php
_e("Notes", "gravityforms");
?>
</label>
</h3>
<form method="post">
<?php
wp_nonce_field('gforms_update_note', 'gforms_update_note');
?>
<div class="inside">
<?php
$notes = RGFormsModel::get_lead_notes($lead["id"]);
//getting email values
$email_fields = GFCommon::get_email_fields($form);
$emails = array();
foreach ($email_fields as $email_field) {
if (!empty($lead[$email_field["id"]])) {
$emails[] = $lead[$email_field["id"]];
}
}
//displaying notes grid
$subject = !empty($form["autoResponder"]["subject"]) ? "RE: " . GFCommon::replace_variables($form["autoResponder"]["subject"], $form, $lead) : "";
self::notes_grid($notes, true, $emails, $subject);
?>
</div>
</form>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
</form>
<?php
if (rgpost("action") == "update") {
?>
<div class="updated fade" style="padding:6px;">
<?php
_e("Entry Updated.", "gravityforms");
?>
</div>
<?php
}
}
示例13: update_contact
/**
* Update contact.
*
* @access public
* @param array $contact
* @param array $feed
* @param array $entry
* @param array $form
* @return array $contact
*/
public function update_contact($contact, $feed, $entry, $form)
{
$this->log_debug(__METHOD__ . '(): Updating existing contact.');
/* Setup mapped fields array. */
$contact_standard_fields = $this->get_field_map_fields($feed, 'contactStandardFields');
$contact_custom_fields = $this->get_dynamic_field_map_fields($feed, 'contactCustomFields');
/* Setup base fields. */
$first_name = $this->get_field_value($form, $entry, $contact_standard_fields['first_name']);
$last_name = $this->get_field_value($form, $entry, $contact_standard_fields['last_name']);
$default_email = $this->get_field_value($form, $entry, $contact_standard_fields['email_address']);
/* If the name is empty, exit. */
if (rgblank($first_name) || rgblank($last_name)) {
$this->add_feed_error(esc_html__('Contact could not be created as first and/or last name were not provided.', 'gravityformsagilecrm'), $feed, $entry, $form);
return null;
}
/* If the email address is empty, exit. */
if (GFCommon::is_invalid_or_empty_email($default_email)) {
$this->add_feed_error(esc_html__('Contact could not be created as email address was not provided.', 'gravityformsagilecrm'), $feed, $entry, $form);
return null;
}
/* Clear out unneeded data. */
foreach ($contact as $key => $value) {
if (!in_array($key, array('tags', 'properties', 'id', 'type'))) {
unset($contact[$key]);
}
}
/* If we're replacing all data, clear out the properties and add the base properties. */
if (rgars($feed, 'meta/updateContactAction') == 'replace') {
$contact['tags'] = array();
$contact['properties'] = array(array('type' => 'SYSTEM', 'name' => 'first_name', 'value' => $first_name), array('type' => 'SYSTEM', 'name' => 'last_name', 'value' => $last_name), array('type' => 'SYSTEM', 'name' => 'email', 'value' => $default_email));
}
/* Add custom field data. */
foreach ($contact_custom_fields as $field_key => $field_id) {
/* Get the field value. */
$this->custom_field_key = $field_key;
$field_value = $this->get_field_value($form, $entry, $field_id);
/* If the field value is empty, skip this field. */
if (rgblank($field_value)) {
continue;
}
$contact = $this->add_contact_property($contact, $field_key, $field_value, rgars($feed, 'meta/updateContactAction') == 'replace');
}
/* Prepare tags. */
if (rgars($feed, 'meta/contactTags')) {
$tags = GFCommon::replace_variables($feed['meta']['contactTags'], $form, $entry, false, false, false, 'text');
$tags = array_map('trim', explode(',', $tags));
$tags = array_merge($contact['tags'], $tags);
$contact['tags'] = gf_apply_filters('gform_agilecrm_tags', $form['id'], $tags, $feed, $entry, $form);
}
$this->log_debug(__METHOD__ . '(): Updating contact: ' . print_r($contact, true));
try {
/* Update contact. */
$this->api->update_contact($contact);
/* Save contact ID to entry. */
gform_update_meta($entry['id'], 'agilecrm_contact_id', $contact['id']);
/* Log that contact was updated. */
$this->log_debug(__METHOD__ . '(): Contact #' . $contact['id'] . ' updated.');
} catch (Exception $e) {
$this->add_feed_error(sprintf(esc_html__('Contact could not be updated. %s', 'gravityformsagilecrm'), $e->getMessage()), $feed, $entry, $form);
return null;
}
return $contact;
}
示例14: process_feed
/**
* Process feed.
*
* @access public
* @param array $feed
* @param array $entry
* @param array $form
* @return void
*/
public function process_feed($feed, $entry, $form)
{
/* If Campfire instance is not initialized, exit. */
if (!$this->initialize_api()) {
$this->add_feed_error(esc_html__('Message was not posted to room because API was not initialized.', 'gravityformscampfire'), $feed, $entry, $form);
return;
}
/* Prepare message. */
$message = array('type' => 'TextMessage', 'body' => gf_apply_filters('gform_campfire_message', $form['id'], rgars($feed, 'meta/message'), $feed, $entry, $form));
/* Replace merge tags in message. */
$message['body'] = GFCommon::replace_variables($message['body'], $form, $entry);
/* If message is empty, exit. */
if (rgblank($message['body'])) {
$this->add_feed_error(esc_html__('Message was not posted to room because it was empty.', 'gravityformscampfire'), $feed, $entry, $form);
return;
}
try {
/* Post message. */
$message = $this->api->create_message(rgars($feed, 'meta/room'), $message);
/* Log that message was posted. */
$this->log_debug(__METHOD__ . '(): Message #' . $message['id'] . ' was posted to room #' . $message['room_id'] . '.');
} catch (Exception $e) {
/* Log that message was not posted. */
$this->add_feed_error(sprintf(esc_html__('Message was not posted to room: %s', 'gravityformscampfire'), $e->getMessage()), $feed, $entry, $form);
return false;
}
if (rgars($feed, 'meta/highlight') == '1') {
try {
/* Highlight message. */
$this->api->highlight_message($message['id']);
/* Log that message was posted. */
$this->log_debug(__METHOD__ . '(): Message #' . $message['id'] . ' was highlighted.');
} catch (Exception $e) {
/* Log that message was not posted. */
$this->add_feed_error(sprintf(esc_html__('Message was not highlighted: %s', 'gravityformscampfire'), $e->getMessage()), $feed, $entry, $form);
return false;
}
}
}
示例15: handle_confirmation
public static function handle_confirmation($form, $lead, $ajax = false)
{
GFCommon::log_debug("Sending confirmation");
//run the function to populate the legacy confirmation format to be safe
$form = self::update_confirmation($form, $lead);
if ($form["confirmation"]["type"] == "message") {
$default_anchor = self::has_pages($form) ? 1 : 0;
$anchor = apply_filters("gform_confirmation_anchor_{$form["id"]}", apply_filters("gform_confirmation_anchor", $default_anchor)) ? "<a id='gf_{$form["id"]}' name='gf_{$form["id"]}' class='gform_anchor' ></a>" : "";
$nl2br = rgar($form["confirmation"], "disableAutoformat") ? false : true;
$cssClass = rgar($form, "cssClass");
$confirmation = empty($form["confirmation"]["message"]) ? "{$anchor} " : "{$anchor}<div id='gform_confirmation_wrapper_{$form["id"]}' class='gform_confirmation_wrapper {$cssClass}'><div id='gform_confirmation_message_{$form["id"]}' class='gform_confirmation_message_{$form["id"]} gform_confirmation_message'>" . GFCommon::replace_variables($form["confirmation"]["message"], $form, $lead, false, true, $nl2br) . "</div></div>";
} else {
if (!empty($form['confirmation']['pageId'])) {
$url = get_permalink($form['confirmation']['pageId']);
} else {
$url = GFCommon::replace_variables(trim($form['confirmation']['url']), $form, $lead, false, true, true, 'text');
}
$url_info = parse_url($url);
$query_string = rgar($url_info, 'query');
$dynamic_query = GFCommon::replace_variables(trim($form['confirmation']['queryString']), $form, $lead, true, false, false, 'text');
$query_string .= rgempty('query', $url_info) || empty($dynamic_query) ? $dynamic_query : '&' . $dynamic_query;
if (!empty($url_info['fragment'])) {
$query_string .= '#' . rgar($url_info, 'fragment');
}
$url = $url_info['scheme'] . '://' . rgar($url_info, 'host');
if (!empty($url_info['port'])) {
$url .= ':' . rgar($url_info, 'port');
}
$url .= rgar($url_info, 'path');
if (!empty($query_string)) {
$url .= "?{$query_string}";
}
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($url, $ajax);
} else {
$confirmation = array('redirect' => $url);
}
}
$confirmation = apply_filters("gform_confirmation_{$form["id"]}", apply_filters("gform_confirmation", $confirmation, $form, $lead, $ajax), $form, $lead, $ajax);
if (!is_array($confirmation)) {
$confirmation = GFCommon::gform_do_shortcode($confirmation);
//enabling shortcodes
} else {
if (headers_sent() || $ajax) {
//Perform client side redirect for AJAX forms, of if headers have already been sent
$confirmation = self::get_js_redirect_confirmation($confirmation["redirect"], $ajax);
//redirecting via client side
}
}
GFCommon::log_debug("Confirmation: " . print_r($confirmation, true));
return $confirmation;
}