HEX
Server: Apache
System: Linux top 5.8.11-1.el7.elrepo.x86_64 #1 SMP Tue Sep 22 18:18:35 EDT 2020 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.018111.cn/wp-content/themes/jian/inc/admin/init.php
<?php

if (!defined('ABSPATH')) {die;} // Cannot access directly.


/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////


function add_admin_ripro_shop_menu() {
    $index_page = 'cao_admin';
    add_menu_page(esc_html__('商城管理','cao'),esc_html__('商城管理','cao'), 'manage_options', $index_page, $index_page, 'dashicons-cart', 100);
    $menu = [
        ['menu'=>'cao_admin','name'=>esc_html__('商城总览','cao')],
        ['menu'=>'cao_admin_change_log','name'=>esc_html__(_cao('site_money_ua').'充值记录','cao')],
        ['menu'=>'cao_admin_pay_log','name'=>esc_html__('资源/会员订单','cao')],
        //['menu'=>'cao_admin_pay_ph','name'=>esc_html__('资源销售排行','cao')],
        ['menu'=>'cao_admin_down_log','name'=>esc_html__('用户下载记录查询','cao')],
        ['menu'=>'cao_admin_balance_log','name'=>esc_html__('用户余额记录查询','cao')],
        ['menu'=>'cao_admin_ref_log','name'=>esc_html__('用户佣金记录查询','cao')],
        
        ['menu'=>'cao_admin_price_log','name'=>esc_html__('文章价格批量修改','cao')],
        ['menu'=>'cao_admin_aff_log','name'=>esc_html__('网站佣金提现审核','cao')],
        ['menu'=>'cao_admin_cdk_log','name'=>esc_html__('网站卡密管理','cao')],
        ['menu'=>'cao_admin_user_log','name'=>esc_html__('网站会员管理','cao')],
        ['menu'=>'wp_clean_up_page','name'=>esc_html__('数据库优化','cao')],
    ];
    foreach ($menu as $k => $v) {
        add_submenu_page($index_page,$v['name'],$v['name'],'manage_options',$v['menu'],$v['menu']);
    }

}
if (is_site_shop_open()) {
    add_action('admin_menu', 'add_admin_ripro_shop_menu');
}

require_once get_template_directory() . '/inc/plugins/wp-clean-up/wp-clean-up.php';


function cao_admin() {
    require_once get_template_directory() . '/inc/admin/pages/index.php';
}
function cao_admin_change_log() {
    require_once get_template_directory() . '/inc/admin/pages/change_log.php';
}
function cao_admin_pay_log() {
    require_once get_template_directory() . '/inc/admin/pages/pay_log.php';
}
function cao_admin_pay_ph() {
    require_once get_template_directory() . '/inc/admin/pages/pay_ph.php';
}
function cao_admin_down_log() {
    require_once get_template_directory() . '/inc/admin/pages/down_log.php';
}
function cao_admin_cdk_log() {
    require_once get_template_directory() . '/inc/admin/pages/cdk_log.php';
}
function cao_admin_user_log() {
    require_once get_template_directory() . '/inc/admin/pages/user_log.php';
}
function cao_admin_balance_log() {
    require_once get_template_directory() . '/inc/admin/pages/balance_log.php';
}
function cao_admin_aff_log() {
    require_once get_template_directory() . '/inc/admin/pages/aff_log.php';
}
function cao_admin_ref_log() {
    require_once get_template_directory() . '/inc/admin/pages/ref_log.php';
}
function cao_admin_price_log() {
    require_once get_template_directory() . '/inc/admin/pages/price_log.php';
}




/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////



//时间查询
class RiPLus_Time
{
    
    /**
     * 返回今日开始和结束的时间戳
     *
     * @return array
     */
    public static function today()
    {
        
        return [
            mktime(0, 0, 0, date('m'), date('d'), date('Y')),
            mktime(23, 59, 59, date('m'), date('d'), date('Y'))
        ];
    }
 
    /**
     * 返回昨日开始和结束的时间戳
     *
     * @return array
     */
    public static function yesterday()
    {
        $yesterday = date('d') - 1;
        return [
            mktime(0, 0, 0, date('m'), $yesterday, date('Y')),
            mktime(23, 59, 59, date('m'), $yesterday, date('Y'))
        ];
    }
 
