/**
         * My History Content
         * @since 0.1
         * @version 1.2
         */
        public function my_history_screen()
        {
            global $bp;
            $mycred_types = mycred_get_types();
            $type = 'mycred_default';
            if (isset($_REQUEST['show-ctype']) && array_key_exists($_REQUEST['show-ctype'], $mycred_types)) {
                $type = $_REQUEST['show-ctype'];
            }
            $args = array('user_id' => bp_displayed_user_id(), 'number' => apply_filters('mycred_bp_history_num_to_show', $this->buddypress['history_num']), 'ctype' => $type);
            if (isset($_GET['paged']) && $_GET['paged'] != '') {
                $args['paged'] = $_GET['paged'];
            }
            if (isset($bp->canonical_stack['action']) && $bp->canonical_stack['action'] != $this->buddypress['history_url']) {
                $args['time'] = $bp->canonical_stack['action'];
            }
            $log = new myCRED_Query_Log($args);
            unset($log->headers['column-username']);
            ob_start();
            if (count($mycred_types) > 1) {
                ?>
<form action="" id="mycred-sort-cred-history-form" method="get" style="display: block; height: 48px; float: right;"><label>Show:</label> <?php 
                mycred_types_select_from_dropdown('show-ctype', 'mycred-select-type', $type);
                ?>
 <input type="submit" class="btn btn-large btn-primary button button-large button-primary" value="<?php 
                _e('Go', 'mycred');
                ?>
" /></form>
<?php 
            }
            ?>
<style type="text/css">
.pagination-links { float: right; }
.tablenav { vertical-align: middle; }
</style>
<div class="wrap" id="myCRED-wrap">

	<?php 
            $log->mobile_support();
            ?>

	<form method="get" action="">
		<div class="tablenav top clear clearfix">

			<?php 
            if ($log->have_entries() && $log->max_num_pages > 1) {
                $log->navigation('top');
            }
            ?>

		</div>

		<?php 
            $log->display();
            ?>

		<div class="tablenav bottom clear clearfix">

			<?php 
            if ($log->have_entries() && $log->max_num_pages > 1) {
                $log->navigation('bottom');
            }
            ?>

		</div>

	</form>
</div>
<?php 
            $log->reset_query();
            $output = ob_get_contents();
            ob_end_clean();
            echo apply_filters('mycred_bp_history_page', $output, $this);
        }
