### Member List Shortcode with Customization Parameters Source: https://suremembers.com/docs/suremembers-list-members-shortcode Customize the member list display by adding parameters to the shortcode. This example limits to 10 members, uses a list layout, and shows joined dates. ```shortcode [suremembers_list_members membership_id="123" limit="10" layout="list" show_joined="true"] ``` -------------------------------- ### Create React Component for Membership Editor (JavaScript) Source: https://suremembers.com/docs/extend-suremembers-membership-settings Create a React component to control the UI within the Membership editor. The component name must match the PHP registration, and `updateData()` must be called on value changes. Dispatch the registration event after defining the component. ```javascript (function () { window.suremembers_third_party_components = window.suremembers_third_party_components || {}; const { useState, useEffect } = window.React; const MyPluginSettings = ({ sectionData, updateData }) => { const [ enabled, setEnabled ] = useState( sectionData?.enabled || false ); useEffect( () => { setEnabled( sectionData?.enabled || false ); }, [ sectionData ] ); return React.createElement( 'label', null, React.createElement( 'input', { type: 'checkbox', checked: enabled, onChange: e => { setEnabled( e.target.checked ); updateData({ enabled: e.target.checked }); }, }), ' Enable feature' ); }; window.suremembers_third_party_components.MyPluginSettings = MyPluginSettings; window.dispatchEvent( new CustomEvent( 'suremembers_third_party_component_registered' ) );})(); ``` -------------------------------- ### Register a Settings Section (PHP) Source: https://suremembers.com/docs/extend-suremembers-membership-settings Use the `suremembers_third_party_sections` filter to register a new settings section for a membership. The array key serves as the section ID, and the `component` value must match the name of your React component. ```php add_filter( 'suremembers_third_party_sections', function( $sections ) { $sections['my_plugin_settings'] = [ 'title' => __( 'My Plugin Settings', 'my-plugin' ), 'icon' => 'Settings', 'priority' => 20, 'component' => 'MyPluginSettings', ]; return $sections; } ); ``` -------------------------------- ### Full Member Details in List Layout Source: https://suremembers.com/docs/suremembers-list-members-shortcode Displays members in a list layout, showing email, join date, and expiry date. Useful for detailed member overviews. ```shortcode [suremembers_list_members membership_id="123" layout="list" show_joined="true" show_expiry="true"] ``` -------------------------------- ### Member List Shortcode - Grid Layout with Avatar and Email Source: https://suremembers.com/docs/suremembers-list-members-shortcode Displays members in a grid layout, showing their avatar and email address. Set `show_avatar` and `show_email` to 'true' or 'yes'. ```shortcode [suremembers_list_members membership_id="123" layout="grid" show_avatar="yes" show_email="yes"] ``` -------------------------------- ### Enqueue SureMembers Admin Script (PHP) Source: https://suremembers.com/docs/extend-suremembers-membership-settings Load your custom JavaScript file on SureMembers admin pages. Use priority 99 to ensure it loads after SureMembers' own scripts. ```php add_action( 'admin_enqueue_scripts', function() { if ( ! wp_script_is( 'suremembers_posts', 'enqueued' ) ) { return; } wp_enqueue_script( 'my-plugin-suremembers', plugins_url( 'suremembers.js', __FILE__ ), [ 'suremembers_posts', 'react' ], '1.0', true ); }, 99 ); ``` -------------------------------- ### Member List Shortcode - Show All Members Source: https://suremembers.com/docs/suremembers-list-members-shortcode Displays all members of a membership on a single page by setting the limit to '0'. ```shortcode [suremembers_list_members membership_id="123" limit="0"] ``` -------------------------------- ### Paginated Grid Layout Source: https://suremembers.com/docs/suremembers-list-members-shortcode Displays members in a grid layout with a specified limit per page, automatically adding pagination links. Ideal for large member groups. ```shortcode [suremembers_list_members membership_id="123" limit="20"] ``` -------------------------------- ### Load Saved Membership Data (PHP) Source: https://suremembers.com/docs/extend-suremembers-membership-settings Use the `suremembers_get_membership_data` filter to load custom saved data when a membership is opened. Ensure data is added under `third_party_data` with a key matching your section ID. ```php add_filter( 'suremembers_get_membership_data', function( $data, $post_id ) { $saved_data = get_post_meta( $post_id, '_my_plugin_membership_settings', true ); if ( ! isset( $data['third_party_data'] ) ) { $data['third_party_data'] = []; } $data['third_party_data']['my_plugin_settings'] = is_array( $saved_data ) ? $saved_data : []; return $data;}, 10, 2 ); ``` -------------------------------- ### Add User to Multiple Memberships Source: https://suremembers.com/docs/add-or-remove-users-from-memberships This function allows adding a user to multiple memberships simultaneously by passing an array of membership IDs. Ensure you select the correct action hook for when this should occur. ```php add_action( 'admin_footer', function() { suremembers_add_user_to_group( 12, [145, 146, 147] ); }); ``` -------------------------------- ### Basic Member List Shortcode Source: https://suremembers.com/docs/suremembers-list-members-shortcode Use this shortcode to display members of a specific membership. Replace '123' with your actual Membership ID. ```shortcode [suremembers_list_members membership_id="123"] ``` -------------------------------- ### Restrict Content Using Shortcode Source: https://suremembers.com/docs/use-suremembers-restrict-this-block Use this shortcode for advanced use cases or in areas not supporting the block editor to restrict content based on membership group IDs. ```php [suremembers_restrict access_group_ids='123']Your content[/suremembers_restrict] ``` -------------------------------- ### Add User to a Single Membership Source: https://suremembers.com/docs/add-or-remove-users-from-memberships Use this function to add a specific user to a single membership. Replace `admin_footer` with an appropriate action hook for your use case. ```php add_action( 'admin_footer', function() { suremembers_add_user_to_group( 12, 145 ); // This adds user ID 12 to Membership ID 145 }); ``` -------------------------------- ### Save Membership Data (PHP) Source: https://suremembers.com/docs/extend-suremembers-membership-settings Use the `suremembers_after_submit_form` action to save custom data when a membership is saved. Sanitize user input and store data as a single array. Remove post meta if no data exists. ```php add_action( 'suremembers_after_submit_form', function( $post_id, $post_data ) { $my_data = $post_data['third_party_data']['my_plugin_settings'] ?? []; if ( empty( $my_data ) ) { delete_post_meta( $post_id, '_my_plugin_membership_settings' ); return; } update_post_meta( $post_id, '_my_plugin_membership_settings', [ 'enabled' => ! empty( $my_data['enabled'] ), ] );}, 10, 2 ); ``` -------------------------------- ### List Layout Without Emails Source: https://suremembers.com/docs/suremembers-list-members-shortcode Displays members in a compact list layout, hiding email addresses for a cleaner, more private view. Use when email privacy is a concern. ```shortcode [suremembers_list_members membership_id="123" layout="list" show_email="false"] ```