add_action( 'load-'.$glm_import_sub_page, 'glm_admin_import_help_tab' );
}
+/**
+ * Setup action for delete of member.
+ */
+add_action( 'glm-member-db-delete-member', function( $memberId ){
+ // Call to delete a member record.
+ trigger_error( 'Delete for member with id:' . $memberId, E_USER_NOTICE );
+
+ // Delete Member Info Records.
+ // Get all member Info Records (for url's)
+ $memberInfoRecords = $this->wpdb->get_results(
+ $this->wpdb->prepare(
+ "SELECT MI.id, M.member_slug
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info MI,
+ " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members M
+ WHERE MI.member = %d
+ AND MI.member = M.id",
+ $memberId
+ ),
+ ARRAY_A
+ );
+ if ( $memberInfoRecords ) {
+ foreach ( $memberInfoRecords as $info ) {
+ // Remove the url from the Open Search Engine.
+ $url = GLM_MEMBERS_SITE_BASE_URL . $this->config['settings']['canonical_member_page'] . '/' . $info['member_slug'] . '/';
+ apply_filters( 'glm_member_db_common_search_removeurl', $url );
+
+ // TODO: Delete files.
+ // Get all files for deletion.
+ $files = $this->wpdb->get_results(
+ $this->wpdb->prepare(
+ "SELECT id,file_name
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "files
+ WHERE ref_type = 20
+ AND ref_dest = %d",
+ $info['id']
+ )
+ );
+ if ( $files ) {
+ foreach ( $files as $file ) {
+ // Remove this file.
+ unlink( GLM_MEMBERS_PLUGIN_FILES_PATH . '/' . $file );
+ }
+ }
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'files', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // TODO: Delete images.
+ // Get logo from member to delete.
+ // Get all images for deletion.
+ $images = $this->wpdb->get_results(
+ $this->wpdb->prepare(
+ "SELECT id,file_name
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "images
+ WHERE ref_type = 20
+ AND ref_dest = %d",
+ $info['id']
+ )
+ );
+ if ( $images ) {
+ foreach ( $images as $image ) {
+ // Remove this file.
+ foreach ( $this->config['imageSizes'] as $k => $v ) {
+ unlink( GLM_MEMBERS_PLUGIN_FILES_PATH . '/' . $k . '/' . $image );
+ }
+ }
+ }
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'images', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // Delete category_member_info.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'category_member_info', array( 'member_info' => $info['id'] ), array( '%d' ) );
+
+ // Delete amenity_ref
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'amenity_ref', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // Delete accommodations.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'accommodations', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // Delete golf.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'golf', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // Delete restaurants.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'restaurants', array( 'ref_type' => 20, 'ref_dest' => $info['id'] ), array( '%d', '%d' ) );
+
+ // Delete member_info.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_info', array( 'id' => $info['id'] ), array( '%d' ) );
+ }
+ }
+
+ // Delete member_detail_stats.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_detail_stats', array( 'member' => $memberId ), array( '%d' ) );
+
+ // Delete clickthrough_stats.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'clickthrough_stats', array( 'member' => $memberId ), array( '%d' ) );
+
+ // Delete Member.
+ $this->wpdb->delete( GLM_MEMBERS_PLUGIN_DB_PREFIX . 'members', array( 'id' => $memberId ), array( '%d' ) );
+
+}, 10, 1 );
+
/**
* glm_admin_import_help_tab
</div>
{if apply_filters('glm_members_menu_members', true)}
<div class="glm-small-4 glm-right">
+ {* Delete Button *}
+ <a
+ id="deleteMemberInfoButton"
+ href="{$thisUrl}?page={$thisPage}&glm_action=memberEdit&member={$memberID}"
+ class="button button-primary glm-button glm-right">Delete {$terms.term_member_cap}</a>
<a href="{$thisUrl}?page={$thisPage}&glm_action=memberEdit&member={$memberID}" class="button button-primary glm-button glm-right">Edit {$terms.term_member_cap} Name and Status</a>
</div>
+ <div id="deleteMemberDialog">
+ <center>
+ <p><a id="deleteMemberCancel" class="button button-primary">Cancel</a></p>
+ <p><input id="deleteMemberSubmit" type="submit" value="Delete this {$terms.term_member_cap}"></p>
+ </center>
+ <div class="glm-item-container">
+ <p><center><span class="glm-error">WARNING:</span></center></p>
+ <p>
+ <span class="glm-warning">Clicking the "Delete this {$terms.term_member_cap}" button above will
+ delete all of the data.</span>
+ </p>
+ <p>
+ <span class="glm-error">Once deleted, this information will no longer be available and cannot be retrieved!</span>
+ </p>
+ </div>
+ </div>
{/if}
</div>
{else}
alert(notice.replace(/-br-/g, "\n"));
});
+ {if apply_filters('glm_members_menu_members', true)}
+ // Delete Member Dialog
+ $("#deleteMemberDialog").dialog({
+ autoOpen: false,
+ minWidth: 4,
+ dialogClass: "glm-dialog-no-close"
+ });
+ $('#deleteMemberInfoButton').click( function(e) {
+ e.preventDefault();
+ $('#deleteMemberDialog').dialog('open');
+ });
+ $('#deleteMemberCancel').click( function() {
+ console.log( 'Cancel Delete member action called' );
+ $("#deleteMemberDialog").dialog("close");
+ });
+ $('#deleteMemberSubmit').click( function() {
+ console.log( 'Delete member action called' );
+ console.log( 'Member Id:', {$memberID} );
+ window.location.replace("{$thisUrl}?page=glm-members-admin-menu-members-list&glm_action=list&option=delete&member={$memberID}");
+ });
+ {/if}
+
// Flash certain elements for a short time after display
$(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);