LLMS_Metabox_Field
Metabox_Field parent class.
Description Description
Contains base code for each of the Metabox Fields.
Source Source
File: includes/admin/post-types/meta-boxes/fields/llms.class.meta.box.fields.php
abstract class LLMS_Metabox_Field { /** * Global array used in class instance to store field information. * * @var array */ public $field; /** * Global variable to contain meta information about $field. * * @var object */ public $meta; /** * Outputs the head for each of the field types. * * @todo All the unset variables here should be defaulted somewhere else probably. * * @since unknown * @since 3.11.0 Unknown. * @since 6.0.0 Do not print empty labels; do not print the description block if both 'desc' and 'label' are empty. * Avoid retrieving the meta from the db if passed. * @return void */ public function output() { global $post; if ( isset( $this->field['meta'] ) ) { $this->meta = $this->field['meta']; } elseif ( ( ! metadata_exists( 'post', $post->ID, $this->field['id'] ) || 'auto-draft' === $post->post_status ) && ! empty( $this->field['default'] ) ) { $this->meta = $this->field['default']; } else { $this->meta = self::get_post_meta( $post->ID, $this->field['id'] ); } $controller = isset( $this->field['controller'] ) ? ' data-controller="' . $this->field['controller'] . '"' : ''; $controller_value = isset( $this->field['controller_value'] ) ? ' data-controller-value="' . $this->field['controller_value'] . '"' : ''; if ( ! isset( $this->field['group'] ) ) { $this->field['group'] = ''; } if ( ! isset( $this->field['desc_class'] ) ) { $this->field['desc_class'] = ''; } if ( ! isset( $this->field['desc'] ) ) { $this->field['desc'] = ''; } $wrapper_classes = array( 'llms-mb-list' ); $wrapper_classes[] = $this->field['id']; $wrapper_classes[] = $this->field['type']; $wrapper_classes = array_merge( $wrapper_classes, explode( ' ', $this->field['group'] ) ); ?> <li class="<?php echo implode( ' ', $wrapper_classes ); ?>"<?php echo $controller . $controller_value; ?>> <?php if ( ! empty( $this->field['desc'] ) || ! empty( $this->field['label'] ) ) : ?> <div class="description <?php echo $this->field['desc_class']; ?>"> <?php if ( ! empty( $this->field['label'] ) ) : ?> <label for="<?php echo $this->field['id']; ?>"><?php echo $this->field['label']; ?></label> <?php endif; ?> <?php echo $this->field['desc']; ?> <?php if ( isset( $this->field['required'] ) && $this->field['required'] ) : ?> <em>(required)</em><?php endif; ?> </div> <?php endif; } /** * Outputs the tail for each of the field types. * * @since unknown. * * @return void */ public function close_output() { echo '<div class="clear"></div></li>'; } /** * Set the default meta value of a field. * * @since 1.0.0 * @since 3.24.0 Unknown. * * @param int $post_id WP Post ID. * @param string $field_id ID/name of the field. * @return mixed */ public static function get_post_meta( $post_id, $field_id ) { if ( '_post_course_difficulty' === $field_id ) { $difficulties = wp_get_object_terms( $post_id, 'course_difficulty' ); if ( $difficulties ) { return $difficulties[0]->slug; } } else { return get_post_meta( $post_id, $field_id, true ); } } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- close_output — Outputs the tail for each of the field types.
- get_post_meta — Set the default meta value of a field.
- output — Outputs the head for each of the field types.
Changelog Changelog
Version | Description |
---|---|
unknown | unknown |
3.24.0 | Introduced. |