ฉันจะลบการเข้าถึงแดชบอร์ดออกจากบทบาทผู้ใช้ที่เฉพาะเจาะจงได้อย่างไร


11

ฉันต้องการป้องกันไม่ให้บทบาทผู้ใช้บางอย่างเข้าถึงแดชบอร์ดhttp://www.openeye.net/wp-admin/เลย ฉันย้ายและปรับแต่งโปรไฟล์ผู้ใช้ไปยังหน้าใหม่ที่สามารถดูได้บนไซต์ ฉันจะทำสิ่งนี้อย่างไร


ฉันขอให้ WooCommerce เปลี่ยนการตั้งค่าดังนั้นจึงเป็นไปได้ในการจัดการการอนุญาตสำหรับส่วนของเมนู แนวคิดนี้ต้องการคะแนนโหวตใน: https://ideas.woocommerce.comโปรดให้คะแนนสูงสุด 3 คะแนนขอบคุณ!
สเตฟาน

คำตอบ:


22

วิธีล็อคสมาชิกและผู้มีส่วนร่วมออกจากผู้ดูแลระบบ:

function wpse23007_redirect(){
  if( is_admin() && !defined('DOING_AJAX') && ( current_user_can('subscriber') || current_user_can('contributor') ) ){
    wp_redirect(home_url());
    exit;
  }
}
add_action('init','wpse23007_redirect');

หวังว่าจะช่วย บทบาททั้งหมดให้ความสามารถแก่ผู้ใช้ที่เป็นชื่อของบทบาทนั้นดังนั้นคุณสามารถใช้ชื่อบทบาทใดก็ได้เป็นความสามารถ


ยอดเยี่ยม แต่ฉันได้รับข้อผิดพลาดทางไวยากรณ์ในบรรทัดที่สอง
Zach Shallbetter

โอ้ตกลงมันเกี่ยวข้องกับการพิเศษ (หลังจาก ('DOING_AJAX')
Zach Shallbetter

โอ้ขอโทษ; นั่นเป็นเจตนา ควรจะมีอีกหนึ่งการปิดในตอนท้าย ฉันเพิ่มไปยังคำตอบ
John P Bloch

มีเหตุผลนี้ไม่ทำงานกับชุดรูปแบบ 2011 และปลั๊กอินสมาชิกหรือไม่
Zach Shallbetter

1
สิ่งนี้ดูเหมือนจะไม่ทำงานบนไซต์เครือข่ายความคิดใด ๆ
Zach Shallbetter

2
//If User Roll is Subscriber, It can not login in Dashboard 
function wpse23007_redirect()
{
    if( is_admin() && !defined('DOING_AJAX') && current_user_can('subscriber') )
    {
        wp_logout();
        wp_redirect(home_url());
        exit;
    }
}
add_action('init','wpse23007_redirect');


0
 add_action('init', function(){

      $redirect = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : home_url( '/' );
      $user = wp_get_current_user();
      if ( !defined('DOING_AJAX') && in_array( 'subscriber', (array) $user->roles ) ) {

          wp_redirect($redirect);
          exit();
      }
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.