diff --git a/checkboxsearch.php b/checkboxsearch.php
index 4444fcce472e9470ff068f451dff51df9e4227a2..00ac8e5f0f3419ddad86d58a6a47b80dcfbf3271 100644
--- a/checkboxsearch.php
+++ b/checkboxsearch.php
@@ -1,5 +1,8 @@
 <?php
-define('AREAS_OF_INTEREST', 25);
+define('MEMBER_AREAS_OF_INTEREST', 25);
+define('SUBSCRIBER_AREAS_OF_INTEREST', 34);
+define('SUBSCRIBER_SG', 17);
+
 
 require_once 'checkboxsearch.civix.php';
 // phpcs:disable
@@ -145,10 +148,20 @@ function checkboxsearch_civicrm_themes(&$themes) {
 }
 
 function checkboxsearch_civicrm_buildForm($formName, &$form) {
-  if ($formName == 'CRM_Profile_Form_Search' && $form->getVar('_gid') == 27) {
+  if ($formName == 'CRM_Profile_Form_Search' && in_array($form->getVar('_gid'), [27, 29])) {
     if (!is_user_logged_in()) {
       auth_redirect();
     }
+    if ($cid = CRM_Core_Session::getLoggedInContactID() && $form->getVar('_gid') == 29) {
+      $result = civicrm_api3('Contact', 'get', [
+        'sequential' => 1,
+        'return' => ["group"],
+        'id' => $cid,
+      ])['values'];
+      if (empty($result[0]['groups']) || !in_array(SUBSCRIBER_SG, explode(',', $result[0]['groups']))) {
+        CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.'));
+      }
+    }
     CRM_Core_Region::instance('page-body')->add(array(
      'script' => "
       cj('table#profile > tbody > tr:nth-child(7)').hide();
@@ -159,7 +172,7 @@ function checkboxsearch_civicrm_buildForm($formName, &$form) {
     foreach ($form->_fields as $name => $field) {
       if (substr($name, 0, 6) === 'custom') {
         $customFieldID = CRM_Core_BAO_CustomField::getKeyID($name);
-        if ($customFieldID == AREAS_OF_INTEREST) {
+        if ($customFieldID == MEMBER_AREAS_OF_INTEREST || $customFieldID == SUBSCRIBER_AREAS_OF_INTEREST) {
           $form->removeElement($name);
           $groupName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $field['group_id']);
           $dataCrmCustomVal = $groupName . ':' . $name;
@@ -182,7 +195,7 @@ function checkboxsearch_civicrm_buildForm($formName, &$form) {
       }
     }
   }
-  if ($formName == 'CRM_Profile_Form_Search' && $form->getVar('_gid') == 27) {
+  if ($formName == 'CRM_Profile_Form_Search' && in_array($form->getVar('_gid'), [27, 29])) {
     $form->setDefaults([
       'prox_country_id' => 1039,
       'prox_state_province_id' => 1108,
@@ -201,11 +214,12 @@ function checkboxsearch_civicrm_searchColumns( $objectName, &$headers, &$rows, &
 }
 
 function checkboxsearch_civicrm_pageRun( &$page ) {
-  if (is_a($page, 'CRM_Profile_Page_Dynamic')) {
-    if ($page->getVar('_gid') == 27) {
-      if (!is_user_logged_in()) {
-        auth_redirect();
-      }
+  if (is_a($page, 'CRM_Profile_Page_Dynamic') && in_array($page->getVar('_gid'), [27, 29])) {
+    $profileID = $page->getVar('_gid');
+    if (!is_user_logged_in()) {
+      auth_redirect();
+    }
+    if ($profileID == 27) {
       CRM_Utils_System::setTitle(ts('OPHA Member Networking Directory Listing'));
       CRM_Core_Region::instance('page-body')->add(array(
        'script' => "
@@ -213,6 +227,13 @@ function checkboxsearch_civicrm_pageRun( &$page ) {
        ",
       ));
     }
+    elseif ($profileID == 29) {
+      CRM_Core_Region::instance('page-body')->add(array(
+       'script' => "
+        cj('#row-id').hide();
+       ",
+      ));
+    }
   }
 }