← All changes
|
includes/admin/campaign-builder/class-builder-form-fields.php
+19
-4
1.8.11.3
→
1.8.13
View file →
| @@ -226,8 +226,10 @@ | ||
| 226 | 226 | 'field_id' => '', |
| 227 | 227 | 'title' => '', |
| 228 | 228 | 'visibility' => false, |
| 229 | 229 | 'checked_value' => '1', |
| 230 | + 'tooltip' => false, | |
| 231 | + 'disabled' => false, | |
| 230 | 232 | ); |
| 231 | 233 | |
| 232 | 234 | $params = array_replace_recursive( $defaults, $args ); |
| 233 | 235 | |
| @@ -240,13 +242,22 @@ | ||
| 240 | 242 | $name = implode( '][', $params['name'] ) . ']'; |
| 241 | 243 | $params['name'] = str_replace( $params['name'][0] . ']', $params['name'][0], $name ); |
| 242 | 244 | } |
| 243 | 245 | |
| 246 | + // When disabled, force the value off so the toggle can't visually appear on. | |
| 247 | + if ( $params['disabled'] ) { | |
| 248 | + $value = false; | |
| 249 | + } | |
| 250 | + | |
| 244 | 251 | $checked = ( $value !== false && $value === $params['checked_value'] ) ? 'checked="checked"' : false; |
| 245 | 252 | $field_id_attr = isset( $params['field_id'] ) && '' !== $params['field_id'] ? 'data-field-id="' . intval( $params['field_id'] ) . '"' : false; |
| 246 | 253 | $field_id_attr .= isset( $toggle_value ) && '' !== $toggle_value ? ' data-ajax-label="' . $toggle_value . '"' : false; |
| 247 | 254 | $params['container_class'] = $this->maybe_add_visibility_classes( $params['container_class'], $params['visibility'] ); |
| 248 | 255 | |
| 256 | + if ( $params['disabled'] ) { | |
| 257 | + $params['container_class'] = trim( $params['container_class'] . ' charitable-panel-field-toggle-disabled' ); | |
| 258 | + } | |
| 259 | + | |
| 249 | 260 | $css_classes = explode( ' ', $params['class'] ); |
| 250 | 261 | $css_classes = array_unique( $css_classes ); |
| 251 | 262 | $params['class'] = implode( ' ', $css_classes ); |
| 252 | 263 | |
| @@ -253,15 +264,19 @@ | ||
| 253 | 264 | $css_container_classes = ! empty( $params['container_class'] ) ? explode( ' ', $params['container_class'] ) : array(); |
| 254 | 265 | $css_container_classes = array_unique( $css_container_classes ); |
| 255 | 266 | $params['container_class'] = implode( ' ', $css_container_classes ); |
| 256 | 267 | |
| 268 | + $tooltip_html = ( isset( $params['tooltip'] ) && false !== $params['tooltip'] ) ? $this->get_tooltip_html( $params['tooltip'] ) : ''; | |
| 269 | + | |
| 270 | + $disabled_attr = $params['disabled'] ? 'disabled="disabled"' : ''; | |
| 271 | + | |
| 257 | 272 | $html = isset( $params['title'] ) && '' !== $params['title'] ? '<h5 class="charitable-campaign-builder-setting-subheading">' . esc_html( $params['title'] ) . '</h5>' : false; |
| 258 | 273 | |
| 259 | 274 | $html .= '<div data-field-id="' . $params['field_id'] . '" id="' . $this->id_slug . '-' . $params['id'] . '-wrap" class="charitable-panel-field charitable-panel-field-toggle ' . $params['container_class'] . '" ' . $field_id_attr . '> |
| 260 | 275 | <span class="charitable-toggle-control"> |
| 261 | - <input type="checkbox" id="' . $this->id_slug . '-' . $params['id'] . '" name="' . $params['name'] . '" value="' . $params['checked_value'] . '" class="' . $params['class'] . '" ' . $checked . ' /> | |
| 276 | + <input type="checkbox" id="' . $this->id_slug . '-' . $params['id'] . '" name="' . $params['name'] . '" value="' . $params['checked_value'] . '" class="' . $params['class'] . '" ' . $checked . ' ' . $disabled_attr . ' /> | |
| 262 | 277 | <label class="charitable-toggle-control-icon" for="' . $this->id_slug . '-' . $params['id'] . '"></label> |
| 263 | - <label for="' . $this->id_slug . '-' . $params['id'] . '">' . $label . '</label> | |
| 278 | + <label for="' . $this->id_slug . '-' . $params['id'] . '">' . $label . ' ' . $tooltip_html . '</label> | |
| 264 | 279 | </span> |
| 265 | 280 | </div>'; |
| 266 | 281 | |
| 267 | 282 | return $html; |
| @@ -689,9 +704,9 @@ | ||
| 689 | 704 | } |
| 690 | 705 | |
| 691 | 706 | } |
| 692 | 707 | |
| 693 | - if ( $args['html'] ) { | |
| 708 | + if ( $params['html'] ) { | |
| 694 | 709 | |
| 695 | 710 | $html = '<div id="' . $this->id_slug . '-' . $params['id'] . '-wrap" class="charitable-panel-field charitable-panel-field-textarea ' . $params['container_classes'] . '" ' . $field_id_attr . ' data-special-type="' . $params['special'] . '"> |
| 696 | 711 | <label for="' . $this->id_slug . '-' . $params['id'] . '">' . $label . ' ' . $tooltip_html . '</label>' . $description . ' |
| 697 | 712 | <div data-textarea-name="' . $params['name'] . '" id="' . $this->id_slug . '-' . $params['id'] . '" class="' . $params['class'] . '">' . $value . '</div> |
| @@ -697,9 +712,9 @@ | ||
| 697 | 712 | <div data-textarea-name="' . $params['name'] . '" id="' . $this->id_slug . '-' . $params['id'] . '" class="' . $params['class'] . '">' . $value . '</div> |
| 698 | 713 | <input type="hidden" value="' . htmlentities( $value ) . '" name="' . $params['name'] . '" /> |
| 699 | 714 | </div>'; |
| 700 | 715 | |
| 701 | - } elseif ( $args['code'] ) { | |
| 716 | + } elseif ( $params['code'] ) { | |
| 702 | 717 | |
| 703 | 718 | $html = '<div id="' . $this->id_slug . '-' . $params['id'] . '-wrap" class="charitable-panel-field charitable-panel-field-textarea ' . $params['container_classes'] . '" ' . $field_id_attr . '> |
| 704 | 719 | <label for="' . $this->id_slug . '-' . $params['id'] . '">' . $label . ' ' . $tooltip_html . '</label>' . $description . ' |
| 705 | 720 | <textarea id="' . $this->id_slug . '-' . $params['id'] . '" name="' . $params['name'] . '" placeholder="" class="' . $params['class'] . '" rows="' . $params['rows'] . '">' . $value . '</textarea> |