403Webshell
Server IP : 185.143.234.238  /  Your IP : 185.215.232.195
Web Server : LiteSpeed
System : Linux saman.shetabanhost.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User : behrakir ( 1361)
PHP Version : 8.1.34
Disable Function : symlink,shell_exec,show_source,exec,popen,system,passthru,proc_open,proc_close,pcntl_exec,mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/behrakir/khanomam.com/wp-content/plugins/wp-score-gamification/app/classes/parts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/behrakir/khanomam.com/wp-content/plugins/wp-score-gamification/app/classes/parts/gifts.php
<?php namespace Avans\parts;

use Avans\data;
use Avans\update;
use Avans\user;
use WP_Error;

class gifts
{
    private $user;
    private $options;
    private $gift_id;

    public function __construct($gift_id, $user)
    {
        $this->user = $user;
        $this->gift_id = $gift_id;
        $this->options = get_post_meta($gift_id, AVANS_PREFIX.'gift_settings', true);
    }

    public function add_gifts()
    {
        $user_score = user::get_score_valid((int)$this->user);

        $stock = get_post_meta( $this->gift_id , AVANS_PREFIX.'gift_stock', true);
        if( is_numeric($stock) && $stock <= 0 ){
            return new WP_Error(__("The award stock is over" , AVANS_TEXT_DOMAIN));
        }
        
        if ($user_score < (int)$this->options['score_for_get_gift']) {
            return false;
        }


        switch ($this->options['avans_type_gift']) {
            case 'coupon':
                $data = $this->add_gifts_coupon();
            break;
            case 'unique-code':
                $data = $this->add_unique_code();
            break;
            case 'file':
                $data = $this->add_gifts_downloadable_files();
            break;
            case 'custom':
                $data = $this->add_gifts_custom();
            break;
            case 'product':
                $data = $this->add_gifts_product();
            break;
        }

        // $data['instructions'] = isset($this->options['instructions']) ? $this->options['instructions'] : null;

        return $data;
    }

    public function add_unique_code(){

        $used_codes = get_post_meta($this->gift_id , AVANS_PREFIX . 'gift_used_unique_codes' , true);
        $used_codes = is_array($used_codes) ? $used_codes : [];

        $unused_codes = get_post_meta($this->gift_id , AVANS_PREFIX . 'gift_unique_codes' , true);
        $unused_codes = is_array($unused_codes) ? $unused_codes : [];

        if(count($unused_codes) == 0 || empty($unused_codes[0])){
            return new WP_Error(__("there is no code", AVANS_TEXT_DOMAIN));
        }

        array_push($used_codes , $unused_codes[0]);

        array_shift($unused_codes);

        update_post_meta($this->gift_id , AVANS_PREFIX . 'gift_used_unique_codes' , $used_codes);
        update_post_meta($this->gift_id , AVANS_PREFIX . 'gift_unique_codes' , $unused_codes);

        $data = [
            'unique-code' => $unused_codes[0],
        ];

        return $data;
    }

    private function add_gifts_coupon()
    {
        $data = $this->options;
        $args = array(
            'char' => $data['number_of_charecter_coupen'],
            'expire_date' => $data['expire_date_coupen'],
            'prefix' => $data['prefix_coupen'],
            'suffix' => $data['suffix_coupen'],
            'type' => $data['avans_type_coupon_gift'],
            'amount' => $data['value_percent_coupen'],
            'include_product' => $data['limited_custom_product_for_copon'],
            'include_category' => $data['limited_custom_category_for_copon'],
            'exclude_product' => $data['exclude_custom_product_for_copon'],
            'exclude_category' => $data['exclude_custom_category_for_copon'],
            'min_price' => $data['min_price_for_coupen'],
            'max_price' => $data['max_price_for_coupen'],
            'prefix' => $data['prefix_coupen'],
            'exclude_sale_product' => $data['exclude_sale_product'],
            'max_discount' => $data['max_discount'],
        );
        $coupon = data::create_coupon($args);
        $data = [
            'code' => $coupon,
            'args' => $args,
        ];
        return $data;
    }

    private function add_gifts_downloadable_files()
    {
        $data = [
            'args' => $this->options['download_file_link_for_gift']
        ];
        return $data;
    } 

    private function add_gifts_product()
    {
        $products = $this->options['select_product_for_gift'];
        global $woocommerce;
        $order = wc_create_order(['customer_id' => $this->user]);
        foreach ($products as $product) {
            $order->add_product(wc_get_product(strval($product)), 1);
        }
        $order->update_status("wc-processing", 'Imported order', true);
        update_post_meta($order->get_id(),AVANS_PREFIX.'is_order_prize','true');
        $data = [
            'order_id' => $order->get_id(),
        ];
        return $data;
    }

    private function add_gifts_custom()
    {
        $data = [
            'full_content' => $this->options['custom_content_for_gift'],
        ];
        return $data;
    }
    

    public static function get_codes_log_csv( $gift_id , $type ){

        if( !in_array( $type , ['all' , 'used' , 'unused'] ) ) return;

        $used_codes = get_post_meta($gift_id , AVANS_PREFIX . 'gift_used_unique_codes' , true);
        $used_codes = empty( $used_codes ) ? [] : $used_codes;

        $unused_codes = get_post_meta($gift_id , AVANS_PREFIX . 'gift_unique_codes' , true);
        $unused_codes = empty( $unused_codes ) ? [] : $unused_codes;
        
        $all_codes = array_merge($used_codes,$unused_codes);

        $header = [
            'codes',
        ];
        $rows = [];

        if($type == 'all'){
            $codes = $all_codes;
        }elseif($type == 'used'){
            $codes = $used_codes;
        }elseif($type == 'unused'){
            $codes = $unused_codes;
        }

        foreach($codes as $code){
            $rows[] = [
                $code,
            ];
        }

        self::export_csv($header , $rows);

    }

    public static function export_csv(array $header , array $rows){
        ob_start();
        $domain = $_SERVER['SERVER_NAME'];
        $filename = 'avans-gift-unique-codes-' . $domain . '-' . time() . '.csv';

        $file = @fopen('php://output', 'w');
        fprintf($file, chr(0xEF) . chr(0xBB) . chr(0xBF));
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Content-Description: File Transfer');
        header('Content-type: text/csv');
        header("Content-Disposition: attachment; filename={$filename}");
        header('Expires: 0');
        header('Pragma: public');
        fputcsv($file, $header);
        foreach ($rows as $row) {
            fputcsv($file, $row);
        }
        fclose($file);
        ob_end_flush();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit