Conditions | 103 |
Paths | 3698 |
Total Lines | 594 |
Lines | 68 |
Ratio | 11.45 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
326 | public static function output_fields( $options, $option_name = '' ) { |
||
327 | $current_tab = give_get_current_setting_tab(); |
||
328 | |||
329 | // Field Default values. |
||
330 | $defaults = array( |
||
331 | 'id' => '', |
||
332 | 'class' => '', |
||
333 | 'css' => '', |
||
334 | 'default' => '', |
||
335 | 'desc' => '', |
||
336 | 'table_html' => true, |
||
337 | 'repeat' => false, |
||
338 | 'repeat_btn_title' => __( 'Add Field', 'give' ), |
||
339 | ); |
||
340 | |||
341 | foreach ( $options as $value ) { |
||
342 | if ( ! isset( $value['type'] ) ) { |
||
343 | continue; |
||
344 | } |
||
345 | |||
346 | // Set title. |
||
347 | $defaults['title'] = isset( $value['name'] ) ? $value['name'] : ''; |
||
348 | |||
349 | // Set default setting. |
||
350 | $value = wp_parse_args( $value, $defaults ); |
||
351 | |||
352 | // Colorpicker field. |
||
353 | $value['class'] = ( 'colorpicker' === $value['type'] ? trim( $value['class'] ) . ' give-colorpicker' : $value['class'] ); |
||
354 | $value['type'] = ( 'colorpicker' === $value['type'] ? 'text' : $value['type'] ); |
||
355 | |||
356 | |||
357 | // Custom attribute handling. |
||
358 | $custom_attributes = array(); |
||
359 | |||
360 | View Code Duplication | if ( ! empty( $value['attributes'] ) && is_array( $value['attributes'] ) ) { |
|
361 | foreach ( $value['attributes'] as $attribute => $attribute_value ) { |
||
362 | $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"'; |
||
363 | } |
||
364 | } |
||
365 | |||
366 | // Description handling. |
||
367 | $description = self::get_field_description( $value ); |
||
368 | |||
369 | // Switch based on type. |
||
370 | switch ( $value['type'] ) { |
||
371 | |||
372 | // Section Titles. |
||
373 | case 'title': |
||
374 | if ( ! empty( $value['title'] ) || ! empty( $value['desc'] ) ) { |
||
375 | ?> |
||
376 | <div class="give-setting-tab-header give-setting-tab-header-<?php echo $current_tab; ?>"> |
||
377 | <?php if ( ! empty( $value['title'] ) ) : ?> |
||
378 | <h2><?php echo self::get_field_title( $value ); ?></h2> |
||
379 | <hr> |
||
380 | <?php endif; ?> |
||
381 | |||
382 | <?php if ( ! empty( $value['desc'] ) ) : ?> |
||
383 | <?php echo wpautop( wptexturize( wp_kses_post( $value['desc'] ) ) ); ?> |
||
384 | <?php endif; ?> |
||
385 | </div> |
||
386 | <?php |
||
387 | } |
||
388 | |||
389 | if ( $value['table_html'] ) { |
||
390 | echo '<table class="form-table give-setting-tab-body give-setting-tab-body-' . $current_tab . '">' . "\n\n"; |
||
391 | } |
||
392 | |||
393 | if ( ! empty( $value['id'] ) ) { |
||
394 | |||
395 | /** |
||
396 | * Trigger Action. |
||
397 | * |
||
398 | * Note: action dynamically fire on basis of field id. |
||
399 | * |
||
400 | * @since 1.8 |
||
401 | */ |
||
402 | do_action( 'give_settings_' . sanitize_title( $value['id'] ) ); |
||
403 | } |
||
404 | |||
405 | break; |
||
406 | |||
407 | // Section Ends. |
||
408 | case 'sectionend': |
||
409 | View Code Duplication | if ( ! empty( $value['id'] ) ) { |
|
410 | |||
411 | /** |
||
412 | * Trigger Action. |
||
413 | * |
||
414 | * Note: action dynamically fire on basis of field id. |
||
415 | * |
||
416 | * @since 1.8 |
||
417 | */ |
||
418 | do_action( 'give_settings_' . sanitize_title( $value['id'] ) . '_end' ); |
||
419 | } |
||
420 | |||
421 | if ( $value['table_html'] ) { |
||
422 | echo '</table>'; |
||
423 | } |
||
424 | |||
425 | View Code Duplication | if ( ! empty( $value['id'] ) ) { |
|
426 | |||
427 | /** |
||
428 | * Trigger Action. |
||
429 | * |
||
430 | * Note: action dynamically fire on basis of field id. |
||
431 | * |
||
432 | * @since 1.8 |
||
433 | */ |
||
434 | do_action( 'give_settings_' . sanitize_title( $value['id'] ) . '_after' ); |
||
435 | } |
||
436 | |||
437 | break; |
||
438 | |||
439 | // Standard text inputs and subtypes like 'number'. |
||
440 | case 'colorpicker': |
||
441 | case 'hidden' : |
||
442 | $value['wrapper_class'] = empty( $value['wrapper_class'] ) ? 'give-hidden' : trim( $value['wrapper_class'] ) . ' give-hidden'; |
||
443 | case 'text': |
||
444 | case 'email': |
||
445 | case 'number': |
||
446 | case 'password' : |
||
447 | $type = $value['type']; |
||
448 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
449 | |||
450 | // Set default value for repeater field if not any value set yet. |
||
451 | if ( $value['repeat'] && is_string( $option_value ) ) { |
||
452 | $option_value = array( $value['default'] ); |
||
453 | } |
||
454 | ?> |
||
455 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
456 | <th scope="row" class="titledesc"> |
||
457 | <label |
||
458 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
459 | </th> |
||
460 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?>"> |
||
461 | <?php if ( $value['repeat'] ) : ?> |
||
462 | <?php foreach ( $option_value as $index => $field_value ) : ?> |
||
463 | <p> |
||
464 | <input |
||
465 | name="<?php echo esc_attr( $value['id'] ); ?>[]" |
||
466 | type="<?php echo esc_attr( $type ); ?>" |
||
467 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
468 | value="<?php echo esc_attr( $field_value ); ?>" |
||
469 | class="give-input-field<?php echo( empty( $value['class'] ) ? '' : ' ' . esc_attr( $value['class'] ) ); ?> <?php echo esc_attr( $value['id'] ); ?>" |
||
470 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
471 | /> |
||
472 | <span class="give-remove-setting-field" |
||
473 | title="<?php esc_html_e( 'Remove setting field', 'give' ); ?>">-</span> |
||
474 | </p> |
||
475 | <?php endforeach; ?> |
||
476 | <a href="#" data-id="<?php echo $value['id']; ?>" |
||
477 | class="give-repeat-setting-field button-secondary"><?php echo $value['repeat_btn_title']; ?></a> |
||
478 | <?php else : ?> |
||
479 | <input |
||
480 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
481 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
482 | type="<?php echo esc_attr( $type ); ?>" |
||
483 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
484 | value="<?php echo esc_attr( $option_value ); ?>" |
||
485 | class="give-input-field<?php echo( empty( $value['class'] ) ? '' : ' ' . esc_attr( $value['class'] ) ); ?>" |
||
486 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
487 | /> |
||
488 | <?php endif; ?> |
||
489 | <?php echo $description; ?> |
||
490 | </td> |
||
491 | </tr><?php |
||
492 | break; |
||
493 | |||
494 | // Textarea. |
||
495 | case 'textarea': |
||
496 | |||
497 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
498 | $default_attributes = array( |
||
499 | 'rows' => 10, |
||
500 | 'cols' => 60 |
||
501 | ); |
||
502 | $textarea_attributes = isset( $value['attributes'] ) ? $value['attributes'] : array(); |
||
503 | ?> |
||
504 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
505 | <th scope="row" class="titledesc"> |
||
506 | <label |
||
507 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
508 | </th> |
||
509 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?>"> |
||
510 | <textarea |
||
511 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
512 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
513 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
514 | class="<?php echo esc_attr( $value['class'] ); ?>" |
||
515 | <?php echo give_get_attribute_str( $textarea_attributes, $default_attributes ); ?> |
||
516 | ><?php echo esc_textarea( $option_value ); ?></textarea> |
||
517 | <?php echo $description; ?> |
||
518 | </td> |
||
519 | </tr> |
||
520 | <?php |
||
521 | break; |
||
522 | |||
523 | // Select boxes. |
||
524 | case 'select' : |
||
525 | case 'multiselect' : |
||
526 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
527 | |||
528 | /** |
||
529 | * Insert page in option if missing. |
||
530 | * |
||
531 | * Check success_page setting in general settings. |
||
532 | */ |
||
533 | if ( |
||
534 | isset( $value['attributes'] ) && |
||
535 | false !== strpos( $value['class'], 'give-select-chosen' ) && |
||
536 | in_array( 'data-search-type', array_keys( $value['attributes' ] ) ) && |
||
537 | 'pages' === $value['attributes' ]['data-search-type'] && |
||
538 | ! in_array( $option_value, array_keys( $value['options'] ) ) |
||
539 | ) { |
||
540 | $value['options'][ $option_value ] = get_the_title( $option_value ); |
||
541 | } |
||
542 | ?> |
||
543 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
544 | <th scope="row" class="titledesc"> |
||
545 | <label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
546 | </th> |
||
547 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?>"> |
||
548 | <select |
||
549 | name="<?php echo esc_attr( $value['id'] ); ?><?php if ( 'multiselect' === $value['type'] ) echo '[]'; ?>" |
||
550 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
551 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
552 | class="<?php echo esc_attr( $value['class'] ); ?>" |
||
553 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
554 | <?php echo ( 'multiselect' === $value['type'] ) ? 'multiple="multiple"' : ''; ?> |
||
555 | > |
||
556 | |||
557 | <?php |
||
558 | if ( ! empty( $value['options'] ) ) { |
||
559 | foreach ( $value['options'] as $key => $val ) { |
||
560 | ?> |
||
561 | <option value="<?php echo esc_attr( $key ); ?>" <?php |
||
562 | |||
563 | if ( is_array( $option_value ) ) { |
||
564 | selected( in_array( $key, $option_value ), true ); |
||
565 | } else { |
||
566 | selected( $option_value, $key ); |
||
567 | } |
||
568 | |||
569 | ?>><?php echo $val ?></option> |
||
570 | <?php |
||
571 | } |
||
572 | } |
||
573 | ?> |
||
574 | |||
575 | </select> <?php echo $description; ?> |
||
576 | </td> |
||
577 | </tr><?php |
||
578 | break; |
||
579 | |||
580 | // Radio inputs. |
||
581 | case 'radio_inline' : |
||
582 | $value['class'] = empty( $value['class'] ) ? 'give-radio-inline' : $value['class'] . ' give-radio-inline'; |
||
583 | case 'radio' : |
||
584 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
585 | ?> |
||
586 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
587 | <th scope="row" class="titledesc"> |
||
588 | <label |
||
589 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
590 | </th> |
||
591 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?> <?php echo( ! empty( $value['class'] ) ? $value['class'] : '' ); ?>"> |
||
592 | <fieldset> |
||
593 | <ul> |
||
594 | <?php |
||
595 | View Code Duplication | foreach ( $value['options'] as $key => $val ) { |
|
596 | ?> |
||
597 | <li> |
||
598 | <label><input |
||
599 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
600 | value="<?php echo $key; ?>" |
||
601 | type="radio" |
||
602 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
603 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
604 | <?php checked( $key, $option_value ); ?> |
||
605 | /> <?php echo $val ?></label> |
||
606 | </li> |
||
607 | <?php |
||
608 | } |
||
609 | ?> |
||
610 | <?php echo $description; ?> |
||
611 | </fieldset> |
||
612 | </td> |
||
613 | </tr><?php |
||
614 | break; |
||
615 | |||
616 | // Checkbox input. |
||
617 | case 'checkbox' : |
||
618 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
619 | ?> |
||
620 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
621 | <th scope="row" class="titledesc"> |
||
622 | <label |
||
623 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
624 | </th> |
||
625 | <td class="give-forminp"> |
||
626 | <input |
||
627 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
628 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
629 | type="checkbox" |
||
630 | class="<?php echo esc_attr( isset( $value['class'] ) ? $value['class'] : '' ); ?>" |
||
631 | value="1" |
||
632 | <?php checked( $option_value, 'on' ); ?> |
||
633 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
634 | /> |
||
635 | <?php echo $description; ?> |
||
636 | </td> |
||
637 | </tr> |
||
638 | <?php |
||
639 | break; |
||
640 | |||
641 | // Multi Checkbox input. |
||
642 | case 'multicheck' : |
||
643 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
644 | $option_value = is_array( $option_value ) ? $option_value : array(); |
||
645 | ?> |
||
646 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
647 | <th scope="row" class="titledesc"> |
||
648 | <label |
||
649 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
650 | </th> |
||
651 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?> <?php echo( ! empty( $value['class'] ) ? $value['class'] : '' ); ?>"> |
||
652 | <fieldset> |
||
653 | <ul> |
||
654 | <?php |
||
655 | View Code Duplication | foreach ( $value['options'] as $key => $val ) { |
|
656 | ?> |
||
657 | <li> |
||
658 | <label> |
||
659 | <input |
||
660 | name="<?php echo esc_attr( $value['id'] ); ?>[]" |
||
661 | value="<?php echo $key; ?>" |
||
662 | type="checkbox" |
||
663 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
664 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
665 | <?php if ( in_array( $key, $option_value ) ) { |
||
666 | echo 'checked="checked"'; |
||
667 | } ?> |
||
668 | /> <?php echo $val ?> |
||
669 | </label> |
||
670 | </li> |
||
671 | <?php |
||
672 | } |
||
673 | ?> |
||
674 | <?php echo $description; ?> |
||
675 | </fieldset> |
||
676 | </td> |
||
677 | </tr> |
||
678 | <?php |
||
679 | break; |
||
680 | |||
681 | // File input field. |
||
682 | case 'file' : |
||
683 | case 'media' : |
||
684 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
685 | $button_label = sprintf( __( 'Add or Upload %s', 'give' ), ( 'file' === $value['type'] ? __( 'File', 'give' ) : __( 'Image', 'give' ) ) ); |
||
686 | $fvalue = empty( $value['fvalue'] ) ? 'url' : $value['fvalue']; |
||
687 | |||
688 | $allow_media_preview_tags = array( 'jpg', 'jpeg', 'png', 'gif', 'ico' ); |
||
689 | $preview_image_src = $option_value ? ( 'id' === $fvalue ? wp_get_attachment_url( $option_value ) : $option_value ) : ''; |
||
690 | $preview_image_extension = $preview_image_src ? pathinfo( $preview_image_src, PATHINFO_EXTENSION ) : ''; |
||
691 | $is_show_preview = in_array( $preview_image_extension, $allow_media_preview_tags ); |
||
692 | ?> |
||
693 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
694 | <th scope="row" class="titledesc"> |
||
695 | <label |
||
696 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
697 | </th> |
||
698 | <td class="give-forminp"> |
||
699 | <div class="give-field-wrap"> |
||
700 | <label for="<?php echo $value['id'] ?>"> |
||
701 | <input |
||
702 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
703 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
704 | type="text" |
||
705 | class="give-input-field<?php echo esc_attr( isset( $value['class'] ) ? ' ' . $value['class'] : '' ); ?>" |
||
706 | value="<?php echo $option_value; ?>" |
||
707 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
708 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
709 | /> <input class="give-upload-button button" type="button" |
||
710 | data-fvalue="<?php echo $fvalue; ?>" |
||
711 | data-field-type="<?php echo $value['type']; ?>" |
||
712 | value="<?php echo $button_label; ?>"> |
||
713 | <?php echo $description ?> |
||
714 | <div |
||
715 | class="give-image-thumb<?php echo ! $option_value || ! $is_show_preview ? ' give-hidden' : ''; ?>"> |
||
716 | <span class="give-delete-image-thumb dashicons dashicons-no-alt"></span> |
||
717 | <img src="<?php echo $preview_image_src; ?>" alt=""> |
||
718 | </div> |
||
719 | </label> |
||
720 | </div> |
||
721 | </td> |
||
722 | </tr> |
||
723 | <?php |
||
724 | break; |
||
725 | |||
726 | // WordPress Editor. |
||
727 | case 'wysiwyg' : |
||
728 | // Get option value. |
||
729 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
730 | |||
731 | // Get editor settings. |
||
732 | $editor_settings = ! empty( $value['options'] ) ? $value['options'] : array(); |
||
733 | ?> |
||
734 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
735 | <th scope="row" class="titledesc"> |
||
736 | <label |
||
737 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
738 | </th> |
||
739 | <td class="give-forminp"> |
||
740 | <?php wp_editor( $option_value, $value['id'], $editor_settings ); ?> |
||
741 | <?php echo $description; ?> |
||
742 | </td> |
||
743 | </tr><?php |
||
744 | break; |
||
745 | |||
746 | // Custom: Default gateways setting field. |
||
747 | case 'default_gateway' : |
||
748 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
749 | ?> |
||
750 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
751 | <th scope="row" class="titledesc"> |
||
752 | <label |
||
753 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
754 | </th> |
||
755 | <td class="give-forminp"> |
||
756 | <?php give_default_gateway_callback( $value, $option_value ); ?> |
||
757 | <?php echo $description; ?> |
||
758 | </td> |
||
759 | </tr><?php |
||
760 | break; |
||
761 | |||
762 | // Custom: Email preview buttons field. |
||
763 | case 'email_preview_buttons' : |
||
764 | ?> |
||
765 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
766 | <th scope="row" class="titledesc"> |
||
767 | <label |
||
768 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
769 | </th> |
||
770 | <td class="give-forminp"> |
||
771 | <?php give_email_preview_buttons_callback( $value ); ?> |
||
772 | <?php echo $description; ?> |
||
773 | </td> |
||
774 | </tr><?php |
||
775 | break; |
||
776 | |||
777 | // Custom: API field. |
||
778 | case 'api' : |
||
779 | give_api_callback(); |
||
780 | echo $description; |
||
781 | break; |
||
782 | |||
783 | // Custom: Gateway API key. |
||
784 | case 'api_key' : |
||
785 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
786 | $type = ! empty( $option_value ) ? 'password' : 'text'; |
||
787 | ?> |
||
788 | <tr valign="top" <?php echo ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : '' ?>> |
||
789 | <th scope="row" class="titledesc"> |
||
790 | <label |
||
791 | for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo self::get_field_title( $value ); ?></label> |
||
792 | </th> |
||
793 | <td class="give-forminp give-forminp-<?php echo sanitize_title( $value['type'] ) ?>"> |
||
794 | <input |
||
795 | name="<?php echo esc_attr( $value['id'] ); ?>" |
||
796 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
797 | type="<?php echo esc_attr( $type ); ?>" |
||
798 | style="<?php echo esc_attr( $value['css'] ); ?>" |
||
799 | value="<?php echo esc_attr( trim( $option_value ) ); ?>" |
||
800 | class="give-input-field<?php echo( empty( $value['class'] ) ? '' : ' ' . esc_attr( $value['class'] ) ); ?>" |
||
801 | <?php echo implode( ' ', $custom_attributes ); ?> |
||
802 | /> <?php echo $description; ?> |
||
803 | </td> |
||
804 | </tr><?php |
||
805 | break; |
||
806 | |||
807 | // Note: only for internal use. |
||
808 | case 'chosen' : |
||
809 | |||
810 | // Get option value. |
||
811 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
812 | $option_value = is_array( $option_value ) ? array_fill_keys( $option_value, 'selected' ) : $option_value; |
||
813 | $wrapper_class = ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : ''; |
||
814 | $type = ''; |
||
815 | $allow_new_values = ''; |
||
816 | $name = give_get_field_name( $value ); |
||
817 | |||
818 | // Set attributes based on multiselect datatype. |
||
819 | if ( 'multiselect' === $value['data_type'] ) { |
||
820 | $type = 'multiple'; |
||
821 | $allow_new_values = 'data-allows-new-values="true"'; |
||
822 | $name = $name . '[]'; |
||
823 | $option_value = empty( $option_value ) ? array() : $option_value; |
||
824 | } |
||
825 | |||
826 | $title_prefixes_value = ( is_array( $option_value ) && count( $option_value ) > 0 ) ? |
||
827 | array_merge( $value['options'], $option_value ) : |
||
828 | $value['options']; |
||
829 | |||
830 | ?> |
||
831 | <tr valign="top" <?php echo $wrapper_class; ?>> |
||
832 | <th scope="row" class="titledesc"> |
||
833 | <label for="<?php echo esc_attr( $value['id'] ); ?>"><?php echo esc_attr( self::get_field_title( $value ) ); ?></label> |
||
834 | </th> |
||
835 | <td class="give-forminp give-forminp-<?php echo esc_attr( $value['type'] ); ?>"> |
||
836 | <select |
||
837 | class="give-select-chosen give-chosen-settings" |
||
838 | style="<?php echo esc_attr( $value['style'] ); ?>" |
||
839 | name="<?php echo esc_attr( $name ); ?>" |
||
840 | id="<?php echo esc_attr( $value['id'] ); ?>" |
||
841 | <?php |
||
842 | echo "{$type} {$allow_new_values}"; |
||
843 | echo implode( ' ', $custom_attributes ); |
||
844 | ?> |
||
845 | > |
||
846 | <?php |
||
847 | View Code Duplication | if ( is_array( $title_prefixes_value ) && count( $title_prefixes_value ) > 0 ) { |
|
848 | foreach ( $title_prefixes_value as $key => $item_value ) { |
||
849 | echo sprintf( |
||
850 | '<option %1$s value="%2$s">%2$s</option>', |
||
851 | ( 'selected' === $item_value ) ? 'selected="selected"' : '', |
||
852 | esc_attr( $key ) |
||
853 | ); |
||
854 | } |
||
855 | } |
||
856 | ?> |
||
857 | </select> |
||
858 | <?php echo wp_kses_post( $description ); ?> |
||
859 | </td> |
||
860 | </tr> |
||
861 | <?php |
||
862 | break; |
||
863 | |||
864 | // Custom: Log field. |
||
865 | case 'logs' : |
||
866 | |||
867 | // Get current section. |
||
868 | $current_section = $_GET['section'] = give_get_current_setting_section(); |
||
869 | |||
870 | /** |
||
871 | * Fires for each tab of logs view. |
||
872 | * |
||
873 | * @since 1.0 |
||
874 | */ |
||
875 | do_action( "give_logs_view_{$current_section}" ); |
||
876 | |||
877 | echo $description; |
||
878 | break; |
||
879 | |||
880 | // Custom: Data field. |
||
881 | case 'data' : |
||
882 | |||
883 | include GIVE_PLUGIN_DIR . 'includes/admin/tools/views/html-admin-page-data.php'; |
||
884 | |||
885 | echo $description; |
||
886 | break; |
||
887 | |||
888 | // Custom: Give Docs Link field type. |
||
889 | case 'give_docs_link' : |
||
890 | $wrapper_class = ! empty( $value['wrapper_class'] ) ? 'class="' . $value['wrapper_class'] . '"' : ''; |
||
891 | ?> |
||
892 | <tr valign="top" <?php echo esc_html( $wrapper_class ); ?>> |
||
893 | <td class="give-docs-link" colspan="2"> |
||
894 | <p class="give-docs-link"> |
||
895 | <a href="<?php echo esc_url( $value['url'] ); ?>" target="_blank"> |
||
896 | <?php |
||
897 | echo sprintf( |
||
898 | /* translators: %s Title */ |
||
899 | esc_html__( 'Need Help? See docs on "%s"', 'give' ), |
||
900 | esc_html( $value['title'] ) |
||
901 | ); |
||
902 | ?> |
||
903 | <span class="dashicons dashicons-editor-help"></span> |
||
904 | </a> |
||
905 | </p> |
||
906 | </td> |
||
907 | </tr><?php |
||
908 | break; |
||
909 | |||
910 | // Default: run an action |
||
911 | // You can add or handle your custom field action. |
||
912 | default: |
||
913 | // Get option value. |
||
914 | $option_value = self::get_option( $option_name, $value['id'], $value['default'] ); |
||
915 | do_action( 'give_admin_field_' . $value['type'], $value, $option_value ); |
||
916 | break; |
||
917 | } |
||
918 | } |
||
919 | } |
||
920 | |||
1133 |