WooCommerce 고객 또는 사용자 역할별로 관리자 표시줄을 숨기는 방법
게시 됨: 2020-02-23WordPress 대시보드에 대한 액세스를 피하기 위해 구독자, 고객 및 관리자가 아닌 사용자로부터 WooCommerce의 관리자 표시줄을 숨기는 것이 중요합니다. 이 튜토리얼에서 강조 표시된 WordPress 관리 표시줄을 숨기는 방법이 있습니다. WordPress에서 관리 표시줄을 숨기는 방법입니다. 이러한 동일한 기술을 WooCommerce 사이트에서 사용할 수 있지만 각 경우에 몇 가지 조건이 있습니다.
WooCommerce 관리자 옵션의 관리자 표시줄 숨기기
관리자의 관리 표시줄을 숨기려면 WooCommerce에서도 도움이 되고 작동할 플러그인이 있을 수 있습니다.
플러그인을 사용하기 전에 먼저 WordPress 관리 대시보드에서 이 빠른 옵션을 시도해야 합니다. 이 옵션은 WooCommerce 사이트에서도 잘 작동하며 차이는 없습니다.
관리자 사용자 프로필 설정으로 이동하여 사이트를 볼 때 관리자의 관리자 표시줄을 숨기려면 이 옵션을 확인하십시오.
이 옵션을 선택 취소하고 설정을 저장한 다음 프런트엔드를 방문하여 관리 표시줄이 숨겨져 있는지 확인하십시오. 아래 이미지에서 볼 수 있듯이 관리자 표시줄은 사이트를 볼 때 관리자 사용자에게 숨겨집니다.
이것은 로그인하지 않았을 때 사이트가 어떻게 보이는지 엿볼 수 있는 중요한 방법입니다.
헤더 표시와 관련된 일부 WooCommerce 테마 문제를 디버그하려고 할 때도 도움이 됩니다.
WooCommerce 관리자 바코드 숨기기 옵션
WooCommerce 고객 및 구독자에 대해 동일한 기능을 구현하려면 'show_admin_bar'
필터를 사용하여 관리자 표시줄을 숨기도록 false를 반환해야 합니다.
이 후크를 사용할 수 있는 다양한 방법이 있으며 동일하게 작동하는 동일한 이름의 함수도 있습니다.
show_admin_bar( bool $show )
함수는 Boolean
( True 또는 False )인 매개변수 하나를 취하며 다음과 같이 사용할 수 있습니다.
show_admin_bar(거짓);
이 코드를 테마의 functions.php 파일에 추가하면 관리자 표시줄이 숨겨집니다. WooCommerce 스토어프론트 테마가 설치된 상태에서 테스트했으며 완벽하게 작동하여 관리자 표시줄을 숨깁니다.
이 기능을 더욱 개선하고 고객이 볼 수 없는 동안 관리자는 관리자 표시줄을 볼 수 있도록 허용하는 조건부 테스트를 추가할 수 있습니다.
이 경우 관리자 표시줄을 숨기려는 사이트의 고객 역할 또는 다른 역할로 조건부로 테스트합니다.
새 사용자 추가에서 WordPress 사이트에서 사용 가능한 역할을 얻을 수 있으며 마지막 옵션에는 역할 드롭다운이 있습니다.
현재 사용자 역할을 가져오기 위해 WordPress에서 현재 역할을 가져오는 방법에 대한 자습서를 작성했으며 이 경우 고객 사용자 역할을 가져 show_admin_bar()
함수를 false로 설정하는 데 사용할 수 있습니다.
이 경우 다음은 현재 사용자 역할을 가져오고 사용자 역할이 고객인지 조건부로 확인하는 데 사용할 수 있는 코드입니다.
WordPress에서 현재 사용자 역할을 가져오는 방법 에 대한 자습서에서 공유한 이 코드는 이 경우 용도를 변경할 수 있습니다.
add_action( 'wp_head', 'njengah_get_current_user_role'); 함수 njengah_get_current_user_role() { if( is_user_logged_in() ) { // 로그인한 사용자가 있는지 확인 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 $roles = ( 배열 ) $user->roles; // 역할 획득 // $roles 반환; // 현재 사용자의 역할 반환 // print_r로 테스트 인쇄('<사전>'); print_r($역할); 인쇄('</pre>'); } 또 다른 { 반환 배열(); // 로그인한 사용자가 없으면 빈 배열을 반환합니다. } }
functions.php에 추가하여 이 코드를 테스트할 때 아래 이미지와 같이 배열에 현재 사용자 역할이 표시되어야 합니다.
key [0]
을 사용하여 배열에서 이 사용자 역할을 가져올 수 있으며 코드를 약간 수정하고 사용자 역할을 인쇄하면 다음 수정된 코드에서와 같이 사용자 역할이 인쇄된 것을 볼 수 있습니다.
add_action( 'wp_head', 'njengah_get_current_user_role_print'); 기능 njengah_get_current_user_role_print() { if( is_user_logged_in() ) { // 로그인한 사용자가 있는지 확인 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 $roles = ( 배열 ) $user->roles; // 역할 획득 에코 $역할[0]; } 또 다른 { 반환 배열(); // 로그인한 사용자가 없으면 빈 배열을 반환합니다. } }
사용자 역할을 성공적으로 얻었으므로 이제 show_admin_bar()
함수에서 조건부로 사용하여 모든 역할이 될 수 있는 특정 사용자 역할에 대한 관리자 표시줄을 숨길 수 있습니다.
설명을 위해 이제 아래 코드를 사용하여 관리자 역할에 대한 관리자 표시줄을 숨깁니다.
add_action( 'wp_head', 'njengah_hide_admin_bar_for_administrator'); 기능 njengah_hide_admin_bar_for_administrator() { if( is_user_logged_in() ) { // 로그인한 사용자가 있는지 확인 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 $roles = ( 배열 ) $user->roles; // 역할 획득 if( $roles[0] == 'administrator'){ //여기에서 역할을 확인합니다. 다른 사용자 역할로 바꿀 수 있습니다. '고객' 편집기 등의 예 에코 $역할[0]; // 데모 목적으로 화면에 역할을 인쇄합니다(프로덕션에서 제거해야 함). show_admin_bar(거짓); // 이 조건에 대한 역할을 숨깁니다. } } 또 다른 { 반환 배열(); // 로그인한 사용자가 없으면 빈 배열을 반환합니다. } }
이 코드를 functions.php 파일에 추가하면 이전과 같이 관리자 역할이 화면에 표시되고 관리자 막대가 조건부로 숨겨지는 것을 볼 수 있습니다.
이 관리자 역할을 고객으로 대체할 수 있으며 다음과 같이 조건에 여러 조건부 테스트를 추가할 수도 있습니다.
add_action( 'wp_head', 'njengah_hide_admin_bar_for_customer'); 기능 njengah_hide_admin_bar_for_administrator() { if( is_user_logged_in() ) { // 로그인한 사용자가 있는지 확인 $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 $roles = ( 배열 ) $user->roles; // 역할 획득 if( $roles[0] == 'customer'){ //여기에서 역할을 확인합니다. 다른 사용자 역할로 바꿀 수 있습니다. '고객' 편집기 등의 예 에코 $역할[0]; // 데모 목적으로 화면에 역할을 인쇄합니다(프로덕션에서 제거해야 함). show_admin_bar(거짓); // 이 조건에 대한 역할을 숨깁니다. } } 또 다른 { 반환 배열(); // 로그인한 사용자가 없으면 빈 배열을 반환합니다. } }
테스트할 때 관리자의 경우와 마찬가지로 역할 이름이 고객으로 표시되고 관리자 표시줄이 숨겨져 있어야 합니다.
현재 사용자 기능으로 관리자 표시줄 숨기기
모든 사용자가 admin을 기대하지 못하도록 admin 표시줄을 숨기는 다른 방법은 functions.php에 다음 코드를 추가할 수 있습니다.
if ( ! current_user_can( 'manage_options' ) ) { show_admin_bar(거짓); }
이 코드는 current_user_can()
조건부 테스트를 사용하며 다음과 같이 고객에 대해 다른 권한으로 편집할 수 있습니다.
if ( ! current_user_can( '읽기' ) ) { show_admin_bar(거짓); }
이는 워드프레스의 구독자 역할과 동일합니다. WooCommerce는 Customer와 Shop Manager의 두 가지 역할을 생성합니다. 고객은 구독자와 동일하므로 이 경우 구독자의 기능은 ' 읽기 '입니다.
역할 및 기능 문서에서 WordPress 사용자의 모든 기능을 확인할 수 있습니다. WooCommerce 역할 및 기능 문서에서 WooCommerce 역할에 대해 자세히 알아볼 수 있습니다.
WooCommerce에서 관리자 표시줄을 숨기는 코드 구현
위의 코드에서 WooCommerce에서 관리자 표시줄을 숨기기 위해 모든 것이 어떻게 작동하는지 자세히 설명했습니다.
테스트 목적으로 'wp_head'
에 첨부된 add_action()
을 사용하고 있었지만 프로덕션에서는 작업 후크 대신 필터를 사용해야 한다는 점을 언급했다면.
이 경우 필터는 'show_admin_bar'
에 연결되어야 하며 코드는 다음과 같아야 합니다.
add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_for_customers', 20, 1 ); 기능 njengah_hide_admin_bar_for_customers($show){ $user = wp_get_current_user(); // 현재 사용자 가져오기 및 설정 $roles = ( 배열 ) $user->roles; // 역할 획득 if( $roles[0] == 'administator'){ // 배열 키 [0] [1] 및 해당 값을 기반으로 여기에서 사용자 역할을 테스트합니다. $show = 거짓; 반환 $show; } }
또한 각 역할의 기능을 사용하여 관리자 표시줄을 숨길 수 있으며 필터는 다음과 같습니다.
/** * 다른 역할에 대한 관리자 표시줄 숨기기 */ add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_others_expect_admin', 20, 1 ); 기능 njengah_hide_admin_bar_others_expect_admin( $show ) { if ( ! current_user_can( 'administrator' ) ) $show = false; 반환 $show; }
이 코드를 functions.php에 추가하여 관리자가 기대하는 다른 역할에서 관리자 표시줄을 숨깁니다.
마지막 생각들
다양한 접근 방식을 사용하여 WordPress 또는 WooCommerce에서 관리자 표시줄을 숨기는 방법에 대해 설명했습니다. 이 방법 중 하나를 선택하고 functions.php에 코드를 추가할 수 있습니다. WordPress 사용자 지정 사용자 역할에서 관리자 표시줄을 숨기는 것과 같은 다양한 시나리오에 적합하도록 코드를 추가로 수정할 수도 있습니다.