Skip to content

Instantly share code, notes, and snippets.

@pbrocks
Created June 5, 2018 05:28
Show Gist options
  • Save pbrocks/ed9bc7b83cdb6d9821965ff0230065ed to your computer and use it in GitHub Desktop.
Save pbrocks/ed9bc7b83cdb6d9821965ff0230065ed to your computer and use it in GitHub Desktop.
Use this recipe to reset your PMPro site's Logins and Views Report data.
<?php
/**
* Place this code in your Customizations plugin, not including the opening php tag on line 1.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
/**
* Create a menu to give us a place to perform the reset. I'm choosing a Dashboard menu purely for ease of access.
*/
add_action( 'admin_menu', 'core_reset_views_admin_page' );
function core_reset_views_admin_page() {
add_dashboard_page(
__( 'Reset Core Views', 'paid-memberships-pro' ),
__( 'Reset Core Views', 'paid-memberships-pro' ),
'manage_options',
'reset-core-views.php',
'core_reset_views_render_admin'
);
}
/**
* This function is tied to the one above and provides the content for the dashboard page.
*
* @return null
*/
function core_reset_views_render_admin() {
global $pmpro_reports, $wpdb;
?>
<div class="wrap">
<h2>
<?php
esc_attr_e( 'PMPro Reset Core Views', 'paid-memberships-pro' );
?>
</h2>
<div style="padding: 2rem 0;">
<h2>
<?php
esc_attr_e( 'Reset Core Views Report', 'paid-memberships-pro' );
?>
</h2>
<h4 id="reset-views-results">Tick the box if you wish to reset your PMPro core views report.</h4>
<form id="reset-views-form" method="get" style="padding:inline-block;" action="<?php echo admin_url(); ?>">
<div style="float:left;"><label for="deleting"> I am sure I want to reset my PMPro core views report. <input type="checkbox" name="pmproresetcoreviews" id="pmproresetcoreviews" value="1"></label></div>
<div style="float:left;display:none;" id="reset-views-button"><button type="submit" name="reset-views-submit" id="reset-views-submit" value="true" class="button-primary"><?php esc_attr_e( 'Reset Core Views', 'reset-views' ); ?></button></div><br>
</form>
</div>
<hr>
<h3>If PMPro Reports has data, it will show below.</h3>
<a href="<?php echo admin_url( 'admin.php?page=pmpro-reports' ); ?>" target="_blank"><button class="button-primary">Double Check Report</button></a>
<?php
pmpro_report_login_widget();
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
var deleting = $('#pmproresetcoreviews');
var reset = $('#reset-views-button');
var notice = $('#reset-views-results');
deleting.on('click', function() {
if (deleting.is(':checked')) {
notice.text('Thank you.');
reset.css( "display", "block" );
} else {
notice.text('Please tick the box if you want to continue.');
reset.css( "display", "none" );
}
});
</script>
</div>
<?php
}
add_action( 'init', 'pmpro_reset_core_views_report' );
function pmpro_reset_core_views_report() {
if ( ! empty( $_REQUEST['pmproresetcoreviews'] ) && current_user_can( 'manage_options' ) ) {
delete_option( 'pmpro_logins' );
delete_option( 'pmpro_views' );
delete_option( 'pmpro_visits' );
wp_redirect( admin_url( '/index.php?page=reset-core-views.php' ) );
exit();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment