در حال حاضر بیشتر قالبهایی که طراحی و تولید میشوند، با ووکامرس سازگار هستند، اما برخی آنها از این سازگاری محروم هستند و باید برای این محرومیت چارهای اندیشید.
تصور کنید یک وبسایت شرکتی دارید و به یک باره تصمیم میگیرید برخی از خدمات و محصولات شرکت را نیز، در قالب یک فروشگاه اینترنتی به فروش برسانید. از طرفی تمایل به تغییر قالب فعلی ندارید و میخواهید با همین امکانات، فروشگاه را نیز داشته باشید. شاید به نظر محال برسد اما به احتمال بسیار بالا شدنی است. در این مطلب آموزشی میخواهیم امکان سازگاری در ووکامرس با قالبهای وردپرسی را بیاموزیم.
سازگاری در ووکامرس با قالبهای وردپرسی
در این مقاله میآموزیم که چگونه به روشی ساده و مهیج و بدون ایجاد تغییری در افزونه، امکان سازگاری وردپرس را گسترش دهیم و سازگاری در ووکامرس با قالبهای وردپرسی را ایجاد کنیم. سه مرحله زیر را در نظر گرفتیم و به آن میپردازیم:
- قدم اول و شروع فرآیند
- استفاده از هوک در وردپرس و اقدامات بعدی
- افزودنیهای ووکامرس
1- اعلام پشتیبانی ووکامرس
تصور کنید که یک قالب ووکامرسی را میخواهیم توسعه دهیم… باید برخی از قابلیتهای کاربردی و مورد نیاز را برای آن در نظر بگیریم و همچنین برخی از عملکردها را نیز سفارشی سازی کنیم. دو راه برای گسترش ووکامرس بدون ویرایش هسته افزونه وجود دارد:
- استفاده از هوک (برای توسعه دهندگانی که اطلاعات متوسطی در این حوزه دارند)
- استفاده از عملگر woocommerce_content در خارج از قالب
در قدم اول باید اعلام آمادگی برای ویرایش فایل function.php در قالب وردپرس را داشته باشید، و حالت پیشفرض ووکامرس را غیر فعال کرده و در عوض آن را با قالب خود تنظیم کنید. برای این منظور اول از همه باید اعلام سازگاری با ووکامرس را فعال کنیم:
add_action( 'after_setup_theme', 'woocommerce_support' ); function woocommerce_support() { add_theme_support( 'woocommerce' ); }
قطعه کد بالا میتواند پیام ” قالب شما از ووکامرس پشتیبانی نمیکند” را مخفی کند.
برای غیرفعال کردن تنظبمات و حالت پیش فرض ووکامرس، قطعه کد زیر را وارد کنید:
if (class_exists('Woocommerce')){ add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' ); }
با عملگر ()class_exists بررسی میکنیم که افزونه ووکامرس نصب و فعال شده است. در مرحله اول پس از فعال شدن، استایل پیش فرض را غیر فعال کرده و بقیه عملیات را طبق دستورات زیر انجام خواهیم داد.
2- ایجاد برگه جدید قالب
حال، یک نسخه کپی از فایل page.php قالب، ایجاد میکنیم و نام آن را woocommerce.php میگذاریم. این فایل باید در مسیر زیر قرار گیرد:
wp-content/themes/YOURTHEME/woocommerce.php
حال یک فایل متنی یا ویرایشگر به انتخاب خودتان (notepad،notepad++ و…) انتخاب کرده و آن را باز کنید. در ابتدا کد زیر را در آن وارد کنید:
<?php if ( have_posts() ) :
و با قطعه کد زیر آن را ببندید:
<?php endif; ?>
این موضوع در بین قالبها تفاوت ایجاد میکند. در گام نخست شما باید فایل حلقه (که معمولا همان function.php است) را یافته و آن را حذف کنید. سپس در آن قطعه کد زیر را درج کنید:
<?php woocommerce_content(); ?>
()woocommerce_content امکان بارگذاری لیست محصولات فروشگاه در صفحه اصلی، دسته بندی محصولات، جستجوی محصول و صفحه توضیحات محصول را بر عهده دارد.
3- افزودن امکانات مورد نظر به فایل woocommerce.php
مرحله بعدی سازگاری در ووکامرس با قالبهای وردپرسی بررسی و کار بر روی فایل woocommerce.php است. این فایل در حال حاضر بخشی از قالب وردپرسی شما محسوب میشود و قادر به سفارشیسازی آن همانند سایر فایلها خواهید بود. به عنوان مثال، تابعی برای اضافه کردن صفحهبندی محصول در نظر میگیریم و قطعه کد آن را به صورت زیر مینویسیم:
<?php if (is_product()): ?> // your navigation function goes here. <?php endif ?>
4- استفاده از hook و Action در ووکامرس
همانطور که میدانید در ووکامرس نیز مجموعهای از hook، Action و Filter وجود دارد که با مراجعه به وبسایت مرجع ووکامرس میتوانید آنها را مشاهده کرده و استفاده کنید. به عنوان مثال، تمایل به مشاهده عملکرد خودمان در صفحه محصولات داریم. برای تغییر طرح صفحه فروشگاه با کمک hook دو گزینه پیش رو دارید:
- گسترش action موجود بدون حذف آن
- حذف action موجود و جایگزینی آن گزینه جدید
فرض کنید میخواهیم تنظیمات سفارشتان محصول را از صفحه فروشگاه حذف کنیم. برای این منظور از دستور زیر باید استفاده کنیم:
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
5- افزونههای ووکامرس
در مبحث ایجاد سازگاری در ووکامرس با قالبهای وردپرسی، اگر میخواهید به قالب خود افزونههای ووکامرسی اضافه کنید، تقریبا اصل یکسانی پیش رو دارید. همیشه باید از برنامههای سازگار و با کیفیت پشتیبانی کند. به عنوان مثال ما میخواهیم دو افزونه را در قالب خود نصب کنیم.
برای این منظور اول از همه باید ووکامرس و امکانات آن به صورت کامل فعال باشند (طبق دستورات موجود در بندهای بالا) و تابع (()if (class_exists را در ابتدای فایل وارد کنید. البته، قبل از این موضوع باید مطمئن شوید که افزونه مورد نظر شما نصب و فعال شده باشد. قطعه کد زیر را به عنوان نمونه میتوانید در نظر بگیرید:
if (class_exists('Woocommerce')){if (class_exists('YITH_WCQV')) {remove_action( 'yith_wcqv_product_image', 'woocommerce_show_product_sale_flash', 10 ); remove_action( 'yith_wcqv_product_image', 'woocommerce_show_product_images', 20 ); add_action('yith_wcqv_product_image','infinitum_ninzio_woocommerce_show_product_images', 20 ); function infinitum_ninzio_woocommerce_show_product_images(){?>...<?php }}}
جمعبندی
ووکامرس یک افزونه بسیار کاربردی در حوزه تجارت الکترونیک است که با کمک آن میتوان فروشگاهی از محصولات و خدمات مختلف را ایجاد کرد. با روی کار آمدن این افزونه، بسیاری از قالبهای سازگار با آن روی کار آمدند و از آن پشتیبانی کامل میکنند. اما برخی قالبها این امکان را ندارند اما میتوان با کمی دقت و یادگیری آنها را با ووکامرس سازگار کرد. برای ایجاد سازگاری در ووکامرس با قالبهای وردپرسی پیشنهاد میکنیم حتما مقاله امروز را مطالعه کنید.
saberkkk 6 سال عضو همیار وردپرس
سلام این ارور در ووکامرس هنگام نهایی سازی خرید و اقدام به پرداخت میاد
امکان ایجاد سفارش وجود ندارد.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
تنظیمات مربوط به تسویه حساب رو از بخش پیکربندی انجام دادید؟ تسویه حساب>> گزینههای تسویه حساب
reza maleki 6 سال عضو همیار وردپرس
سلام خانوم کوهستانی. ما یک سایت شرکتی می خوایم طراحی کنیم و چون نیازه محصولات هم در اون نمایش بدیم . خواستم بدونم امکان نصب افزونه ووکامرس روی سایت های شرکتی یا چند منظوره مثل آوادا وجود داره ؟ در واقع سازگاری داره یا نه ؟
با تشکر
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
بله، مشکلی نداره و میتونید ووکامرس هم نصب کنید.
rasool mohammady 6 سال عضو همیار وردپرس
سلام. خانوم بهاره کوهستانی. میخواستم بگم اموزش دقیق تر و کامل تری شما سرغ داریدمطالعه کنم. حتی منبع انگلیسی. یا فیلم. هرچی در این مورد.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
در چه زمینهای دوست عزیز؟
rasool mohammady 6 سال عضو همیار وردپرس
در زمینه طراحی قالب سازگار با ووکامرس. یا تبدیل یک قالب نا سازگار به ووکامرس به سازگار به ووکامرس. در همین حوضه.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
این مطلب بد نیست:
https://docs.woocommerce.com/document/third-party-custom-theme-compatibility/
Deporvito
بهاره کوهستانی, thanks for the article post.Really thank you! Great.