LLMS_Meta_Box_Visibility
LLMS_Meta_Box_Visibility class
Description Description
Adds radios to the publishing misc. actions box for courses and memberships.
Source Source
File: includes/admin/post-types/meta-boxes/class.llms.meta.box.visibility.php
class LLMS_Meta_Box_Visibility { /** * Constructor * * @since 3.6.0 */ public function __construct() { add_action( 'post_submitbox_misc_actions', array( $this, 'output' ) ); add_action( 'save_post_course', array( $this, 'save' ), 10, 1 ); add_action( 'save_post_llms_membership', array( $this, 'save' ), 10, 1 ); } /** * Output HTML for the settings * * @since 3.6.0 * @since 3.35.0 Add nonce verification. * * @return void */ public function output() { global $post; if ( ! in_array( $post->post_type, array( 'course', 'llms_membership' ) ) ) { return; } $product = new LLMS_Product( $post ); $visibility = $product->get_catalog_visibility(); $options = llms_get_product_visibility_options(); $name = isset( $options[ $visibility ] ) ? $options[ $visibility ] : $visibility; ?> <div class="misc-pub-section" id="llms-catalog-visibility"> <span style="color:#82878c;" class="dashicons dashicons-welcome-view-site"></span> <?php _e( 'Catalog visibility:', 'lifterlms' ); ?> <strong id="llms-catalog-visibility-display"><?php echo $name; ?></strong> <a href="#llms-catalog-visibility" class="llms-edit-catalog-visibility hide-if-no-js"><?php _e( 'Edit', 'lifterlms' ); ?></a> <div id="llms-catalog-visibility-select" class="hide-if-js"> <p><?php printf( __( 'Choose the visibility of the %s in your catalog. It will always be available directly.', 'lifterlms' ), $product->get_post_type_label() ); ?></p> <?php foreach ( $options as $name => $label ) : ?> <input data-label="<?php echo esc_attr( $label ); ?>" id="_llms_visibility_<?php echo esc_attr( $name ); ?>" name="_llms_visibility" type="radio" value="<?php echo esc_attr( $name ); ?>" <?php checked( $visibility, $name ); ?> /> <label for="_llms_visibility_<?php echo esc_attr( $name ); ?>" class="selectit"><?php echo esc_attr( $label ); ?></label><br> <?php endforeach; ?> <p> <a href="#llms-catalog-visibility" class="llms-save-catalog-visibility hide-if-no-js button"><?php _e( 'OK', 'lifterlms' ); ?></a> <a href="#llms-catalog-visibility" class="llms-cancel-catalog-visibility hide-if-no-js"><?php _e( 'Cancel', 'lifterlms' ); ?></a> </p> <?php wp_nonce_field( 'llms-catalog-visibility-nonce', 'llms_catalog_visibility_nonce' ); ?> </div> </div> <?php } /** * Save the settings * * @since 3.6.0 * @since 3.35.0 Sanitize `$_POST` data and verify nonce. * @since 5.9.0 Stop using deprecated `FILTER_SANITIZE_STRING`. * * @param int $post_id WP Post ID. * @return void */ public function save( $post_id ) { if ( ! llms_verify_nonce( 'llms_catalog_visibility_nonce', 'llms-catalog-visibility-nonce' ) ) { return; } $visibility = llms_filter_input_sanitize_string( INPUT_POST, '_llms_visibility' ); if ( ! $visibility ) { return; } $product = new LLMS_Product( $post_id ); $product->set_catalog_visibility( $visibility ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- output — Output HTML for the settings
- save — Save the settings
Changelog Changelog
Version | Description |
---|---|
3.6.0 | |
3.35.0 | Introduced. |