    /**
     * 返回本周开始和结束的时间戳
     *
     * @return array
     */
    public static function week()
    {
        $timestamp = time();
        return [
            mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y")),
            mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))
        ];
    }
 
    /**
     * 返回上周开始和结束的时间戳
     *
     * @return array
     */
    public static function lastWeek()
    {
        $timestamp = time();
        return [
            mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y")),
            mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))
        ];
    }
 
    /**
     * 返回本月开始和结束的时间戳
     *
     * @return array
     */
    public static function month($everyDay = false)
    {
        return [
            mktime(0, 0, 0, date('m'), 1, date('Y')),
            mktime(23, 59, 59, date('m'), date('t'), date('Y'))
        ];
    }
 
    /**
     * 返回上个月开始和结束的时间戳
     *
     * @return array
     */
    public static function lastMonth()
    {
        $begin = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));
        $end = mktime(23, 59, 59, date('m') - 1, date('t', $begin), date('Y'));
 
        return [$begin, $end];
    }
 
    /**
     * 返回今年开始和结束的时间戳
     *
     * @return array
     */
    public static function year()
    {
        return [
            mktime(0, 0, 0, 1, 1, date('Y')),
            mktime(23, 59, 59, 12, 31, date('Y'))
        ];
    }
 
    /**
     * 返回去年开始和结束的时间戳
     *
     * @return array
     */
    public static function lastYear()
    {
        $year = date('Y') - 1;
        return [
            mktime(0, 0, 0, 1, 1, $year),
            mktime(23, 59, 59, 12, 31, $year)
        ];
    }
 
    public static function dayOf()
    {
 
    }
 
    /**
     * 获取几天前零点到现在/昨日结束的时间戳
     *
     * @param int $day 天数
     * @param bool $now 返回现在或者昨天结束时间戳
     * @return array
     */
    public static function dayToNow($day = 1, $now = true)
    {
        $end = time();
        if (!$now) {
            list($foo, $end) = self::yesterday();
        }
 
        return [
            mktime(0, 0, 0, date('m'), date('d') - $day, date('Y')),
            $end
        ];
    }
 
    /**
     * 返回几天前的时间戳
     *
     * @param int $day
     * @return int
     */
    public static function daysAgo($day = 1)
    {
        $nowTime = time();
        return $nowTime - self::daysToSecond($day);
    }
 
    /**
     * 返回几天后的时间戳
     *
     * @param int $day
     * @return int
     */
    public static function daysAfter($day = 1)
    {
        $nowTime = time();
        return $nowTime + self::daysToSecond($day);
    }
 
    /**
     * 天数转换成秒数
     *
     * @param int $day
     * @return int
     */
    public static function daysToSecond($day = 1)
    {
        return $day * 86400;
    }
 
    /**
     * 周数转换成秒数
     *
     * @param int $week
     * @return int
     */
    public static function weekToSecond($week = 1)
    {
        return self::daysToSecond() * 7 * $week;
    }
 
    private static function startTimeToEndTime()
    {
 
    }
}


/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////




add_filter('manage_users_sortable_columns', 'registerdate_column_sortable');
add_filter('request', 'registerdate_column_orderby');
function registerdate_column_sortable($columns) {
    $custom = array(
        'reg_time' => 'registered',
    );
    return wp_parse_args($custom, $columns);
}
function registerdate_column_orderby($vars) {
    if (isset($vars['orderby']) && 'registerdate' == $vars['orderby']) {
        $vars = array_merge($vars, array(
            'meta_key' => 'registerdate',
            'orderby'  => 'meta_value',
        ));
    }
    return $vars;
}

add_filter('pre_get_users', 'filter_users');
add_filter('views_users', 'views_users');
function views_users($views) {
    global $wpdb;
    if (!current_user_can('edit_users')) {
        return $views;
    }
    $type     = 'vip';
    $current  = (isset($_REQUEST['vip_type']) && $_REQUEST['vip_type'] == $type) ? 'class="current"' : '';
    $meta_key = 'cao_user_type';
    $users    = get_users(array(
        'meta_query' => array(
            array(
                'key'     => $meta_key,
                'value'   => $type,
                'compare' => '==',
            ),
        ),
    ));
    $count = count($users);

    $views['vip'] = '<a href="' . admin_url('users.php') . '?vip_type=' . $type . '" ' . $current . '>' . _cao('site_vip_name') . '用户 <span class="count">(' . $count . ')</span></a>';

    $type    = 'vip';
    $current = (isset($_REQUEST['vip_type']) && $_REQUEST['vip_type'] == 'vip_pro') ? 'class="current"' : '';

    $users = get_users(array(
        'meta_query' => array(
            array(
                'key'     => $meta_key,
                'value'   => $type,
                'compare' => '==',
            ),
            array(
                'key'     => 'cao_vip_end_time',
                'value'   => '9999-09-09',
                'compare' => '==',
            ),
        ),
    ));
    $count = count($users);

    $views['vip_pro'] = '<a href="' . admin_url('users.php') . '?vip_type=vip_pro" ' . $current . '>永久' . _cao('site_vip_name') . '用户 <span class="count">(' . $count . ')</span></a>';

    return $views;
}
function filter_users($query) {
    global $pagenow, $wpdb;
    if (is_admin() && 'users.php' == $pagenow && isset($_REQUEST['vip_type']) && $_REQUEST['vip_type'] == 'vip') {
        $meta_key = '_riplus_vip_type';
        $query->set('meta_query', array(
            array(
                'key'     => 'cao_user_type',
                'value'   => 'vip',
                'compare' => '==',
            ),
        ));
    }
    if (is_admin() && 'users.php' == $pagenow && isset($_REQUEST['vip_type']) && $_REQUEST['vip_type'] == 'vip_pro') {
        $meta_key = '_riplus_vip_type';
        $query->set('meta_query', array(
            array(
                'key'     => 'cao_user_type',
                'value'   => 'vip',
                'compare' => '==',
            ),
            array(
                'key'     => 'cao_vip_end_time',
                'value'   => '9999-09-09',
                'compare' => '==',
            ),
        ));
    }
    return $query;
}

/**
 * [my_users_columns 挂钩WP后台用户列表]
 * @Author   Dadong2g
 * @DateTime 2019-05-28T12:32:52+0800
 * @param    [type]                   $columns [description]
 * @return   [type]                            [description]
 */
function my_users_columns($columns) {

    $columns['reg_time']      = __('注册时间');
    $columns['vip_type']      = __('会员类型');
    $columns['vip_balance']   = __('余额');
    $columns['user_status']   = __('账号状态');
    $columns['signup_ip']     = __('注册IP');
    $columns['last_login']    = __('上次登录');
    $columns['last_login_ip'] = __('登录IP');
    unset($columns['role']);
    unset($columns['name']);
    unset($columns['posts']);
    return $columns;
}

/**
 * [output_my_users_columns 添加用户列表自定义列]
 * @Author   Dadong2g
 * @DateTime 2019-05-28T12:32:38+0800
 * @param    [type]                   $var         [description]
 * @param    [type]                   $column_name [description]
 * @param    [type]                   $user_id     [description]
 * @return   [type]                                [description]
 */
function output_my_users_columns($var, $column_name, $user_id) {
    $CaoUser = new CaoUser($user_id);
    $user    = get_userdata($user_id);
    switch ($column_name) {
    case "vip_type":
        return $CaoUser->vip_name();
        break;
    case "vip_balance":
        return $CaoUser->get_balance();
        break;
    case "user_status":
        $is_ban = (get_user_meta($user_id, 'cao_banned', true)) ? true : false;
        if ($is_ban) {
            $str = '封号';
        } else {
            $str = '正常';
        }
        return $str;
        break;
    case "reg_time":
        return get_date_from_gmt($user->user_registered);
        break;
    case "signup_ip":
        if ($meta = get_user_meta($user->ID, 'signup_ip', true)) {
           return $meta;
        }else{
            return '';
        }
        
        break;
    case "last_login":
        if ($meta = get_user_meta($user->ID, 'last_login', true)) {
           return $meta;
        }else{
            return '';
        }
        break;

    case "last_login_ip":
        if ($meta = get_user_meta($user->ID, 'last_login_ip', true)) {
           return $meta;
        }else{
            return '';
        }
        
        break;

    }
}
add_filter('manage_users_columns', 'my_users_columns');
add_action('manage_users_custom_column', 'output_my_users_columns', 10, 3);

/**
 * [my_post_custom_columns 挂钩WP后台文章列表]
 * @Author   Dadong2g
 * @DateTime 2019-05-28T12:33:01+0800
 * @param    [type]                   $columns [description]
 * @return   [type]                            [description]
 */
function my_post_custom_columns($columns) {
    // Add a new field
    $columns['cao_price'] = __('资源价格');
    // Delete an existing field, eg. comments
    unset($columns['comments']);
    return $columns;
}
/**
 * [output_my_post_custom_columns 添加文章列表自定义列]
 * @Author   Dadong2g
 * @DateTime 2019-05-28T12:32:08+0800
 * @param    [type]                   $column_name [description]
 * @param    [type]                   $post_id     [description]
 * @return   [type]                                [description]
 */
function output_my_post_custom_columns($column_name, $post_id) {
    switch ($column_name) {
    case "cao_price":
        // Retrieve data and echo result
        $cao_price = (get_post_meta($post_id, 'cao_price', true)) ? get_post_meta($post_id, 'cao_price', true) : '—';
        echo $cao_price;
        break;
    }
}

add_filter('manage_posts_columns', 'my_post_custom_columns');
add_action('manage_posts_custom_column', 'output_my_post_custom_columns', 10, 2);