تعداد بازدید: 4497

ساختار پلاگین ووکامرس

پلاگین ووکامرس ( Woocommerce ) یک پلاگین برای پیاده سازی سیستم فروش محصول در بستر وردپرس می باشد. اگر ساختار پیش فرض ووکامرس را دنبال کنید می توانید از قالب های پیش فرض ووکامرس استفاده کنید.

Woocommerce Template Structure

ماهیت استفاده از ووکامرس توسط یک برنامه نویس استفاده از یک موجودیت به نام محصول با تمام ویژگی های اصلی نظیر قیمت و اطلاعات محصول می باشد به علاوه یک روال صریح خرید که شامل مراحل سبد خرید ⇐ تسویه حساب ⇐ اتمام سفارش می باشد.

ماهیت محصول می تواید یکی از موارد پیش فرض یا موارد جدیدی که شما میخواهید باشد. مثلا می توانید محصولی با ماهیت نرم افزار بسازید. یا محصولی با ماهیت رزرو بسازید. برای این کار می توانید از نوع محصول یا Product Type استفاده کنید.

برای پیاده سازی قالب های نمایش وردپرس با توجه به نیاز نوع محصول :

  • استفاده از ساختارهای قالب پیش فرض : ساختار پیش فرض قالب های ووکامرس قابل بازنویسی می باشند.کافی است دایرکتوری با نام woocommerce در پوسته خود قرار دهید و در درون آن ساختار ها را پیاده سازی کنید.
  • ایجاد ساختارهای قالب شخصی : می توانید قالب های متفاوت برای نوع محصولات جدید خودتان داشته باشید. برای این کار باید قالب های پیش فرض ووکامرس را باز نویسی کنید.

صفحات حساب کاربری ، تسویه حساب ، سبد خرید صفحات اصلی ووکامرس هستند که باید ساخته شوند و در پیکره بندی انتخاب شوند. در بین حساب کاربری چندین قالب را با توجه به لینک ( همان endpoint ) نمایش می دهد:

woocommerce-checkout-endpoints

برای بدست آوردن هر یک از لینک های موجود باید ابتدا لیک برگه تسویه حساب را بدست آورید بعد endpoint انتخاب شده کاربر را از تنظیمات به صورت programmatically بدست بیاورید. البته بسیاری از قالب های بالا یک سری پارامتر دارند که اگر ست نشده باشند به کارت ریدایرکت می شوند.

Installed Taxonomies and Post Types

دو موجودیت مهم در ساختار وردپرس Post Type و Taxonomy می باشد.پلاگین ووکامرس نیز از این ساختار ها در ماهیت های زیر استفاده کرده است :

  • محصول (product): ساخت یک پست تایپ با نامک product جهت استفاده در محصولات
    • دسته بندی محصولات (product_cat) : ساخت یک تکسونومی با نام product_cat و الصاق آن به پست تایپ product .
    • برچسب محصولات (product_tag) : تکسونومی با نام product_tag و الصاق آن به پست تایپ product .
  • محصول متغیر (product_variation) : هر محصول متغیر از یک پست تایپ است با نامک product_variation که به عنوان post_parent شناسه محصول اصلی را دارا می باشد.hidden UI
  • سفارشات (shop_order) : پست تایپ با نامک shop_order برای سفارشات
    • وضعیت های سفارشات (shop_order_status) : وضعیت های سفارشات یک تکسونومی با نام shop_order_status
    • سفارشات بازگشتی (shop_order_refund) : سفارشات بازگشتی با یک تکسونومی با نامک shop_order_refund
  • کوپن های تخفیف (shop_coupon): پست تایپ با نامک shop_coupon برای کوپن های تخفیف.

ارتباط میان محصول متغیر و محصول به شکل زیر برقرا می گردد:

موجودیت order_item یه سری اطلاعات متا داره که در wp_order_item_meta ذخیره شده.

Installed Database Tables

