شاید تمایل داشته باشید گزارشی از مجموع فروش را براساس استان‌ها بدست آورید تا برای فروش خود از طریق فروشگاه اینترنتی برنامه‌ریزی کنید. به عنوان مثال به استان‌هایی که سفارشات بیشتری را ثبت می‌کنند، کد تخفیف اختصاص دهید. برای این کار لازم است تا در این آموزش همراه ما باشید. در این نوشته قصد داریم نحوه نمایش مجموع فروش براساس استان را به شما آموزش دهیم.

محاسبه مبلغ فروش براساس استان
ووکامرس : محاسبه مبلغ فروش براساس استان (ایالت)

محاسبه مبلغ فروش براساس ایالت در ووکامرس

اگر می‌خواهید مبلغ فروش را براساس هر یک از استان‌ها یا ایالت‌ها بدست آورید، کافی است قطعه کد زیر را در فایل functions.php قرار دهید. پس از قراردادن کد، مجموع فروش به ازای هر استان از طریق پیشخوان » ووکامرس » گزارشات قابل نمایش خواهد بود و به راحتی می‌توانید بفهمید مجموع فروش در هر استان یا ایالت چقدر بوده است.

نکته: در حال حاضر کد ارائه شده، مجموع فروش را براساس استان‌های ایران و سال ۲۰۲۱ نمایش می‌دهد. اگر می‌خواهید گزارش سال دیگری را داشته باشید یا کشور مورد نظر خود را تغییر دهید، باید مقادیر متغیرهای report_country$ و report_year$ را تغییر دهید.

/**
 * @snippet         Get Sales by State @ WooCommerce Admin
 * @author          Rodolfo Melogli (Business Bloomer)
 * @editor          Rasool Vahdati (Tidaweb)
 * @testedwith      WooCommerce 3.1.2
 */
 
// -----------------------
// ۱. Create extra tab under Reports / Orders
 
add_filter( 'woocommerce_admin_reports', 'tidaweb_admin_add_report_orders_tab' );
 
function tidaweb_admin_add_report_orders_tab( $reports ) {

    $array = array(
        'sales_by_state' => array(
            'title' => 'فروش براساس استان',
            'description' => '',
            'hide_title' => ۱,
            'callback' => 'tidaweb_yearly_sales_by_state'
        )
    );

    $reports['orders']['reports'] = array_merge($reports['orders']['reports'],$array);

    return $reports;

}

// -----------------------
// ۲. Calculate sales by state

function tidaweb_yearly_sales_by_state() {
    
    $report_country = 'IR'; // change this if needed
    $report_year = 2021; // change this if needed
    $order_total = [];

    $args = [
        'post_type' => 'shop_order',
        'posts_per_page' => '-۱',
        'year' => $report_year,
        'post_status' => ['wc-completed']
    ];
    $my_query = new WP_Query($args);
    $orders = $my_query->posts;

    foreach ($orders as $order => $value) {

        $order_id = $value->ID;
        $order = wc_get_order($order_id);
        $order_data = $order->get_data();

        if ( $order_data['billing']['country'] === $report_country ) {
            $order_total[] = [ 'state' => $order_data['billing']['state'], 'total' => $order->get_total() ];
        }

    }

    // calculate total sales by states
    $sum_order_total = array_reduce($order_total, function ($a, $b) {
        isset($a[$b['state']]) ? $a[$b['state']]['total'] += $b['total'] : $a[$b['state']] = $b;  
        return $a;
    });

    // show data
    echo "<h3>فروش براساس استان در  سال " . $report_year . "</h3>";
    if(!empty($sum_order_total)) {
        foreach($sum_order_total as $sum_order_item) {
            echo tidaweb_wc_state_name( $sum_order_item['state'] ).": " . wc_price( $sum_order_item['total'] ) . "</br>";
        }
    }

}

// -----------------------
// ۳. Get state name by state code

function tidaweb_wc_state_name( $state_code ) {

    $state_list  = [
        'ABZ' => 'البرز',
        'ADL' => 'اردبیل',
        'EAZ' => 'آذربایجان شرقی',
        'WAZ' => 'آذربایجان غربی',
        'BHR' => 'بوشهر',
        'CHB' => 'چهارمحال و بختیاری',
        'FRS' => 'فارس',
        'GIL' => 'گیلان',
        'GLS' => 'گلستان',
        'HDN' => 'همدان',
        'HRZ' => 'هرمزگان',
        'ILM' => 'ایلام',
        'ESF' => 'اصفهان',
        'KRN' => 'کرمان',
        'KRH' => 'کرمانشاه',
        'NKH' => 'خراسان شمالی',
        'RKH' => 'خراسان رضوی',
        'SKH' => 'خراسان جنوبی',
        'KHZ' => 'خوزستان',
        'KBD' => 'کهگیلویه و بویراحمد',
        'KRD' => 'کردستان',
        'LRS' => 'لرستان',
        'MKZ' => 'مرکزی',
        'MZN' => 'مازندران',
        'GZN' => 'قزوین',
        'QHM' => 'قم',
        'SMN' => 'سمنان',
        'SBN' => 'سیستان و بلوچستان',
        'THR' => 'تهران',
        'YZD' => 'یزد',
        'ZJN' => 'زنجان',
    ];

    return $state_list[ $state_code ];
}

در این نوشته یاد گرفتیم که چگونه می‌توان مجموع فروش را براساس ایالت در ووکامرس نمایش داد. در صورتی که نظری دارید می‌توانید آن را با ما در میان بگذارید. همچنین اگر به دنبال ترفندهای بیشتر هستید، به ترفند وردپرس مراجعه کنید.

تنظیم وضعیت سفارشی برای سفارشات جدید در ووکامرس

منبع : Business Bloomer

۴.۷/۵ - (۱۳۵ امتیاز)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.