Plugin Directory

Changeset 3406805


Ignore:
Timestamp:
12/01/2025 12:08:25 PM (3 months ago)
Author:
hamsalam
Message:

1.6.0

Location:
sync-basalam
Files:
552 added
9 edited

Legend:

Unmodified
Added
Removed
  • sync-basalam/trunk/CHANGELOG.md

    r3403926 r3406805  
    11# Changelog
     2<details>
     3<summary>1.6.0 - 2025-12-1</summary>
     4### Changed / Improved
     5- Added automatic shipping method detection and auto-saving of the shipping name and cost in WooCommerce orders
     6
     7</details>
     8
    29<details>
    310<summary>1.5.9 - 2025-11-27</summary>
  • sync-basalam/trunk/includes/admin/class-sync-basalam-admin-settings.php

    r3403926 r3406805  
    3232    const SYNC_PRODUCT_FIELD_ATTR = "sync_product_field_attr";
    3333    const AUTO_CONFIRM_ORDER = "auto_confirm_order";
    34     const ORDER_SHIPPING_METHOD = "order_shipping_method";
    3534    const ALL_PRODUCTS_WHOLESALE = "all_products_wholesale";
    3635    const ADD_ATTR_TO_DESC_PRODUCT = "add_attr_to_desc_product";
     
    7574            self::SYNC_PRODUCT_FIELD_ATTR => 0,
    7675            self::AUTO_CONFIRM_ORDER => false,
    77             self::ORDER_SHIPPING_METHOD => false,
    7876            self::ALL_PRODUCTS_WHOLESALE => 'none',
    7977            self::ADD_ATTR_TO_DESC_PRODUCT => false,
  • sync-basalam/trunk/includes/admin/class-sync-basalam-admin-ui.php

    r3397803 r3406805  
    182182            '</select>';
    183183    }
    184     public static function renderDefaultShippingMethod(array $methods)
    185     {
    186         $current_value = SyncBasalamAdminSettings::getSettings(SyncBasalamAdminSettings::ORDER_SHIPPING_METHOD);
    187         echo '<select style="text-align: center; font-size:12px;" name="sync_basalam_settings[' . esc_attr(SyncBasalamAdminSettings::ORDER_SHIPPING_METHOD) . ']" class="basalam-select">';
    188         echo '<option value="false"' . selected($current_value, 'false', false) . '>بدون روش ارسال</option>';
    189 
    190         foreach ($methods as $method) {
    191             $id = esc_attr($method['method_id']);
    192             $title = esc_html($method['method_title']);
    193             $selected = selected($current_value, $id, false);
    194 
    195             echo '<option value="' . esc_attr($id) . '"' . esc_attr($selected) . '>' . esc_html($title) . '</option>';
    196         }
    197 
    198         echo '</select>';
    199     }
    200184
    201185    public static function renderSyncProduct()
  • sync-basalam/trunk/includes/class-sync-basalam-plugin.php

    r3403926 r3406805  
    44class SyncBasalamPlugin
    55{
    6     const VERSION = '1.5.9';
     6    const VERSION = '1.6.0';
    77
    88    public function __construct()
     
    9393        require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'services/class-sync-basalam-fetch-weekly-unsync-orders.php';
    9494        require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'services/class-sync-basalam-post-auto-confirm-order.php';
    95         require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'services/class-sync-basalam-get-woo-shipping-methods.php';
    9695        require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'services/class-sync-basalam-connect-product-service.php';
    9796        require_once SYNC_BASALAM_PLUGIN_INCLUDES_DIR . 'services/class-sync-basalam-discount-manager.php';
  • sync-basalam/trunk/includes/migration/class-sync-basalam-migrator-service.php

    r3397803 r3406805  
    130130            'basalam_webhook_token'    => 'webhook_header_token',
    131131            'basalam_auto_confirm_order' => 'auto_confirm_order',
    132             'default_shipping_method'  => 'order_shipping_method',
    133132            'basalam_product_wholesale' => 'all_products_wholesale',
    134133        ];
  • sync-basalam/trunk/includes/services/class-sync-basalam-order-manager.php

    r3403926 r3406805  
    44class SyncBasalamOrderManger
    55{
    6     private $apiservice;
     6    private $apiService;
    77
    88    public function __construct()
    99    {
    10         $this->apiservice = new SyncBasalamApiServiceManager;
     10        $this->apiService = new SyncBasalamApiServiceManager();
    1111    }
    1212
     
    1515        $parsedParams = $request->get_params();
    1616
    17         if ($checkSyncStatus) {
    18             $syncStatusOrder = SyncBasalamAdminSettings::getSettings(SyncBasalamAdminSettings::SYNC_STATUS_ORDER);
    19             if (!$syncStatusOrder) {
    20                 return;
    21             }
     17        if ($checkSyncStatus && !SyncBasalamAdminSettings::getSettings(SyncBasalamAdminSettings::SYNC_STATUS_ORDER)) {
     18            return;
    2219        }
    2320
    2421        SyncBasalamLogger::debug("دریافت رویداد سفارش: " . json_encode($parsedParams));
     22
    2523        if (isset($parsedParams['event_id']) && $parsedParams['event_id'] == 7) {
    2624            if ($parsedParams['type'] == 'shipped') {
     
    4240    }
    4341
    44     public static function createOrderWoo($parsed_params)
    45     {
    46         $payment_id = $parsed_params['payment_id'] ?? null;
    47         $invoice_id = $parsed_params['invoice_id'] ?? null;
    48         $user_id = $parsed_params['user_id'] ?? null;
    49         $city_id = $parsed_params['city_id'] ?? null;
    50         $province_id = $parsed_params['province_id'] ?? null;
     42    public static function createOrderWoo($params)
     43    {
     44        $payment_id = $params['payment_id'] ?? null;
     45        $invoice_id = $params['invoice_id'] ?? null;
     46        $user_id = $params['user_id'] ?? null;
     47        $city_id = $params['city_id'] ?? null;
     48        $province_id = $params['province_id'] ?? null;
    5149
    5250        global $wpdb;
     
    157155                if (!empty($full_name)) {
    158156                    $parts = explode(' ', trim($full_name));
    159                     $parts = array_filter($parts); 
     157                    $parts = array_filter($parts);
    160158
    161159                    if (count($parts) === 1) {
     
    192190                SyncBasalamGetProvincesData::setOrderAddress($order, $addressData, 'shipping');
    193191
    194                 $default_method = SyncBasalamAdminSettings::getSettings(SyncBasalamAdminSettings::ORDER_SHIPPING_METHOD);
    195 
    196                 if ($default_method && $default_method !== 'false') {
    197                     $methods = (new SyncBasalamGetWooShippingMethods)->getWooShippingMethods();
    198 
    199                     $shipping_cost = $data['parcel_detail']['shipping_cost'] ?? 0;
     192                // Add shipping method from Basalam API
     193                if (isset($data['parcel_detail']['shipping_method']['title']) && isset($data['parcel_detail']['shipping_cost'])) {
     194                    $shipping_method_title = $data['parcel_detail']['shipping_method']['title'];
     195                    $shipping_cost = $data['parcel_detail']['shipping_cost'];
     196
    200197                    $currency = get_woocommerce_currency();
    201198                    if ($currency === 'IRT') {
     
    207204                    }
    208205
    209                     foreach ($methods as $method) {
    210                         if ($method['method_id'] === $default_method) {
    211                             $shipping_item = new WC_Order_Item_Shipping();
    212                             $shipping_item->set_method_title($method['method_title']);
    213                             $shipping_item->set_method_id($method['method_id']);
    214                             $shipping_item->set_total(floatval($shipping_cost));
    215                             $shipping_item->set_taxes(array());
    216                             $order->add_item($shipping_item);
    217                             break;
    218                         }
    219                     }
     206                    $shipping_item = new WC_Order_Item_Shipping();
     207                    $shipping_item->set_method_title($shipping_method_title);
     208                    $shipping_item->set_method_id('basalam_shipping');
     209                    $shipping_item->set_total(floatval($shipping_cost));
     210                    $shipping_item->set_taxes(array());
     211                    $order->add_item($shipping_item);
    220212                }
    221213            }
    222214
    223             if (isset($data['parcel_detail']['shipping_method']['title'])) {
    224                 $order->add_order_note("روش ارسال این سفارش : " . $data['parcel_detail']['shipping_method']['title']);
    225             }
     215            $order->calculate_totals();
    226216
    227217            $total_price = 0;
  • sync-basalam/trunk/readme.txt

    r3403926 r3406805  
    55Tested up to: 6.8
    66Requires PHP: 7.4
    7 Stable tag: 1.5.9
     7Stable tag: 1.6.0
    88License: GPL-2.0-or-later 
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html 
  • sync-basalam/trunk/sync-basalam.php

    r3403926 r3406805  
    55 * Plugin Name: sync basalam | ووسلام
    66 * Description: با استفاده از پلاگین ووسلام  میتوایند تمامی محصولات ووکامرس را با یک کلیک به غرفه باسلامی خود اضافه کنید‌، همچنین تمامی سفارش باسلامی شما به سایت شما اضافه میگردد.
    7  * Version: 1.5.9
     7 * Version: 1.6.0
    88 * Author: Woosalam Dev
    99 * Author URI: https://wp.hamsalam.ir/
  • sync-basalam/trunk/templates/admin/menu/main/section/setting.php

    r3397803 r3406805  
    11<?php
    22if (! defined('ABSPATH')) exit;
    3 $get_shipping_methods = new SyncBasalamGetWooShippingMethods();
    4 $shipping_methods = $get_shipping_methods->getWooShippingMethods();
    5 
    63?>
    74<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="post">
     
    114111                </div>
    115112                <div class="basalam-form-group basalam-p">
    116                     <?php echo SyncBasalamAdminUI::renderLabelWithTooltip('روش حمل و نقل سفارشات', 'روش حمل و نقلی که برای سفارشات دریافتی از باسلام در ووکامرس اعمال می‌شود ، در صورتی که روشی انتخاب نشود سفارشات باسلام بدون روش و هزینه حمل و نقل در ووکامرس ثبت میشوند.'); ?>
    117                     <?php SyncBasalamAdminUI::renderDefaultShippingMethod($shipping_methods); ?>
    118                 </div>
    119                 <div class="basalam-form-group basalam-p">
    120113                    <?php echo SyncBasalamAdminUI::renderLabelWithTooltip('محصولات عمده', 'مشخص کنید که آیا همه محصولات به صورت عمده به باسلام ارسال شوند یا اینکه فقط برخی یا هیچ کدام ، از صفحه ویرایش محصول در ووکامرس میتوانید وضعیت عمده محصول را در باسلام مشخص کنید.'); ?>
    121114                    <?php SyncBasalamAdminUI::renderWholesaleProducts(); ?>
Note: See TracChangeset for help on using the changeset viewer.