1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
112
113
114
115
116
|
<?php
/** * Description of SwpmMembershipLevel */ class SwpmMembershipLevel {
const NO_EXPIRY = 0; const DAYS = 1; const WEEKS = 2; const MONTHS = 3; const YEARS = 4; const FIXED_DATE = 5;
private static $_instance = null;
private function __construct() { //NOP }
public static function get_instance() { self::$_instance = empty(self::$_instance) ? new SwpmMembershipLevel() : self::$_instance; return self::$_instance; }
public static function get_level_duration_type_string($type){ $type_string = ''; switch($type){ case '0': $type_string = 'No Expiry or Until Cancelled'; break; case '1': $type_string = 'Days'; break; case '2': $type_string = 'Weeks'; break; case '3': $type_string = 'Months'; break; case '4': $type_string = 'Years'; break; case '5': $type_string = 'Fixed Date'; break; } return $type_string; } public function create_level() { //Check we are on the admin end and user has management permission SwpmMiscUtils::check_user_permission_and_is_admin('membership level creation'); //Check nonce if ( !isset($_POST['_wpnonce_create_swpmlevel_admin_end']) || !wp_verify_nonce($_POST['_wpnonce_create_swpmlevel_admin_end'], 'create_swpmlevel_admin_end' )){ //Nonce check failed. wp_die(SwpmUtils::_("Error! Nonce verification failed for membership level creation from admin end.")); } global $wpdb; $level = SwpmTransfer::$default_level_fields; $form = new SwpmLevelForm($level); if ($form->is_valid()) { $level_info = $form->get_sanitized(); $wpdb->insert($wpdb->prefix . "swpm_membership_tbl", $level_info); $id = $wpdb->insert_id; //save email_activation option $email_activation=filter_input(INPUT_POST,'email_activation',FILTER_SANITIZE_NUMBER_INT); update_option('swpm_email_activation_lvl_'.$id, $email_activation, false);
$custom = apply_filters('swpm_admin_add_membership_level', array()); $this->save_custom_fields($id, $custom); $message = array('succeeded' => true, 'message' => '<p>' . SwpmUtils::_('Membership Level Creation Successful.') . '</p>'); SwpmTransfer::get_instance()->set('status', $message); wp_redirect('admin.php?page=simple_wp_membership_levels'); exit(0); } $message = array('succeeded' => false, 'message' => SwpmUtils::_('Please correct the following:'), 'extra' => $form->get_errors()); SwpmTransfer::get_instance()->set('status', $message); }
public function edit_level($id) { //Check we are on the admin end and user has management permission SwpmMiscUtils::check_user_permission_and_is_admin('membership level edit'); //Check nonce if ( !isset($_POST['_wpnonce_edit_swpmlevel_admin_end']) || !wp_verify_nonce($_POST['_wpnonce_edit_swpmlevel_admin_end'], 'edit_swpmlevel_admin_end' )){ //Nonce check failed. wp_die(SwpmUtils::_("Error! Nonce verification failed for membership level edit from admin end.")); } global $wpdb; $query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = %d", $id); $level = $wpdb->get_row($query, ARRAY_A); $form = new SwpmLevelForm($level); if ($form->is_valid()) { $wpdb->update($wpdb->prefix . "swpm_membership_tbl", $form->get_sanitized(), array('id' => $id)); //@todo meta table and collect all relevant info and pass as argument //save email_activation option $email_activation=filter_input(INPUT_POST,'email_activation',FILTER_SANITIZE_NUMBER_INT); update_option('swpm_email_activation_lvl_'.$id, $email_activation, false);
$custom = apply_filters('swpm_admin_edit_membership_level', array(), $id); $this->save_custom_fields($id, $custom); $message = array('succeeded' => true, 'message' => '<p>'. SwpmUtils::_('Membership Level Updated Successfully.') . '</p>'); SwpmTransfer::get_instance()->set('status', $message); wp_redirect('admin.php?page=simple_wp_membership_levels'); exit(0); } $message = array('succeeded' => false, 'message' => SwpmUtils::_('Please correct the following:'), 'extra' => $form->get_errors()); SwpmTransfer::get_instance()->set('status', $message); }
private function save_custom_fields($level_id, $data) { $custom_obj = SwpmMembershipLevelCustom::get_instance_by_id($level_id); foreach ($data as $item) { $custom_obj->set($item); } }
}
|