شرطی سازی درگاه های پرداخت ووکامرس بر اساس شرایط مختلف

شرطی سازی درگاه های پرداخت ووکامرس بر اساس شرایط مختلف

پس از یک سایت چند زبانه وردپرس، باید فرآیند شرطی سازی درگاه پرداخت ووکامرس را بر اساس زبان های مختلف انجام دهید. در این مقاله می خواهم دقیقاً نحوه انجام این کار را توضیح دهم.

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

بدین ترتیب کاربر به درگاه پرداخت ریالی در نسخه انگلیسی سایت نیز دسترسی داشت و در صورتی که قیمت محصول در نسخه انگلیسی سایت 50 دلار بود، می توانست محصول را به قیمت 50 تن خریداری کند. چه تصمیمی گرفته شد؟! ما باید درگاه پرداخت را به زبان های مختلف تعیین می کردیم. یعنی فقط درگاه پرداخت بیت کوین انگلیسی و فقط فارسی درگاه پرداخت بانک ملت را نشان می داد.

در نهایت با استفاده از فیلتر وردپرس این مشکل را حل کردیم. حالا بعد از ویدیو ساخت درگاه پرداخت بیت کوین در وردپرس، همانطور که در ویدیو قول داده بودم، در این مقاله در مورد شرطی شدن درگاه پرداخت ووکامرس صحبت خواهم کرد. اماده ای؟ پس بیایید شروع کنیم.

درگاه پرداخت مشروط برای ووکامرس

اولین کاری که باید انجام دهید این است که فایل functions.php را در قالب سایت خود وارد کنید یا یک افزونه مخصوص وردپرس بسازید. حالا باید کمی با PHP آشنا باشید. البته اگر با آن آشنایی ندارید درست و غلط انجام می شود. پس زیاد نگران نباش

فراخوانی تابعی که ایجاد خواهیم کرد

وقتی وارد فایل functions.php می شویم. باید پیدا کنی

add_filter( 'woocommerce_available_payment_gateways', 'mihanwp_conditional_gateway' );

با استفاده از کد بالا فیلتر جدیدی به ووکامرس اضافه کردیم و اطلاع دادیم که درگاه های پرداخت موجود باید دقیقا مطابق با عملکردی که مشخص کردیم یعنی mihanwp_conditional_gateway فعال یا غیرفعال شوند.

تابع مورد نظر را ایجاد کنید

حال باید تابع را مشخص کرده و شرایط مورد نظر خود را به تابع اضافه کنیم. پس این کدها را اضافه کنید:

function mihanwp_conditional_gateway( $available_gateways ) {

}

اکنون باید کد مورد علاقه خود را در تابع بالا بین {و .. اضافه کنیم.

شرایط و ضوابط درگاه پرداخت ما

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

$user = wp_get_current_user();

if ( isset( $available_gateways['mellat'] ) && !is_user_logged_in()) {
        unset( $available_gateways['mellat'] );
}
return $available_gateways;

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

نمایش درگاه پرداخت بر اساس زبان WPML

حال فرض کنید می خواهیم پورت های WPML را برای زبان های مختلف فعال یا غیرفعال کنیم. پس باید از کد زیر استفاده کنیم.

if(ICL_LANGUAGE_CODE == 'en'){
        unset( $available_gateways['mellat'] );
}
if(ICL_LANGUAGE_CODE == 'fa'){
        unset( $available_gateways['paypal'] );
}
return $available_gateways;

در کد بالا مشخص کردم که اگر زبان سایت انگلیسی است، درگاه پرداخت ملت و اگر زبان سایت فارسی است، درگاه پرداخت پی پال را غیرفعال کنید.

هر کاری کردیم

به طور کلی، برای تعیین درگاه های پرداخت ووکامرس بر اساس زبان های مختلف، باید از این کد استفاده کنیم:

add_filter( 'woocommerce_available_payment_gateways', 'mihanwp_conditional_gateway' );

function mihanwp_conditional_gateway( $available_gateways ) {
if(ICL_LANGUAGE_CODE == 'en'){
        unset( $available_gateways['mellat'] );
}
if(ICL_LANGUAGE_CODE == 'fa'){
        unset( $available_gateways['paypal'] );
}
return $available_gateways;
}

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

خوشحال باش.