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
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 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. |