PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.7.4
GiveWP – Donation Plugin and Fundraising Platform v2.7.4
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / class-give-tooltips.php
give / includes Last commit date
admin 5 years ago api 6 years ago database 6 years ago deprecated 6 years ago donors 5 years ago emails 6 years ago forms 6 years ago frontend 6 years ago gateways 6 years ago libraries 6 years ago payments 6 years ago actions.php 6 years ago ajax-functions.php 6 years ago class-give-async-process.php 6 years ago class-give-background-updater.php 6 years ago class-give-cache-setting.php 6 years ago class-give-cache.php 6 years ago class-give-cli-commands.php 6 years ago class-give-comment.php 6 years ago class-give-cron.php 6 years ago class-give-donate-form.php 6 years ago class-give-donor.php 6 years ago class-give-email-access.php 6 years ago class-give-license-handler.php 6 years ago class-give-logging.php 6 years ago class-give-readme-parser.php 6 years ago class-give-roles.php 6 years ago class-give-scripts.php 6 years ago class-give-session.php 6 years ago class-give-stats.php 6 years ago class-give-template-loader.php 6 years ago class-give-tooltips.php 6 years ago class-give-translation.php 6 years ago class-notices.php 6 years ago country-functions.php 6 years ago currencies-list.php 6 years ago currency-functions.php 6 years ago error-tracking.php 6 years ago filters.php 6 years ago formatting.php 6 years ago install.php 6 years ago login-register.php 6 years ago misc-functions.php 5 years ago plugin-compatibility.php 6 years ago post-types.php 6 years ago price-functions.php 6 years ago process-donation.php 6 years ago setting-functions.php 6 years ago shortcodes.php 6 years ago template-functions.php 6 years ago user-functions.php 6 years ago
class-give-tooltips.php
201 lines
1 <?php
2
3 /**
4 * Class for managing tooltips
5 *
6 * @package Give
7 * @subpackage Classes/Give_Tooltips
8 * @copyright Copyright (c) 2017, GiveWP
9 * @license https://opensource.org/licenses/gpl-license GNU Public License
10 * @since 2.0
11 */
12 class Give_Tooltips {
13 /**
14 * Set tooltip arguments.
15 *
16 * @since 2.0
17 * @access private
18 *
19 * @param $args
20 *
21 * @return array
22 */
23 private function set_toottip_args( $args ) {
24 $args = wp_parse_args(
25 $args,
26 array(
27 // Tooltip tag.
28 'tag' => 'span',
29 'tag_content' => '',
30
31 // Set to link of anchor if tooltip tag is anchor.
32 'link' => '#',
33
34 // Text for tooltip
35 'label' => '',
36
37 // Value: top-right, top, top-left, right, left, bottom-right, bottom, bottom-left.
38 'position' => 'top',
39
40 // Value: error, warning, info, success.
41 'status' => '',
42
43 // Value: small, medium, large.
44 'size' => '',
45
46 // Value: true/false.
47 'show_always' => false,
48
49 // Value: true/false
50 'round_edges' => false,
51
52 // Value: true/false
53 'animate' => true,
54
55 // Attributes.
56 'attributes' => array(),
57
58 // Value: true/false
59 'auto_width' => true,
60 )
61 );
62
63 // Auto set width of tooltip.
64 if (
65 ! empty( $args['auto_width'] ) &&
66 ! empty( $args['label'] ) &&
67 empty( $args['size'] )
68 ) {
69 if ( 15 < str_word_count( $args['label'] ) ) {
70 $args['size'] = 'large';
71 } elseif ( 7 < str_word_count( $args['label'] ) ) {
72 $args['size'] = 'medium';
73 }
74 }
75
76 return $args;
77 }
78
79
80 /**
81 * Render tooltip
82 *
83 * @since 2.0
84 * @access public
85 *
86 * @param $args
87 *
88 * @return string
89 */
90 public function render( $args ) {
91 $args = $this->set_toottip_args( $args );
92
93 $tooltip_pos = array(
94 'top' => 'hint--top',
95 'top-right' => 'hint--top-right',
96 'top-left' => 'hint--top-left',
97 'right' => 'hint--right',
98 'left' => 'hint--left',
99 'bottom' => 'hint--bottom',
100 'bottom-right' => 'hint--bottom-right',
101 'bottom-left' => 'hint--bottom-left',
102 );
103
104 $tooltip_status = array(
105 'error' => 'hint--error',
106 'warning' => 'hint--warning',
107 'info' => 'hint--info',
108 'success' => 'hint--success',
109 );
110
111 $tooltip_size = array(
112 'small' => 'hint--small',
113 'medium' => 'hint--medium',
114 'large' => 'hint--large',
115 );
116
117 // Set label.
118 $args['attributes']['aria-label'] = $args['label'];
119
120 // Set classes.
121 $args['attributes']['class'] = ! empty( $args['attributes']['class'] ) ? $args['attributes']['class'] : '';
122 $args['attributes']['class'] .= " {$tooltip_pos[ $args['position'] ]}";
123 $args['attributes']['class'] .= ! empty( $args['status'] ) ? " {$tooltip_status[ $args['status'] ]}" : '';
124 $args['attributes']['class'] .= ! empty( $args['size'] ) ? " {$tooltip_size[ $args['size'] ]}" : '';
125 $args['attributes']['class'] .= $args['show_always'] ? ' hint--always' : '';
126 $args['attributes']['class'] .= $args['round_edges'] ? ' hint--rounded' : '';
127 $args['attributes']['class'] .= $args['animate'] ? ' hint--bounce' : ' hint--no-animate';
128 $args['attributes']['class'] = trim( $args['attributes']['class'] );
129
130 // Set link attribute in tooltip has anchor tag.
131 if ( 'a' === $args['tag'] && ! empty( $args['link'] ) ) {
132 $args['attributes']['href'] = esc_url( $args['link'] );
133 }
134
135 return sprintf( '<%1$s %2$s rel="tooltip">%3$s</%1$s>', $args['tag'], give_get_attribute_str( $args['attributes'] ), $args['tag_content'] );
136 }
137
138
139 /**
140 * Render tooltip with anchor tag
141 *
142 * @since 2.0
143 * @access public
144 *
145 * @param array $args
146 *
147 * @return string
148 */
149 function render_link( $args ) {
150 $args['tag'] = 'a';
151 $tooltip_markup = $this->render( $args );
152
153 return $tooltip_markup;
154 }
155
156 /**
157 * Render tooltip with span tag
158 *
159 * @since 2.0
160 * @access public
161 *
162 * @param array|string $args
163 *
164 * @return string
165 */
166 function render_span( $args ) {
167 // Set tooltip args from string.
168 if ( is_string( $args ) ) {
169 $args = array( 'label' => $args );
170 }
171
172 $args['tag'] = 'span';
173 $tooltip_markup = $this->render( $args );
174
175 return $tooltip_markup;
176 }
177
178 /**
179 * Render tooltip with span tag and question mark icon
180 *
181 * @since 2.0
182 * @access public
183 *
184 * @param array|string $args
185 *
186 * @return string
187 */
188 function render_help( $args ) {
189 // Set tooltip args from string.
190 if ( is_string( $args ) ) {
191 $args = array( 'label' => $args );
192 }
193
194 $args['tag_content'] = '<i class="give-icon give-icon-question"></i>';
195 $args['attributes']['class'] = 'give-tooltip';
196 $tooltip_markup = $this->render_span( $args );
197
198 return $tooltip_markup;
199 }
200 }
201