public function security_check($template)
 {
     global $woocommerce, $current_user;
     //var_dump( Instore_Reports::get_report_data() );
     //make sure we are on console page
     if (is_page(ins_set_instore_page_id())) {
         //load scripts and style
         $this->load_includes();
         //check if user is logged in
         if (is_user_logged_in()) {
             //if instore login set display console
             if (isset($woocommerce->session->instore_login)) {
                 $template = self::load_environment();
             } else {
                 //if user locked out, logout and redirect to wp_login and display error message, otherwise prompt for instore login pin
                 if (!isset($settings['lockout']) || !in_array($current_user->ID, $setting['lockout'])) {
                     $template = self::instore_login();
                 } else {
                     ob_start();
                     add_filter('login_message', 'ins_login_message');
                     wp_redirect(wp_logout_url(get_permalink()));
                 }
             }
             //user not logged in redirect to login page
         } else {
             ob_start();
             wp_redirect(wp_login_url(get_permalink()));
         }
     }
     return $template;
 }
 public function ins_ajax_instore_security()
 {
     global $current_user, $woocommerce;
     $url = site_url('?page_id=' . ins_set_instore_page_id());
     //verify user capability and user login data
     if (current_user_can('use_instore') && get_user_meta($current_user->ID, 'instore_login_pin', true) == $_POST['pin']) {
         //set login session variable
         $woocommerce->session->set('instore_login', sanitize_text_field($_POST['pin']));
         $success = true;
         $call = 'instore_redirect';
         $status_message = '';
     } else {
         $success = false;
         $call = 'login_failed';
         $status_message = 'Invalid login pin. Please try again';
     }
     $this->json_return = array('success' => $success, 'call' => $call, 'status_message' => $status_message, 'url' => $url, 'html' => isset($template) ? $template : '', 'options' => isset($options) ? $options : '');
     echo json_encode($this->json_return);
     die;
 }
示例#3
0
 public function add_admin_bar_link()
 {
     global $wp_admin_bar;
     $url = get_permalink(ins_set_instore_page_id());
     $wp_admin_bar->add_menu(array('parent' => false, 'id' => 'instore', 'title' => __('Instore', 'instore'), 'href' => $url));
 }