LLMS_Meta_Box_Achievement
Achievements meta box class.
Description Description
Generates the main metabox for the llms_achievement and llms_my_achievement post types.
Source Source
File: includes/admin/post-types/meta-boxes/class.llms.meta.box.achievement.php
class LLMS_Meta_Box_Achievement extends LLMS_Admin_Metabox {
/**
* Configure the metabox settings.
*
* @since 3.0.0
* @since 6.0.0 Added support for the `llms_my_achievement` post type.
*
* @return void
*/
public function configure() {
$this->id = 'lifterlms-achievement';
$this->title = __( 'Achievement Settings', 'lifterlms' );
$this->screens = array(
'llms_achievement',
'llms_my_achievement',
);
$this->priority = 'high';
}
/**
* Builds array of metabox options.
*
* Array is called in output method to display options.
* Appropriate fields are generated based on type.
*
* @since 3.0.0
* @since 3.37.12 Allow some fields to store values with quotes.
* @since 6.0.0 Removed the deprecated achievement background image meta field.
* Made the title field conditional based on viewed post type.
*
* @return array
*/
public function get_fields() {
$fields = array();
if ( 'llms_achievement' === $this->post->post_type ) {
$fields[] = array(
'label' => __( 'Achievement Title', 'lifterlms' ),
'desc' => __( 'The name of the achievement which will be shown to users', 'lifterlms' ),
'id' => $this->prefix . 'achievement_title',
'type' => 'text',
'class' => 'input-full',
'sanitize' => 'no_encode_quotes',
);
}
$fields[] = array(
'label' => __( 'Achievement Content', 'lifterlms' ),
'desc' => __( 'An optional short description of the achievement which will be shown to users', 'lifterlms' ),
'id' => $this->prefix . 'achievement_content',
'type' => 'textarea_w_tags',
'sanitize' => 'no_encode_quotes',
'cols' => 80,
'rows' => 8,
'meta' => $this->post->post_content,
);
return array(
array(
'title' => __( 'General', 'lifterlms' ),
'fields' => $fields,
),
);
}
/**
* Save field in the db.
*
* Expects an already sanitized value.
*
* Stores the `achievement_content` field as `post_content` in favor of storing it in the postmeta table.
*
* @since 6.0.0
*
* @param int $post_id The WP Post ID.
* @param int $field_id The field identifier.
* @param mixed $val Value to save.
* @return bool
*/
protected function save_field_db( $post_id, $field_id, $val ) {
// Save to the post content field.
if ( $this->prefix . 'achievement_content' === $field_id && $this->post->ID === $post_id ) {
return wp_update_post(
array(
'ID' => $post_id,
'post_content' => $val,
)
) ? true : false;
}
return parent::save_field_db( $post_id, $field_id, $val );
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- configure — Configure the metabox settings.
- get_fields — Builds array of metabox options.
- save_field_db — Save field in the db.
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0 | Introduced. |