# بیجک (ترابری هوشمند) – افزونه ووکامرس

[![WordPress](https://img.shields.io/badge/WordPress-5.8%2B-blue?logo=wordpress)](https://wordpress.org)
[![WooCommerce](https://img.shields.io/badge/WooCommerce-5.5%2B-purple?logo=woo)](https://woocommerce.com)
[![License: GPL v2](https://img.shields.io/badge/License-GPLv2-green.svg)](https://www.gnu.org/licenses/gpl-2.0.html)

افزونه **بیجک (ترابری هوشمند)** یک روش حمل‌ونقل جدید برای ووکامرس ایجاد می‌کند که فروشگاه‌های اینترنتی می‌توانند سفارشات خود را به‌طور مستقیم در سامانه‌ی [بیجک](https://bijak.ir) ثبت و مدیریت کنند.

---

## ✨ ویژگی‌ها

- انتخاب **شهر مقصد بیجک** در صفحه تسویه‌حساب
- پشتیبانی از حالت‌های **پیش‌کرایه** و **پس‌کرایه**
- محاسبه هزینه‌ی ارسال از **API بیجک** و نمایش به مشتری
- امکان **تحویل درب منزل** یا **تحویل به باربری مقصد**
- تعریف **ابعاد ارسال بیجک** برای هر محصول و variation با fallback به ابعاد استاندارد ووکامرس
- انتخاب امن **موقعیت محل تحویل روی نقشه** برای سفارش‌های درب منزل
- ثبت خودکار سفارش در سامانه‌ی بیجک پس از پرداخت
- نمایش **وضعیت و کد پیگیری بیجک** در پنل کاربر و مدیر فروشگاه

---

## ⚙️ نصب و راه‌اندازی

1. مخزن را کلون کنید یا افزونه را دانلود کنید:

```bash
   git clone https://github.com/mostafaamiri/bijak-woo.git
```

2. پوشه `bijak-woo` را در مسیر `wp-content/plugins` کپی کنید.
3. از پیشخوان وردپرس، افزونه را فعال کنید.
4. به منوی **بیجک** بروید و **API Key** خود را وارد کنید.
5. شهر مبدأ و تنظیمات دیگر را ذخیره کنید.
6. در بخش حمل‌ونقل ووکامرس، روش **ارسال کالا با بیجک** را فعال کنید.

### پیکربندی فنی

آدرس API بیجک، سرویس انتخاب موقعیت و لینک‌های پنل در فایل `includes/class-config.php` متمرکز شده‌اند. برای تغییر آن‌ها همین فایل را ویرایش کنید؛ این مقادیر عمداً از تنظیمات قابل ویرایش فروشگاه حذف شده‌اند.

در تنظیمات مبدا، آدرس و موقعیت از دو مسیر قابل تنظیم است: دکمه‌ی «پر کردن آدرس از پروفایل بیجک» اطلاعات آدرس و مختصات پروفایل را در فرم قرار می‌دهد و دکمه‌ی «انتخاب مبدا روی نقشه» موقعیت را از انتخاب‌گر امن دریافت می‌کند. مختصات به‌صورت خام نمایش داده نمی‌شوند و فقط لینک نقشه‌ی نشان ارائه می‌شود. اگر آدرس مبدا به‌صورت دستی تغییر کند، مختصات قبلی پاک می‌شود و باید موقعیت جدید روی نقشه ثبت شود.

برای باز شدن انتخاب‌گر موقعیت، افزونه از سمت سرور با API بیجک یک مجوز کوتاه‌عمر می‌گیرد. API Key در JavaScript، iframe یا آدرس مرورگر قرار نمی‌گیرد و revoke شدن کلید باعث رد شدن نشست انتخاب‌گر و ذخیره موقعیت می‌شود.

---

## ❓ پرسش‌های متداول

### آیا نیاز به حساب کاربری بیجک دارم؟

بله، برای دریافت API Key باید در سامانه بیجک ثبت‌نام کنید.

### هزینه‌ی حمل چگونه محاسبه می‌شود؟

هزینه‌ها به‌صورت آنلاین از API بیجک دریافت و در صورتحساب مشتری نمایش داده می‌شوند.

### آیا می‌توانم هم‌زمان از چند روش حمل استفاده کنم؟

بله، افزونه بیجک به‌عنوان یک روش حمل اضافه می‌شود و می‌توانید سایر روش‌ها را هم فعال نگه دارید.

---

## 📦 الزامات

* WordPress 5.8+
* WooCommerce 5.5+
* PHP 7.4+

تست‌شده تا WordPress 7.0 و WooCommerce 10.7.

---

## 📜 تغییرات

### 1.3.23

- تبدیل ارزش کالا از ریال به تومان پیش از ارسال به بیجک

### 1.3.22

- تبدیل خودکار واحدهای اندازه و وزن ووکامرس به سانتی‌متر و کیلوگرم قبل از ارسال اطلاعات به بیجک

### 1.3.21

- مخفی شدن پنل وضعیت بیجک برای سفارش‌هایی که با روش ارسال دیگری ثبت شده‌اند

### 1.3.20

- بهبود ظاهر پنل وضعیت ارسال بیجک در صفحه مشاهده سفارش کاربر

### 1.3.19

- بازطراحی پنل وضعیت ارسال بیجک در صفحه دریافت سفارش
- اصلاح لینک «مشاهده در بیجک» برای باز شدن جزئیات همان سفارش

### 1.3.18

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

### 1.3.17

- اضافه شدن ابعاد ارسال اختصاصی بیجک برای محصولات و variationها
- استفاده از ابعاد اختصاصی بیجک و fallback خودکار به مقادیر استاندارد ووکامرس
- نمایش خطای دقیق هنگام ناقص بودن طول، عرض، ارتفاع یا وزن کالای ارسال‌شده با بیجک

### 1.3.8

- اضافه شدن کنترل‌های ادمین برای دریافت آدرس مبدا از پروفایل بیجک یا انتخاب آن روی نقشه
- readonly شدن مختصات مبدا و نمایش لینک نقشه نشان
- پاک شدن مختصات هنگام تغییر دستی آدرس مبدا

### 1.3.7

- اضافه شدن مجوزدهی سروری API بیجک برای نشست‌های انتخاب‌گر موقعیت
- کوتاه‌عمر بودن grant و بررسی مجدد آن قبل از ذخیره مختصات؛ کلید revoke‌شده پذیرفته نمی‌شود

### 1.3.6

* نمایش گزینه‌ها به شکل «استان، شهر»
* جست‌وجوی خودکار استان و شهر checkout هنگام باز شدن فهرست مقصد بیجک

### 1.3.5

* تطبیق بهتر شکل‌های مختلف نوشتاری و شهرهای چندبخشی
* الزام تطبیق استان برای جلوگیری از انتخاب شهر هم‌نام در استان اشتباه

### 1.3.4

* ارسال فیلدهای نشانی checkout به بیجک هنگام ثبت سفارش تحویل درب منزل
* محدود شدن داده‌ی دریافتی از انتخاب‌گر موقعیت به طول و عرض جغرافیایی

### 1.3.3

* رفع ماندن پیام بارگذاری پس از لود شدن iframe انتخاب‌گر موقعیت
* واگذاری مجوز موقعیت مرورگر به iframe انتخاب‌گر و اصلاح جهت نشانگر مرکز نقشه

### 1.3.2

* تطبیق شهر و استان checkout با فهرست شهرهای بیجک
* نمایش پیام و باز کردن فهرست شهر بیجک در صورت نبود شهر انتخاب‌شده

### 1.3.1

* نمایش نام استان کنار شهر مقصد
* باز شدن نقشه روی مختصات شهر مقصد و جست‌وجوی نام شهر و استان در صورت نبود مختصات

### 1.3.0

* حذف نشانی انتخاب‌گر موقعیت از تنظیمات ادمین و انتقال endpointها و مقادیر یکپارچه‌سازی به `includes/class-config.php`

### 1.2.5

* رفع بارگذاری فایل ترجمه فارسی افزونه در وردپرس

### 1.2.4

* بارگذاری صحیح ترجمه‌های فارسی checkout و انتخاب‌گر موقعیت

### 1.2.3

* رفع ماندن پیام بارگذاری پس از لود شدن iframe انتخاب‌گر موقعیت

### 1.2.2

* رفع مقدار شناسه شهر مقصد تا شهر انتخاب‌شده به‌درستی به ووکامرس و انتخاب‌گر موقعیت ارسال شود

### 1.2.1

* رفع خطای خواندن شهر مقصد و حالت تحویل درب منزل پس از بازسازی fragmentهای تسویه‌حساب ووکامرس

### 1.2.0

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

### 1.1.0

* افزودن انتخاب شهر مبدا در تنظیمات افزونه و بهبود جریان تسویه‌حساب برای مدیریت مقصد
* به‌روزرسانی یکپارچه‌سازی APIهای بیجک به endpointهای جدیدتر برای دریافت وضعیت سفارش و درخواست‌های مرتبط
* رفع چندین باگ در تسویه‌حساب و به‌روزرسانی نرخ ارسال برای محاسبه پایدارتر هزینه حمل

### 1.0.1

* سازگاری با HPOS ووکامرس برای ذخیره/خواندن متای سفارش
* سازگاری متاباکس وضعیت در ویرایشگر سفارش HPOS
* حذف سینتکس‌های مختص PHP 8 برای اجرای پایدار روی PHP 7.4+
* به‌روزرسانی اطلاعات سازگاری با آخرین نسخه‌های وردپرس و ووکامرس

### 1.0.0

* اولین انتشار رسمی افزونه
* پشتیبانی از ثبت سفارش در بیجک
* محاسبه و نمایش هزینه ارسال
* نمایش وضعیت سفارش در پنل کاربر و مدیر