Пример #2
0
        /**
         * My History Page
         * @since 0.1
         * @version 1.2.1
         */
        public function my_history_page()
        {
            // Security
            if (!is_user_logged_in()) {
                wp_die(__('Access Denied', 'mycred'));
            }
            $settings_key = 'mycred_epp_' . $_GET['page'];
            if (!$this->is_main_type) {
                $settings_key .= '_' . $this->mycred_type;
            }
            $per_page = mycred_get_user_meta($this->current_user_id, $settings_key, '', true);
            if ($per_page == '') {
                $per_page = 10;
            }
            $args = array('user_id' => $this->current_user_id, 'number' => $per_page);
            if (isset($_GET['type']) && !empty($_GET['type'])) {
                $args['ctype'] = $_GET['type'];
            } else {
                $args['ctype'] = $this->mycred_type;
            }
            if (isset($_GET['s']) && !empty($_GET['s'])) {
                $args['s'] = sanitize_text_field($_GET['s']);
            }
            if (isset($_GET['ref']) && !empty($_GET['ref'])) {
                $args['ref'] = sanitize_text_field($_GET['ref']);
            }
            if (isset($_GET['show']) && !empty($_GET['show'])) {
                $args['time'] = absint($_GET['show']);
            }
            if (isset($_GET['order']) && !empty($_GET['order'])) {
                $args['order'] = sanitize_text_field($_GET['order']);
            }
            if (isset($_GET['start']) && isset($_GET['end'])) {
                $args['amount'] = array('start' => sanitize_text_field($_GET['start']), 'end' => sanitize_text_field($_GET['end']));
            } elseif (isset($_GET['num']) && isset($_GET['compare'])) {
                $args['amount'] = array('num' => sanitize_text_field($_GET['num']), 'compare' => $_GET['compare']);
            } elseif (isset($_GET['amount'])) {
                $args['amount'] = sanitize_text_field($_GET['amount']);
            }
            if (isset($_GET['paged']) && !empty($_GET['paged'])) {
                $args['paged'] = absint($_GET['paged']);
            }
            $log = new myCRED_Query_Log($args);
            unset($log->headers['column-username']);
            ?>
<div class="wrap" id="myCRED-wrap">
	<h2><?php 
            $this->page_title(sprintf(__('My %s History', 'mycred'), $this->core->plural()));
            ?>
</h2>

	<?php 
            $log->filter_dates(admin_url('users.php?page=' . $_GET['page']));
            ?>

	<?php 
            do_action('mycred_top_my_log_page', $this);
            ?>

	<?php 
            $log->exporter(__('Export', 'mycred'), true);
            ?>

	<form method="get" action="" name="mycred-mylog-form" novalidate>
<?php 
            if (isset($_GET['s']) && !empty($_GET['s'])) {
                echo '<input type="hidden" name="s" value="' . $_GET['s'] . '" />';
            }
            if (isset($_GET['ref']) && !empty($_GET['ref'])) {
                echo '<input type="hidden" name="ref" value="' . $_GET['ref'] . '" />';
            }
            if (isset($_GET['show']) && !empty($_GET['show'])) {
                echo '<input type="hidden" name="show" value="' . $_GET['show'] . '" />';
            }
            if (isset($_GET['order']) && !empty($_GET['order'])) {
                echo '<input type="hidden" name="order" value="' . $_GET['order'] . '" />';
            }
            if (isset($_GET['paged']) && !empty($_GET['paged'])) {
                echo '<input type="hidden" name="paged" value="' . $_GET['paged'] . '" />';
            }
            $log->search();
            ?>
		<input type="hidden" name="page" value="<?php 
            echo $_GET['page'];
            ?>
" />

		<?php 
            do_action('mycred_above_my_log_table', $this);
            ?>

		<div class="tablenav top">

			<?php 
            $log->table_nav('top', true);
            ?>

		</div>

		<?php 
            $log->display();
            ?>

		<div class="tablenav bottom">

			<?php 
            $log->table_nav('bottom', true);
            ?>

		</div>

		<?php 
            do_action('mycred_bellow_my_log_table', $this);
            ?>

	</form>

	<?php 
            do_action('mycred_bottom_my_log_page', $this);
            ?>

</div>
<?php 
            $log->reset_query();
        }
        /**
         * Custom Log Page
         * @since 1.4
         * @version 1.3.1
         */
        public function purchase_log_page()
        {
            $type = substr($_GET['page'], 25);
            if ($type == 'mycred_default') {
                $mycred = $this->core;
            } else {
                $mycred = mycred($type);
            }
            // Security
            if (!$mycred->can_edit_creds()) {
                wp_die(__('Access Denied', 'mycred'));
            }
            $per_page = mycred_get_user_meta(get_current_user_id(), 'mycred_payments_' . $type, '', true);
            if (empty($per_page) || $per_page < 1) {
                $per_page = 10;
            }
            // Get references
            $references = apply_filters('mycred_buycred_log_refs', array('buy_creds_with_paypal_standard', 'buy_creds_with_skrill', 'buy_creds_with_zombaio', 'buy_creds_with_netbilling', 'buy_creds_with_bitpay'), $this, $type);
            // Prep
            $args = array('number' => $per_page, 'ctype' => $type, 'ref' => implode(',', $references));
            if (isset($_GET['user_id']) && !empty($_GET['user_id'])) {
                $args['user_id'] = $_GET['user_id'];
            }
            if (isset($_GET['s']) && !empty($_GET['s'])) {
                $args['s'] = $_GET['s'];
            }
            if (isset($_GET['ref']) && !empty($_GET['ref'])) {
                $args['ref'] = $_GET['ref'];
            }
            if (isset($_GET['show']) && !empty($_GET['show'])) {
                $args['time'] = $_GET['show'];
            }
            if (isset($_GET['order']) && !empty($_GET['order'])) {
                $args['order'] = $_GET['order'];
            }
            if (isset($_GET['paged']) && !empty($_GET['paged'])) {
                $args['paged'] = $_GET['paged'];
            }
            if (isset($_GET['start']) && isset($_GET['end'])) {
                $args['amount'] = array('start' => $_GET['start'], 'end' => $_GET['end']);
            } elseif (isset($_GET['num']) && isset($_GET['compare'])) {
                $args['amount'] = array('num' => $_GET['num'], 'compare' => $_GET['compare']);
            } elseif (isset($_GET['amount'])) {
                $args['amount'] = $_GET['amount'];
            }
            $log = new myCRED_Query_Log($args);
            $log->headers = apply_filters('mycred_buycred_log_columns', array('column-gateway' => __('Gateway', 'mycred'), 'column-username' => __('Buyer', 'mycred'), 'column-date' => __('Date', 'mycred'), 'column-amount' => $mycred->plural(), 'column-payed' => __('Payed', 'mycred'), 'column-tranid' => __('Transaction ID', 'mycred')));
            $filter_url = admin_url('admin.php?page=myCRED_page_gateways_log_' . $type);
            ?>
<div class="wrap list" id="myCRED-wrap">
	<h2><?php 
            _e('<strong>buy</strong>CRED Purchase Log', 'mycred');
            ?>
 <a href="<?php 
            echo admin_url('admin.php?page=myCRED_page_gateways');
            ?>
" class="click-to-toggle add-new-h2"><?php 
            _e('Gateway Settings', 'mycred');
            ?>
</a> <a href="<?php 
            echo $this->get_settings_url('buycred_module');
            ?>
" class="click-to-toggle add-new-h2"><?php 
            _e('buyCRED Settings', 'mycred');
            ?>
</a></h2>
	<?php 
            $log->filter_dates(esc_url($filter_url));
            ?>

	<div class="clear"></div>
	<form method="get" action="">
<?php 
            if (isset($_GET['user_id']) && !empty($_GET['user_id'])) {
                echo '<input type="hidden" name="user_id" value="' . esc_attr($_GET['user_id']) . '" />';
            }
            if (isset($_GET['s']) && !empty($_GET['s'])) {
                echo '<input type="hidden" name="s" value="' . esc_attr($_GET['s']) . '" />';
            }
            if (isset($_GET['ref']) && !empty($_GET['ref'])) {
                echo '<input type="hidden" name="ref" value="' . esc_attr($_GET['ref']) . '" />';
            }
            if (isset($_GET['show']) && !empty($_GET['show'])) {
                echo '<input type="hidden" name="show" value="' . esc_attr($_GET['show']) . '" />';
            }
            if (isset($_GET['order']) && !empty($_GET['order'])) {
                echo '<input type="hidden" name="order" value="' . esc_attr($_GET['order']) . '" />';
            }
            if (isset($_GET['paged']) && !empty($_GET['paged'])) {
                echo '<input type="hidden" name="paged" value="' . esc_attr($_GET['paged']) . '" />';
            }
            $log->search();
            ?>

		<input type="hidden" name="page" value="<?php 
            echo esc_attr($_GET['page']);
            ?>
" />
		<?php 
            do_action('mycred_above_payment_log_table', $this);
            ?>

		<div class="tablenav top">
<?php 
            $log->filter_options(false, $references);
            $log->navigation('top');
            ?>
		</div>
		<table class="table wp-list-table widefat mycred-table log-entries" cellspacing="0">
			<thead>
				<tr>
<?php 
            foreach ($log->headers as $col_id => $col_title) {
                echo '<th scope="col" id="' . str_replace('column-', '', $col_id) . '" class="manage-column ' . $col_id . '">' . $col_title . '</th>';
            }
            ?>
				</tr>
			</thead>
			<tfoot>
				<tr>
<?php 
            foreach ($log->headers as $col_id => $col_title) {
                echo '<th scope="col" class="manage-column ' . $col_id . '">' . $col_title . '</th>';
            }
            ?>
				</tr>
			</tfoot>
			<tbody id="the-list">
<?php 
            // If we have results
            if ($log->have_entries()) {
                // Prep
                $date_format = get_option('date_format') . ' ' . get_option('time_format');
                $entry_data = '';
                $alt = 0;
                // Loop results
                foreach ($log->results as $log_entry) {
                    // Highlight alternate rows
                    $alt = $alt + 1;
                    if ($alt % 2 == 0) {
                        $class = ' alt';
                    } else {
                        $class = '';
                    }
                    // Prep Sales data for use in columns
                    $sales_data = $this->get_sales_data_from_log_data($log_entry->data);
                    list($buyer_id, $payer_id, $amount, $cost, $currency, $token, $other) = $sales_data;
                    // Default Currency
                    if (empty($currency)) {
                        $currency = 'USD';
                    }
                    $gateway_name = str_replace('buy_creds_with_', '', $log_entry->ref);
                    if (!array_key_exists(str_replace('_', '-', $gateway_name), $this->installed)) {
                        $style = ' style="color:silver;"';
                    } elseif (!$this->is_active(str_replace('_', '-', $gateway_name))) {
                        $style = ' style="color:gray;"';
                    } elseif (substr($log_entry->entry, 0, 4) == 'TEST') {
                        $style = ' style="color:orange;"';
                    } else {
                        $style = '';
                    }
                    echo '<tr class="myCRED-log-row' . $class . '" id="mycred-log-entry-' . $log_entry->id . '">';
                    // Run though columns
                    foreach ($log->headers as $column_id => $column_name) {
                        echo '<td class="' . $column_id . '"' . $style . '>';
                        switch ($column_id) {
                            // Used gateway
                            case 'column-gateway':
                                $gateway = str_replace(array('-', '_'), ' ', $gateway_name);
                                echo ucwords($gateway);
                                break;
                                // Username Column
                            // Username Column
                            case 'column-username':
                                $user = get_userdata($log_entry->user_id);
                                if ($user === false) {
                                    echo 'ID: ' . $log_entry->user_id;
                                } else {
                                    echo $user->display_name . ' <em><small>(ID: ' . $log_entry->user_id . ')</small></em>';
                                }
                                break;
                                // Date & Time Column
                            // Date & Time Column
                            case 'column-date':
                                echo date_i18n($date_format, $log_entry->time);
                                break;
                                // Amount Column
                            // Amount Column
                            case 'column-amount':
                                echo $mycred->format_creds($log_entry->creds);
                                break;
                                // Amount Paid
                            // Amount Paid
                            case 'column-payed':
                                if (empty($cost)) {
                                    echo 'n/a';
                                } else {
                                    echo number_format($cost, 2) . ' ' . $currency;
                                }
                                break;
                                // Transaction ID
                            // Transaction ID
                            case 'column-tranid':
                                $transaction_id = $log_entry->time . $log_entry->user_id;
                                $saved_data = maybe_unserialize($log_entry->data);
                                if (isset($saved_data['txn_id'])) {
                                    $transaction_id = $saved_data['txn_id'];
                                } elseif (isset($saved_data['transaction_id'])) {
                                    $transaction_id = $saved_data['transaction_id'];
                                }
                                echo $transaction_id;
                                break;
                            default:
                                do_action('mycred_payment_log_' . $column_id, $log_entry);
                                do_action('mycred_payment_log_' . $column_id . '_' . $type, $log_entry);
                                break;
                        }
                        echo '</td>';
                    }
                    echo '</tr>';
                }
            } else {
                echo '<tr><td colspan="' . count($log->headers) . '" class="no-entries">' . __('No purchases found', 'mycred') . '</td></tr>';
            }
            ?>
			</tbody>
		</table>
		<div class="tablenav bottom">

			<?php 
            $log->table_nav('bottom', false);
            ?>

		</div>
		<?php 
            do_action('mycred_below_payment_log_table', $this);
            ?>

	</form>
</div>
<?php 
        }