ووکامرس علاوه بر استفاده از ساختار های پیش فرض وردپرس جداول خود را به پایگاه داده اضافه می کند.برخی از مهم ترین جداول ووکامرس عبارتست از :

نام جدول توضیحات
woocommerce_sessions اطلاعات کالاهایی که در سبد خرید می باشند.
woocommerce_api_keys کلید های REST که برای برخی مشتریان ساخته می شود. (در تب تنظیمات آن را اضافه کنید)
woocommerce_attribute_taxonomies ویژگی های محصولات که به عنوان یک taxonomy ساخته می شود.مثلا رنگ
woocommerce_order_items هر سفارش یک پست هست که یه تعداد آیتم داره که در جدول woocommerce_order_item ذخیره شده. با استفاده از متد $order->get_items() می توان به آیتم ها دسترسی پیدا کرد.
woocommerce_order_itemmeta هر آیتم امکان ذخیره سازی یک اطلاعات متا رو داره.$item->add_meta_data() می توان متا به هر آیتم اضافه کرد.
woocommerce_shipping_zones مناطق حمل و نقل که در تنظیمات حمل و نقل ابتدا می سازید.
woocommerce_shipping_zone_locations نواحی منطقه ای که برای مناطق اضافه می کنید. مثلا مثلا IR که معادل ایران است.

Classes in WooCommerce

با اضافه شدن موجودیت محصول و سفارش و کوپن و ممتری کلاس هایی نیز معادل آن بوجود می آید. کلاس هایی که معادل Model به ازای هر resource می باشد.برخی از کلاس های پر کاربرد :

WC_Product : کلاسی که جهت دریافت اطلاعات محصول می باشد.

$product = wc_get_product( $post->ID );
if($product->is_on_sale()) {
	$sale_price = $product->get_sale_price();
	$new_sale_price = 1000;
	$product->set_sale_price($new_sale_price);
}
$price = $product->get_price();
$new_price = 2000;
$product->set_price($new_price);
$product->set_regular_price($new_price);
$product->save();

WC_Product_Variation : یک کلاس برای اشیا از نوع محصولات متغیر

نکته : اگر شناسه محصول را داشتید می توانید با استفاده از تابع wc_get_product بسته به نوع محصول شئ محصول را دریافت کنید. ( از روی هر یک از کلاس های بالا )

WC_Order : دریافت اطلاعات مربوط به سفارشات.

$order = wc_get_order($post->ID);
$items = $order->get_items();

WC_Order_Item : دریافت هر آیتم از هر سفارش با استفاده از شناسه order_item .

$item = WC_Order_item($item->id);
$item->add_meta_data(self::product_gift, $values[self::product_gift]);

WC_Customer : اطلاعات مشتری جاری فروشگاه با استفاده از متغیر جهانی $woocommerce یا شناسه کاربر یا user_id.

global $woocommerce;
$customer_country = $woocommerce->customer->get_country();

WC_Cart : اطلاعات موجود در سبد خرید با استفاده از جدول wc_session و متغیر $woocommerce .

global $woocommerce;
$cart_subtotal = $woocommerce->cart->get_cart_subtotal();

مثلا در کد بالا جمع کل سبد خرید را محاسبه می کند.

مطالب مشابه

Product Type در ووکامرس

در ووکامرس مفهومی با هویت Taxonomy با نام product_type داریم که term های متفاوتی را دارا می باشد به طور مثال simple ,...

Settings API در ووکامرس

ما برای ساخت پنل تنظیمات برای افزونه ها از api خود وردپرس استفاده می کردیم. حال این که افزونه مکمل برای ووکامرس می...

آموزش نکات و تکنیک های برنامه نویسی وردپرس

پایگاه داده وردپرس

در این مقاله قصد داریم تا پایگاه داده وردپرس ۴.۴ رو بررسی کنیم. پایگاه داده این نسخه از وردپرس تا mysql نسخه 5.0.15 و...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

یک دیدگاه برای ساختار پلاگین ووکامرس

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *