Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.226.186.153
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Exports/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Exports/DonorsExport.php
<?php

namespace Give\Exports;

use Give\Framework\Database\DB;
use Give\Framework\QueryBuilder\JoinQueryBuilder;
use Give_Batch_Export;

/**
 * @since 2.21.2
 */
class DonorsExport extends Give_Batch_Export
{
    /** @inheritdoc */
    public $export_type = 'donors';

    /** @var array */
    protected $postedData;

    /** @var String */
    protected $startDate;

    /** @var String */
    protected $endDate;

    /** @var String */
    protected $searchBy;

    /**
     * @var int
     */
    protected $donationFormId;

    /**
     * @inheritdoc
     */
    public function set_properties($request)
    {
        $this->postedData = $request;

        if ($this->postedData['giveDonorExport-startDate']) {
            $this->startDate = date('Y-m-d', strtotime($this->postedData['giveDonorExport-startDate']));
        }

        if ($this->postedData['giveDonorExport-endDate']) {
            $this->endDate = date('Y-m-d', strtotime($this->postedData['giveDonorExport-endDate']));
        }

        if ($this->postedData['searchBy']) {
            $this->searchBy = $this->postedData['searchBy'];
        }

        $this->donationFormId = (int)$this->postedData['forms'];
    }

    /**
     * @since 3.12.1 Include donor phone.
     * @since      2.29.0 Include donor created date
     * @since      2.21.2
     * @since 3.3.0 Filter donors by form ID
     */
    public function get_data(): array
    {
        $donorQuery = DB::table('give_donors', 'donors')
            ->distinct()
            ->select(
                ['donors.name', 'full_name'],
                ['donors.email', 'email'],
                ['donors.user_id', 'userid'],
                ['donors.date_created', 'donor_created_date'],
                ['donors.phone', 'donor_phone_number'],
                ['donors.purchase_count', 'donations'],
                ['donors.purchase_value', 'donation_sum']
            );

        $donationQuery = DB::table('posts', 'donations')
            ->select('donations.ID', ['meta.meta_value', 'donorId'])
            ->join(function (JoinQueryBuilder $builder) {
                $builder
                    ->leftJoin('give_donationmeta', 'meta')
                    ->on('donations.ID', 'meta.donation_id')
                    ->andOn('meta.meta_key', '_give_payment_donor_id', true);
            })
            ->where('donations.post_type', 'give_payment');

        if ($this->searchBy === 'donor') {
            if ($this->startDate && $this->endDate) {
                $donorQuery->whereBetween('DATE(donors.date_created)', $this->startDate, $this->endDate);
            } elseif ($this->startDate) {
                $donorQuery->where('DATE(donors.date_created)', $this->startDate, '>=');
            } elseif ($this->endDate) {
                $donorQuery->where('DATE(donors.date_created)', $this->endDate, '<=');
            }
        } else {
            if ($this->startDate && $this->endDate) {
                $donationQuery->whereBetween('DATE(donations.post_date)', $this->startDate, $this->endDate);
            } elseif ($this->startDate) {
                $donationQuery->where('DATE(donations.post_date)', $this->startDate, '>=');
            } elseif ($this->endDate) {
                $donationQuery->where('DATE(donations.post_date)', $this->endDate, '<=');
            }
        }

        if ($this->donationFormId) {
            $donationQuery
                ->join(function (JoinQueryBuilder $builder) {
                    $builder
                        ->leftJoin('give_donationmeta', 'form')
                        ->on('donations.ID', 'form.donation_id')
                        ->andOn('form.meta_key', '_give_payment_form_id', true);
                })
                ->where('form.meta_value', $this->donationFormId);
        }

        $donorQuery->joinRaw("JOIN ({$donationQuery->getSQL()}) AS sub ON donors.id = sub.donorId");

        if ($this->shouldIncludeAddress()) {
            $donorQuery->attachMeta(
                'give_donormeta',
                'donors.ID',
                'donor_id',
                ['_give_donor_address_billing_line1_0', 'address_line1'],
                ['_give_donor_address_billing_line2_0', 'address_line2'],
                ['_give_donor_address_billing_city_0', 'address_city'],
                ['_give_donor_address_billing_state_0', 'address_state'],
                ['_give_donor_address_billing_zip_0', 'address_zip'],
                ['_give_donor_address_billing_country_0', 'address_country']
            );
        }

        return $this->filterExportData(
            array_map(function ($row) {
                return array_intersect_key($row, $this->csv_cols());
            }, $donorQuery->getAll(ARRAY_A))
        );
    }

    /**
     * @since 2.21.2
     */
    protected function shouldIncludeAddress(): bool
    {
        return isset($this->postedData['give_export_columns']['address']);
    }

    /**
     * @since 2.21.2
     */
    protected function filterExportData(array $exportData): array
    {
        /**
         * @since 2.21.2
         *
         * @param array $exportData
         */
        return apply_filters("give_export_get_data_{$this->export_type}", $exportData);
    }

    /**
     * @since 3.14.0
     */
    protected function filterColumnData(array $defaultColumns): array
    {
        /**
         * @since 3.14.0
         *
         * @param array $defaultColumns
         */
        return apply_filters('give_export_donors_get_default_columns', $defaultColumns );
    }

    /**
     * @since 3.14.0 allow cols to be filtered.
     * @since 3.12.1 Include donor_phone_number col.
     * @since      2.29.0 Include donor created col
     * @since      2.21.2
     */
    public function csv_cols(): array
    {
        $defaultColumns = [
            'full_name' => __('Name', 'give'),
            'email' => __('Email', 'give'),
            'userid' => __('User ID', 'give'),
            'donor_created_date' => __('Donor Created', 'give'),
            'donor_phone_number' => __('Donor Phone Number', 'give'),
            'donations' => __('Number of donations', 'give'),
            'donation_sum' => __('Total Donated', 'give'),
            'address' => [
                'address_line1' => __('Address', 'give'),
                'address_line2' => __('Address 2', 'give'),
                'address_city' => __('City', 'give'),
                'address_state' => __('State', 'give'),
                'address_zip' => __('Zip', 'give'),
                'address_country' => __('Country', 'give'),
            ],
        ];

        $defaultColumns = $this->flattenAddressColumn(
            array_intersect_key($defaultColumns, $this->postedData['give_export_columns'])
        );

        return $this->filterColumnData($defaultColumns);
    }

    /**
     * @since 2.21.2
     */
    protected function flattenAddressColumn(array $columnarData): array
    {
        return $this->flattenColumn($columnarData, 'address');
    }

    /**
     * @since 2.21.2
     */
    protected function flattenColumn(array $columnarData, string $columnName): array
    {
        if (isset($columnarData[$columnName])) {
            $columnarData = array_merge($columnarData, $columnarData[$columnName]);
            unset($columnarData[$columnName]);
        }

        return $columnarData;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit