Advertisement
Guest User

advanced.php

a guest
Apr 29th, 2019
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 26.35 KB | None | 0 0
  1. <?php
  2.  
  3. if (!defined('ABSPATH')) {
  4.   die('-1');
  5. }
  6.  
  7. if (!class_exists('QuadMenu_Advanced')) :
  8.  
  9.   class QuadMenu_Advanced {
  10.  
  11.     function __construct() {
  12.  
  13.       add_action('admin_init', array($this, 'navmenu'), 40);
  14.       add_action('wp_ajax_quadmenu_register_user', array($this, 'register_user'));
  15.       add_action('wp_ajax_nopriv_quadmenu_register_user', array($this, 'register_user'));
  16.       add_action('wp_ajax_quadmenu_login_user', array($this, 'login_user'));
  17.       add_action('wp_ajax_nopriv_quadmenu_login_user', array($this, 'login_user'));
  18.       add_filter('quadmenu_item_object_class', array($this, 'item_object_class'), 10, 4);
  19.       add_filter('quadmenu_custom_nav_menu_items', array($this, 'nav_menu_items'));
  20.       add_filter('quadmenu_nav_menu_item_fields', array($this, 'nav_menu_item_fields'), 10, 2);
  21.       add_filter('quadmenu_remove_nav_menu_item', array($this, 'remove_nav_menu_item'));
  22.       add_filter('quadmenu_setup_nav_menu_item', array($this, 'remove_nav_menu_login'), 10);
  23.       add_filter('redux/options/' . QUADMENU_OPTIONS . '/sections', array($this, 'social'), 90);
  24.       add_action('init', array($this, 'frontend'));
  25.     }
  26.  
  27.     function frontend() {
  28.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemArchive.class.php';
  29.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemTaxonomy.class.php';
  30.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemCarousel.class.php';
  31.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemCarouselPanel.class.php';
  32.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemTabs.class.php';
  33.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemTab.class.php';
  34.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemLogin.class.php';
  35.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemSocial.class.php';
  36.       require_once plugin_dir_path(__FILE__) . 'frontend/QuadMenuItemButton.class.php';
  37.     }
  38.  
  39.     function remove_nav_menu_login($item) {
  40.  
  41.       if (!is_admin() && !is_user_logged_in() && isset($item->quadmenu_menu_item_parent) && $item->quadmenu_menu_item_parent == 'login') {
  42.         $item->_invalid = true;
  43.       }
  44.  
  45.       return $item;
  46.     }
  47.  
  48.     function navmenu() {
  49.  
  50.       if (function_exists('is_quadmenu') && is_quadmenu()) {
  51.         require_once plugin_dir_path(__FILE__) . 'backend/panel.php';
  52.         require_once plugin_dir_path(__FILE__) . 'backend/carousel.php';
  53.         require_once plugin_dir_path(__FILE__) . 'backend/tab.php';
  54.         require_once plugin_dir_path(__FILE__) . 'backend/tabs.php';
  55.         require_once plugin_dir_path(__FILE__) . 'backend/account.php';
  56.       }
  57.     }
  58.  
  59.     function nav_menu_items($items) {
  60.  
  61.       $items['social'] = array(
  62.           'label' => esc_html__('QuadMenu Social', 'quadmenu'),
  63.           'title' => esc_html__('Social', 'quadmenu'),
  64.           'panels' => array(
  65.               'general' => array(
  66.                   'title' => esc_html__('General', 'quadmenu'),
  67.                   'icon' => 'dashicons dashicons-admin-settings',
  68.                   'settings' => array('float', 'hidden', 'social'),
  69.               ),
  70.               'icon' => array(
  71.                   'title' => esc_html__('Icon', 'quadmenu'),
  72.                   'icon' => 'dashicons dashicons-art',
  73.                   'settings' => array('icon'),
  74.               ),
  75.           ),
  76.           'desc' => esc_html__('Icon list of your social networks.', 'quadmenu'),
  77.           'parent' => 'main',
  78.           'depth' => 0,
  79.       );
  80.       $items['login'] = array(
  81.           'label' => esc_html__('QuadMenu Login', 'quadmenu'),
  82.           'title' => esc_html__('Login', 'quadmenu'),
  83.           'panels' => array(
  84.               'general' => array(
  85.                   'title' => esc_html__('General', 'quadmenu'),
  86.                   'icon' => 'dashicons dashicons-admin-settings',
  87.                   'settings' => array('float', 'dropdown', 'hidden'),
  88.               ),
  89.               'login' => array(
  90.                   'title' => esc_html__('Login', 'quadmenu'),
  91.                   'icon' => 'dashicons dashicons-unlock',
  92.                   'settings' => array('register', 'password', 'login'),
  93.               ),
  94.               'logout' => array(
  95.                   'title' => esc_html__('Logout', 'quadmenu'),
  96.                   'icon' => 'dashicons dashicons-lock',
  97.                   'settings' => array('avatar', 'name', 'logout'),
  98.               ),
  99.           /* 'register' => array(
  100.             'title' => esc_html__('Register', 'quadmenu'),
  101.             'icon' => 'dashicons dashicons-admin-users',
  102.             'settings' => array('register'),
  103.             ), */
  104.           ),
  105.           'desc' => esc_html__('A login and register widget for your users.', 'quadmenu'),
  106.           'parent' => 'main',
  107.           'depth' => 0,
  108.       );
  109.       $items['tabs'] = array(
  110.           'label' => esc_html__('QuadMenu Tabs', 'quadmenu'),
  111.           'title' => esc_html__('Tabs', 'quadmenu'),
  112.           'panels' => array(
  113.               'general' => array(
  114.                   'title' => esc_html__('General', 'quadmenu'),
  115.                   'icon' => 'dashicons dashicons-admin-settings',
  116.                   'settings' => array('subtitle', 'badge', 'float', 'dropdown', 'hidden'),
  117.               ),
  118.               'icon' => array(
  119.                   'title' => esc_html__('Icon', 'quadmenu'),
  120.                   'icon' => 'dashicons dashicons-art',
  121.                   'settings' => array('icon'),
  122.               ),
  123.               'background' => array(
  124.                   'title' => esc_html__('Background', 'quadmenu'),
  125.                   'icon' => 'dashicons dashicons-format-image',
  126.                   'settings' => array('background'),
  127.               ),
  128.               'width' => array(
  129.                   'title' => esc_html__('Width', 'quadmenu'),
  130.                   'icon' => 'dashicons dashicons-align-left',
  131.                   'settings' => array('dropdown', 'stretch', 'width'),
  132.               ),
  133.           ),
  134.           'desc' => esc_html__('A tab menu which can wrap any type of widget.', 'quadmenu'),
  135.           'parent' => 'main',
  136.           'depth' => 0,
  137.       );
  138.       $items['carousel'] = array(
  139.           'label' => esc_html__('QuadMenu Carousel', 'quadmenu'),
  140.           'title' => esc_html__('Carousel', 'quadmenu'),
  141.           'panels' => array(
  142.               'general' => array(
  143.                   'title' => esc_html__('General', 'quadmenu'),
  144.                   'icon' => 'dashicons dashicons-admin-settings',
  145.                   'settings' => array('subtitle', 'badge', 'float', 'hidden'),
  146.               ),
  147.               'icon' => array(
  148.                   'title' => esc_html__('Icon', 'quadmenu'),
  149.                   'icon' => 'dashicons dashicons-art',
  150.                   'settings' => array('icon'),
  151.               ),
  152.               'background' => array(
  153.                   'title' => esc_html__('Background', 'quadmenu'),
  154.                   'icon' => 'dashicons dashicons-format-image',
  155.                   'settings' => array('background'),
  156.               ),
  157.               'width' => array(
  158.                   'title' => esc_html__('Width', 'quadmenu'),
  159.                   'icon' => 'dashicons dashicons-align-left',
  160.                   'settings' => array('dropdown', 'stretch', 'width'),
  161.               ),
  162.               'carousel' => array(
  163.                   'title' => esc_html__('Carousel', 'quadmenu'),
  164.                   'icon' => 'dashicons dashicons-image-flip-horizontal',
  165.                   'settings' => array('speed', 'autoplay', 'autoplay_speed', 'dots', 'pagination'),
  166.               //'settings' => array('speed', 'autoplay', 'autoplay_speed', 'dots', 'pagination', 'controls'),
  167.               ),
  168.           ),
  169.           'desc' => esc_html__('A carousel menu which can wrap any type of widget.', 'quadmenu'),
  170.           'parent' => 'main',
  171.           'depth' => 0,
  172.       );
  173.       // Subitems
  174.       // -------------------------------------------------------------
  175.       $items['tab'] = array(
  176.           'label' => esc_html__('Tab', 'quadmenu'),
  177.           'title' => esc_html__('Tab', 'quadmenu'),
  178.           'panels' => array(
  179.               'general' => array(
  180.                   'title' => esc_html__('General', 'quadmenu'),
  181.                   'icon' => 'dashicons dashicons-admin-settings',
  182.                   'settings' => array('subtitle', 'badge', 'hidden'),
  183.               ),
  184.               'icon' => array(
  185.                   'title' => esc_html__('Icon', 'quadmenu'),
  186.                   'icon' => 'dashicons dashicons-art',
  187.                   'settings' => array('icon'),
  188.               ),
  189.           ),
  190.           'desc' => esc_html__('Tab for QuadMenu Tabs.', 'quadmenu'),
  191.           'parent' => 'tabs',
  192.       );
  193.       $items['panel'] = array(
  194.           'label' => esc_html__('Panel', 'quadmenu'),
  195.           'title' => esc_html__('Panel', 'quadmenu'),
  196.           'panels' => array(
  197.           ),
  198.           'desc' => esc_html__('Panel for QuadMenu Carousel.', 'quadmenu'),
  199.           'parent' => 'carousel',
  200.       );
  201.       $items['button'] = array(
  202.           'label' => esc_html__('QuadMenu Button', 'quadmenu'),
  203.           'title' => esc_html__('Button', 'quadmenu'),
  204.           'panels' => array(
  205.               'general' => array(
  206.                   'title' => esc_html__('General', 'quadmenu'),
  207.                   'icon' => 'dashicons dashicons-admin-settings',
  208.                   'settings' => array('float', 'hidden', 'dropdown'),
  209.               ),
  210.               'icon' => array(
  211.                   'title' => esc_html__('Icon', 'quadmenu'),
  212.                   'icon' => 'dashicons dashicons-art',
  213.                   'settings' => array('icon'),
  214.               ),
  215.           ),
  216.           'desc' => esc_html__('Add button element.', 'quadmenu'),
  217.           'depth' => 0,
  218.               //'parent' => array('main', 'column', 'custom', 'login', 'post_type', 'post_type_archive', 'taxonomy'),
  219.       );
  220.  
  221.       // Archives
  222.       // ---------------------------------------------------------------------
  223.  
  224.       $items['post_type_archive'] = array(
  225.           'label' => esc_html__('Posts', 'quadmenu'),
  226.           'title' => esc_html__('Posts', 'quadmenu'),
  227.           'panels' => array(
  228.               'general' => array(
  229.                   'title' => esc_html__('General', 'quadmenu'),
  230.                   'icon' => 'dashicons dashicons-admin-settings',
  231.                   'settings' => array('subtitle', 'badge', 'float', 'hidden', 'dropdown'),
  232.               ),
  233.               'icon' => array(
  234.                   'title' => esc_html__('Icon', 'quadmenu'),
  235.                   'icon' => 'dashicons dashicons-art',
  236.                   'settings' => array('icon'),
  237.               ),
  238.               'query' => array(
  239.                   'title' => esc_html__('Query', 'quadmenu'),
  240.                   'icon' => 'dashicons dashicons-update',
  241.                   'settings' => array('limit', 'orderby', 'order'),
  242.               ),
  243.               'archive_carousel' => array(
  244.                   'title' => esc_html__('Carousel', 'quadmenu'),
  245.                   'icon' => 'dashicons dashicons-image-flip-horizontal',
  246.                   'settings' => array('items', 'speed', 'autoplay', 'autoplay_speed', 'dots', 'pagination', 'navigation'),
  247.               ),
  248.               'content' => array(
  249.                   'title' => esc_html__('Posts', 'quadmenu'),
  250.                   'icon' => 'dashicons dashicons-format-aside',
  251.                   'settings' => array('thumb', 'excerpt'),
  252.               ),
  253.           ),
  254.           'parent' => array('main', 'column', 'custom', 'post_type', 'post_type_archive', 'taxonomy'),
  255.       );
  256.  
  257.       $items['taxonomy'] = array(
  258.           'panels' => array(
  259.               'general' => array(
  260.                   'title' => esc_html__('General', 'quadmenu'),
  261.                   'icon' => 'dashicons dashicons-admin-settings',
  262.                   'settings' => array('subtitle', 'badge', 'float', 'hidden', 'dropdown'),
  263.               ),
  264.               'icon' => array(
  265.                   'title' => esc_html__('Icon', 'quadmenu'),
  266.                   'icon' => 'dashicons dashicons-art',
  267.                   'settings' => array('icon'),
  268.               ),
  269.               'query' => array(
  270.                   'title' => esc_html__('Query', 'quadmenu'),
  271.                   'icon' => 'dashicons dashicons-update',
  272.                   'settings' => array('limit', 'orderby', 'order'),
  273.               ),
  274.               'archive_carousel' => array(
  275.                   'title' => esc_html__('Carousel', 'quadmenu'),
  276.                   'icon' => 'dashicons dashicons-image-flip-horizontal',
  277.                   'settings' => array('items', 'speed', 'autoplay', 'autoplay_speed', 'dots', 'pagination', 'navigation'),
  278.               ),
  279.               'content' => array(
  280.                   'title' => esc_html__('Posts', 'quadmenu'),
  281.                   'icon' => 'dashicons dashicons-format-aside',
  282.                   'settings' => array('thumb', 'excerpt'),
  283.               ),
  284.           ),
  285.           'parent' => array('main', 'column', 'custom', 'post_type', 'post_type_archive', 'taxonomy'),
  286.       );
  287.  
  288.       return $items;
  289.     }
  290.  
  291.     function nav_menu_item_fields($settings, $menu_obj) {
  292.  
  293.       $settings['password'] = array(
  294.           'id' => 'quadmenu-settings[password]',
  295.           'db' => 'password',
  296.           'title' => esc_html__('Reset Password', 'quadmenu'),
  297.           'placeholder' => wp_lostpassword_url(get_permalink()),
  298.           'type' => 'text',
  299.           'default' => '',
  300.       );
  301.  
  302.       $settings['register'] = array(
  303.           'id' => 'quadmenu-settings[register]',
  304.           'db' => 'register',
  305.           'title' => esc_html__('Register'),
  306.           'placeholder' => esc_html__('Custom register account link'),
  307.           'type' => 'text',
  308.           'default' => '',
  309.       );
  310.  
  311.       $settings['login'] = array(
  312.           'id' => 'quadmenu-settings[login]',
  313.           'db' => 'login',
  314.           'type' => 'icon',
  315.           'placeholder' => esc_html__('Search', 'quadmenu'),
  316.           'default' => 'dashicons dashicons-unlock',
  317.       );
  318.  
  319.       $settings['logout'] = array(
  320.           'id' => 'quadmenu-settings[logout]',
  321.           'db' => 'logout',
  322.           'type' => 'icon',
  323.           'placeholder' => esc_html__('Search', 'quadmenu'),
  324.           'default' => 'dashicons dashicons-lock',
  325.       );
  326.  
  327.       $settings['name'] = array(
  328.           'id' => 'quadmenu-settings[name]',
  329.           'db' => 'name',
  330.           'type' => 'select',
  331.           'title' => esc_html__('Name', 'quadmenu'),
  332.           'ops' => array(
  333.               'user_login' => esc_html__('Username'),
  334.               'nickname' => esc_html__('Nickname'),
  335.               'display_name' => esc_html__('Display name'),
  336.           ),
  337.           'default' => 'user_login',
  338.       );
  339.  
  340.       $settings['avatar'] = array(
  341.           'id' => 'quadmenu-settings[avatar]',
  342.           'db' => 'avatar',
  343.           'type' => 'checkbox',
  344.           'title' => esc_html__('Avatar', 'quadmenu'),
  345.           'placeholder' => esc_html__('Display user avatar', 'quadmenu'),
  346.           'default' => 'off',
  347.       );
  348.  
  349.       $settings['account'] = array(
  350.           'id' => 'quadmenu-settings[account]',
  351.           'db' => 'account',
  352.           'title' => esc_html__('Account'),
  353.           'placeholder' => esc_html__('Custom my account link', 'quadmenu'),
  354.           'type' => 'text',
  355.           'default' => '',
  356.       );
  357.  
  358.       $settings['login_text'] = array(
  359.           'id' => 'quadmenu-settings[login_text]',
  360.           'db' => 'login_text',
  361.           'title' => esc_html__('Footer', 'quadmenu'),
  362.           'type' => 'textarea',
  363.           'default' => '',
  364.       );
  365.  
  366.       // Carousel
  367.       // ---------------------------------------------------------------------
  368.  
  369.       $settings['speed'] = array(
  370.           'id' => 'quadmenu-settings[speed]',
  371.           'db' => 'speed',
  372.           'type' => 'number',
  373.           'title' => esc_html__('Speed', 'quadmenu'),
  374.           'ops' => array(
  375.               'step' => 100,
  376.               'min' => 100,
  377.               'max' => 10000
  378.           ),
  379.           'default' => 1500,
  380.       );
  381.  
  382.       $settings['autoplay'] = array(
  383.           'id' => 'quadmenu-settings[autoplay]',
  384.           'db' => 'autoplay',
  385.           'type' => 'checkbox',
  386.           'title' => esc_html__('Autoplay', 'quadmenu'),
  387.           'placeholder' => esc_html__('Run carousel automatically', 'quadmenu'),
  388.           'default' => 'off',
  389.       );
  390.  
  391.       $settings['autoplay_speed'] = array(
  392.           'id' => 'quadmenu-settings[autoplay_speed]',
  393.           'db' => 'autoplay_speed',
  394.           'type' => 'number',
  395.           'title' => esc_html__('Autoplay Speed', 'quadmenu'),
  396.           'placeholder' => esc_html__('Time between 2 consecutive slides (in ms)', 'quadmenu'),
  397.           'ops' => array(
  398.               'step' => 100,
  399.               'min' => 100,
  400.               'max' => 10000
  401.           ),
  402.           'default' => 500,
  403.       );
  404.  
  405.       $settings['dots'] = array(
  406.           'id' => 'quadmenu-settings[dots]',
  407.           'db' => 'dots',
  408.           'type' => 'checkbox',
  409.           'placeholder' => esc_html__('Show dots control', 'quadmenu'),
  410.           'title' => esc_html__('Dots', 'quadmenu'),
  411.           'default' => 'off',
  412.       );
  413.  
  414.       $settings['pagination'] = array(
  415.           'id' => 'quadmenu-settings[pagination]',
  416.           'db' => 'pagination',
  417.           'type' => 'checkbox',
  418.           'placeholder' => esc_html__('Show pagination control', 'quadmenu'),
  419.           'title' => esc_html__('Pagination', 'quadmenu'),
  420.           'default' => 'on',
  421.       );
  422.  
  423.       $settings['navigation'] = array(
  424.           'id' => 'quadmenu-settings[navigation]',
  425.           'db' => 'navigation',
  426.           'type' => 'checkbox',
  427.           'placeholder' => esc_html__('Show navigation control', 'quadmenu'),
  428.           'title' => esc_html__('Navigation', 'quadmenu'),
  429.           'default' => 'off',
  430.       );
  431.  
  432.       /* $settings['controls'] = array(
  433.         'id' => 'quadmenu-settings[controls]',
  434.         'db' => 'controls',
  435.         'type' => 'select',
  436.         'title' => esc_html__('Controls', 'quadmenu'),
  437.         'ops' => array(
  438.         'middle' => esc_html__('Middle', 'quadmenu'),
  439.         'center' => esc_html__('Center', 'quadmenu'),
  440.         'left' => esc_html__('Bottom Left', 'quadmenu'),
  441.         'right' => esc_html__('Bottom Right', 'quadmenu'),
  442.         ),
  443.         'default' => 'left',
  444.         ); */
  445.  
  446.       // Query
  447.       // ---------------------------------------------------------------------
  448.  
  449.       $settings['items'] = array(
  450.           'id' => 'quadmenu-settings[items]',
  451.           'db' => 'items',
  452.           'type' => 'number',
  453.           'title' => esc_html__('Items', 'quadmenu'),
  454.           'depth' => array(1, 2, 3, 4),
  455.           'ops' => array(
  456.               'step' => 1,
  457.               'min' => 0,
  458.               'max' => 6
  459.           ),
  460.           'default' => 0,
  461.       );
  462.  
  463.       $settings['limit'] = array(
  464.           'id' => 'quadmenu-settings[limit]',
  465.           'db' => 'limit',
  466.           'type' => 'number',
  467.           'depth' => array(1, 2, 3, 4),
  468.           'title' => esc_html__('Limit', 'quadmenu'),
  469.           'ops' => array(
  470.               'step' => 1,
  471.               'min' => 1,
  472.               'max' => 12
  473.           ),
  474.           'default' => 3,
  475.       );
  476.  
  477.       $settings['orderby'] = array(
  478.           'id' => 'quadmenu-settings[orderby]',
  479.           'db' => 'orderby',
  480.           'type' => 'select',
  481.           'depth' => array(1, 2, 3, 4),
  482.           'title' => esc_html__('Orderby', 'quadmenu'),
  483.           'ops' => array(
  484.               'date' => esc_html__('Date', 'quadmenu'),
  485.               'title' => esc_html__('Title', 'quadmenu'),
  486.           ),
  487.           'default' => 'date',
  488.       );
  489.  
  490.       $settings['order'] = array(
  491.           'id' => 'quadmenu-settings[order]',
  492.           'db' => 'order',
  493.           'type' => 'select',
  494.           'depth' => array(1, 2, 3, 4),
  495.           'title' => esc_html__('Order', 'quadmenu'),
  496.           'ops' => array(
  497.               'ASC' => esc_html__('Ascending', 'quadmenu'),
  498.               'DESC' => esc_html__('Descending', 'quadmenu'),
  499.           ),
  500.           'default' => 'DESC',
  501.       );
  502.  
  503.       return $settings;
  504.     }
  505.  
  506.     function item_object_class($class, $item, $id, $auto_child = '') {
  507.  
  508.       switch ($item->quadmenu) {
  509.  
  510.         case 'post_type_archive';
  511.           $class = 'QuadMenuItemArchive';
  512.           break;
  513.  
  514.         case 'taxonomy';
  515.           $class = 'QuadMenuItemTaxonomy';
  516.           break;
  517.  
  518.         case 'carousel';
  519.           $class = 'QuadMenuItemCarousel';
  520.           break;
  521.  
  522.         case 'panel';
  523.           $class = 'QuadMenuItemCarouselPanel';
  524.           break;
  525.  
  526.         case 'tabs';
  527.           $class = 'QuadMenuItemTabs';
  528.           break;
  529.  
  530.         case 'tab';
  531.           $class = 'QuadMenuItemTab';
  532.           break;
  533.  
  534.         case 'login';
  535.           $class = 'QuadMenuItemLogin';
  536.           break;
  537.  
  538.         case 'social':
  539.           $class = 'QuadMenuItemSocial';
  540.           break;
  541.  
  542.         case 'button';
  543.           $class = 'QuadMenuItemButton';
  544.           break;
  545.       }
  546.  
  547.       return $class;
  548.     }
  549.  
  550.     function social($sections) {
  551.  
  552.       $sections[] = array(
  553.           'id' => 'quadmenu_social',
  554.           'title' => esc_html__('Social', 'quadmenu'),
  555.           'heading' => false,
  556.           'icon' => 'dashicons dashicons-share',
  557.           'class' => 'quadmenu_social',
  558.           'permissions' => 'edit_theme_options',
  559.           'fields' => array(
  560.               array(
  561.                   'id' => 'social',
  562.                   'type' => 'icons',
  563.                   'title' => esc_html__('Networks', 'quadmenu'),
  564.                   'subtitle' => esc_html__('Add your social networks', 'quadmenu'),
  565.                   'placeholder' => array(
  566.                       'title' => esc_html__('Title', 'quadmenu'),
  567.                       'icon' => esc_html__('Icon', 'quadmenu'),
  568.                       'url' => esc_html__('Link', 'quadmenu'),
  569.                   ),
  570.                   'show' => array(
  571.                       'upload' => false,
  572.                       'description' => false,
  573.                       'key' => false,
  574.                       'title' => true,
  575.                       'icon' => true,
  576.                       'url' => true,
  577.                   ),
  578.                   'default' => apply_filters('quadmenu_default_options_social', array(
  579.                       array(
  580.                           'title' => 'Facebook',
  581.                           'icon' => 'dashicons dashicons-facebook-alt',
  582.                           'url' => QUADMENU_DEMO,
  583.                       ),
  584.                       array(
  585.                           'title' => 'Twitter',
  586.                           'icon' => 'dashicons dashicons-twitter',
  587.                           'url' => QUADMENU_DEMO,
  588.                       ),
  589.                       array(
  590.                           'title' => 'Google',
  591.                           'icon' => 'dashicons dashicons-googleplus',
  592.                           'url' => QUADMENU_DEMO,
  593.                       ),
  594.                       array(
  595.                           'title' => 'RSS',
  596.                           'icon' => 'dashicons dashicons-rss',
  597.                           'url' => QUADMENU_DEMO,
  598.                       ),
  599.                   )),
  600.               ),
  601.           ),
  602.       );
  603.  
  604.       return $sections;
  605.     }
  606.  
  607.     function remove_nav_menu_item($remove) {
  608.  
  609.       $remove[] = 'tab';
  610.       $remove[] = 'tabs';
  611.       $remove[] = 'panel';
  612.       $remove[] = 'carousel';
  613.  
  614.       return $remove;
  615.     }
  616.  
  617.     function login_user() {
  618.  
  619.       if (!check_ajax_referer('quadmenu', 'nonce', false)) {
  620.         QuadMenu::send_json_error(esc_html__('Please reload page.', 'quadmenu'));
  621.       }
  622.  
  623.       $username = sanitize_user($_POST['user']);
  624.       $password = $_POST['pass'];
  625.       $remember = sanitize_email($_POST['remember']);
  626.  
  627.       if (empty($username)) {
  628.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', esc_html__('Please provide an username.', 'quadmenu')));
  629.       }
  630.  
  631.       if (empty($password)) {
  632.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', esc_html__('Please provide a password.', 'quadmenu')));
  633.       }
  634.  
  635.       $userdata = array(
  636.           'user_login' => $username,
  637.           'user_password' => $password,
  638.           'remember' => $remember,
  639.       );
  640.  
  641.       $user_id = wp_signon($userdata);
  642.  
  643.       if (!is_wp_error($user_id)) {
  644.         QuadMenu::send_json_success(sprintf('<div class="quadmenu-alert alert-success">%s</div>', esc_html__('Login successful, redirecting...', 'quadmenu')));
  645.       } else {
  646.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', $user_id->get_error_message()));
  647.       }
  648.  
  649.       wp_die();
  650.     }
  651.  
  652.     function register_user($output) {
  653.  
  654.       if (!check_ajax_referer('quadmenu', 'nonce', false)) {
  655.         QuadMenu::send_json_error(esc_html__('Please reload page.', 'quadmenu'));
  656.       }
  657.  
  658.       $username = sanitize_user($_POST['user']);
  659.       $email = sanitize_email($_POST['mail']);
  660.       $password = $_POST['pass'];
  661.  
  662.       if (empty($username)) {
  663.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', esc_html__('Please provide an username.', 'quadmenu')));
  664.       }
  665.  
  666.       if (empty($email) || !is_email($email)) {
  667.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', esc_html__('Please provide a valid email address.', 'quadmenu')));
  668.       }
  669.  
  670.       if (empty($password)) {
  671.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', esc_html__('Please provide a password.', 'quadmenu')));
  672.       }
  673.  
  674.       $userdata = array(
  675.           'user_login' => $username,
  676.           'user_pass' => $password,
  677.           'user_email' => $email,
  678.       );
  679.  
  680.       $user_id = wp_insert_user($userdata);
  681.  
  682.       if (!is_wp_error($user_id)) {
  683.  
  684.         $user = get_user_by('id', $user_id);
  685.  
  686.         if ($user) {
  687.           wp_set_current_user($user_id, $user->user_login);
  688.           wp_set_auth_cookie($user_id);
  689.           do_action('wp_login', $user->user_login);
  690.         }
  691.  
  692.         QuadMenu::send_json_success(sprintf('<div class="quadmenu-alert alert-success">%s</div>', esc_html__('Welcome! Your user have been created.', 'quadmenu')));
  693.       } else {
  694.         QuadMenu::send_json_error(sprintf('<div class="quadmenu-alert alert-danger">%s</div>', $user_id->get_error_message()));
  695.       }
  696.  
  697.       wp_die();
  698.     }
  699.  
  700.   }
  701.  
  702.   new QuadMenu_Advanced();
  703.  
  704. endif;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement