GravityView  1.19.4
The best, easiest way to display Gravity Forms entries on your website.
class-gravityview-field-payment-amount.php
Go to the documentation of this file.
1 <?php
2 /**
3  * @file class-gravityview-field-payment-amount.php
4  * @package GravityView
5  * @subpackage includes\fields
6  * @since 1.16
7  */
8 
10 
11  var $name = 'payment_amount';
12 
13  var $is_searchable = true;
14 
15  var $is_numeric = true;
16 
17  var $search_operators = array( 'is', 'isnot', 'greater_than', 'less_than', 'contains' );
18 
19  var $group = 'pricing';
20 
21  var $_custom_merge_tag = 'payment_amount';
22 
23  /**
24  * GravityView_Field_Payment_Amount constructor.
25  */
26  public function __construct() {
27  $this->label = esc_html__( 'Payment Amount', 'gravityview' );
28 
29  add_filter( 'gravityview_field_entry_value_' . $this->name . '_pre_link', array( $this, 'get_content' ), 10, 4 );
30 
31  parent::__construct();
32  }
33 
34  /**
35  * Filter the value of the field
36  *
37  * @todo Consider how to add to parent class
38  *
39  * @since 1.16
40  *
41  * @param string $output HTML value output
42  * @param array $entry The GF entry array
43  * @param array $field_settings Settings for the particular GV field
44  * @param array $field Current field being displayed
45  *
46  * @return String values for this field based on the numeric values used by Gravity Forms
47  */
48  public function get_content( $output = '', $entry = array(), $field_settings = array(), $field = array() ) {
49 
50  /** Overridden by a template. */
51  if( ! empty( $field['field_path'] ) ) { return $output; }
52 
53  $amount = rgar( $entry, 'payment_amount' );
54  $return = GFCommon::to_money( $amount, rgar( $entry, 'currency' ) );
55 
56  return $return;
57  }
58 
59  /**
60  * Add {payment_amount} merge tag
61  *
62  * @since 1.16
63  **
64  * @param array $matches Array of Merge Tag matches found in text by preg_match_all
65  * @param string $text Text to replace
66  * @param array $form Gravity Forms form array
67  * @param array $entry Entry array
68  * @param bool $url_encode Whether to URL-encode output
69  *
70  * @return string Original text if {date_created} isn't found. Otherwise, replaced text.
71  */
72  public function replace_merge_tag( $matches = array(), $text = '', $form = array(), $entry = array(), $url_encode = false, $esc_html = false ) {
73 
74  $return = $text;
75 
76  foreach ( $matches as $match ) {
77 
78  $full_tag = $match[0];
79  $modifier = isset( $match[1] ) ? $match[1] : false;
80 
81  $amount = rgar( $entry, 'payment_amount' );
82 
83  $formatted_amount = ( 'raw' === $modifier ) ? $amount : GFCommon::to_money( $amount, rgar( $entry, 'currency' ) );
84 
85  $return = str_replace( $full_tag, $formatted_amount, $return );
86  }
87 
88  unset( $formatted_amount, $amount, $full_tag, $matches );
89 
90  return $return;
91  }
92 }
93 
Modify field settings by extending this class.
replace_merge_tag($matches=array(), $text= '', $form=array(), $entry=array(), $url_encode=false, $esc_html=false)
Add {payment_amount} merge tag.
get_content($output= '', $entry=array(), $field_settings=array(), $field=array())
Filter the value of the field.
$field_settings['content']
Definition: custom.php:27
__construct()
GravityView_Field_Payment_Amount constructor.
$entry
Definition: notes.php:27
$field
Definition: gquiz_grade.php:11