آموزش شرطی کردن درگاه پرداخت ووکامرس در سایت وردپرسی
- آموزش • آموزش وبمستر
- ۷ تیر ۱۴۰۲
- 1,866 بازدید
توی این مقاله میخواهیم راجب مفاهیمی صحبت کنیم که آموزش های متناظر خیلی کمتری از آنها را دیده اید . یکی از این آموزش هایی که میخواهم آن را برای شما بازگو کنم ، اینع که چطوری درگاه پرداخت وردپرس تون رو شرطی کنید . اگر علاقه مند به چنین مقالاتی هستید ، پیشنهاد میکنم که وبیت رو تا انتها این مقاله همراهی کنید . همچنین اگر سوال ، ابهام یا مشکلی داشتید ، میتوانید از قسمت نظرات کاربران با ما به اشتراک بگذارید . توصیه میکنم که این مقاله رو تا آخر بخونید و تجربیات خود را با ما به اشتراک بگذارید .
میدونید که اگر سایت چندزبانه داشته باشید ، بهتره که یک سری از قابلیت های سایت خود را کنترل کنید . اینطوری بدون دردسر کمتری میتونید سایت چندزبانه خودتون رو کنترل کنید . بهتره بدونید که سایت های چندزبانه رو با استفاده از یک افزونه میتوان طراحی کرد . اگر آشنایی با سایت های چندزبانه و .. ندارید ، پیشنهاد میکنم که مقاله “چندزبانه کردن سایت با افزونه” رو مطالعه کنید .همچنین برای این چنین کارها ، میتوانید از افزونه WooCommerce Multilingual برای فروش محصولات به صورت دلاری در زبانهای مختلف استفاده کنید. اما در کنار همه مزایای این افزونه ، یک مشکل اساسی وجود دارد. آن مشکل هم این است که درگاه پرداخت ریالی بانک ملت ما روی زبان انگلیسی هم نمایش داده میشد.
جالبه بدونید که این مشکل خیلی میتونست موجب ضرر و زیاد شود . مثلا فرض کنید که کاربری برای خرید کفش ، به سایت شما مراجعه کرده است . با توجه به اینکه کاربر در نسخه انگلیسی سایت به درگاه پرداخت ریالی دسترسی داشت و اگر فرضا قیمت محصول در نسخه انگلیسی سایت ۵۰ دلار بود، میتوانست با ۵۰ تومان محصول را خریداری کند. توی این مقاله میخواهیم این مشکل رو رفع کنیم و راه حل مناسبی رو به شما ارائه دهیم .
آنچه در این پست میخوانید
شرطی کردن درگاه پرداخت ووکامرس
همانطور که میدانید ، اساس طراحی سایت وردپرسی و توسعه آن ، کار کردن با فایل فانکشنه ! پس اولین چیزی که نیاز دارید ، ورود به فایل functions.php قالب سایت شما یا ساخت یک افزونه اختصاصی وردپرس هست. حالا باید کمی با PHP آشنایی داشته باشید. مثلا بتونید تابعی که خلق کردید رو فراخوانی کنید . وقتی وارد فایل functions.php شدیم، باید ابتدای فایل، کد <?php را پیدا کنید. یک خط بعد از آن یعنی در خط دوم فایل توابع وردپرس، این کد را وارد کنید:
add_filter( 'woocommerce_available_payment_gateways', 'vebeet_conditional_gateway' );
با استفاده از کد بالا یک فیلتر جدید به ووکامرس اضافه کردیم و اطلاع دادیم که درگاههای پرداخت در دسترس باید دقیقا طبق تابعی که ما مشخص میکنیم، یعنی vebeet_conditional_gateway فعال یا غیرفعال شوند.
حالا باید تابع مورد نظرتون رو بنویسید :
حالا باید تابع را مشخص کنیم و شرط و شروط دلخواه خودمان را در تابع اضافه کنیم. پس این کدها را هم اضافه کنید:
function vebeet_conditional_gateway( $available_gateways ) {} $user = wp_get_current_user(); if ( isset( $available_gateways['web'] ) && !is_user_logged_in()) { unset( $available_gateways['web'] ); } return $available_gateways;
فراموش نکنید در کد بالا باید به جای web از نام درگاه پرداخت دلخواه خود استفاده کنید. نام درگاه پرداخت در کدهای پلاگین درگاه پرداخت شما موجود هست.
نمایش درگاه پرداخت بر اساس زبان WPML
حالا فرض کنیم میخواهیم به ازای زبانهای مختلف در WPML درگاهها را فعال یا غیرفعال کنیم. پس باید از کد زیر استفاده کنیم.
if(ICL_LANGUAGE_CODE == 'en'){ unset( $available_gateways['web'] ); } if(ICL_LANGUAGE_CODE == 'fa'){ unset( $available_gateways['paypal'] ); } return $available_gateways;
در کد بالا من مشخص کردم که اگر زبان سایت انگلیسی بود، درگاه پرداخت ملت را غیرفعال کن و اگر زبان سایت فارسی بود، درگاه پرداخت پی پال غیرفعال شود.