Пример #4
0
 /**
  * Widget Output
  */
 function widget($args, $instance)
 {
     extract($args, EXTR_SKIP);
     // If we are logged in
     if (is_user_logged_in()) {
         // Current user id
         $user_id = get_current_user_id();
         // Load myCRED Now
         if (!isset($instance['type']) || empty($instance['type'])) {
             $instance['type'] = 'mycred_default';
         }
         $mycred = mycred($instance['type']);
         // If this is an excluded user we bail
         if ($mycred->exclude_user($user_id)) {
             return;
         }
         // Start
         echo $before_widget;
         // Title
         if (!empty($instance['title'])) {
             echo $before_title;
             echo $mycred->template_tags_general($instance['title']);
             echo $after_title;
         }
         // Balance
         $balance = $mycred->get_users_cred($user_id, $instance['type']);
         if (empty($balance)) {
             $balance = 0;
         }
         $layout = $mycred->template_tags_amount($instance['cred_format'], $balance);
         $layout = $mycred->template_tags_user($layout, false, wp_get_current_user());
         // Include Ranking
         if ($instance['show_rank']) {
             if (function_exists('mycred_get_users_rank')) {
                 $rank_name = mycred_get_users_rank($user_id);
                 $ranking = str_replace('%rank%', $rank_name, $instance['rank_format']);
                 $ranking = str_replace('%rank_logo%', mycred_get_rank_logo($rank_name), $ranking);
                 $ranking = str_replace('%ranking%', '', $ranking);
             } else {
                 $ranking = str_replace(array('%rank%', '%ranking%'), '', $instance['rank_format']);
             }
             $ranking = '<div class="myCRED-rank">' . $ranking . '</div>';
             $layout .= $ranking;
         }
         echo '<div class="myCRED-balance">' . $layout . '</div>';
         // If we want to include history
         if ($instance['show_history']) {
             echo '<div class="myCRED-widget-history">';
             // Query Log
             $log = new myCRED_Query_Log(array('user_id' => $user_id, 'number' => $instance['number'], 'ctype' => $instance['type']));
             // Have results
             if ($log->have_entries()) {
                 // Title
                 if (!empty($instance['history_title'])) {
                     $history_title = $instance['history_title'];
                     echo $before_title . $mycred->template_tags_general($history_title) . $after_title;
                 }
                 // Organized List
                 echo '<ol class="myCRED-history">';
                 $alt = 0;
                 $date_format = get_option('date_format');
                 foreach ($log->results as $entry) {
                     // Row Layout
                     $layout = $instance['history_format'];
                     $layout = str_replace('%date%', '<span class="date">' . date_i18n($date_format, $entry->time) . '</span>', $layout);
                     $layout = str_replace('%entry%', $mycred->parse_template_tags($entry->entry, $entry), $layout);
                     $layout = $mycred->allowed_tags($layout);
                     $layout = $mycred->template_tags_general($layout);
                     $layout = $mycred->template_tags_amount($layout, $entry->creds);
                     // Alternating rows
                     $alt = $alt + 1;
                     if ($alt % 2 == 0) {
                         $class = 'row alternate';
                     } else {
                         $class = 'row';
                     }
                     // Output list item
                     echo '<li class="' . $class . '">' . $layout . '</li>';
                 }
                 echo '</ol>';
             }
             $log->reset_query();
             echo '</div>';
         }
         // End
         echo $after_widget;
     } else {
         // If we want to show a message, then do so
         if ($instance['show_visitors']) {
             echo $before_widget;
             $mycred = mycred($instance['type']);
             // Title
             if (!empty($instance['title'])) {
                 echo $before_title;
                 echo $mycred->template_tags_general($instance['title']);
                 echo $after_title;
             }
             $message = $instance['message'];
             $message = $mycred->template_tags_general($message);
             $message = $mycred->allowed_tags($message);
             echo '<div class="myCRED-my-balance-message"><p>' . nl2br($message) . '</p></div>';
             echo $after_widget;
         }
     }
 }
