Skip to content

Instantly share code, notes, and snippets.

@pbrocks
Created June 5, 2018 05:28
Show Gist options
  • Select an option

  • Save pbrocks/ed9bc7b83cdb6d9821965ff0230065ed to your computer and use it in GitHub Desktop.

Select an option

Save pbrocks/ed9bc7b83cdb6d9821965ff0230065ed to your computer and use it in GitHub Desktop.

Revisions

  1. pbrocks created this gist Jun 5, 2018.
    81 changes: 81 additions & 0 deletions pmpro-core-views-report-reset.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,81 @@
    <?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();
    }
    }