شرطی کردن درگاه پرداخت ووکامرس بر اساس شرایط مختلف
برای شرطی کردن درگاه پرداخت ووکامرس اولین چیزی که نیاز دارید ورود به فایل functions.php قالب سایت شما یا ساخت یک افزونه اختصاصی وردپرس هست. حالا باید کمی با PHP آشنایی داشته باشید. البته آشنایی هم نداشته باشید با یک صحیح و خطا انجام میشه. پس زیاد نگران نباشید.
فراخوانی تابعی که خلق خواهیم کرد
وقتی وارد فایل functions.php شدیم. باید ابتدای فایل، کد <?php را پیدا کنید. یک خط بعد از آن یعنی در خط دوم فایل توابع وردپرس، این کد را وارد کنید:
;add_filter( ‘woocommerce_available_payment_gateways’, ‘chakavakwp_conditional_gateway’ )
با استفاده از کد بالا یک فیلتر جدید به ووکامرس اضافه کردیم و اطلاع دادیم که درگاههای پرداخت در دسترس باید دقیقا طبق تابعی که ما مشخص میکنیم، یعنی chakavakwp_conditional_gateway فعال یا غیرفعال شوند.
خلق تابع مورد نظر
حالا باید تابع را مشخص کنیم و شرط و شروط دلخواه خودمان را در تابع اضافه کنیم. پس این کدها را هم اضافه کنید:
} function chakavackwp_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
فراموش نکنید در کد بالا باید به جای mellat از نام درگاه پرداخت دلخواه خود استفاده کنید. نام درگاه پرداخت در کدهای پلاگین درگاه پرداخت شما موجود هست.
نمایش درگاه پرداخت بر اساس زبان 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’ )>
style=”text-align: left;”> } 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
}
حالا شما میتوانید کدهای دلخواه خود را بر اساس شرایط مختلف در تابع بالا جایگزین کنید و طبق شرایط دلخواهتان، درگاههای پرداخت را فعال یا غیرفعال کنید. مثلا میتوانید شرط مربوط به گزینههای حمل و نقل را پیدا کنید و آن را در تابع ساخته شده قرار دهید. در این صورت، درگاه پرداخت شما بر اساس روشهای حمل و نقل نمایش داده خواهد شد.
مطالب مرتبط: