class-quick-donation-db.php 3.48 KB
Newer Older
1 2 3 4 5 6 7 8 9
<?php
/**
 * functionality of the plugin.
 * @author  Varun Sridharan <varunsridharan23@gmail.com>
 */
if ( ! defined( 'WPINC' ) ) { die; }

class WooCommerce_Quick_Donation_DB  {
    
Varun Sridharan's avatar
Varun Sridharan committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    /**
     * Internal Post Meta Function
     */
    protected function post_meta($id,$meta_key,$single = false){
        return get_post_meta($id,$meta_key,$single);
    }
    
    
    public function get_message($id,$search_replace = array()){
        if($id == null){ return false; }
        $text = WC_QD()->settings()->get_option($id);
        $replaced_text = str_replace(array_keys($search_replace),array_values($search_replace),$text);
        return $replaced_text;
    }

    
    public function min_project($id){
        $value = intval($this->post_meta($id,'_'.WC_QD_DB.'min_req_donation',true));
        if($value > 0){ return $value;}
        return false;
    }
    
    public function max_project($id){
        $value = intval($this->post_meta($id,'_'.WC_QD_DB.'max_req_donation',true));
        if($value > 0){ return $value;}
        return false;
    }
    
    public function project_status($id){
        return $this->post_meta($id,'_'.WC_QD_DB . 'visibility_project',true);
    }    
    
    public function _is_donation($id){
        $status = intval($this->post_meta($id,'_is_donation',true));
        if($status == 1){return true;}
        return false;
    }
    
48 49 50 51 52
    public function get_project_id($id){
        $project_id = intval($this->post_meta($id,'_project_details',true));
        return $project_id;
    }
    
53 54 55 56 57 58 59 60 61
    public function add_db_option($order_id,$project_id,$user_id){
        global $wpdb; 
        $data_c = array('date' => current_time( 'mysql' ),'userid' => $user_id,'donationid' => $order_id,'projectid' => $project_id); 
        $wpdb->insert(WC_QD_TB, $data_c);
    }
 
    
    public function get_donation_order_ids(){
        global $wpdb;
Varun Sridharan's avatar
Varun Sridharan committed
62 63 64 65 66 67 68 69 70 71 72
        $db_request = $wpdb->get_results("SELECT donationid FROM ".WC_QD_TB,ARRAY_A);
        if(!empty($db_request)){
            return $db_request;
        }
        return array();
    }
    
    public function get_user_donations_ids($user_id = ''){
        global $wpdb;
        if($user_id == ''){ $user_id = get_current_user_id();}
        $db_request = $wpdb->get_results("SELECT donationid FROM ".WC_QD_TB.' WHERE userid = '.$user_id,ARRAY_A);
73 74 75 76 77 78
        if(!empty($db_request)){
            return $db_request;
        }
        return array();
    }
    
Varun Sridharan's avatar
Varun Sridharan committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
    public function get_donation_grouped_count($user_id = ''){
        global $wpdb;
        $query = 'SELECT projectid, userid,COUNT( * ) AS num_posts FROM '.WC_QD_TB;
        if(!empty($user_id)){ $query .= ' WHERE userid = '.$user_id; }
        $query .= ' GROUP BY projectid';
        $query .= ' , userid ';
        
        $db_request = $wpdb->get_results($query,ARRAY_A);
        if(!empty($db_request)){
            return $db_request;
        }
        return array();
    }
    
    
    public function get_doners_ids(){
        global $wpdb;
        $db_request = $wpdb->get_results("SELECT DISTINCT  `userid` FROM ".WC_QD_TB,ARRAY_A);
        if(!empty($db_request)){
            return $db_request;
        }
        return array();
    }
    
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
    public function extract_donation_id($ids){
        $return_ids = array();
        foreach($ids as $i){
            if(is_array($i)){
                foreach($i as $d){
                    $return_ids[] = $d;
                }
            } else {
                $return_ids[] = $i;
            }
        }
        return $return_ids;
    }
}
?>