PluginProbe
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses / 4.1.7.2
LearnPress – WordPress LMS Plugin for Create and Sell Online Courses v4.1.7.2
4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.9.1 4.3.9 4.3.8 4.3.7 4.1.6.9 4.1.6.9.1 4.1.6.9.2 4.1.6.9.3 4.1.6.9.4 4.1.7 4.1.7.1 4.1.7.2 4.1.7.3 4.1.7.3.1 4.1.7.3.2 4.2.0 All 139 releases
learnpress / inc / admin / views / meta-boxes / class-lp-meta-box.php

class-lp-meta-box.php in LearnPress – WordPress LMS Plugin for Create and Sell Online Courses 4.1.7.2, at inc/admin/views/meta-boxes/class-lp-meta-box.php

96 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * LP Admin Metabox
5 *
6 * @author Nhamdv
7 * @version 4.0.0
8 */
9 abstract class LP_Meta_Box {
10
11 private static $saved_meta_boxes = false;
12
13 public $post_type = LP_COURSE_CPT;
14
15 /**
16 * LP_Meta_Box constructor.
17 */
18 public function __construct() {
19 $this->includes();
20
21 add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
22 add_action( 'save_post', array( $this, 'save_meta_boxes' ), 100, 2 );
23 add_action( 'learnpress_save_' . $this->post_type . '_metabox', array( $this, 'save' ) );
24
25 add_action( 'learnpress_save_lp_course_metabox', 'LP_Meta_Box_Course::save_eduma_child_metabox_v3', 10 );
26 }
27
28 // Include fields.
29 public function includes() {
30 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/class-lp-meta-box-fields.php';
31 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/text.php';
32 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/duration.php';
33 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/checkbox.php';
34 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/textarea.php';
35 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/file.php';
36 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/radio.php';
37 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/select.php';
38 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/extra.php';
39 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/extra-faq.php';
40 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/date.php';
41 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/wysiwyg.php';
42 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/repeater.php';
43 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/fields/autocomplete.php';
44 include_once LP_PLUGIN_PATH . 'inc/admin/views/meta-boxes/lp-meta-box-functions.php';
45 }
46
47 public function add_meta_box() {}
48
49 public function metabox( $post_id ) {
50 return array();
51 }
52
53 public function output( $post ) {
54 wp_nonce_field( 'learnpress_save_meta_box', 'learnpress_meta_box_nonce' );
55 }
56
57 public function save( $post_id ) {
58 if ( ! empty( $this->metabox( $post_id ) ) ) {
59 foreach ( $this->metabox( $post_id ) as $key => $object ) {
60 if ( is_a( $object, 'LP_Meta_Box_Field' ) ) {
61 $object->id = $key;
62 $object->save( $post_id );
63 }
64 }
65 }
66 }
67
68 /**
69 * @param id $post_id
70 * @param WP_Post $post
71 */
72 public function save_meta_boxes( $post_id = 0, $post = null ) {
73 $post_id = absint( $post_id );
74
75 if ( empty( $post_id ) || empty( $post ) || self::$saved_meta_boxes ) {
76 return;
77 }
78
79 if ( empty( $_POST['learnpress_meta_box_nonce'] ) || ! wp_verify_nonce( wp_unslash( $_POST['learnpress_meta_box_nonce'] ), 'learnpress_save_meta_box' ) ) {
80 return;
81 }
82
83 if ( empty( $_POST['post_ID'] ) || absint( $_POST['post_ID'] ) !== $post_id ) {
84 return;
85 }
86
87 if ( ! current_user_can( 'edit_post', $post_id ) ) {
88 return;
89 }
90
91 self::$saved_meta_boxes = true;
92
93 do_action( 'learnpress_save_' . $post->post_type . '_metabox', $post_id, $post );
94 }
95 }
96