PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / NavigationMenuLinks / Backend.php
wp-user-avatar / src / NavigationMenuLinks Last commit date
Backend.php 5 years ago Frontend.php 5 years ago Init.php 5 years ago PP_Nav_Items.php 5 years ago
Backend.php
161 lines
1 <?php
2
3 namespace ProfilePress\Core\NavigationMenuLinks;
4
5
6 if ( ! defined('ABSPATH')) {
7 exit; // Exit if accessed directly
8 }
9
10 class Backend
11 {
12 private static $instance = null;
13
14 public function __construct()
15 {
16 /* Add a metabox in admin menu page */
17 add_action('admin_head-nav-menus.php', array($this, 'add_nav_menu_metabox'));
18
19 /* Modify the "type_label" */
20 add_filter('wp_setup_nav_menu_item', array($this, 'nav_menu_type_label'));
21
22 add_filter('customize_nav_menu_available_item_types', array($this, 'register_customize_nav_menu_item_types'));
23 add_filter('customize_nav_menu_available_items', array($this, 'register_customize_nav_menu_items'), 10, 4);
24 }
25
26 public function link_elements()
27 {
28 return array(
29 '#pp-login#' => __('Log In', 'wp-navigation-menu-links'),
30 '#pp-logout#' => __('Log Out', 'wp-navigation-menu-links'),
31 '#pp-signup#' => __('Sign Up', 'wp-navigation-menu-links'),
32 '#pp-editprofile#' => __('Edit Profile', 'wp-navigation-menu-links'),
33 '#pp-myprofile#' => __('My Profile', 'wp-navigation-menu-links'),
34 '#pp-loginout#' => __('Login', 'wp-navigation-menu-links') . ' | ' . __('Log Out', 'wp-navigation-menu-links'),
35 );
36 }
37
38 /**
39 * @param array $item_types Menu item types.
40 *
41 * @return array
42 */
43 public function register_customize_nav_menu_item_types($item_types)
44 {
45 $item_types[] = array(
46 'title' => __('ProfilePress Links', 'woocommerce'),
47 'type_label' => __('ProfilePress Link', 'woocommerce'),
48 'type' => 'ppnavmenu',
49 'object' => 'ppnavmenu_links',
50 );
51
52 return $item_types;
53 }
54
55 /**
56 * @param array $items List of nav menu items.
57 * @param string $type Nav menu type.
58 * @param string $object Nav menu object.
59 * @param integer $page Page number.
60 *
61 * @return array
62 */
63 public function register_customize_nav_menu_items($items = array(), $type = '', $object = '', $page = 0)
64 {
65 if ('ppnavmenu_links' !== $object) {
66 return $items;
67 }
68
69 // Don't allow pagination since all items are loaded at once.
70 if (0 < $page) {
71 return $items;
72 }
73
74 foreach ($this->link_elements() as $id => $title) {
75 $items[] = array(
76 'id' => str_replace('#', '', $id),
77 'title' => $title,
78 'type_label' => __('ProfilePress Link', 'woocommerce'),
79 'url' => $id,
80 );
81 }
82
83 return $items;
84 }
85
86
87 public function add_nav_menu_metabox()
88 {
89 add_meta_box('ppnavmenu', __('ProfilePress Links', 'wp-navigation-menu-links'), array($this, 'nav_menu_metabox'), 'nav-menus', 'side', 'default');
90 }
91
92 public function nav_menu_metabox($object)
93 {
94 global $nav_menu_selected_id;
95
96 $elems = $this->link_elements();
97
98 $elems_obj = array();
99 foreach ($elems as $value => $title) {
100 $elems_obj[$title] = new PP_Nav_Items();
101 $elems_obj[$title]->object_id = esc_html($value);
102 $elems_obj[$title]->title = esc_html($title);
103 $elems_obj[$title]->url = esc_html($value);
104 }
105
106 $walker = new \Walker_Nav_Menu_Checklist(array());
107 ?>
108 <div id="pp-links" class="pplinksdiv">
109
110 <div id="tabs-panel-pp-links-all" class="tabs-panel tabs-panel-view-all tabs-panel-active">
111 <ul id="pp-linkschecklist" class="list:pp-links categorychecklist form-no-clear">
112 <?php echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $elems_obj), 0,
113 (object)array('walker' => $walker)); ?>
114 </ul>
115 </div>
116
117 <div class="button-controls">
118 <span class="add-to-menu">
119 <input type="submit"<?php disabled($nav_menu_selected_id, 0); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-pp-links-menu-item" id="submit-pp-links"/>
120 <span class="spinner"></span>
121 </span>
122
123 <div id="help-login-links"><br/><br/>
124 <p><strong>Do not change the value of the "URL" field.</strong></p>
125 </div>
126 </div>
127
128 </div>
129 <?php
130 }
131
132 public function nav_menu_type_label($menu_item)
133 {
134 $elems = array(
135 '#pp-login#',
136 '#pp-logout#',
137 '#pp-signup#',
138 '#pp-editprofile#',
139 '#pp-myprofile#',
140 '#pp-loginout#'
141 );
142 if (isset($menu_item->object, $menu_item->url) &&
143 'custom' == $menu_item->object &&
144 in_array($menu_item->url, $elems)
145 ) {
146 $menu_item->type_label = __('ProfilePress Link', 'wp-navigation-menu-links');
147 }
148
149 return $menu_item;
150 }
151
152 public static function get_instance()
153 {
154 // If the single instance hasn't been set, set it now.
155 if (null == self::$instance) {
156 self::$instance = new self;
157 }
158
159 return self::$instance;
160 }
161 }