Plugin Directory

Changeset 2789504


Ignore:
Timestamp:
09/23/2022 10:07:16 PM (4 years ago)
Author:
mintunmedia
Message:

Add shortcode parameters for group leader

Location:
groups-for-membermouse
Files:
50 added
4 edited

Legend:

Unmodified
Added
Removed
  • groups-for-membermouse/trunk/groups-for-membermouse.php

    r2683995 r2789504  
    44 * Plugin Name: Groups for MemberMouse
    55 * Description: Adds group support to MemberMouse. You can define different types of groups allowing a single customer to pay for multiple seats and members to join existing groups for free or for a price based on how you configure the group type. <strong>Requires MemberMouse to activate and use.</strong>
    6  * Version: 2.1.3
     6 * Version: 2.1.4
    77 * Author: Mintun Media
    88 * Plugin URI:  https://www.mintunmedia.com
  • groups-for-membermouse/trunk/includes/class.shortcodes.php

    r2683995 r2789504  
    8383    global $wpdb, $current_user;
    8484
     85    static $count = 1; // used to set unique IDs
     86
    8587    $search = $_GET["q"];
    8688    $filter = $_GET["filter"];
    8789    $order = $_GET["order"];
     90    $countID = $_GET["countid"];
    8891
    8992    $controls = array(
     
    9194      'add-member' => 'show',
    9295      'action-column' => 'show',
     96      'status' => '',
    9397    );
    9498
     
    97101    $signup_link_content = '<button class="btn primary-btn" title="Signup Link" id="signup-link">Signup Link</button>';
    98102    $add_member_content = '<button class="btn primary-btn" title="Add a Member" id="add-member">Add Member</button>';
     103    $edit_group_name_link = '<button class="btn primary-btn" title="Edit Group Name" id="edit-group-name">Edit Group Name</button>';
    99104    $action_header_content = '<th>Actions</th>';
    100105
     
    102107    $add_member_control = $atts['add-member'];
    103108    $action_control = $atts['action-column'];
     109    $status_type = $atts['status'];
    104110
    105111    $groups = new MemberMouseGroupAddon();
     
    138144    $gMemResults  = $wpdb->get_results($gMemSql); ?>
    139145
    140     <h2><em><?php echo $group_name; ?></em> Management Dashboard</h2>
     146    <h2><em><?php echo $group_name; ?></em> Management Dashboard <? if($status_type) { echo ($status_type == 'active') ? ' - Active' : ' - Deactivated'; } ?></h2>
    141147
    142148    <div class="groups-button-container">
    143       <button class="btn primary-btn" title="Edit Group Name" id="edit-group-name">Edit Group Name</button>
    144       <?php if ($signup_link_control != 'hide') {
    145         echo $signup_link_content;
    146       }
    147       if ($add_member_control != 'hide') {
    148         echo $add_member_content;
     149      <?php if ($status_type != 'inactive') {
     150        echo $edit_group_name_link;
     151     
     152        if ($signup_link_control != 'hide') {
     153          echo $signup_link_content;
     154        }
     155        if ($add_member_control != 'hide') {
     156          echo $add_member_content;
     157        }
    149158      } ?>
    150159    </div>
     
    152161    <!-- TODO create a JS action that refreshes the page & changes the query param for 'search'. -->
    153162    <div class="search-input-container">
    154       <input type="text" id="members-search-input" placeholder="Search Members by Email or Name" aria-placeholder="Search Members by Email or Name" value="<?php echo $search; ?>">
    155       <button id="members-search" class="btn btn-primary">Search</button>
    156       <button id="clear-search" class="btn btn-primary">Clear</button>
     163      <input type="text" id="members-search-input<? echo '-'.$count ?>" placeholder="Search Members by Email or Name" aria-placeholder="Search Members by Email or Name" value="<?php if($count == $countID) { echo $search; } ?>">
     164      <button id="members-search<? echo '-'.$count ?>" class="btn btn-primary search-btn" data-search-input="<? echo $count ?>">Search</button>
     165      <button id="clear-search<? echo '-'.$count ?>" class="btn btn-primary clear-search-btn" data-search-input="<? echo $count ?>">Clear</button>
    157166    </div>
    158167
     
    184193        $statusId = (int) $gMemRes->member_status;
    185194
     195        if($status_type == 'active' && $statusId != 1) {
     196          continue;
     197        }
     198        if($status_type == 'inactive' && $statusId != 0) {
     199          continue;
     200        }
     201
    186202        // Get Member's Active Subscriptions - includes overdue subscriptions
    187203        $activeSubscriptions = $member->getActiveMembershipSubscriptions(true);
     
    232248      }
    233249
    234       if (!empty($search)) {
     250      if (!empty($search) && $count == $countID) {
    235251        $filteredData = $this->search_member_results($filteredData, $search);
    236252      }
     
    238254
    239255      <div class="member-count">
    240         <p>Members: <?= sizeof($filteredData) ?>/<?= $group_size ?></p>
     256        <p>
     257        <? echo ($status_type == 'inactive') ? 'Deactivated Members: ' : 'Members: ';
     258        echo sizeof($filteredData);
     259        if($status_type != 'inactive') { echo '/'. $group_size; } ?>
     260        </p>
    241261      </div>
    242262
    243       <?php if (!empty($search)) : ?>
     263      <?php if (!empty($search) && $count == $countID) : ?>
    244264        <div class="search-result-notif">
    245265          <h3>Search Results for <span class="query">"<?php echo $search ?>"</span></h3>
     
    274294            $url             .= $member['membership_id'] . ", " . MM_Status::$CANCELED . ", '" . $redirecturl . "');";
    275295            $cancellationHtml   = "<a title=\"Cancel Member\" style=\"cursor: pointer;display: none;\" onclick=\"" . $url . "\"/>" . MM_Utils::getIcon('stop', 'red', '1.2em', '1px') . "</a>";
    276 
    277296          ?>
    278297            <tr class="<?= strtolower($member->status) ?>">
     
    345364    endif;
    346365
     366    $count++; // update after each use
     367
    347368    return ob_get_clean();
    348369  }
  • groups-for-membermouse/trunk/js/groups-leader-dashboard.js

    r2683995 r2789504  
    99  const $groupSignupLinkTrigger = $('#signup-link');
    1010  const $addMemberTrigger = $('#add-member');
    11   const $clearSearchTrigger = $("#clear-search");
    1211  let $deleteMemberTrigger = $('.delete-member');
    1312
    1413  let $filterHeaderTrigger = $('.filter-header-wrapper');
    15   let $searchTrigger = $('#members-search');
    16   let $searchInput = $('#members-search-input');
     14  let $searchTrigger = $('.search-btn');
     15  let $clearSearchTrigger = $(".clear-search-btn");
     16  // let $searchInput = $('#members-search-input');
    1717
    1818  $groupSignupLinkTrigger.click(openSignUpLinkPop);
     
    7171   */
    7272  function searchMembers() {
     73    inputID = $(this).data('search-input');
     74    $searchInput = $('#members-search-input-'+ inputID);
     75
    7376    let searchQuery = $searchInput.val();
    7477    let params = (new URL(document.location)).searchParams;
    7578    params.set('q', searchQuery);
     79    params.set('countid', inputID);
    7680    location.search = params.toString();
    7781  }
     
    8286  function clearSearch() {
    8387    let params = (new URL(document.location)).searchParams;
    84     if (params.has('q')) {
     88    if (params.has('q') && params.has('countid')) {
    8589      params.delete('q');
     90      params.delete('countid');
    8691      location.search = params.toString();
    8792    }
  • groups-for-membermouse/trunk/readme.txt

    r2683995 r2789504  
    6969
    7070== Changelog ==
     712.1.4
     72- ENHANCEMENT: Added attribute support to Group Leader Dashboard shortcode. Can now display members in table based on status
     73- ENHANCEMENT: Updated Group Leader Dashboard shortcode to allow multiple uses on the same page
     74
    71752.1.3
    7276- ENHANCEMENT: Added Filtering and sorting functionality to Group Leader Dashboard
Note: See TracChangeset for help on using the changeset viewer.