checkbox-field.php
7 years ago
date-field.php
7 years ago
file-field.php
1 month ago
full-line-checkbox-field.php
4 years ago
multiselect-field.php
7 years ago
password-field.php
7 years ago
radio-field.php
7 years ago
recaptcha-field.php
7 years ago
recaptcha-v3-field.php
2 years ago
select-field.php
4 years ago
term-checklist-field.php
6 years ago
term-multiselect-field.php
6 years ago
term-select-field.php
2 years ago
text-field.php
7 years ago
textarea-field.php
7 years ago
uploaded-file-html.php
7 years ago
wp-editor-field.php
6 years ago
term-select-field.php
59 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Shows term `select` form field on job listing forms. |
| 4 | * |
| 5 | * This template can be overridden by copying it to yourtheme/job_manager/form-fields/term-select-field.php. |
| 6 | * |
| 7 | * @see https://wpjobmanager.com/document/template-overrides/ |
| 8 | * @author Automattic |
| 9 | * @package wp-job-manager |
| 10 | * @category Template |
| 11 | * @version 2.3.0 |
| 12 | * |
| 13 | * @var array $key Form field name. |
| 14 | * @var array $field Form field data. |
| 15 | * |
| 16 | */ |
| 17 | |
| 18 | if ( ! defined( 'ABSPATH' ) ) { |
| 19 | exit; // Exit if accessed directly. |
| 20 | } |
| 21 | |
| 22 | $placeholder = array_key_exists( 'placeholder', $field ) && ! empty( $field['placeholder'] ) ? $field['placeholder'] : esc_html__( 'Select an Option...', 'wp-job-manager' ); |
| 23 | $selected = null; |
| 24 | |
| 25 | // Get selected value. |
| 26 | if ( isset( $field['value'] ) ) { |
| 27 | $selected = $field['value']; |
| 28 | } elseif ( is_int( $field['default'] ) ) { |
| 29 | $selected = $field['default']; |
| 30 | } elseif ( ! empty( $field['default'] ) ) { |
| 31 | $default = get_term_by( 'slug', $field['default'], $field['taxonomy'] ); |
| 32 | if ( ! empty( $default ) ) { |
| 33 | $selected = $default->term_id; |
| 34 | } |
| 35 | } else { |
| 36 | $selected = ''; |
| 37 | } |
| 38 | |
| 39 | // Select only supports 1 value. |
| 40 | if ( is_array( $selected ) ) { |
| 41 | $selected = current( $selected ); |
| 42 | } |
| 43 | |
| 44 | $args = [ |
| 45 | 'taxonomy' => $field['taxonomy'], |
| 46 | 'hierarchical' => 1, |
| 47 | 'show_option_all' => false, |
| 48 | 'option_none_value' => '', |
| 49 | 'show_option_none' => $placeholder, |
| 50 | 'name' => isset( $field['name'] ) ? $field['name'] : $key, |
| 51 | 'orderby' => 'name', |
| 52 | 'selected' => $selected, |
| 53 | 'hide_empty' => false, |
| 54 | ]; |
| 55 | |
| 56 | wp_dropdown_categories( apply_filters( 'job_manager_term_select_field_wp_dropdown_categories_args', $args, $key, $field ) ); |
| 57 | |
| 58 | if ( ! empty( $field['description'] ) ) : ?><small class="description"><?php echo wp_kses_post( $field['description'] ); ?></small><?php endif; ?> |
| 59 |