هر فروشگاه چند فروشنده (مارکت پلیس) دنبال راهی برای کاربرپسند کردن وبسایت خود است. یکی از این راهها، نمایش نام فروشنده دکان در زیر تصویر شاخص محصول است. در این مقاله قصد داریم این ترفند را به شما آموزش دهیم تا به راحتی آن را انجام دهید.
اگر از افزونه دکان برای وبسایت چند فروشندگی استفاده میکنید، به راحتی میتوانید با قراردادن چند کد دلخواه در فایل functions.php نام فروشنده یا فروشگاه را به همراه آدرس آن را در برگه کاتالوگ (فروشگاه، آرشیو دستهبندی، آرشیو برچسب محصولات و…) نمایش دهید.
نمایش نام فروشنده در برگه محصولات
اگر میخواهید نام فروشنده را در برگه محصولات نظیر فروشگاه، آرشیو دستهبندی، آرشیو برچسب و… نمایش دهید، کافی است کد زیر را به functions.php اضافه نمایید.
/*
Show Seller Name On The Product Thumbnail For Dokan Multivendor plugin
*/
add_action('woocommerce_after_shop_loop_item_title', 'tidaweb_woo_sold_by');
function tidaweb_woo_sold_by()
{
global $product;
$seller = get_post_field('post_author', $product->get_id());
$author = get_user_by('id', $seller);
$store_info = dokan_get_store_info($author->ID);
if (!empty($store_info['store_name'])) { ?>
<span class="details">
<?php printf('فروشنده : <a href="%s">%s</a>', dokan_get_store_url($author->ID), $author->display_name); ?>
</span>
<?php
}
}
نمایش نام فروشگاه در برگه محصولات
اگر میخواهید نام فروشگاه را به جای نام فروشنده را در برگه محصولات نظیر فروشگاه، آرشیو دستهبندی، آرشیو برچسب و… نمایش دهید، کافی است کد زیر را به functions.php اضافه نمایید.
/*
Show Store Name On The Product Thumbnail For Dokan Multivendor plugin
*/
add_action('woocommerce_after_shop_loop_item_title', 'tidaweb_woo_sold_by');
function tidaweb_woo_sold_by()
{
global $product;
$seller = get_post_field('post_author', $product->get_id());
$author = get_user_by('id', $seller);
$vendor = dokan()->vendor->get($seller);
$store_info = dokan_get_store_info($author->ID);
if (!empty($store_info['store_name'])) { ?>
<span class="details">
<?php printf('فروشگاه : <a href="%s">%s</a>', $vendor->get_shop_url(), $vendor->get_shop_name()); ?>
</span>
<?php
}
}
بهروزرسانی: نمایش نام فروشنده یا فروشگاه در سایت چندزبانه
در صورتی که سایت شما چند زبانه است باید به جای استفاده از کدهای printf از توابع __ و e_ استفاده کنید. به عنوان مثال برای نمایش نام فروشنده در کد اول باید به جای کد
<?php printf('فروشنده : <a href="%s">%s</a>', dokan_get_store_url($author->ID), $author->display_name); ?>
از قطعه کد زیر استفاده کنید. به جای textdomain نام دامنه قالب یا افزونه خود را قرار دهید که عبارات فایل pot براساس آن ساخته شده است.
<?php echo __('فروشنده :', 'textdomain').printf('<a href="%s">%s</a>', dokan_get_store_url( $author->ID ), $author->display_name); ?>
همانطور که در این مقاله گفته شد، به راحتی میتوانید نام فروشنده دکان را در برگه محصولات نمایش دهید. امیدواریم از این ترفند نهایت استفاده را ببرید. در صورتی که سؤالی داشتید، آن را در بخش دیدگاهها مطرح نمایید تا در اسرع وقت به شما پاسخ دهیم.
منبع : WP DOCTOR
خیلی ممنونم از شما که مشکلم حل کردید
دنبال همچین چیزی میخواستم .
ولی یه مشکل کوچیک هست نام فروشگاه به صورت یه خط نشون نمیده
مثلا
نام فروشگاه:
مهستی
میخوام اینجوری نمایش بده= نام فروشگاه: مهستی
باسلام خدمت کاربر گرامی
اینکار با استفاده از کدهای CSS امکان پذیر است.
باتشکر
سلام عرض ادب من این کد را از طریق افزونه Snippets استفاده کردم. اما من در واقع دو تا مشکل اساسی تو این افزونه وجود دارد که میخواستم لطف بفرمایید راهنمایی بفرمایید:
۱- محصول به تعداد فروشنده در سایت کپی می شود. بعبارتی من چندین شعبه فروشگاه دارم که میخواهم مشتری در سایتم از هر شعبه ای خواست خرید کند.. افزونه چند فروشندگی به تعداد فروشنده(شعبه) همان یک کالا را تکرار و کپی میکند. چطور این مشکل را حل کنم؟
۲- من میخواهم که مشتری کالای من را در سایت مشاهده کند و در سبد خرید خود حق انتخاب هر یک از شعب را که در چند نقطه از کشور هست را داشته باشد..
باسلام
برای مورد اول اگر محصولی باشد که توسط چند فروشنده به فروش میرسد این به طور خودکار برای هر فروشنده یک کپی تهیه میشود. (البته در نسخه حاضر اینطوری است و ممکن است در آینده رفع شود.)
برای مورد دوّم شما میتوانید از روش جایگزین استفاده کنید و به جای استفاده از چند فروشندگی با استفاده از تعریف ویژگی به نام شعب این مشکل را برطرف نمایید.
موفق و پیروز باشید
مشکل این کد اینه که نام فروشگاه رو ثبت نمیکنه بلکه نام یا id فروشنده رو ثبت میکنه
باسلام
قسمت دوم نام فروشگاه رو نشون میده . اگر باز هم کار نکرد، می تونین با متغیر
$store_info['store_name']
نام فروشگاه رو چاپ کنین .باتشکر
اینکه داخل کد بالا هست !
ممکنه لطفا یک مرتبه کد بالا رو برای نشون دادن درست نام فروشگاه کامل ارائه بدید
باسلام
با کارشناسان در تماس باشید تا مشکل شما رفع گردد.
باتشکر
درود بر شما
پیرو تماس تلفنی خواهشمندم نسبت به ارائه کد کامل که هم نام فروشگاه رو نشون بده و هم بشه برای ترجمه با wpml برای کلمه “فروشگاه : ” اقدام کرد
لطف بفرمایید
عذر میخوام کد دوم درست کار میکنه و نام فروشگاهش درست شد و فقط میمونه امکان ترجمه اصطلاح برای wpml
باسلام
دوست عزیز، جواب سؤال شما در بهروزرسانی نوشته آمده است.
ممنون از پاسخگویی شما
ایراد تصحیح بالا اینه که خود کلمه فروشنده رو نمیشه ترجمه کرد و البته ترجمه نام فروشگاه ها هم در افزونه دکان نیست و بصورت رشته انجام میشه
باسلام مجدد
اگر منظورتان این است که هر فروشگاه هم نام فارسی و هم نام انگلیسی داشته باشد و در هر زبان، متناسب با آن زبان، نامش را نمایش دهد، این بخش نیازمند کدنویسی اختصاصی میباشد.
موفق و پیروز باشید
سلام
من هم مشکل همین دوست رو دارم
۱. الان کلمه فروشگاه خودش که ترجمه نمیشه بوسیله wpml ( یعنی رشته نیست )
۲. حالا در مرحله بعد هم نام های فروشگاه ها در دکان ترجمه میشه ولی این کد در زبان های دیگر همون فارسی رو نشون میده
باسلام خدمت کاربر گرامی
همانطور که در بخش بهروزرسانی اومده، شما باید از توابع __ یا e_ استفاده کنید. در واقع این قطعه کد را در قالب فرزند قرار بدین و با استفاده از افزونه Loco Translate لغات موجود در قالب فرزند را استخراج و در زبان فارسی ترجمه کنید.
باز هم سؤالی بود میتوانید بپرسید.
موفق و پیروز باشید
سلام
ممنون بایت وقتی که میگذارید
من هم دقیقا همین مشکل رو دارم
یعنی نمیتونم کلمه فروشگاه و نام فروشگاه ها رو ترجمه کنم
ممنون میشم دقیقا کدی که باید در چایلد قرار بگیره و روش استفاده اش رو بفرمایید
که بشه این کار رو کرد
چون متوجه توضیح بالای شما نشدم یعنی اونقدر حرفه ای نیستم
باسلام
دوست عزیز در صورتی که سایت چند زبانه داشته باشید، باید دو فیلد برای هر زبان داشته باشید و نام فروشگاه خود را در آن وارد کنید و سپس با استفاده از کدهای تشخیص مربوط به افزونه چندزبانه، شرطی را چک کنید که اگر به عنوان مثال اگر صفحه فروشگاه در زبان انگلیسی بود، نام فروشگاه به انگلیسی نمایش داده شود. این کار نیاز به کدنویسی اختصاصی دارد.
در صورت لزوم با تیدا وب در تماس باشید تا کارشناسان شما را راهنمایی کنند.
موفق باشید