403Webshell
Server IP : 43.141.50.122  /  Your IP : 113.219.202.173
Web Server : Apache
System : Linux VM-8-5-opencloudos 6.6.34-9.oc9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 19 19:35:45 CST 2024 x86_64
User : www ( 1000)
PHP Version : 8.1.27
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/wwwroot/www.ucppt.com/wp-content/plugins/wpcom-member/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/www.ucppt.com/wp-content/plugins/wpcom-member/includes/nav-menu.php
<?php
namespace WPCOM\Member {
	class Nav_Menu {
		protected $theme;
		function __construct(){
			if(!class_exists('\WPCOM')){
				add_action( 'admin_init', array( $this, 'admin_init' ) );
				add_filter( 'wp_get_nav_menu_items',array( $this, 'nav_menu_items' ), 50);
			}
			remove_filter('wpcom_is_login', 'wpcom_add_profile_menus');
			add_filter('wpcom_is_login', array($this, 'add_profile_menus_info'));
			add_filter('wpcom_profile_menus', array($this, 'add_profile_menus'));
		}

		public function admin_init(){
			add_meta_box( 'wpcom_member_user_info', '用户登录信息', array( $this, 'user_info' ), 'nav-menus', 'side', 'high' );
		}

		public function user_info() {
			global $_nav_menu_placeholder, $nav_menu_selected_id;
			$_nav_menu_placeholder = 0 > $_nav_menu_placeholder ? $_nav_menu_placeholder - 1 : -1;
			?>
			<div id="posttype-user-info" class="posttypediv">
				<div id="tabs-panel-user-info" class="tabs-panel tabs-panel-active">
					<ul id="user-info-checklist" class="categorychecklist form-no-clear">
						<li>
							<label class="menu-item-title">
								<input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-object-id]" value="-1"> 用户注册登录信息
							</label>
							<input type="hidden" class="menu-item-type" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-type]" value="custom">
							<input type="hidden" class="menu-item-title" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-title]" value="注册登录">
							<input type="hidden" class="menu-item-url" name="menu-item[<?php echo (int) $_nav_menu_placeholder; ?>][menu-item-url]" value="#wpcom_user_info">
						</li>
					</ul>
				</div>
				<p class="button-controls">
					<span class="add-to-menu">
						<input type="submit" <?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="添加到菜单" name="add-post-type-menu-item" id="submit-posttype-user-info">
						<span class="spinner"></span>
					</span>
				</p>
				<script>
					jQuery(function( $ ) {$( '#update-nav-menu' ).on('click', function(e){
						if ( e.target && e.target.className && -1 != e.target.className.indexOf( 'item-edit' ) ) {
							$( "input[value='#wpcom_user_info'][type=text]" ).parent().parent().parent().each(function(){
								let $el = $(this).closest('.menu-item-settings');
								if($el.find('p.description-inited').length === 0) {
									$el.find('> p.description').hide();
									$el.prepend('<p class="description description-inited"><b>功能说明:</b></p><p>在菜单里面显示用户中心插件注册的登录入口,已登录后显示账号设置入口</p>');
								}
							})
						}
					})});
				</script>
			</div>
			<?php
		}

		public function nav_menu_items($items){
			global $pagenow;
			if(!empty($items) && $pagenow === 'index.php' && !is_customize_preview()){
				$options = $GLOBALS['wpmx_options'];
				$user_id = get_current_user_id();
				$menus = array();
				foreach($items as $item){
					if($item && isset($item->url) && $item->url === '#wpcom_user_info'){
						if($user_id){
							$current_user = wp_get_current_user();
							$avatar = get_avatar_url( $user_id, 60 );
							$display_name = $current_user->display_name;
							$item->title = ($avatar ? '<img class="user-avatar" src="'.esc_url($avatar).'" alt="'.esc_attr($display_name).'">' : '') . $display_name;
							$item->url = wpcom_account_url();
							$item->classes[] = 'wpcom-user-info';
							$menus[] = $item;

							$user_menus = array();
							$show_profile = apply_filters( 'wpcom_member_show_profile' , true );
							if($show_profile) {
								$user_menus[] = array(
									'url' => get_author_posts_url( $current_user->ID ),
									'title' => __('Profile', WPMX_TD)
								);
							}

							if(isset($options['profile_menu_url']) && isset($options['profile_menu_title']) && $options['profile_menu_url']){
								$i=1;
								foreach($options['profile_menu_url'] as $menu){
									if($menu && $options['profile_menu_title'][$i-1]) {
										$user_menus[] = array(
											'url' => esc_url($menu),
											'title' => $options['profile_menu_title'][$i-1]
										);
									}
									$i++;
								}
							}

							$user_menus[] = array(
								'url' => $item->url,
								'title' => __('Account', WPMX_TD)
							);
							$user_menus[] = array(
								'url' => wp_logout_url(),
								'title' => __( 'Logout', WPMX_TD )
							);
							$user_menus = apply_filters('wpcom_profile_menus', $user_menus);
							foreach($user_menus as $x => $uitem){
								$uitem['ID'] = $item->ID .'-' . $x;
								$uitem['menu_order'] = $item->menu_order * 999 + $x;
								$uitem['menu_item_parent'] = $item->ID;
								$uitem['classes'] = array();
								$uitem['target'] = $item->target;
								$uitem['db_id'] = $uitem['ID'];
								$uitem['xfn'] = '';
								$uitem['type'] = 'custom';
								$uitem['object'] = 'custom';
								$uitem['object_id'] = $uitem['ID'];
								$uitem['type_label'] = $item->type_label;
								$uitem['post_parent'] = 0;
								$uitem['post_type'] = 'nav_menu_item';
								$menus[] = $uitem;
							}
						}else{
							$menus[] = $item;
							$menus[] = $item;
						}
					}else{
						$menus[] = $item;
					}
				}

				$items = [];
				$checked = 0;
				foreach($menus as $i => $item){
					$item = (object)(array)$item;
					if($item && isset($item->url) && $item->url === '#wpcom_user_info'){
						if(!$user_id){
							if($checked){
								$item->url = wp_registration_url();
								$item->title = __('Sign up', WPMX_TD);
								$item->ID = $item->ID . '-register';
								$item->menu_order += 1;
								$items[$i] = $item;
							}else{
								$item->url = wp_login_url();
								$item->title = __('Sign in', WPMX_TD);
								$item->ID = $item->ID . '-login';
								$items[$i] = $item;
							}
							$checked = 1;
						}
					}else{
						$items[$i] = $item;
					}
				}
			}
			return $items;
		}

		function add_profile_menus($menus){
			if($menus && !empty($menus)){
				$options = $GLOBALS['wpmx_options'];
				$current_user = wp_get_current_user();
				if( isset($options['member_messages']) && $options['member_messages']=='1' &&
					(
						( defined('FRAMEWORK_PATH') && file_exists(FRAMEWORK_PATH . '/includes/messages.php') )
						|| ( defined('WPCOM_MP_DIR') && file_exists(WPCOM_MP_DIR . 'includes/messages.php') )
					)
				) {
					$unread_messages = apply_filters('wpcom_unread_messages_count', 0, $current_user->ID);
					$menu = array(
						'url' => wpcom_subpage_url('messages'),
						'title' => __('Messages', WPMX_TD) . ($unread_messages ? '<span class="num-count">'.$unread_messages.'</span>' : '')
					);
					array_splice($menus, -2, 0, array($menu));
				}

				if( isset($options['member_notify']) && $options['member_notify']=='1' &&
					(
						( defined('FRAMEWORK_PATH') && file_exists(FRAMEWORK_PATH . '/includes/notifications.php') )
						|| ( defined('WPCOM_MP_DIR') && file_exists(WPCOM_MP_DIR . 'includes/notifications.php') )
					)
				) {
					$unread_messages = apply_filters('wpcom_unread_notifications_count', 0, $current_user->ID);
					$menu = array(
						'url' => wpcom_subpage_url('notifications'),
						'title' => __('Notifications', WPMX_TD) . ($unread_messages ? '<span class="num-count">'.$unread_messages.'</span>' : '')
					);
					array_splice($menus, -2, 0, array($menu));
				}
			}
			return $menus;
		}

		function add_profile_menus_info($res){
			if($res && isset($res['menus']) && !empty($res['menus'])){
				$options = $GLOBALS['wpmx_options'];
				$current_user = wp_get_current_user();
				if( isset($options['member_messages']) && $options['member_messages']=='1' &&
					(
						( defined('FRAMEWORK_PATH') && file_exists(FRAMEWORK_PATH . '/includes/messages.php') )
						|| ( defined('WPCOM_MP_DIR') && file_exists(WPCOM_MP_DIR . 'includes/messages.php') )
					)
				) {
					$res['messages'] = apply_filters('wpcom_unread_messages_count', 0, $current_user->ID);
				}
				if( isset($options['member_notify']) && $options['member_notify']=='1' &&
					(
						( defined('FRAMEWORK_PATH') && file_exists(FRAMEWORK_PATH . '/includes/notifications.php') )
						|| ( defined('WPCOM_MP_DIR') && file_exists(WPCOM_MP_DIR . 'includes/notifications.php') )
					)
				) {
					$res['notifications'] = apply_filters('wpcom_unread_notifications_count', 0, $current_user->ID);
				}
			}
			return $res;
		}
	}

	new Nav_Menu();
}

namespace {
	add_action('init', function() {
		wp_register_script('wpcom-member-login', WPMX_URI . 'js/blocks.js', array('wp-blocks', 'wp-element', 'wp-components'), WPMX_VERSION, true);
		register_block_type('wpcom/login', array(
			'editor_script' => 'wpcom-member-login',
			'uses_context' => [
				"textColor",
				"customTextColor",
				"backgroundColor",
				"customBackgroundColor",
				"overlayTextColor",
				"customOverlayTextColor",
				"overlayBackgroundColor",
				"customOverlayBackgroundColor",
				"fontSize",
				"customFontSize",
				"showSubmenuIcon",
				"maxNestingLevel",
				"openSubmenusOnClick",
				"style"
			],
			'render_callback' => function ($attributes, $content, $block) {
				$current_user = wp_get_current_user();
				$menu = '';
				if($current_user && isset($current_user->ID) && $current_user->ID){
					$avatar = get_avatar_url($current_user->ID, 60 );
					$display_name = $current_user->display_name;
					$label = ($avatar ? '<img class="user-avatar" src="'.esc_url($avatar).'" alt="'.esc_attr($display_name).'">' : '') . $display_name;
					$menu_block = [
						'blockName' => 'core/navigation-submenu',
						'attrs' => [
							'label' => $label,
							'url' => wpcom_account_url(),
							'kind' => 'custom'
						],
						'innerBlocks' => [],
						'innerContent' => []
					];

					$user_menus = array();
					$show_profile = apply_filters('wpcom_member_show_profile', true);
					if ($show_profile) {
						$user_menus[] = array(
							'url' => get_author_posts_url($current_user->ID),
							'title' => __('Profile', WPMX_TD)
						);
					}

					if (isset($options['profile_menu_url']) && isset($options['profile_menu_title']) && $options['profile_menu_url']) {
						$i = 1;
						foreach ($options['profile_menu_url'] as $menu) {
							if ($menu && $options['profile_menu_title'][$i - 1]) {
								$user_menus[] = array(
									'url' => esc_url($menu),
									'title' => $options['profile_menu_title'][$i - 1]
								);
							}
							$i++;
						}
					}

					$user_menus[] = array(
						'url' => $menu_block['attrs']['url'],
						'title' => __('Account', WPMX_TD)
					);
					$user_menus[] = array(
						'url' => wp_logout_url(),
						'title' => __('Logout', WPMX_TD)
					);
					$user_menus = apply_filters('wpcom_profile_menus', $user_menus);
					foreach ($user_menus as $uitem) {
						$menu_block['innerBlocks'][] = new \WP_Block([
								'blockName' => 'core/navigation-link',
								'attrs' => [
									'label' => $uitem['title'],
									'url' => $uitem['url'],
									'kind' => 'custom'
								]
							]);
						$menu_block['innerContent'][] = [];
					}
					$block->inner_blocks = $menu_block['innerBlocks'];
					$registry = \WP_Block_Type_Registry::get_instance();
					$block->block_type = $registry->get_registered($menu_block['blockName']);
					$menu = render_block_core_navigation_submenu($menu_block['attrs'], $content, $block);
				} else {
					$menu .= render_block(array(
						'blockName' => 'core/navigation-link',
						'attrs' => [
							'label' => __('Sign in', WPMX_TD),
							'url' => wp_login_url(),
							'kind' => 'custom'
						],
					));
					$menu .= render_block(array(
						'blockName' => 'core/navigation-link',
						'attrs' => [
							'label' => __('Sign up', WPMX_TD),
							'url' => wp_registration_url(),
							'kind' => 'custom'
						],
					));
				}
				return $menu;
			})
		);
	});
}

Youez - 2016 - github.com/yon3zu
LinuXploit