Пример #5
0
    function mycred_render_shortcode_history($atts, $content = '')
    {
        extract(shortcode_atts(array('user_id' => '', 'number' => '', 'time' => '', 'ref' => '', 'order' => '', 'show_user' => 0, 'show_nav' => 1, 'login' => '', 'type' => 'mycred_default'), $atts));
        // If we are not logged in
        if (!is_user_logged_in() && $login != '') {
            return $login . $content;
        }
        if ($user_id == 'current') {
            $user_id = get_current_user_id();
        }
        $args = array('ctype' => $type);
        if ($user_id != '') {
            $args['user_id'] = $user_id;
        }
        if ($number != '') {
            $args['number'] = $number;
        }
        if ($time != '') {
            $args['time'] = $time;
        }
        if ($ref != '') {
            $args['ref'] = $ref;
        }
        if ($order != '') {
            $args['order'] = $order;
        }
        if (isset($_GET['paged']) && $_GET['paged'] != '') {
            $args['paged'] = absint($_GET['paged']);
        }
        $log = new myCRED_Query_Log($args);
        if ($show_user != 1) {
            unset($log->headers['column-username']);
        }
        ob_start();
        ?>

<form class="form" role="form" method="get" action="">
	<div class="tablenav top">

		<?php 
        if ($log->have_entries() && $show_nav == 1 && $log->max_num_pages > 1) {
            $log->navigation('top');
        }
        ?>

	</div>

	<?php 
        $log->display();
        ?>

	<div class="tablenav bottom">

		<?php 
        if ($log->have_entries() && $show_nav == 1 && $log->max_num_pages > 1) {
            $log->navigation('bottom');
        }
        ?>

	</div>
</form>
<?php 
        $content = ob_get_contents();
        ob_end_clean();
        $log->reset_query();
        return $content;
    }
Пример #6
0
 function mycred_render_shortcode_history($atts)
 {
     extract(shortcode_atts(array('user_id' => NULL, 'number' => NULL, 'time' => NULL, 'ref' => NULL, 'order' => NULL, 'show_user' => false, 'login' => '', 'type' => 'mycred_default'), $atts));
     // If we are not logged in
     if (!is_user_logged_in() && !empty($login)) {
         return '<p class="mycred-history login">' . $login . '</p>';
     }
     if ($user_id === NULL) {
         $user_id = get_current_user_id();
     }
     $args = array('user_id' => $user_id, 'ctype' => $type);
     if ($number !== NULL) {
         $args['number'] = $number;
     }
     if ($time !== NULL) {
         $args['time'] = $time;
     }
     if ($ref !== NULL) {
         $args['ref'] = $ref;
     }
     if ($order !== NULL) {
         $args['order'] = $order;
     }
     $log = new myCRED_Query_Log($args);
     if ($show_user !== true) {
         unset($log->headers['column-username']);
     }
     $result = $log->get_display();
     $log->reset_query();
     return $result;
 }