| Conditions | 7 |
| Paths | 4 |
| Total Lines | 95 |
| Lines | 0 |
| Ratio | 0 % |
| 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 |
||
| 38 | public function define_fields() { |
||
| 39 | |||
| 40 | $category_options = array(); |
||
| 41 | $category_lists = array(); |
||
| 42 | $categories = get_terms( 'give_forms_category', apply_filters( 'give_forms_category_dropdown', array() ) ); |
||
| 43 | if ( give_is_setting_enabled( give_get_option( 'categories' ) ) && ! is_wp_error( $categories ) ) { |
||
| 44 | foreach ( $categories as $category ) { |
||
| 45 | $category_options[ absint( $category->term_id ) ] = esc_html( $category->name ); |
||
| 46 | } |
||
| 47 | |||
| 48 | $category_lists['type'] = 'listbox'; |
||
| 49 | $category_lists['name'] = 'cats'; |
||
| 50 | $category_lists['label'] = __( 'Select a Donation Form Category:', 'give' ); |
||
| 51 | $category_lists['tooltip'] = __( 'Select a Donation Form Category', 'give' ); |
||
| 52 | $category_lists['options'] = $category_options; |
||
| 53 | } |
||
| 54 | |||
| 55 | $tag_options = array(); |
||
| 56 | $tag_lists = array(); |
||
| 57 | $tags = get_terms( 'give_forms_tag', apply_filters( 'give_forms_tag_dropdown', array() ) ); |
||
| 58 | if ( give_is_setting_enabled( give_get_option( 'tags' ) ) && ! is_wp_error( $tags ) ) { |
||
| 59 | $tags = get_terms( 'give_forms_tag', apply_filters( 'give_forms_tag_dropdown', array() ) ); |
||
| 60 | foreach ( $tags as $tag ) { |
||
| 61 | $tag_options[ absint( $tag->term_id ) ] = esc_html( $tag->name ); |
||
| 62 | } |
||
| 63 | |||
| 64 | $tag_lists['type'] = 'listbox'; |
||
| 65 | $tag_lists['name'] = 'tags'; |
||
| 66 | $tag_lists['label'] = __( 'Select a Donation Form Tag:', 'give' ); |
||
| 67 | $tag_lists['tooltip'] = __( 'Select a Donation Form Tag', 'give' ); |
||
| 68 | $tag_lists['options'] = $tag_options; |
||
| 69 | } |
||
| 70 | |||
| 71 | return array( |
||
| 72 | array( |
||
| 73 | 'type' => 'container', |
||
| 74 | 'html' => sprintf( '<p class="give-totals-shortcode-container-message">%s</p>', |
||
| 75 | __( 'This shortcode shows the total amount raised towards a custom goal for one or several forms regardless of whether they have goals enabled or not.', 'give' ) |
||
| 76 | ), |
||
| 77 | ), |
||
| 78 | array( |
||
| 79 | 'type' => 'container', |
||
| 80 | 'html' => sprintf( '<p class="strong margin-top">%s</p>', __( 'Shortcode Configuration', 'give' ) ), |
||
| 81 | ), |
||
| 82 | array( |
||
| 83 | 'type' => 'textbox', |
||
| 84 | 'name' => 'ids', |
||
| 85 | 'label' => __( 'Donation Form IDs:', 'give' ), |
||
| 86 | 'tooltip' => __( 'Enter the IDs separated by commas for the donation forms you would like to combine within the totals.', 'give' ), |
||
| 87 | ), |
||
| 88 | $category_lists, |
||
| 89 | $tag_lists, |
||
| 90 | array( |
||
| 91 | 'type' => 'textbox', |
||
| 92 | 'name' => 'total_goal', |
||
| 93 | 'label' => __( 'Total Goal:', 'give' ), |
||
| 94 | 'tooltip' => __( 'Enter the total goal amount that you would like to display.', 'give' ), |
||
| 95 | ), |
||
| 96 | array( |
||
| 97 | 'type' => 'textbox', |
||
| 98 | 'name' => 'message', |
||
| 99 | 'label' => __( 'Message:', 'give' ), |
||
| 100 | 'tooltip' => __( 'Enter a message to display encouraging donors to support the goal.', 'give' ), |
||
| 101 | 'value' => apply_filters( 'give_totals_message', __( 'Hey! We\'ve raised {total} of the {total_goal} we are trying to raise for this campaign!', 'give' ) ), |
||
| 102 | 'multiline' => true, |
||
| 103 | 'minWidth' => 300, |
||
| 104 | 'minHeight' => 60, |
||
| 105 | ), |
||
| 106 | array( |
||
| 107 | 'type' => 'textbox', |
||
| 108 | 'name' => 'link', |
||
| 109 | 'label' => __( 'Link:', 'give' ), |
||
| 110 | 'tooltip' => __( 'Enter a link to the main campaign donation form.', 'give' ), |
||
| 111 | ), |
||
| 112 | array( |
||
| 113 | 'type' => 'textbox', |
||
| 114 | 'name' => 'link_text', |
||
| 115 | 'label' => __( 'Link Text:', 'give' ), |
||
| 116 | 'tooltip' => __( 'Enter hyperlink text for the link to the main campaign donation form.', 'give' ), |
||
| 117 | 'value' => __( 'Donate!', 'give' ), |
||
| 118 | ), |
||
| 119 | array( |
||
| 120 | 'type' => 'listbox', |
||
| 121 | 'name' => 'progress_bar', |
||
| 122 | 'label' => __( 'Show Progress Bar:', 'give' ), |
||
| 123 | 'tooltip' => __( 'Select whether you would like to show a goal progress bar.', 'give' ), |
||
| 124 | 'options' => array( |
||
| 125 | 'true' => __( 'Show', 'give' ), |
||
| 126 | 'false' => __( 'Hide', 'give' ), |
||
| 127 | ), |
||
| 128 | 'value' => 'true', |
||
| 129 | ), |
||
| 130 | |||
| 131 | ); |
||
| 132 | } |
||
| 133 | } |
||
| 136 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.